diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 915dda724d53c..5d7970740da58 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -189,7 +189,6 @@ /_maps/ @EOBGames @Maurukas @MMMiracles @san7890 @ShizCalev /icons/ @Imaginos16 @Krysonism @Twaticus @Wallemations -/icons/ass/ @Ghilker @tralezab /code/__DEFINES/atmospherics/ @Ghilker @LemonInTheDark diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 904de8b36c9a9..0000000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -name: Bug report -about: Create a report to help reproduce and fix the issue ---- - - -## Issue Summary - - - -## Round ID: - - - - - -## Testmerges: - - - -## Reproduction: - - - - - - diff --git a/.github/ISSUE_TEMPLATE/bug_report_form.yml b/.github/ISSUE_TEMPLATE/bug_report_form.yml new file mode 100644 index 0000000000000..f64b772437fc9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report_form.yml @@ -0,0 +1,65 @@ +name: Bug Report +description: Create a report to help reproduce and fix the issue. +body: + - type: markdown + attributes: + value: | + # **Please read the following guidelines. Follow all instructions or else your issue is subject to closure.** + ## If you use the "Report Issue" button in the top-right corner of the game, it will automatically fill in some of the information below. + + If you are reporting an issue found in another branch or codebase, you _must_ link the branch or codebase repo in your issue report or it will be closed. + For branches, If you have not pushed your code up, please either reproduce it on master or push your code up before making an issue report. + For other codebases, if you do not have a public code repository you will be refused help unless you can completely reproduce the issue on our master branch. + - type: input + id: reporting-version + attributes: + label: "Client Version:" + description: | + The BYOND version you are using to report this issue. You can find this information in the bottom left corner of the "About BYOND" window in the BYOND client. + It is strongly recommended that you include this, especially for concerns on the visual aspects of the game. + placeholder: "xxx.xxxx" + validations: + required: false + - type: textarea + id: issue-summary + attributes: + label: "Issue Summary:" + description: | + Briefly explain your issue in a few plain sentences. You may copy and paste the issue title here if it is suitable. + placeholder: | + "When I do X, Y happens instead of Z." + "X on Y map has Z issue." + validations: + required: true + - type: input + id: round-id + attributes: + label: "Round ID:" + description: | + If you discovered this issue from playing tgstation hosted servers, the Round ID can be found in the Status panel or retrieved from https://statbus.space/ + The Round ID lets us look up valuable information and logs for the round the bug happened. Leave this blank if there is no round ID. + placeholder: "XXXXXX" + validations: + required: false + - type: textarea + id: test-merges + attributes: + label: "Test Merge Information:" + description: | + If you're certain the issue is to be caused by a test merge [OOC Tab -> Show Server Revision], report it in the pull request's comment section rather than on the tracker. + If you're unsure you can refer to the issue number by prefixing said number with #. The issue number can be found beside the title after submission of this form. + validations: + required: false + - type: textarea + id: reproduction + attributes: + label: "Reproduction Steps:" + description: | + Describe the steps to reproduce the issue in detail. Include any relevant information, such as the map, round type, and any other factors that may be relevant. + If it is a runtime-related error, please include the runtime here as that is pertient information. Issues are not for oddities introduced by admin varedits, ensure these occur in normal circumstances. + placeholder: | + 1. Go to the X location + 2. Do Y action + 3. Observe Z result + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000000..e4f8cb0b767ca --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,4 @@ +contact_links: + - name: Feature Requests + url: https://tgstation13.org/phpBB/viewforum.php?f=9 + about: Post feature requests and suggestions on the forums. This repository does not handle them. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 11687283df4c7..0000000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project - ---- - -Feature requests are not handled in the repository. The best place to discuss these ideas would be on the /tg/station 13 forums here: https://tgstation13.org/phpBB/viewforum.php?f=9&sid=5153c1c704a4fb1006bf7a265e45e03f diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 3c8e7d04fd65b..f63a030c882a1 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -11,7 +11,7 @@ ## Changelog - + :cl: add: Added new mechanics or gameplay changes @@ -22,6 +22,7 @@ balance: rebalanced something fix: fixed a few things sound: added/modified/removed audio or sound effects image: added/modified/removed some icons or images +map: added/modified/removed map content spellcheck: fixed a few typos code: changed some code refactor: refactored some code diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000000..84bd4fa20aad9 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + target-branch: master + schedule: + interval: daily + labels: + - GitHub + open-pull-requests-limit: 10 diff --git a/.github/gbp.toml b/.github/gbp.toml index fe086e79b55f9..382c65b308d6d 100644 --- a/.github/gbp.toml +++ b/.github/gbp.toml @@ -23,3 +23,4 @@ reset_label = "GBP: Reset" "Sound" = 3 "Sprites" = 3 "Unit Tests" = 6 +"Wallening Revert Recovery" = 10 \ No newline at end of file diff --git a/.github/guides/AUTODOC.md b/.github/guides/AUTODOC.md index bcc92e10e59f3..fef5d62c668e2 100644 --- a/.github/guides/AUTODOC.md +++ b/.github/guides/AUTODOC.md @@ -40,7 +40,7 @@ public functions rely on to implement logic When documenting a proc, we give a short one line description (as this is shown next to the proc definition in the list of all procs for a type or global namespace), then a longer paragraph which will be shown when the user clicks on -the proc to jump to it's definition +the proc to jump to its definition ``` /** * Short description of the proc @@ -59,7 +59,7 @@ just going to be the typepath of the class, as dmdoc uses that by default Then we give a short oneline description of the class -Finally we give a longer multi paragraph description of the class and it's details +Finally we give a longer multi paragraph description of the class and its details ``` /** * # Classname (Can be omitted if it's just going to be the typepath) diff --git a/.github/guides/RUNNING_A_SERVER.md b/.github/guides/RUNNING_A_SERVER.md index 095c33d20710f..a1b43e2bb2a32 100644 --- a/.github/guides/RUNNING_A_SERVER.md +++ b/.github/guides/RUNNING_A_SERVER.md @@ -4,7 +4,7 @@ BYOND installed. You can get it from https://www.byond.com/download. Once you've that, extract the game files to wherever you want to keep them. This is a sourcecode-only release, so the next step is to compile the server files. -Double-click `BUILD.bat` in the root directory of the source code. This'll take +Double-click `BUILD.cmd` in the root directory of the source code. This'll take a little while, and if everything's done right you'll get a message like this: ``` diff --git a/.github/guides/STANDARDS.md b/.github/guides/STANDARDS.md index 4716fa1b655c4..c27c8ae7417ec 100644 --- a/.github/guides/STANDARDS.md +++ b/.github/guides/STANDARDS.md @@ -100,11 +100,11 @@ While we normally encourage (and in some cases, even require) bringing out of da ### RegisterSignal() #### PROC_REF Macros -When referencing procs in RegisterSignal, Callback and other procs you should use PROC_REF, TYPE_PROC_REF and GLOBAL_PROC_REF macros. +When referencing procs in RegisterSignal, Callback and other procs you should use PROC_REF, TYPE_PROC_REF and GLOBAL_PROC_REF macros. They ensure compilation fails if the reffered to procs change names or get removed. The macro to be used depends on how the proc you're in relates to the proc you want to use: -PROC_REF if the proc you want to use is defined on the current proc type or any of it's ancestor types. +PROC_REF if the proc you want to use is defined on the current proc type or any of its ancestor types. Example: ``` /mob/proc/funny() @@ -129,7 +129,7 @@ Example: /mob/subtype/proc/do_something() var/obj/thing/x = new() // we're referring to /obj/thing proc inside /mob/subtype proc - RegisterSignal(x, COMSIG_FAKE, TYPE_PROC_REF(/obj/thing, funny)) + RegisterSignal(x, COMSIG_FAKE, TYPE_PROC_REF(/obj/thing, funny)) ``` GLOBAL_PROC_REF if the proc you want to use is a global proc. @@ -154,7 +154,7 @@ All procs that are registered to listen for signals using `RegisterSignal()` mus ``` This is to ensure that it is clear the proc handles signals and turns on a lint to ensure it does not sleep. -Any sleeping behaviour that you need to perform inside a `SIGNAL_HANDLER` proc must be called asynchronously (e.g. with `INVOKE_ASYNC()`) or be redone to work asynchronously. +Any sleeping behaviour that you need to perform inside a `SIGNAL_HANDLER` proc must be called asynchronously (e.g. with `INVOKE_ASYNC()`) or be redone to work asynchronously. #### `override` @@ -280,7 +280,7 @@ Good: off_overlay = iconstate2appearance(icon, "off") broken_overlay = icon2appearance(broken_icon) if (stat & broken) - add_overlay(broken_overlay) + add_overlay(broken_overlay) return if (is_on) add_overlay(on_overlay) @@ -304,7 +304,7 @@ Bad: if (isnull(our_overlays)) our_overlays = list("on" = iconstate2appearance(overlay_icon, "on"), "off" = iconstate2appearance(overlay_icon, "off"), "broken" = iconstate2appearance(overlay_icon, "broken")) if (stat & broken) - add_overlay(our_overlays["broken"]) + add_overlay(our_overlays["broken"]) return ... ``` @@ -391,7 +391,7 @@ At its best, it can make some very common patterns easy to use, and harder to me some_code() if (do_something_else()) . = TRUE // Uh oh, what's going on! - + // even // more // code @@ -468,7 +468,7 @@ Meaning: to_chat(world, uh_oh()) ``` -...will print `woah!`. +...will print `woah!`. For this reason, it is acceptable for `.` to be used in places where consumers can reasonably continue in the event of a runtime. @@ -494,7 +494,7 @@ If you are using `.` in this case (or for another case that might be acceptable, . = ..() if (. == BIGGER_SUPER_ATTACK) return BIGGER_SUPER_ATTACK // More readable than `.` - + // Due to how common it is, most uses of `. = ..()` do not need a trailing `return .` ``` @@ -513,6 +513,30 @@ The following is a list of procs, and their safe replacements. * Move away from something, taking turf density into account `walk_away()` -> `SSmove_manager.move_away()` * Move to a random place nearby. NOT random walk `walk_rand()` -> `SSmove_manager.move_rand()` is random walk, `SSmove_manager.move_to_rand()` is walk to a random place +### Avoid pointer use + +BYOND has a variable type called pointers, which allow you to reference a variable rather then its value. As an example of how this works: + +``` +var/pointed_at = "text" +var/value = pointed_at // copies the VALUE of pointed at +var/reference = &pointed_at // points at pointed_at itself + +// so we can retain a reference even if pointed_at changes +pointed_at = "text AGAIN" +world << (*reference) // Deref to get the value, outputs "text AGAIN" + +// or modify the var remotely +*reference = "text a THIRD TIME" +world << pointed_at // outputs "text a THIRD TIME" +``` + +The problem with this is twofold. +- First: if you use a pointer to reference a var on a datum, it is essentially as if you held an invisible reference to that datum. This risks hard deletes in very unclear ways that cannot be tested for. +- Second: People don't like, understand how pointers work? They mix them up with classical C pointers, when they're more like `std::shared_ptr`. This leads to code that just doesn't work properly, or is hard to follow without first getting your mind around it. It also risks hiding what code does in dumb ways because pointers don't have unique types. + +For these reasons and with the hope of avoiding pointers entering general use, be very careful using them, if you use them at all. + ### BYOND hellspawn What follows is documentation of inconsistent or strange behavior found in our engine, BYOND. diff --git a/.github/workflows/auto_changelog.yml b/.github/workflows/auto_changelog.yml index f47c2936980fe..45303ec0c92af 100644 --- a/.github/workflows/auto_changelog.yml +++ b/.github/workflows/auto_changelog.yml @@ -15,10 +15,22 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + + - name: Generate App Token + id: app-token-generation + uses: actions/create-github-app-token@v1 + if: env.APP_PRIVATE_KEY != '' && env.APP_ID != '' + with: + app-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + env: + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} + APP_ID: ${{ secrets.APP_ID }} + - name: Run auto changelog - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: script: | const { processAutoChangelog } = await import('${{ github.workspace }}/tools/pull_request_hooks/autoChangelog.js') await processAutoChangelog({ github, context }) - github-token: ${{ secrets.COMFY_ORANGE_PAT || secrets.GITHUB_TOKEN }} + github-token: ${{ steps.app-token-generation.outputs.token || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 412fda467dd7c..e65439be57a17 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -19,9 +19,17 @@ concurrency: cancel-in-progress: true jobs: - run_linters: + start_gate: if: ( !contains(github.event.head_commit.message, '[ci skip]') ) + name: Start Gate + runs-on: ubuntu-latest + steps: + - name: Mandatory Empty Step + run: exit 0 + + run_linters: name: Run Linters + needs: start_gate runs-on: ubuntu-22.04 timeout-minutes: 5 @@ -68,7 +76,7 @@ jobs: path: tools/icon_cutter/cache key: ${{ runner.os }}-cutter-${{ hashFiles('dependencies.sh') }} - name: Install OpenDream - uses: robinraju/release-downloader@v1.9 + uses: robinraju/release-downloader@v1.11 with: repository: "OpenDreamProject/OpenDream" tag: "latest" @@ -130,9 +138,8 @@ jobs: run: tools/build/build --ci lint tgui-test compile_all_maps: - if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Compile Maps - needs: [collect_data] + needs: collect_data runs-on: ubuntu-22.04 timeout-minutes: 5 @@ -155,8 +162,8 @@ jobs: max-required-client-version: ${{needs.collect_data.outputs.max_required_byond_client}} collect_data: - if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Collect data for other tasks + needs: start_gate runs-on: ubuntu-22.04 timeout-minutes: 5 outputs: @@ -185,9 +192,8 @@ jobs: echo "max_required_byond_client=$(grep -Ev '^[[:blank:]]{0,}#{1,}|^[[:blank:]]{0,}$' .github/max_required_byond_client.txt | tail -n1)" >> $GITHUB_OUTPUT run_all_tests: - if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Integration Tests - needs: [collect_data] + needs: collect_data strategy: fail-fast: false @@ -200,9 +206,9 @@ jobs: max_required_byond_client: ${{needs.collect_data.outputs.max_required_byond_client}} run_alternate_tests: - if: ( !contains(github.event.head_commit.message, '[ci skip]') && needs.collect_data.outputs.alternate_tests != '[]' ) + if: needs.collect_data.outputs.alternate_tests != '[]' name: Alternate Tests - needs: [collect_data] + needs: collect_data strategy: fail-fast: false matrix: @@ -215,18 +221,9 @@ jobs: minor: ${{ matrix.setup.minor }} max_required_byond_client: ${{needs.collect_data.outputs.max_required_byond_client}} - check_alternate_tests: - if: ( !contains(github.event.head_commit.message, '[ci skip]') && needs.collect_data.outputs.alternate_tests != '[]' ) - name: Check Alternate Tests - needs: [run_alternate_tests] - runs-on: ubuntu-22.04 - timeout-minutes: 5 - steps: - - run: echo Alternate tests passed. - compare_screenshots: - if: ( !contains(github.event.head_commit.message, '[ci skip]') && (always() && (!failure() && !cancelled())) ) - needs: [run_all_tests, run_alternate_tests] + if: needs.collect_data.outputs.alternate_tests == '[]' || needs.run_alternate_tests.result == 'success' + needs: [ collect_data, run_all_tests, run_alternate_tests ] name: Compare Screenshot Tests timeout-minutes: 15 runs-on: ubuntu-22.04 @@ -263,7 +260,6 @@ jobs: path: artifacts/screenshot_comparisons test_windows: - if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Windows Build needs: [collect_data] runs-on: windows-latest @@ -287,3 +283,14 @@ jobs: with: dmb-location: tgstation.dmb max-required-client-version: ${{needs.collect_data.outputs.max_required_byond_client}} + + completion_gate: # Serves as a non-moving target for branch rulesets + if: always() && !cancelled() + name: Completion Gate + needs: [ test_windows, compare_screenshots, compile_all_maps, run_linters ] + runs-on: ubuntu-latest + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index e1b8774905f13..aaf01306a806e 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -9,6 +9,8 @@ jobs: compile: name: "Compile changelogs" runs-on: ubuntu-22.04 + permissions: + contents: write steps: - name: "Check for ACTION_ENABLER secret and pass true to output if it exists to be checked by later steps" id: value_holder @@ -18,37 +20,54 @@ jobs: unset SECRET_EXISTS if [ -n "$ENABLER_SECRET" ]; then SECRET_EXISTS=true ; fi echo "ACTIONS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT + - name: "Setup python" if: steps.value_holder.outputs.ACTIONS_ENABLED - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: '3.x' + - name: "Install deps" if: steps.value_holder.outputs.ACTIONS_ENABLED run: | python -m pip install --upgrade pip python -m pip install pyyaml sudo apt-get install dos2unix + - name: "Checkout" if: steps.value_holder.outputs.ACTIONS_ENABLED uses: actions/checkout@v4 with: fetch-depth: 25 persist-credentials: false + - name: "Compile" if: steps.value_holder.outputs.ACTIONS_ENABLED run: | python tools/ss13_genchangelog.py html/changelogs + - name: Commit if: steps.value_holder.outputs.ACTIONS_ENABLED run: | - git config --local user.email "action@github.com" - git config --local user.name "Changelogs" + git config --local user.name "tgstation-ci[bot]" + git config --local user.email "179393467+tgstation-ci[bot]@users.noreply.github.com" git pull origin master git add html/changelogs git commit -m "Automatic changelog compile [ci skip]" -a || true + + - name: Generate App Token + id: app-token-generation + uses: actions/create-github-app-token@v1 + if: env.APP_PRIVATE_KEY != '' && env.APP_ID != '' + with: + app-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + env: + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} + APP_ID: ${{ secrets.APP_ID }} + - name: "Push" if: steps.value_holder.outputs.ACTIONS_ENABLED uses: ad-m/github-push-action@master with: - github_token: ${{ secrets.COMFY_ORANGE_PAT || secrets.GITHUB_TOKEN }} + github_token: ${{ steps.app-token-generation.outputs.token || secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/discord_discussions.yml b/.github/workflows/discord_discussions.yml new file mode 100644 index 0000000000000..439315cbb9546 --- /dev/null +++ b/.github/workflows/discord_discussions.yml @@ -0,0 +1,52 @@ +name: Discord Discussions + +on: + pull_request_target: + types: + - opened + - reopened + - edited + - labeled + - closed + branches: + - master + +concurrency: + group: "discord-discussions-${{ github.head_ref }}" + cancel-in-progress: true + +jobs: + manage-discord-discussion: + name: Manage Discord Discussion + runs-on: ubuntu-latest + if: contains(github.event.pull_request.labels.*.name, 'Discord Discussion') + steps: + - name: Fail if vars.DISCORD_DISCUSSIONS_CHANNEL_ID is unset + if: ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID == '' }} + run: | + echo "vars.DISCORD_DISCUSSIONS_CHANNEL_ID (${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }}) must be set to use this label!" + exit 1 + + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + dotnet-quality: ga + + - name: Checkout + uses: actions/checkout@v4 + + - name: Build Tgstation.DiscordDiscussions + run: dotnet publish -c Release -o discord_discussions_bins tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj + + - name: Generate App Token + id: app-token-generation + uses: getsentry/action-github-app-token@d4b5da6c5e37703f8c3b3e43abb5705b46e159cc + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Run Tgstation.DiscordDiscussions + run: dotnet discord_discussions_bins/Tgstation.DiscordDiscussions.dll ${{ steps.app-token-generation.outputs.token }} ${{ github.repository_owner }} ${{ github.event.repository.name }} ${{ github.event.pull_request.number }} ${{ github.event.pull_request.merged && 'merged' || github.event.pull_request.state }} ${{ secrets.DISCORD_DISCUSSIONS_TOKEN }} ${{ vars.DISCORD_DISCUSSIONS_CHANNEL_ID }} ${{ github.event.action == 'reopened' && 'true' || 'false' }} ${{ vars.DISCORD_JOIN_LINK }} + env: + GITHUB_PULL_REQUEST_TITLE: ${{ github.event.pull_request.title }} diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 2ffef72218384..388c907b25296 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -27,10 +27,9 @@ jobs: touch dmdoc/.nojekyll echo codedocs.tgstation13.org > dmdoc/CNAME - name: Deploy - uses: JamesIves/github-pages-deploy-action@3.7.1 + uses: JamesIves/github-pages-deploy-action@v4.6.8 with: - BRANCH: gh-pages - CLEAN: true - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SINGLE_COMMIT: true - FOLDER: dmdoc + branch: gh-pages + clean: true + single-commit: true + folder: dmdoc diff --git a/.github/workflows/remove_guide_comments.yml b/.github/workflows/remove_guide_comments.yml index e3a4ac3feda06..621d860c5cd47 100644 --- a/.github/workflows/remove_guide_comments.yml +++ b/.github/workflows/remove_guide_comments.yml @@ -11,7 +11,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Remove guide comments - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: script: | const { removeGuideComments } = await import('${{ github.workspace }}/tools/pull_request_hooks/removeGuideComments.js') diff --git a/.github/workflows/rerun_flaky_tests.yml b/.github/workflows/rerun_flaky_tests.yml index 7f498de144308..80ece468061b4 100644 --- a/.github/workflows/rerun_flaky_tests.yml +++ b/.github/workflows/rerun_flaky_tests.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Rerun flaky tests - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: script: | const { rerunFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js') @@ -24,7 +24,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Report flaky tests - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: script: | const { reportFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js') diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml index 7b544fef2a66c..3485b90d47489 100644 --- a/.github/workflows/run_integration_tests.yml +++ b/.github/workflows/run_integration_tests.yml @@ -46,9 +46,9 @@ jobs: - name: Install rust-g run: | bash tools/ci/install_rust_g.sh - - name: Install auxlua + - name: Install dreamluau run: | - bash tools/ci/install_auxlua.sh + bash tools/ci/install_dreamluau.sh - name: Configure version run: | echo "BYOND_MAJOR=${{ inputs.major }}" >> $GITHUB_ENV diff --git a/.github/workflows/show_screenshot_test_results.yml b/.github/workflows/show_screenshot_test_results.yml index c61d09fa89057..b48ca983b35e7 100644 --- a/.github/workflows/show_screenshot_test_results.yml +++ b/.github/workflows/show_screenshot_test_results.yml @@ -34,7 +34,7 @@ jobs: npm install node-fetch - name: Show screenshot test results if: steps.secrets_set.outputs.SECRETS_ENABLED - uses: actions/github-script@v6 + uses: actions/github-script@v7 env: FILE_HOUSE_KEY: ${{ secrets.ARTIFACTS_FILE_HOUSE_KEY }} with: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 241db03f6e82d..1b268802227af 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-22.04 steps: - - uses: actions/stale@v4 + - uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-pr-message: "This PR has been inactive for long enough to be automatically marked as stale. This means it is at risk of being auto closed in ~ 7 days, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself" diff --git a/.github/workflows/test_merge_bot.yml b/.github/workflows/test_merge_bot.yml index c77e507794413..76dcd3cabc5b0 100644 --- a/.github/workflows/test_merge_bot.yml +++ b/.github/workflows/test_merge_bot.yml @@ -32,7 +32,7 @@ jobs: npm install node-fetch - name: Check for test merges if: steps.secrets_set.outputs.GET_TEST_MERGES_URL - uses: actions/github-script@v6 + uses: actions/github-script@v7 env: GET_TEST_MERGES_URL: ${{ secrets.GET_TEST_MERGES_URL }} with: diff --git a/.github/workflows/tgs_test.yml b/.github/workflows/tgs_test.yml index bd538307aa3f3..4b7853aa77cfe 100644 --- a/.github/workflows/tgs_test.yml +++ b/.github/workflows/tgs_test.yml @@ -14,6 +14,7 @@ on: - 'code/__DEFINES/tgs.dm' - 'code/game/world.dm' - 'code/modules/tgs/**' + - 'tools/bootstrap/**' - 'tools/tgs_scripts/**' - 'tools/tgs_test/**' pull_request: @@ -28,6 +29,7 @@ on: - 'code/__DEFINES/tgs.dm' - 'code/game/world.dm' - 'code/modules/tgs/**' + - 'tools/bootstrap/**' - 'tools/tgs_scripts/**' - 'tools/tgs_test/**' merge_group: @@ -57,7 +59,7 @@ jobs: - 5000:5000 #Can't use env here for some reason steps: - name: Setup dotnet - uses: actions/setup-dotnet@v2 + uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml index 15d45b7935f05..3f7ee320d90b5 100644 --- a/.github/workflows/update_tgs_dmapi.yml +++ b/.github/workflows/update_tgs_dmapi.yml @@ -9,6 +9,9 @@ jobs: update-dmapi: runs-on: ubuntu-22.04 name: Update the TGS DMAPI + permissions: + contents: write + pull-requests: write steps: - name: Clone uses: actions/checkout@v4 @@ -21,6 +24,7 @@ jobs: - name: Apply DMAPI update uses: tgstation/tgs-dmapi-updater@v2 + id: dmapi-update with: header-path: 'code/__DEFINES/tgs.dm' library-path: 'code/modules/tgs' @@ -28,12 +32,23 @@ jobs: - name: Commit and Push continue-on-error: true run: | - git config user.name tgstation-server - git config user.email tgstation-server@users.noreply.github.com + git config user.name "tgstation-ci[bot]" + git config user.email "179393467+tgstation-ci[bot]@users.noreply.github.com" git add . git commit -m 'Update TGS DMAPI' git push -f -u origin tgs-dmapi-update + - name: Generate App Token + id: app-token-generation + uses: actions/create-github-app-token@v1 + if: env.APP_PRIVATE_KEY != '' && env.APP_ID != '' + with: + app-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + env: + APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }} + APP_ID: ${{ secrets.APP_ID }} + - name: Create Pull Request uses: repo-sync/pull-request@v2 if: ${{ success() }} @@ -41,7 +56,7 @@ jobs: source_branch: "tgs-dmapi-update" destination_branch: "master" pr_title: "Automatic TGS DMAPI Update" - pr_body: "This pull request updates the TGS DMAPI to the latest version. Please note any changes that may be breaking or unimplemented in your codebase by checking what changes are in the definitions file: code/__DEFINES/tgs.dm before merging." + pr_body: "This pull request updates the TGS DMAPI to the latest version. Please note any changes that may be breaking or unimplemented in your codebase by checking what changes are in the definitions file: code/__DEFINES/tgs.dm before merging.\n\n${{ steps.dmapi-update.outputs.release-notes }}" pr_label: "Tools" pr_allow_empty: false - github_token: ${{ secrets.COMFY_ORANGE_PAT }} + github_token: ${{ steps.app-token-generation.outputs.token || secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index c70ebf608b965..0a43cf8a696b5 100644 --- a/.gitignore +++ b/.gitignore @@ -180,6 +180,10 @@ Temporary Items /tools/MapAtmosFixer/MapAtmosFixer/bin/* /tools/CreditsTool/bin/* /tools/CreditsTool/obj/* +/tools/Tgstation.DiscordDiscussions/.vs/* +/tools/Tgstation.DiscordDiscussions/bin/* +/tools/Tgstation.DiscordDiscussions/obj/* +/tools/Tgstation.DiscordDiscussions/Properties/launchSettings.json #GitHub Atom .atom-build.json @@ -214,7 +218,7 @@ Temporary Items # Built auxtools libraries and intermediate files aux*.dll libaux*.so -aux*.pdb +*.pdb # byond-tracy, we intentionally do not ship this and do not want to maintain it # https://github.com/mafemergency/byond-tracy/ @@ -244,3 +248,4 @@ define_sanity_output.txt # Running OpenDream locally tgstation.json +rust_g64.dll diff --git a/README.md b/README.md index c0c5fc1f89bbf..6fccae54e43c1 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ This is the codebase for the /tg/station flavoured fork of SpaceStation 13. Space Station 13 is a paranoia-laden round-based roleplaying game set against the backdrop of a nonsensical, metal death trap masquerading as a space station, with charming spritework designed to represent the sci-fi setting and its dangerous undertones. Have fun, and survive! +*All github inquiries (such as moderation actions) may be handled via the /tg/station discord [#coding-general](https://discord.com/channels/326822144233439242/326831214667235328). Simply ping the `@Maintainer` role, following the guide on asking questions located in the channel description, with your issue!* + ## DOWNLOADING [Downloading](.github/guides/DOWNLOADING.md) diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm new file mode 100644 index 0000000000000..3cc4189273f58 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_lodge.dmm @@ -0,0 +1,4641 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ac" = ( +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"aw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"aA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"aE" = ( +/obj/item/shovel, +/obj/structure/rack, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/item/shovel{ + pixel_x = -5; + pixel_y = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"aU" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"be" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"bs" = ( +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"bR" = ( +/obj/structure/railing{ + dir = 8; + color = "#beada5" + }, +/obj/structure/railing{ + dir = 4; + color = "#beada5" + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/iron/stairs{ + color = "#5d341f" + }, +/area/ruin/huntinglodge) +"bV" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"bX" = ( +/obj/structure/table, +/obj/machinery/gibber, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"ca" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/mob/living/basic/viscerator, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"cy" = ( +/obj/structure/chair/wood/wings{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"cC" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/plastic, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/viscerator, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"cJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/kitchenspike, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"cO" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"cQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = -4; + pixel_y = 2 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"cS" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"dc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/ammo_casing/c45{ + pixel_x = 2; + pixel_y = -4 + }, +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"dr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"du" = ( +/obj/item/ammo_casing/c45{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"dC" = ( +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/obj/structure/fans/tiny, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"dP" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/west, +/obj/structure/railing{ + dir = 5; + color = "#beada5" + }, +/obj/structure/railing/corner{ + color = "#beada5" + }, +/turf/open/floor/stone/icemoon, +/area/ruin/huntinglodge) +"dQ" = ( +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"eh" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/south, +/obj/structure/closet/crate/bin, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"ej" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"et" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"eB" = ( +/turf/open/floor/iron/stairs/left{ + color = "#5d341f"; + dir = 1 + }, +/area/ruin/huntinglodge) +"eD" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8; + color = "#beada5" + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"eE" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/item/chair/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"eQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"eX" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/viscerator, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"fb" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"fe" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"fi" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"fB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"fK" = ( +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"fO" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -4; + pixel_y = -3 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/chem_pile, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"fP" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"gu" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy{ + pixel_x = -6; + pixel_y = 7 + }, +/obj/effect/spawner/random/entertainment/toy, +/obj/effect/spawner/random/entertainment/plushie{ + pixel_x = -14; + pixel_y = 0 + }, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"gA" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/structure/chair/comfy/brown, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/minesite/overseer, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"gB" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 11; + pixel_y = -13 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"gM" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"gS" = ( +/obj/item/ammo_casing/c45{ + pixel_x = -4; + pixel_y = -7 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"gY" = ( +/turf/open/floor/light/colour_cycle/dancefloor_b, +/area/ruin/huntinglodge) +"gZ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"hb" = ( +/obj/structure/railing{ + dir = 10; + color = "#beada5" + }, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"hf" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"hl" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -3; + pixel_y = -8 + }, +/obj/item/gun/ballistic/shotgun/riot, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"hm" = ( +/turf/open/floor/iron/stairs/right{ + color = "#5d341f"; + dir = 8 + }, +/area/ruin/huntinglodge) +"hE" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"hK" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"hP" = ( +/obj/structure/table/wood, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/pen/fountain{ + pixel_x = -10; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/wood/end, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"hV" = ( +/obj/effect/spawner/structure/window/reinforced{ + color = "#beada5" + }, +/obj/structure/curtain/cloth/fancy, +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/effect/mapping_helpers/damaged_window, +/turf/open/floor/plating, +/area/ruin/huntinglodge) +"hZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing/c45{ + pixel_x = 7; + pixel_y = -5 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"ic" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent, +/obj/item/gift{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/blood/gibs/body, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"if" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"iq" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"iZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/gift, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"jl" = ( +/obj/item/ammo_casing/c45{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"jp" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/item/bodypart/head/ethereal, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/item/chair/stool, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"jr" = ( +/obj/structure/fermenting_barrel, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_x = 1; + pixel_y = 13 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"jF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/brimdust, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"jK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"jN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/decal/cleanable/brimdust, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"jQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"kf" = ( +/obj/structure/bookcase/random, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"kk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"kl" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"kn" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/misc/hay/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"kD" = ( +/mob/living/basic/viscerator, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"kH" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"kI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/chair/stool{ + pixel_x = -10; + pixel_y = -14 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"kJ" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"kP" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"kR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"lc" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"lv" = ( +/obj/machinery/light/small/dim/directional/west, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/ruin/huntinglodge) +"lC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"lE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"lJ" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/effect/spawner/random/entertainment/plushie{ + pixel_x = 11; + pixel_y = 0 + }, +/obj/effect/spawner/random/entertainment/musical_instrument{ + pixel_x = 11; + pixel_y = 0 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"lL" = ( +/obj/structure/table/wood, +/obj/item/toy/talking/ai{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/effect/spawner/random/entertainment/plushie{ + pixel_x = -18; + pixel_y = 7 + }, +/obj/effect/spawner/random/entertainment/plushie, +/obj/effect/spawner/random/entertainment/musical_instrument{ + pixel_x = -9; + pixel_y = 10 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"lO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"lU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"mb" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"mm" = ( +/obj/structure/table/wood, +/obj/item/storage/cans/sixbeer, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"mo" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"mq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/mob_spawn/corpse/human, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"mr" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/rainbow{ + dir = 1 + }, +/obj/effect/mob_spawn/corpse/human/miner/explorer, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"mA" = ( +/obj/machinery/light/small/dim/directional/south, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/ruin/huntinglodge) +"mG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/directional/north, +/obj/item/gun/ballistic/shotgun/riot, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"mX" = ( +/obj/structure/dresser, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"nt" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"nC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -9; + pixel_y = -2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"nI" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/flora/tree/pine/xmas/presentless{ + pixel_x = -15; + pixel_y = 10 + }, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"nK" = ( +/obj/structure/ore_container/food_trough/raptor_trough, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"nX" = ( +/obj/structure/table/wood/fancy, +/obj/item/bodypart/head/ethereal, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"og" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"oF" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"oT" = ( +/obj/machinery/computer/security/wooden_tv, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"oW" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"oY" = ( +/obj/structure/railing{ + dir = 10; + color = "#beada5" + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"pl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 0; + pixel_y = -2 + }, +/obj/effect/decal/cleanable/chem_pile, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"pr" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/chair/stool{ + dir = 4; + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"pE" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_x = 3; + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_x = -7; + pixel_y = 3 + }, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"pF" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"pJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"pN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/confetti, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"pU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/secure_closet/freezer/fridge/all_access, +/obj/item/food/grown/carrot{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/food/grown/carrot{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/structure/sink/kitchen/directional/west, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"pX" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"qp" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/item/paper/crumpled/bloody, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"qH" = ( +/obj/item/ammo_casing/c45{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"qL" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/trash/tray{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/item/bodypart/head{ + pixel_x = 0; + pixel_y = 3 + }, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"qO" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -4; + pixel_y = -13 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"qU" = ( +/obj/item/hatchet/wooden{ + pixel_x = -8; + pixel_y = 17 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"qW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/item/chair/stool, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"qZ" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"ry" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"rI" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"rS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"sU" = ( +/obj/item/ammo_casing/c45, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"sX" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = 6; + pixel_y = 0 + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = -5; + pixel_y = 11 + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = -14; + pixel_y = 0 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"ta" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"td" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/decal/cleanable/brimdust, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"tk" = ( +/obj/effect/turf_decal/siding/wood/end, +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_x = -6; + pixel_y = 0 + }, +/obj/item/pickaxe, +/obj/item/pickaxe{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/pickaxe{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/flashlight{ + pixel_x = 0; + pixel_y = -2 + }, +/obj/item/flashlight{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"tq" = ( +/obj/machinery/jukebox, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"tT" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"tY" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/item/gift{ + pixel_x = 0; + pixel_y = 3 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"uc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/corpse/human/cook, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"uU" = ( +/obj/structure/barricade/wooden/crude/snow, +/obj/machinery/door/airlock/wood, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"uZ" = ( +/obj/machinery/light/warm/directional/north, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"vc" = ( +/obj/item/knife/combat/bone{ + pixel_x = -19; + pixel_y = -2 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"vg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"vr" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"vv" = ( +/obj/structure/railing{ + dir = 10; + color = "#beada5" + }, +/obj/structure/hedge, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"vH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"vK" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"vO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/table/wood/fancy, +/obj/item/gift{ + pixel_x = 0; + pixel_y = 1 + }, +/obj/item/gift{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/gift{ + pixel_x = -12; + pixel_y = 11 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"vW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"wd" = ( +/obj/structure/table/wood/fancy, +/obj/item/flashlight/lamp/green{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"ws" = ( +/obj/structure/musician/piano{ + color = "#beada5" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"ww" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/dinnerware, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"wC" = ( +/obj/structure/chair/wood/wings{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"wI" = ( +/obj/structure/noticeboard/directional/north, +/obj/item/gun/ballistic/shotgun/riot{ + pixel_x = 1; + pixel_y = 27 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -1; + pixel_y = 5 + }, +/turf/open/floor/stone, +/area/ruin/huntinglodge) +"wO" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"wP" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"wV" = ( +/obj/structure/fireplace, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/stone, +/area/ruin/huntinglodge) +"xh" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"xv" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"xy" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"xz" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/obj/effect/decal/cleanable/blood/trails, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"xB" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -4; + pixel_y = 8 + }, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"xE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/table/wood/fancy, +/obj/item/gift{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/gift{ + pixel_x = 4; + pixel_y = 9 + }, +/obj/item/gift{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"xG" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/railing{ + color = "#beada5" + }, +/obj/effect/turf_decal/siding/thinplating{ + color = "#beada5" + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"xH" = ( +/obj/effect/decal/cleanable/insectguts, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"xM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table/wood/fancy/royalblack, +/obj/machinery/light/warm/directional/west, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 8; + pixel_y = 9 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"xQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"ye" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy{ + pixel_x = -17; + pixel_y = -1 + }, +/obj/effect/spawner/random/entertainment/plushie{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/effect/spawner/random/entertainment/musical_instrument, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"yk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"yt" = ( +/obj/structure/chair/wood/wings{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"yB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"yG" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/miner/explorer, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"yN" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"yO" = ( +/obj/effect/decal/cleanable/garbage, +/obj/effect/decal/cleanable/blood/trails, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/viscerator, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"yR" = ( +/obj/item/ammo_casing/c45{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/ammo_casing/c45{ + pixel_x = -10; + pixel_y = -9 + }, +/obj/item/ammo_casing/c45{ + pixel_x = 1; + pixel_y = -7 + }, +/obj/item/ammo_casing/c45{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/ash, +/mob/living/basic/viscerator, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"yW" = ( +/obj/structure/railing/corner{ + color = "#beada5" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"zr" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/effect/spawner/structure/window/reinforced{ + color = "#beada5" + }, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/plating, +/area/ruin/huntinglodge) +"zM" = ( +/obj/item/chair/stool/bamboo{ + dir = 8; + color = "#463934" + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"zN" = ( +/turf/open/floor/iron/stairs{ + color = "#5d341f" + }, +/area/ruin/huntinglodge) +"Ah" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"Ao" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy{ + pixel_x = -10; + pixel_y = 7 + }, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = 3; + pixel_y = 0 + }, +/obj/effect/spawner/random/entertainment/musical_instrument{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Ar" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"As" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"Aw" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"AF" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/turf/open/misc/hay/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"AG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"AV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/oven/range, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"AX" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/space/santa, +/obj/item/storage/backpack/santabag{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/item/clothing/head/costume/santa{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/ammo_box/magazine/m45{ + pixel_x = 8; + pixel_y = 0 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Bl" = ( +/obj/structure/railing{ + dir = 6; + color = "#beada5" + }, +/obj/structure/hedge, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"Bm" = ( +/obj/item/ammo_casing/c45{ + pixel_x = -5; + pixel_y = -4 + }, +/obj/item/ammo_casing/c45{ + pixel_x = -4; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"BE" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood/fancy/orange, +/obj/item/plate/small{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/plate/small{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/glass{ + pixel_x = 7; + pixel_y = 17 + }, +/obj/item/food/meat/steak/plain/human{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/food/meat/steak/plain/human{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/glass{ + pixel_x = -8; + pixel_y = 3 + }, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"BI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Cv" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/misc/hay/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Cy" = ( +/obj/structure/noticeboard/directional/north, +/obj/item/bodypart/head{ + pixel_x = -1; + pixel_y = 25 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/paper/crumpled/bloody, +/obj/machinery/coffeemaker/impressa, +/turf/open/floor/stone, +/area/ruin/huntinglodge) +"CA" = ( +/turf/closed/mineral/snowmountain/cavern/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"CC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/stool/directional/west, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/dim/directional/east, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"CD" = ( +/turf/open/floor/iron/stairs/right{ + color = "#5d341f"; + dir = 1 + }, +/area/ruin/huntinglodge) +"CE" = ( +/obj/machinery/light/small/dim/directional/north, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/ruin/huntinglodge) +"CL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood/fancy, +/obj/item/gift{ + pixel_x = -18; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/flashlight/lamp/green{ + pixel_x = -1; + pixel_y = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"CS" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"Dc" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/directional/south, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"Dp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants/random, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Dq" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Ds" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"DE" = ( +/obj/item/ammo_casing/c45{ + pixel_x = -9; + pixel_y = -2 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"DF" = ( +/obj/structure/flora/tree/pine/style_2, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"DH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light/warm/directional/east, +/obj/structure/table/wood, +/obj/item/clothing/shoes/winterboots/ice_boots, +/obj/item/clothing/shoes/winterboots/ice_boots{ + pixel_x = -5; + pixel_y = 11 + }, +/obj/item/clothing/shoes/winterboots/ice_boots{ + pixel_x = 6; + pixel_y = 9 + }, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"DM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"DO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 8; + pixel_y = -7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"DX" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Ea" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/blood/splatter/over_window{ + pixel_x = -32; + pixel_y = 0 + }, +/obj/item/gift{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/gift{ + pixel_x = -6; + pixel_y = -1 + }, +/obj/item/gift{ + pixel_x = -5; + pixel_y = 15 + }, +/obj/item/gift{ + pixel_x = 4; + pixel_y = 13 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Ei" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/c45{ + pixel_x = -5; + pixel_y = -4 + }, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Ej" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Es" = ( +/obj/structure/table/wood/fancy, +/obj/item/gift{ + pixel_x = -1; + pixel_y = -11 + }, +/obj/item/gift{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/gift{ + pixel_x = 9; + pixel_y = -11 + }, +/obj/item/gift{ + pixel_x = 10; + pixel_y = 0 + }, +/obj/item/gift{ + pixel_x = 6; + pixel_y = 12 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"EB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/torso, +/obj/effect/decal/cleanable/chem_pile, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"EG" = ( +/obj/structure/bed, +/obj/item/bedsheet/gondola, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/miner/explorer, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"EJ" = ( +/turf/template_noop, +/area/template_noop) +"EK" = ( +/obj/effect/decal/cleanable/ash, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -28; + pixel_y = 10 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"EY" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Fw" = ( +/obj/structure/railing{ + dir = 6; + color = "#beada5" + }, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"Fz" = ( +/obj/item/chair/stool/bamboo{ + dir = 4; + color = "#463934" + }, +/obj/item/flashlight/lantern/on{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"FN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/garbage, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"FX" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -9; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/warm/directional/north, +/obj/effect/decal/cleanable/blood, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 0; + pixel_y = -7 + }, +/obj/effect/decal/cleanable/chem_pile, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Gj" = ( +/obj/structure/bed/double{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/bedsheet/patriot/double{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/laborer, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Gl" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/structure/railing/corner/end{ + dir = 4; + color = "#beada5" + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Gn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Gp" = ( +/obj/effect/spawner/structure/window/reinforced{ + color = "#beada5" + }, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/plating, +/area/ruin/huntinglodge) +"Gy" = ( +/obj/structure/falsewall/wood, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"GA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"GD" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent, +/obj/item/gift{ + pixel_x = -6; + pixel_y = 11 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"GF" = ( +/obj/structure/chair/sofa/bench{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"GN" = ( +/obj/item/ammo_casing/c45{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/ammo_casing/c45{ + pixel_x = 3; + pixel_y = -4 + }, +/obj/item/ammo_casing/c45{ + pixel_x = -5; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/blood/splatter, +/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"GU" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Hi" = ( +/obj/structure/table/wood/fancy, +/obj/effect/turf_decal/siding/wood, +/obj/item/stack/wrapping_paper, +/obj/item/stack/wrapping_paper{ + pixel_x = 0; + pixel_y = 12 + }, +/obj/item/gift{ + pixel_x = -10; + pixel_y = 8 + }, +/obj/item/gift{ + pixel_x = 0; + pixel_y = 14 + }, +/obj/item/gift{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/item/gift{ + pixel_x = 7; + pixel_y = 7 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Hm" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"Ho" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/storage/cans/sixbeer, +/obj/item/knife/hunting{ + pixel_x = -1; + pixel_y = -4 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"Hq" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Hr" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/basic/viscerator, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Hv" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Hw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/trash/candle, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"Hx" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/blood/gibs/core, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"HC" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"HK" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"HL" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/effect/spawner/random/entertainment/toy, +/obj/item/clothing/mask/facehugger/toy{ + pixel_x = -13; + pixel_y = 5 + }, +/obj/effect/spawner/random/entertainment/musical_instrument{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Ia" = ( +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/brimdust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"If" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"Ig" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -6; + pixel_y = -1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Ip" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Iq" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = -9; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Iw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 4; + pixel_y = 7 + }, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Iz" = ( +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"IH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table/wood, +/obj/item/storage/cans/sixbeer, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"IZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/mob/living/basic/viscerator, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Jb" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/ruin/huntinglodge) +"Jj" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Jk" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/noticeboard/directional/north, +/obj/structure/sign/poster/contraband/blood_geometer/directional/east, +/obj/structure/table/wood, +/obj/item/paper{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/machinery/light/small/dim/directional/east, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Jo" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"JQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "floor6-old" + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"JZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"Kc" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Kl" = ( +/obj/structure/railing/corner{ + dir = 8; + color = "#beada5" + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"KB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"KU" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"Lt" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Lv" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/effect/spawner/random/entertainment/toy{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/dualsaber/toy{ + pixel_x = -16; + pixel_y = 0 + }, +/obj/item/toy/toy_dagger{ + pixel_x = 4; + pixel_y = -9 + }, +/obj/effect/spawner/random/entertainment/musical_instrument{ + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"LQ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/item/chair/wood/wings, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Mb" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"Mc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Mf" = ( +/obj/machinery/light/warm/directional/west, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/ruin/huntinglodge) +"Mw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/paper/crumpled, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"MJ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/directional/south, +/obj/effect/decal/cleanable/plastic, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"MQ" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/blood/gibs, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Nj" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/basic/viscerator, +/obj/effect/decal/cleanable/brimdust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Nl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/directional/north, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"Nu" = ( +/turf/open/floor/light/colour_cycle/dancefloor_a, +/area/ruin/huntinglodge) +"Nw" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/c45{ + pixel_x = -5; + pixel_y = -4 + }, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"NE" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"NL" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 15; + pixel_y = 9 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"NN" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"NP" = ( +/obj/structure/fermenting_barrel, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"NW" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Oa" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/warm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/brimdust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Of" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"Ok" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"Oq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/brimdust, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Ot" = ( +/obj/structure/table/wood/fancy, +/obj/item/gift{ + pixel_x = -4; + pixel_y = 9 + }, +/obj/item/gift{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/gift{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/gift{ + pixel_x = 2; + pixel_y = 10 + }, +/obj/item/gift{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/gift{ + pixel_x = 7; + pixel_y = 17 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Oz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/musical_instrument{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"OA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/mob/living/basic/viscerator, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"OH" = ( +/obj/structure/noticeboard/directional/north, +/obj/item/paper/crumpled/bloody, +/obj/item/paper/crumpled/bloody, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"ON" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"OY" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"OZ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Pa" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Pd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"Pi" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/ammo_casing/c45{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"PK" = ( +/obj/structure/railing{ + dir = 9; + color = "#beada5" + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"PS" = ( +/obj/effect/spawner/structure/window/reinforced{ + color = "#beada5" + }, +/obj/structure/curtain/cloth/fancy, +/obj/effect/decal/cleanable/blood/splatter/over_window, +/turf/open/floor/plating, +/area/ruin/huntinglodge) +"PU" = ( +/turf/open/floor/iron/stairs/medium{ + color = "#5d341f" + }, +/area/ruin/huntinglodge) +"Qp" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood/fancy/orange, +/obj/item/plate/small{ + pixel_x = -5; + pixel_y = 0 + }, +/obj/item/plate/small{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/glass{ + pixel_x = -7; + pixel_y = 15 + }, +/obj/item/food/meat/steak/plain/human{ + pixel_x = -6; + pixel_y = 0 + }, +/obj/item/food/meat/steak/plain/human{ + pixel_x = 6; + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/glass{ + pixel_x = 9; + pixel_y = 3 + }, +/turf/open/floor/carpet/lone/star, +/area/ruin/huntinglodge) +"Qy" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"QB" = ( +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"QG" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"QS" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Rg" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"Rl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/mob/living/basic/viscerator, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"RB" = ( +/obj/effect/decal/cleanable/blood/gibs/body, +/obj/effect/decal/cleanable/blood/trails, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"RH" = ( +/obj/effect/turf_decal/siding/thinplating{ + color = "#beada5" + }, +/obj/structure/railing{ + color = "#beada5" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Sf" = ( +/obj/structure/rack, +/obj/item/gps/mining, +/obj/item/gps/mining{ + pixel_x = -7; + pixel_y = 4 + }, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"Sg" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Sl" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"So" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Sp" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/gift{ + pixel_x = -10; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"SK" = ( +/obj/structure/table/wood, +/obj/item/toy/talking{ + pixel_x = 1; + pixel_y = 10 + }, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"SL" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/chem_pile, +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"SN" = ( +/mob/living/basic/raptor/green, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"SO" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/cleanable/garbage, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"SS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"SW" = ( +/obj/item/flashlight/lantern/on, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"Th" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"Tp" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Tv" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"TC" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/gift{ + pixel_x = -10; + pixel_y = -6 + }, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"TI" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/gun/ballistic/shotgun/doublebarrel, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"TN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/comfy/brown, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"TO" = ( +/turf/open/floor/iron/stairs/right{ + color = "#5d341f" + }, +/area/ruin/huntinglodge) +"TV" = ( +/mob/living/basic/migo/hatsune, +/turf/open/floor/light/colour_cycle, +/area/ruin/huntinglodge) +"Uv" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Ux" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/knife/butcher, +/obj/item/chainsaw{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/knife, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"UB" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/rainbow{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/mob_spawn/corpse/human/miner/explorer, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"UJ" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"US" = ( +/obj/structure/railing{ + color = "#beada5" + }, +/obj/effect/turf_decal/siding/thinplating{ + color = "#beada5" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Vb" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/c45{ + pixel_x = -5; + pixel_y = -11 + }, +/obj/effect/decal/cleanable/glass, +/mob/living/basic/viscerator, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Vk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"VC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/item/gift, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"VE" = ( +/turf/open/floor/iron/stairs/left{ + color = "#5d341f" + }, +/area/ruin/huntinglodge) +"VO" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/stone/icemoon, +/area/ruin/huntinglodge) +"VW" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/item/storage/cans/sixbeer{ + pixel_x = -4; + pixel_y = -15 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Wn" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/innards, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/basic/viscerator, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"Ws" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"WC" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"WX" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 7; + pixel_y = -1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/item/gift, +/turf/open/floor/carpet/green, +/area/ruin/huntinglodge) +"Xa" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"Xd" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"Xf" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Xk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/mob/living/basic/viscerator, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"Xl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"Xs" = ( +/obj/structure/railing{ + dir = 4; + color = "#beada5" + }, +/obj/structure/railing{ + dir = 8; + color = "#beada5" + }, +/turf/open/floor/iron/stairs{ + color = "#5d341f" + }, +/area/ruin/huntinglodge) +"Xu" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"XF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/obj/machinery/griddle, +/turf/open/floor/iron/checker, +/area/ruin/huntinglodge) +"XL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/chem_pile, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"XN" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/blood, +/obj/machinery/light/warm/dim/directional/south, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"XY" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/machinery/light/floor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin, +/turf/open/floor/wood/large, +/area/ruin/huntinglodge) +"Yr" = ( +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"Yu" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"Yy" = ( +/obj/item/ammo_casing/c45{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"YD" = ( +/obj/effect/spawner/structure/window/reinforced{ + color = "#beada5" + }, +/obj/structure/curtain/cloth/fancy/mechanical/start_closed, +/turf/open/floor/plating, +/area/ruin/huntinglodge) +"YQ" = ( +/turf/open/misc/hay/icemoon, +/area/ruin/huntinglodge) +"YR" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"YZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/mob/living/basic/viscerator, +/turf/open/floor/carpet/royalblack, +/area/ruin/huntinglodge) +"Zg" = ( +/obj/machinery/door/airlock/wood{ + color = "#beada5" + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) +"Zi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/west, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/tile, +/area/ruin/huntinglodge) +"Zk" = ( +/obj/effect/mob_spawn/corpse/human/skeleton/cultist, +/turf/open/misc/asteroid/snow/icemoon/do_not_chasm, +/area/icemoon/surface/outdoors/nospawn) +"Zs" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"ZA" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/stone/icemoon, +/area/ruin/huntinglodge) +"ZB" = ( +/obj/structure/table/wood/fancy, +/obj/item/storage/fancy/candle_box{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/effect/spawner/random/entertainment/lighter{ + pixel_x = 6; + pixel_y = -1 + }, +/turf/open/floor/carpet, +/area/ruin/huntinglodge) +"ZI" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/item/bodypart/head/ethereal, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/closet/crate/bin, +/turf/open/floor/wood, +/area/ruin/huntinglodge) +"ZN" = ( +/turf/open/floor/iron/stairs/left{ + color = "#5d341f"; + dir = 8 + }, +/area/ruin/huntinglodge) +"ZT" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy{ + pixel_x = 5; + pixel_y = 0 + }, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/effect/spawner/random/entertainment/plushie{ + pixel_x = -10; + pixel_y = 4 + }, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"ZV" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = -5; + pixel_y = 0 + }, +/obj/effect/spawner/random/entertainment/plushie{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/stack/wrapping_paper, +/turf/open/floor/carpet/red, +/area/ruin/huntinglodge) +"ZW" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/huntinglodge) + +(1,1,1) = {" +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(2,1,1) = {" +EJ +EJ +CA +CA +fK +EJ +EJ +EJ +fK +DF +EJ +EJ +EJ +EJ +EJ +EJ +Zs +HK +wO +HK +wO +wO +gZ +fK +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(3,1,1) = {" +EJ +CA +CA +fK +fK +fK +fK +fK +fK +fK +fK +EJ +EJ +EJ +Zs +wO +oW +fK +ON +fK +Th +fb +EY +bV +So +fK +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(4,1,1) = {" +EJ +CA +CA +fK +ta +fK +Jb +hV +Gp +Jb +fK +fK +Zs +HK +be +ta +fK +Jb +Gp +Jb +fK +fK +Mb +As +ry +gZ +fK +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(5,1,1) = {" +EJ +CA +fK +DF +fK +Jb +Jb +Gj +AX +Jb +Jb +fK +NW +fK +fK +fK +Jb +Jb +eE +Jb +Gp +Gp +Jb +fK +hE +ry +fe +gZ +fK +EJ +EJ +EJ +EJ +EJ +EJ +"} +(6,1,1) = {" +EJ +EJ +fK +fK +mA +Jb +mX +dc +KB +oF +Jb +fP +ZA +fK +DF +fK +Jb +Jk +dQ +Iz +og +Mc +Jb +Jb +fK +fK +fK +NW +fK +EJ +EJ +EJ +EJ +EJ +EJ +"} +(7,1,1) = {" +EJ +EJ +EJ +fK +fK +Jb +oT +Vb +Bm +OY +Jb +dC +Jb +fK +fK +Jb +Jb +Jb +Jb +Jb +TC +lc +Dp +Jb +Jb +Jb +fK +NW +fK +EJ +EJ +EJ +EJ +EJ +EJ +"} +(8,1,1) = {" +EJ +EJ +EJ +fK +fK +Jb +Jb +Hm +Jb +Jb +Jb +mo +Jb +Jb +fK +Jb +TN +xM +xQ +Jb +DX +Sp +Ig +mq +kJ +Gp +aU +NW +fK +fK +EJ +EJ +EJ +EJ +EJ +"} +(9,1,1) = {" +EJ +EJ +fK +fK +Jb +Jb +Oq +BI +Gn +Jb +Jb +Vk +tk +Jb +Jb +Jb +lU +sX +Ds +Jb +gB +NN +xv +qZ +Hi +zr +fK +NW +DF +fK +EJ +EJ +EJ +EJ +EJ +"} +(10,1,1) = {" +EJ +EJ +ta +Jb +Jb +XY +eX +Ip +xB +vH +Jb +Yr +Jb +Jb +Jb +iZ +pl +IZ +Iw +Jb +QS +MQ +lO +Pa +YR +Gp +fK +NW +fK +fK +EJ +EJ +EJ +EJ +EJ +"} +(11,1,1) = {" +EJ +EJ +mA +Jb +wI +Ei +yt +wC +cy +SL +Yr +Hq +zN +Hq +VE +DO +rS +yB +tY +Kc +kD +fO +EK +Jb +Jb +Jb +fK +ry +gZ +fK +EJ +EJ +EJ +EJ +EJ +"} +(12,1,1) = {" +EJ +EJ +fK +Jb +wV +yR +BE +qL +Qp +Oa +Jb +Iq +Jb +FX +PU +hZ +eQ +nI +Lt +Uv +Sg +Hr +tT +Jb +fK +fK +fK +fK +NW +fK +EJ +EJ +EJ +EJ +EJ +"} +(13,1,1) = {" +EJ +EJ +fK +Jb +Cy +Nw +vr +hf +HC +Tp +QB +xh +zN +nt +TO +VC +If +jN +NL +Jb +xH +LQ +kH +Jb +CA +fK +fK +Zs +fi +sU +fK +EJ +EJ +EJ +EJ +"} +(14,1,1) = {" +EJ +fK +DF +Jb +Jb +dr +gM +if +Ar +yk +Jb +Jb +Jb +Jb +Jb +qp +hl +WX +Pi +Jb +YD +Yr +YD +Jb +CA +CA +Zs +be +Fz +Xu +jl +EJ +EJ +EJ +EJ +"} +(15,1,1) = {" +EJ +EJ +fK +CA +Jb +Jb +vW +AG +fB +Jb +Jb +Nu +TV +gY +Jb +Jb +Jj +pF +Jb +Jb +Xl +wP +kf +Jb +Jb +CA +NW +fK +DF +jr +du +EJ +EJ +EJ +EJ +"} +(16,1,1) = {" +EJ +EJ +fK +CA +CA +Jb +Jb +Zg +Jb +Jb +Jb +Gy +Jb +Jb +Jb +Jb +ZN +hm +Jb +kf +ca +xz +gA +hP +Jb +CA +ry +gZ +zM +qH +be +EJ +EJ +EJ +EJ +"} +(17,1,1) = {" +EJ +fK +fK +fK +ta +Mf +aE +Dq +NP +Jb +et +yW +Xs +KU +Jb +Bl +kR +YZ +Jb +kf +SS +ej +kf +Jb +Jb +CA +fK +Yy +gS +be +fK +EJ +EJ +EJ +EJ +"} +(18,1,1) = {" +EJ +fK +fK +fK +fK +fK +fK +Tv +fK +PS +Oz +US +xE +TI +Gp +Hw +Qy +XN +Jb +Jb +Jb +uU +Jb +Jb +fK +fK +fK +Ho +NW +fK +fK +EJ +EJ +EJ +EJ +"} +(19,1,1) = {" +EJ +DF +Jb +Jb +Jb +fK +fK +yN +fK +Gp +ws +RH +CL +kP +Yr +Pd +Xd +Yu +Gp +fK +dP +ac +VO +fK +fK +fK +fK +Zs +be +fK +fK +EJ +EJ +EJ +EJ +"} +(20,1,1) = {" +EJ +Jb +Jb +YQ +Jb +Jb +fK +NW +fK +Gp +CC +xG +vO +ZW +Gp +Xk +Rg +kl +hV +GN +Zk +EY +rI +Aw +GU +fe +wO +be +fK +fK +EJ +EJ +EJ +EJ +EJ +"} +(21,1,1) = {" +EJ +Jb +nK +SN +YQ +Jb +fK +vK +mA +Jb +Jb +eD +bR +NE +Jb +vv +jF +aA +Gp +DE +vc +fK +ta +fK +OZ +fK +fK +fK +fK +EJ +EJ +EJ +EJ +EJ +EJ +"} +(22,1,1) = {" +EJ +Jb +Sf +YQ +YQ +YQ +kn +Xf +fK +fK +Jb +Gp +Jb +Jb +Jb +Jb +ZN +hm +Jb +Jb +fK +DF +fK +fK +Gl +fK +fK +fK +fK +EJ +EJ +EJ +EJ +EJ +EJ +"} +(23,1,1) = {" +EJ +Jb +uZ +YQ +Jb +OH +Cv +cO +fK +ta +lv +fK +fK +Jb +Jb +Zi +kk +JQ +pN +Jb +Jb +fK +fK +PK +Kl +oY +fK +fK +DF +fK +EJ +EJ +EJ +EJ +EJ +"} +(24,1,1) = {" +EJ +Jb +pE +cS +UJ +YQ +AF +ry +gZ +fK +fK +DF +fK +Jb +GA +qO +nC +vg +jp +IH +Jb +Jb +Gp +Gp +bs +Gp +Jb +fK +fK +fK +EJ +EJ +EJ +EJ +EJ +"} +(25,1,1) = {" +EJ +Jb +nK +SN +YQ +Jb +QG +fK +Hv +fe +gZ +fK +Jb +Jb +XL +MJ +lJ +SK +Rl +yG +Jb +Fw +UB +Ea +Ej +mr +Jb +Jb +fK +EJ +EJ +EJ +EJ +EJ +EJ +"} +(26,1,1) = {" +EJ +Jb +Jb +YQ +Jb +Jb +QG +fK +Xf +DF +NW +fK +Gp +ZB +kI +Ok +ZV +lL +Nl +lE +CS +eB +SO +GD +Wn +Ia +mm +Jb +CE +fK +EJ +EJ +EJ +EJ +EJ +"} +(27,1,1) = {" +EJ +CA +Jb +Jb +Jb +fK +QG +SW +ry +wO +VW +fK +Gp +tq +Mw +Dc +Lv +ye +JZ +pr +hK +CD +mb +Nj +iq +ic +ZI +Jb +fK +DF +fK +EJ +EJ +EJ +EJ +"} +(28,1,1) = {" +CA +CA +fK +fK +fK +fK +Zk +qU +Sl +GF +xy +fK +Gp +wd +Ah +Jo +Ao +HL +qW +Of +Jb +hb +EG +EB +DH +EG +Jb +Jb +fK +fK +fK +EJ +EJ +EJ +EJ +"} +(29,1,1) = {" +CA +CA +CA +fK +fK +DF +fK +fK +DF +fK +fK +DF +Jb +Jb +aw +cC +gu +ZT +mG +eh +Jb +Jb +Jb +Yr +Jb +Jb +Jb +fK +fK +fK +EJ +EJ +EJ +EJ +EJ +"} +(30,1,1) = {" +EJ +CA +CA +fK +fK +fK +fK +fK +fK +DF +fK +fK +CA +Jb +lC +WC +td +OA +pX +cQ +Jb +AV +Xa +jQ +ww +Jb +fK +fK +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(31,1,1) = {" +EJ +CA +CA +CA +CA +CA +fK +fK +fK +fK +DF +CA +CA +Jb +Jb +jK +FN +DM +pJ +Jb +Jb +XF +RB +yO +bX +Jb +CE +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(32,1,1) = {" +EJ +EJ +CA +CA +CA +CA +CA +CA +CA +fK +fK +CA +CA +CA +Jb +Es +nX +Ot +Ot +Jb +pU +uc +jQ +Hx +cJ +Jb +fK +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(33,1,1) = {" +EJ +EJ +EJ +EJ +CA +CA +CA +CA +CA +CA +CA +CA +CA +CA +Jb +Gp +Gp +Gp +Gp +Jb +Jb +Ux +jQ +Ws +Jb +Jb +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(34,1,1) = {" +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +CA +CA +CA +CA +fK +lv +EJ +EJ +EJ +EJ +lv +Jb +Jb +dC +Jb +Jb +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} +(35,1,1) = {" +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +EJ +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm index 1a12daf1c6bb4..905403954b67b 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_phonebooth.dmm @@ -25,9 +25,8 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, -/obj/machinery/atmospherics/components/tank/air{ - dir = 8; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 8 }, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/icemoon, @@ -71,7 +70,7 @@ /area/ruin/powered/icemoon_phone_booth) "W" = ( /obj/machinery/vending/cigarette{ - onstation_override = 1 + all_products_free = 0 }, /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating/icemoon, diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm index 0e78558d6f38c..c9b3d35aa7264 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_pizza.dmm @@ -300,7 +300,6 @@ /area/ruin/pizzeria) "kr" = ( /obj/structure/table, -/obj/item/trash/waffles, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, @@ -539,9 +538,7 @@ }, /area/ruin/pizzeria) "yP" = ( -/obj/machinery/vending/dinnerware{ - onstation = 0 - }, +/obj/machinery/vending/dinnerware, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm index 96dec4af7207d..0bfcc133f0c98 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm @@ -25,8 +25,8 @@ /obj/item/clothing/shoes/galoshes{ pixel_y = -5 }, -/obj/item/flashlight/eyelight{ - pixel_y = 11 +/obj/item/flashlight{ + pixel_y = 8 }, /turf/open/floor/plating/icemoon, /area/ruin/plasma_facility/operations) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm index ff3417fefce6d..d5c344e9cd31a 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_comms_agent.dmm @@ -451,12 +451,8 @@ /area/ruin/comms_agent) "xq" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom{ - pixel_x = 31; - syndie = 1; - freerange = 1; - name = "syndicate radio intercom"; - desc = "A custom-made Syndicate-issue intercom used to transmit on all Nanotrasen frequencies. Particularly expensive." +/obj/item/radio/intercom/syndicate/freerange{ + pixel_x = 31 }, /obj/structure/table/reinforced, /obj/machinery/fax{ diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm new file mode 100644 index 0000000000000..a3c10d3b50899 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm @@ -0,0 +1,6550 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/machinery/light/warm/directional/east, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/disk/data, +/obj/item/disk/data{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/disk/data{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ab" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/digital_clock/directional/west, +/obj/machinery/computer{ + dir = 4 + }, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ag" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/item/kirbyplants/organic/plant22, +/obj/structure/sign/warning/biohazard/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ah" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"al" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"aC" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/book/manual/wiki/cytology{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_y = 11; + pixel_x = -20 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ba" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark/side, +/area/ruin/syndibiodome) +"bb" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"bu" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/toy/figure/syndie{ + pixel_x = -9; + pixel_y = 0 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"bv" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"bw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/reed/style_2, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"bz" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"bB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "bsyndidomRD"; + name = "Lockdown Shutters" + }, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"bC" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"bG" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"bJ" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = -6; + pixel_y = -8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"bK" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"bR" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"cb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ck" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"cm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"cu" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"cx" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"cB" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/smartfridge/organ, +/obj/item/organ/internal/alien/resinspinner, +/obj/item/organ/internal/eyes/night_vision, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"cE" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/plasma/thirty, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"cG" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/structure/rack, +/obj/item/emergency_bed{ + pixel_x = 9; + pixel_y = 8 + }, +/obj/item/emergency_bed{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/emergency_bed{ + pixel_x = 3; + pixel_y = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"cI" = ( +/obj/structure/door_assembly/door_assembly_highsecurity, +/obj/structure/fans/tiny, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"cJ" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"cN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"cO" = ( +/obj/structure/flora/tree/pine/style_2, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"di" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"dk" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"dl" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"dJ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"dS" = ( +/obj/machinery/door/airlock/hatch, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"ek" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/bloodred/sleepytime, +/obj/structure/sign/poster/contraband/energy_swords/directional/west, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"el" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"eH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"eK" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/ruin/syndibiodome) +"eL" = ( +/obj/structure/flora/tree/jungle/small/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"eM" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"eO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_scrubber, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"fc" = ( +/obj/structure/filingcabinet{ + pixel_x = 8; + pixel_y = 0 + }, +/obj/structure/filingcabinet{ + pixel_x = -8; + pixel_y = 0 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"fp" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"fI" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = 4; + pixel_y = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"fO" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"fT" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"fU" = ( +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/highsecurity{ + name = "Syndicate Biodome Testing Facility" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"fV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"gf" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"gt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/reed/style_4{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"gu" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"gv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"gB" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"gH" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/generic, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"gX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"ha" = ( +/obj/machinery/exoscanner, +/obj/structure/lattice/catwalk, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"he" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"hf" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hj" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hm" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"hr" = ( +/obj/structure/flora/grass/jungle/b/style_3, +/obj/effect/gibspawner/human, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hA" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/machinery/light/small/red/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hF" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/rock/pile/jungle/style_4, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"hM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/closet/crate/bin{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"hQ" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"hR" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hS" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"hU" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/item/kirbyplants/organic/plant22, +/obj/structure/sign/warning/biohazard/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"hZ" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"ic" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"io" = ( +/obj/item/lead_pipe, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"ip" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"iq" = ( +/obj/structure/flora/rock/pile/style_random, +/mob/living/carbon/human/species/monkey/angry, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ir" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"iG" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"iH" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/marker_beacon/lime, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/flora/bush/large{ + pixel_y = -4 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndibiodome) +"iI" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"iS" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/donk_co/directional/east, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"iV" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"iX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"iZ" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"ja" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/surgery_tray/full, +/obj/item/clothing/gloves/latex/coroner{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/clothing/mask/surgical{ + pixel_x = 6; + pixel_y = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"jd" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/paper_bin, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"je" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jp" = ( +/obj/structure/flora/bush/jungle/a/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"jv" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"jA" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jQ" = ( +/turf/closed/indestructible/syndicate/nodiagonal, +/area/icemoon/surface/outdoors/noteleport) +"jR" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"jS" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = -7; + pixel_y = 9 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"jT" = ( +/obj/structure/mirror/directional/east, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"jV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/machinery/light/small/red/directional/west, +/obj/item/food/popcorn/salty{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/food/popcorn/caramel{ + pixel_x = 9; + pixel_y = 7 + }, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"kb" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/chem_dispenser/drinks{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + name = "Kitchen Shutter Control"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"kd" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"km" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"kq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/red/directional/north, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kw" = ( +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kz" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"kA" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kH" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/machinery/light/small/red/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kJ" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"kK" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kO" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"kQ" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"kX" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"la" = ( +/obj/structure/table/wood, +/obj/item/paper/carbon{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"lg" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/bodysposal/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"lh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/small/red/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"lm" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"lx" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/dna_scannernew, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"lH" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"me" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"my" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mA" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/grunge, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mF" = ( +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mK" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"mV" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"mW" = ( +/obj/effect/spawner/random/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"mZ" = ( +/turf/template_noop, +/area/template_noop) +"nk" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"nn" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"nx" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"nH" = ( +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"nO" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/microwave, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"nP" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"oc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"of" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"oj" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"oq" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ox" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"oA" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/obj/structure/fluff/fake_vent, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"oG" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"oH" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"oK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"oQ" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"oV" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/structure/microscope{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/petri_dish/random{ + pixel_x = 7; + pixel_y = 19 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"pg" = ( +/obj/structure/lattice, +/obj/structure/minecart_rail, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"pj" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"pA" = ( +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"pE" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"pN" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"pY" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"qh" = ( +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qi" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"qx" = ( +/obj/machinery/vending/cigarette/syndicate, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qy" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qz" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qB" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"qC" = ( +/obj/structure/chair/office/tactical{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"qN" = ( +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"qU" = ( +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"qV" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"rs" = ( +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"rK" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/machinery/light/warm/directional/north, +/obj/machinery/digital_clock/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"rQ" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"rX" = ( +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"rZ" = ( +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"si" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"sj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"sD" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"sJ" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"sM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/generic, +/mob/living/basic/clown/mutant/glutton, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"sN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"sR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/bed/double, +/obj/item/bedsheet/syndie/double, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"tb" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"td" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"tk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/gorlex_recruitment/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"tq" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/toy/figure/syndie{ + pixel_x = 11; + pixel_y = -1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"ts" = ( +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"tx" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"tK" = ( +/obj/effect/turf_decal/trimline/green/corner, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"tL" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"ue" = ( +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 10 + }, +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ui" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"up" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"uq" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"us" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ux" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"uD" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"uE" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/machinery/reagentgrinder{ + pixel_x = -3; + pixel_y = 13 + }, +/obj/item/biopsy_tool{ + pixel_x = 24; + pixel_y = 5 + }, +/obj/item/swab{ + pixel_y = -8; + pixel_x = -6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/petri_dish/random{ + pixel_x = 5; + pixel_y = -1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"uG" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"uH" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"uL" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"uS" = ( +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"uW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vc" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vg" = ( +/obj/structure/chair/sofa/bench{ + dir = 1 + }, +/obj/machinery/light/warm/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vl" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/pickaxe/drill/diamonddrill{ + pixel_x = 0; + pixel_y = 1 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vs" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vu" = ( +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"vw" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vx" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"vA" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"vF" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vJ" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/gorilla/genetics, +/obj/effect/turf_decal/trimline/purple/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vK" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vN" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/dark_red/corner, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"vO" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vP" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"vZ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"wd" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/table/reinforced, +/obj/item/knife/butcher, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"wf" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wi" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -3; + pixel_y = 10 + }, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/gloves/latex{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/mask/surgical{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ws" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/syndicatepilot, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"wx" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"wL" = ( +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"wQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"wR" = ( +/obj/effect/mob_spawn/corpse/human/geneticist, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wT" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"wY" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"xd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"xf" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 8 + }, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xh" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xi" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"xk" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_vent, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xn" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/gibspawner/generic, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xq" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xr" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"xx" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"xz" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"xB" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xH" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"xL" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"xN" = ( +/obj/structure/fluff/tram_rail/electric/anchor{ + dir = 1 + }, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"xP" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/clock/directional/west, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"xZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/comfy/shuttle, +/obj/machinery/button/door/directional/west{ + name = "Armory Lockdown"; + id = "biodomearmor" + }, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"yd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"yi" = ( +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/bodypart/leg/right/skeleton, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"yj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ym" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 8 + }, +/obj/structure/bodycontainer/crematorium/creamatorium{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"ys" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"yt" = ( +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes/cigars{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/lighter{ + pixel_x = 13; + pixel_y = -2 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"yy" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"yH" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/effect/decal/cleanable/blood/trails, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"yL" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/obj/machinery/digital_clock/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"yN" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"yU" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"zc" = ( +/obj/structure/flora/rock/pile/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"zd" = ( +/obj/structure/fluff/tram_rail/end, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"ze" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"zl" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/warm/directional/east, +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"zu" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zy" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"zD" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"zF" = ( +/obj/effect/turf_decal/trimline/green/corner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zG" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"zI" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"zM" = ( +/turf/closed/indestructible/syndicate/nodiagonal, +/area/ruin/syndibiodome) +"zP" = ( +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"zT" = ( +/obj/machinery/door/airlock/external/ruin, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ab" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgery Room #1" + }, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Av" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Aw" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Ax" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ay" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/bananium/five, +/obj/item/stack/sheet/mineral/bananium/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"AA" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/computer{ + dir = 4 + }, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"AI" = ( +/obj/structure/fluff/tram_rail/end, +/obj/structure/marker_beacon/yellow{ + pixel_x = 7; + pixel_y = -9 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"AV" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/structure/closet/syndicate, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/belt/security/webbing, +/obj/item/storage/toolbox/syndicate, +/obj/item/gun/ballistic/automatic/pistol, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ba" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/keycard/blue{ + name = "Syndicate Research Directors Room Key" + }, +/obj/item/paperwork/research{ + pixel_x = 7; + pixel_y = 19 + }, +/obj/item/pen/red{ + pixel_x = 5; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Bl" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/jungle/a/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Bo" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/decal/cleanable/blood/footprints, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Br" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Bs" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Bw" = ( +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"By" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"BY" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ct" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"CG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/hatch{ + name = "Security Post" + }, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"CK" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"CS" = ( +/obj/structure/flora/grass/jungle/a/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"CV" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"CW" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Db" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Dc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/dresser, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Dd" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"Dg" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Dl" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Do" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "biosurglockdown"; + name = "Surgery Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Dr" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"DI" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/computer/scan_consolenew, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"DL" = ( +/obj/structure/dresser, +/obj/machinery/digital_clock/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"DS" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Eq" = ( +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Es" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Ex" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/light/warm/directional/west, +/obj/machinery/chem_master, +/obj/structure/sign/poster/contraband/communist_state/directional/west, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"EE" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"EO" = ( +/obj/machinery/griddle, +/obj/effect/mob_spawn/corpse/human/charredskeleton{ + pixel_x = 0; + pixel_y = 3 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"EX" = ( +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/curtain/bounty, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"EY" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fd" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Fe" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fg" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/rock/pile/jungle, +/obj/structure/fluff/fake_camera{ + dir = 10 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Fl" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Fn" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/grass/jungle/a/style_random, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Fp" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FE" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"FH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/tree/jungle/small/style_6{ + pixel_x = -33; + pixel_y = -6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"FP" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"FT" = ( +/obj/structure/flora/grass/jungle/a/style_5, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"FW" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ga" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Gh" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/free_key/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Gm" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Gp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/gibspawner/generic, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Gr" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/template_noop) +"Gx" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/marker_beacon/yellow{ + pixel_x = 6; + pixel_y = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Gz" = ( +/obj/machinery/door/airlock/freezer{ + name = "Kitchen" + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"GA" = ( +/obj/structure/fake_stairs/wood/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"GD" = ( +/obj/effect/turf_decal/trimline/green/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"GM" = ( +/obj/item/kirbyplants/organic/plant22, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Hi" = ( +/obj/structure/fluff/tram_rail/electric/anchor, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = -3 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Hp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/sign/clock/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"Hs" = ( +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/bush/flowers_yw/style_3, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Hy" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/food/pizza/donkpocket{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"HB" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"Ia" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ib" = ( +/obj/machinery/dna_scannernew, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ie" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"If" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/structure/fluff/fake_scrubber, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ii" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/salad{ + pixel_x = 0; + pixel_y = 5 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"Ij" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"IF" = ( +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"II" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"IR" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"IU" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/rock/pile/jungle/style_5, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Jg" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/railing/corner, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Jk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Jm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Jo" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/ruin/syndibiodome) +"Jz" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/warm/directional/west, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"JC" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/light/warm/directional/west, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/effect/spawner/random/food_or_drink/jelly_donuts{ + pixel_x = 7; + pixel_y = 2 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"JQ" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"JU" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"JZ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ki" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Kn" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ks" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"Kz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"KA" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"KE" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = 0; + pixel_y = 5 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"KF" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"KS" = ( +/obj/structure/table/wood, +/obj/item/documents/syndicate{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/west{ + name = "Window Shutter Control"; + id = "bsyndidomRD" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"KX" = ( +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/ruin/syndibiodome) +"Lc" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/pdapainter/research, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/item/toy/figure/dsquad{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/toy/figure/syndie{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/toy/figure/syndie{ + pixel_x = 5; + pixel_y = 10 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Le" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Lg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/machinery/light/small/dim/directional/west, +/obj/item/polymorph_belt/functioning, +/obj/item/pen/edagger, +/obj/item/clothing/under/costume/schoolgirl/red, +/obj/structure/sign/poster/contraband/communist_state/directional/west, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"Lm" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/machinery/computer{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Lv" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/light/warm/dim/directional/north, +/turf/open/floor/stone/icemoon, +/area/ruin/syndibiodome) +"Ly" = ( +/obj/structure/aquarium/prefilled, +/obj/structure/sign/poster/contraband/blood_geometer/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"LB" = ( +/obj/machinery/doppler_array, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"LJ" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"LN" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"LR" = ( +/obj/effect/turf_decal/trimline/dark_red/warning{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mob_spawn/corpse/human/skeleton, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"LT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/bucket, +/obj/item/pushbroom, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"LU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Mb" = ( +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Biodome Entrance" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Mc" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ml" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Mo" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Mp" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Mr" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Mt" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/item/folder/syndicate/red{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/machinery/light/warm/directional/east, +/obj/structure/fluff/fake_camera{ + dir = 4 + }, +/obj/item/reagent_containers/cup/tube{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/tube{ + pixel_x = 0; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Mu" = ( +/obj/structure/flora/tree/jungle/style_6, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"MB" = ( +/obj/effect/mob_spawn/corpse/human/doctor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MH" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"MK" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/siding/wideplating/dark/end, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"MO" = ( +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"MP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"MR" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_red/line, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"MU" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"MX" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/machinery/computer/scan_consolenew{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Nj" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/leafy, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/marker_beacon/lime, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/structure/flora/bush/large{ + pixel_y = -4 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndibiodome) +"Nl" = ( +/obj/machinery/light/warm/dim/directional/west, +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"No" = ( +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"Ns" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Nt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"NB" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"NE" = ( +/obj/machinery/light/warm/directional/east, +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 1 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"NH" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/structure/flora/bush/flowers_yw, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/mob/living/basic/gorilla/genetics, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"NN" = ( +/obj/structure/flora/grass/jungle/b/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"NP" = ( +/obj/effect/turf_decal/trimline/dark_red/line, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Oi" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/gibspawner/generic, +/obj/machinery/digital_clock/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ol" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Os" = ( +/obj/structure/bodycontainer/morgue/beeper_off{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/tram/filled, +/turf/open/floor/pod/dark, +/area/ruin/syndibiodome) +"Oy" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/indestructible{ + name = "Cytology Shutters" + }, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"OD" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"OH" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"OI" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"OK" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"OL" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/structure/closet/syndicate, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/directional/east, +/obj/item/storage/belt/security/webbing, +/obj/item/gun/ballistic/automatic/pistol/contraband, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"OM" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner, +/obj/structure/sign/poster/contraband/free_drone/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ON" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"OO" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/trimline/dark/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"OR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/bloodred/sleepytime, +/obj/item/pillow, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Pq" = ( +/obj/machinery/door/poddoor/shutters{ + name = "Biodome Transport Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Pw" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/surgery_tray/full, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/obj/item/clothing/mask/surgical{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/clothing/gloves/latex{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/mmi/syndie{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/clothing/gloves/latex/coroner{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"PB" = ( +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"PC" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"PM" = ( +/obj/structure/flora/grass/jungle/a/style_2, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"PY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark_red/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Qc" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/window/indestructible{ + id = "biodomearmor"; + name = "Security Post Lockdown Shutters" + }, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Qn" = ( +/obj/effect/turf_decal/trimline/dark_blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Qs" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgical Observation Room #1" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"QC" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 2 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"QE" = ( +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"QG" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"QM" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/siding/wideplating/dark/end{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"QS" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ra" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/light/warm/directional/north, +/obj/item/bodypart/head/monkey, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ro" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Rv" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Biodome Entrance" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"RG" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_yw/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"RH" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/item/bodypart/leg/left/monkey, +/obj/item/bodypart/leg/right/monkey, +/obj/item/scalpel/advanced, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"RK" = ( +/mob/living/carbon/human/species/monkey/angry, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/ruin/syndibiodome) +"RL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"RX" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Se" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Sr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Ss" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/light/warm/directional/west, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"St" = ( +/obj/structure/fans/tiny, +/obj/structure/door_assembly/door_assembly_grunge, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Sv" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"SA" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"SE" = ( +/obj/machinery/oven/range, +/obj/effect/turf_decal/siding/thinplating_new/dark/end{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"SH" = ( +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"SJ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "Genetic Testing" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"SM" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SO" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 5 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/trails{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"SS" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"ST" = ( +/obj/structure/flora/grass/jungle/a/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"SY" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tc" = ( +/obj/structure/hedge, +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Te" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/puzzle/keycard/blue_required{ + name = "Syndicate Research Director's Office" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Tf" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/fake_scrubber{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/effect/decal/cleanable/glass/plastitanium, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/ruin/syndibiodome) +"Tu" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/item/folder/syndicate{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/food/grown/banana/bunch{ + pixel_x = 7; + pixel_y = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tw" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Tx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ty" = ( +/obj/effect/turf_decal/trimline/dark/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"TC" = ( +/obj/effect/turf_decal/trimline/green/line, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"TF" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/food/meat/rawcutlet/bear, +/obj/item/food/meat/rawcutlet/bear, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"TJ" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"TL" = ( +/obj/structure/chair/office/tactical, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"TM" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"TQ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Uc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/fluff/fake_vent, +/obj/effect/gibspawner/generic, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) +"Ug" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Uh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Ui" = ( +/obj/structure/rack, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 9 + }, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill{ + pixel_x = 0; + pixel_y = 8 + }, +/obj/item/pickaxe/drill{ + pixel_x = 1; + pixel_y = -6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Ut" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/syndibiodome) +"Uu" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"Ux" = ( +/mob/living/basic/gorilla/genetics, +/obj/effect/gibspawner/human/bodypartless, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Uz" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/structure/desk_bell{ + pixel_x = 15; + pixel_y = 7 + }, +/obj/machinery/door/poddoor/shutters/window/indestructible/preopen{ + name = "Syndicate Biodome Kitchen Shutters"; + id = "bdomekitch" + }, +/obj/effect/spawner/random/food_or_drink/soup{ + pixel_x = 0; + pixel_y = 4 + }, +/turf/open/floor/iron/white/small, +/area/ruin/syndibiodome) +"UF" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"UG" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"UI" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"UK" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/computer_disk{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/computer_disk{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/button/door/directional/east{ + name = "Surgery Lockdown"; + id = "biosurglockdown" + }, +/obj/item/assembly/shock_kit{ + pixel_x = -2; + pixel_y = 2 + }, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"UL" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/flowers_pp/style_3, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"UN" = ( +/obj/structure/fluff/tram_rail/electric/anchor{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"UW" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/structure/closet/crate/bin{ + pixel_x = 0; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Va" = ( +/obj/machinery/door/airlock/hatch{ + name = "Surgical Observation Room #2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Vj" = ( +/obj/structure/closet/secure_closet/cytology, +/obj/item/storage/box/swab, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Vt" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Vv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Vw" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VG" = ( +/obj/machinery/light/warm/directional/east, +/turf/open/misc/asteroid/snow/icemoon, +/area/ruin/syndibiodome) +"VJ" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"VK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/red/directional/north, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VN" = ( +/obj/effect/turf_decal/trimline/green/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"VT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/decal/cleanable/blood/trails{ + dir = 8 + }, +/obj/structure/fans/tiny, +/turf/open/misc/dirt/station, +/area/ruin/syndibiodome) +"Wq" = ( +/obj/structure/flora/tree/pine/style_random{ + pixel_x = -15; + pixel_y = -12 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Wz" = ( +/obj/structure/fluff/tram_rail/electric/anchor, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"WB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"WC" = ( +/obj/machinery/door/poddoor/shutters{ + name = "Lockdown Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"WH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"WJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/glass/reinforced, +/area/ruin/syndibiodome) +"WR" = ( +/obj/effect/turf_decal/trimline/purple/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Xa" = ( +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"Xt" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/machinery/light/small/dim/directional/west, +/turf/open/water/jungle, +/area/ruin/syndibiodome) +"XC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"XE" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/mob/living/basic/gorilla/genetics, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"XG" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/flowers_pp/style_2, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"XM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/showcase/machinery/tv/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/ruin/syndibiodome) +"Ya" = ( +/obj/effect/turf_decal/trimline/neutral/corner, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/structure/fluff/fake_vent, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Yd" = ( +/obj/effect/turf_decal/tile/dark/opposingcorners{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/tile/dark_red/opposingcorners, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/ruin/syndibiodome) +"Ye" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"Yh" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/syndibiodome) +"Yi" = ( +/obj/structure/flora/grass/jungle/a/style_5, +/obj/machinery/light/floor, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Yj" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) +"Yz" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"YD" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/jungle/c/style_2{ + pixel_x = -11; + pixel_y = -6 + }, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"YG" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 0; + pixel_y = -2 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 11; + pixel_y = 5 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 10 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 0; + pixel_y = -3 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 7; + pixel_y = -5 + }, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = -8; + pixel_y = -4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"YI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"YN" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) +"YS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/small, +/area/ruin/syndibiodome) +"YV" = ( +/obj/effect/turf_decal/trimline/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"YZ" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/mob/living/basic/gorilla/genetics, +/obj/structure/fluff/fake_vent, +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/gibspawner/human/bodypartless, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"Zd" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Ze" = ( +/obj/machinery/door/airlock/hatch{ + name = "Observation Room" + }, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"Zf" = ( +/obj/structure/flora/bush/flowers_yw/style_3, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/ruin/syndibiodome) +"Zp" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ZD" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/syndibiodome) +"ZM" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndibiodome) +"ZR" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/stone/icemoon, +/area/icemoon/surface/outdoors/noteleport) +"ZT" = ( +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/trimline/purple/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/herringbone, +/area/ruin/syndibiodome) +"ZW" = ( +/obj/structure/curtain/bounty, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/syndibiodome) + +(1,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +KA +Ns +Ns +JU +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(2,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +zM +zT +zM +ys +tL +JU +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(3,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +zM +zM +IF +zM +zM +LN +tL +UG +UG +JU +ys +mZ +mZ +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(4,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ck +ys +ys +zM +QM +VJ +MK +zM +ys +ys +ys +ck +zD +ys +ys +ys +ck +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(5,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +ys +ys +zM +zM +zM +OH +zM +zM +zM +ys +ys +LN +tL +JU +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(6,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +ys +zM +zM +zM +zM +Tc +bb +ui +oq +Mc +zM +zM +mK +ys +ys +tL +Ns +Ns +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(7,1,1) = {" +mZ +mZ +mZ +mZ +mZ +mZ +ys +ck +ys +ys +zM +Ut +vx +xi +kw +wL +xi +xH +ZD +oq +zM +zM +ys +ys +ys +ys +ck +tL +JU +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(8,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +ys +Hi +zM +zM +mW +zM +Sr +zM +Ui +zl +YG +qN +Ux +Bw +zM +zM +zM +zM +qN +ys +LN +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(9,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +jS +ys +ys +zM +Ut +Ut +zM +Sr +zM +zM +zM +zM +qN +Gm +NP +OI +zM +AA +ab +zM +qN +ys +Aw +ys +LN +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(10,1,1) = {" +mZ +mZ +mZ +ys +Wz +RL +pg +pg +zM +zM +Ut +zM +zM +Ab +zM +Lm +kX +zM +qN +WH +JQ +vN +pj +UF +fT +Ly +Qc +ys +Aw +ys +ys +cO +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(11,1,1) = {" +mZ +mZ +mZ +ys +ys +bJ +zd +ys +zM +Db +Ut +zM +kK +MB +oQ +Jo +eK +bC +Tw +EE +oj +MR +CG +hZ +hm +LB +Qc +ys +tL +JU +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(12,1,1) = {" +mZ +mZ +mZ +Wz +ha +pg +pg +pg +zM +ic +Ut +zM +rK +YZ +yH +Tf +ba +Qs +ZM +WH +Fe +Ct +EX +YS +qB +fc +Qc +ys +ys +tL +UG +JU +LN +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(13,1,1) = {" +mZ +mZ +mZ +ys +ys +Gx +uD +ys +zM +wY +Ut +zM +cB +ja +oQ +KX +RK +ZW +sD +Vw +jR +qx +zM +yi +LR +UK +zM +ys +cO +ys +ys +Aw +ys +ys +cO +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(14,1,1) = {" +mZ +mZ +mZ +ys +Wz +RL +pg +pg +zM +zM +mW +zM +zM +Os +zM +xf +oH +zM +qN +Tx +vO +qN +zM +OL +AV +zM +zM +ys +ys +LN +ys +Aw +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(15,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +AI +ys +ys +zM +Ut +Ut +zM +zM +zM +zM +zM +zM +GM +Ax +Ij +ue +zM +zM +zM +zM +zM +zM +ys +ys +ys +tL +Ns +Ns +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(16,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +ys +ck +Hi +zM +zM +Ut +LA +Ro +zM +qN +qU +Ss +YI +XC +Zp +rs +eO +PY +qh +tk +xq +zM +zM +ys +ys +ys +ys +ys +tL +JU +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(17,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ck +ys +ys +ys +ys +zM +zM +Ut +Ut +Ut +vx +je +kt +XC +Sr +tK +iV +VN +my +Sr +kw +FW +Sr +zM +zM +ys +cO +ys +LN +ys +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(18,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +zM +zM +zM +zM +zM +zM +zM +zM +YN +rQ +XC +nn +WB +qN +VT +Pq +qN +WB +ip +Sr +Sr +ux +zM +ys +ys +ys +ys +cO +Aw +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(19,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +Dd +Ex +kb +zM +km +SH +zM +wf +XC +nn +Ga +WB +hK +UL +bv +Fg +WB +WB +ip +Sr +vg +zM +ys +VG +ys +ys +ys +Aw +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(20,1,1) = {" +mZ +mZ +mZ +ys +ys +zM +zM +xP +dl +cJ +tx +JC +lH +hQ +WB +FE +zF +Ml +WB +SS +jp +Hs +Yz +Yz +Bl +WB +WB +my +QS +zM +zM +zM +zM +ys +ys +Dg +Ns +uG +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(21,1,1) = {" +mZ +mZ +ys +ys +ys +lm +SE +Yd +No +No +yy +Uz +Yh +MU +iZ +ah +hS +qN +RG +MH +FT +hf +Yi +eH +Zf +di +qN +us +Sr +iH +qN +vl +zM +zM +eM +up +ys +TQ +uG +ys +mZ +mZ +mZ +mZ +mZ +"} +(22,1,1) = {" +mZ +mZ +ys +ys +ck +lm +nO +SA +WJ +wd +Mp +Hy +Vt +OO +WB +Ty +vc +Mb +iX +PB +NN +Mu +NH +xd +zc +yN +WB +xn +jA +QC +WC +zG +qy +cI +Bo +wQ +zy +UI +II +Xa +ys +mZ +mZ +mZ +mZ +"} +(23,1,1) = {" +mZ +mZ +ys +ys +ys +lm +EO +sJ +No +No +iG +KE +Vt +Fd +Ki +kA +vc +qN +oK +PB +Ug +xr +bw +HB +yd +XG +Le +If +cm +ts +qN +xL +BY +zM +Lv +ys +Wq +ys +zD +ys +mZ +mZ +mZ +mZ +mZ +"} +(24,1,1) = {" +mZ +mZ +mZ +ys +ys +zM +zM +Dr +Mo +gH +td +Ii +LJ +el +WB +YV +TC +Rv +Bs +Yz +ST +nP +nx +gt +PM +yN +MO +SM +Sr +gf +Jk +bG +fp +fU +bR +ys +ys +ys +Jg +ys +mZ +mZ +mZ +mZ +mZ +"} +(25,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +NE +TF +iS +Gz +rX +bz +qN +PC +Fl +qN +IU +vu +iq +YD +Fp +xz +vu +cN +qN +us +Vv +iH +qN +cu +zM +zM +vZ +JU +ys +KA +ZR +ys +mZ +mZ +mZ +mZ +mZ +"} +(26,1,1) = {" +mZ +mZ +mZ +mZ +ys +ys +zM +zM +zM +zM +zM +zM +qN +vx +qN +FP +hj +Yj +WB +LH +hr +CS +eL +qV +cN +WB +WB +GD +ux +zM +zM +zM +zM +ys +ys +vZ +Dl +ZR +ys +ys +mZ +mZ +mZ +mZ +mZ +"} +(27,1,1) = {" +mZ +mZ +mZ +mZ +ys +ck +zM +zM +mW +Ut +ir +Ut +Ut +Ut +vx +kw +Eq +CV +Yj +WB +yj +fO +sj +dk +WB +WB +wf +xi +vg +zM +ys +Nl +ys +ys +ys +ys +zD +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(28,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +zM +MP +Ut +zM +zM +Ut +zM +zM +qN +QG +Sr +Eq +CV +WB +qN +ox +gu +qN +WB +wf +kO +Sr +QS +zM +xN +ys +ys +ys +ys +ys +tL +JU +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(29,1,1) = {" +mZ +mZ +ys +ys +ys +ys +zM +qa +Ut +zM +zM +dS +zM +pA +qN +VK +Sr +LT +mF +hj +pN +JZ +nk +Jz +CK +uL +xi +jd +zM +zM +ys +ys +ck +ys +ys +ys +ys +xx +ys +mZ +mZ +mZ +mZ +mZ +mZ +"} +(30,1,1) = {" +mZ +ys +ys +ys +ys +zM +zM +Sv +Ut +zM +wx +RH +Do +UF +kd +WH +xi +Sr +Gh +xh +zI +qi +dJ +al +hR +QE +WR +zM +zM +ys +ys +ys +ys +ys +ys +ck +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(31,1,1) = {" +mZ +Gr +ck +ys +zM +zM +rZ +Ut +Ut +zM +Ra +RX +Do +sN +Va +bK +XC +By +zM +zM +Oy +Oy +zM +ag +vF +hU +zM +zM +zM +zM +ys +jS +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(32,1,1) = {" +mZ +mZ +ys +zM +zM +zM +zM +zM +Ut +zM +Pw +Oi +Do +Uu +kd +gv +Vv +zM +zM +zM +uE +oV +zM +zM +Ze +zM +zM +Xt +Se +zM +pg +pg +RL +UN +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(33,1,1) = {" +mZ +ys +ys +zM +Lg +xZ +yt +zM +ON +zM +zM +zM +zM +qN +qN +kq +Vv +zM +ym +zM +aC +ws +Oy +kH +vK +hA +WB +yU +Zd +zM +ys +zd +bJ +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(34,1,1) = {" +mZ +ys +zM +zM +Uc +qp +sR +zM +Ut +Ut +LA +mW +Ut +vx +Nt +uW +Vv +qN +Ks +zM +tb +sM +Oy +hF +cx +kQ +WB +FH +Fn +zM +pg +pg +pg +ha +xN +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(35,1,1) = {" +mZ +ys +bB +KS +he +OK +zM +zM +zM +zM +zM +zM +zM +qN +pY +XC +XC +qN +Ut +zM +Vj +Uh +Oy +Tu +XE +Mt +WB +iX +OD +zM +ys +uD +fI +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(36,1,1) = {" +mZ +ys +bB +la +TM +Es +Te +Vv +OM +yL +CW +oG +Qn +uq +Vv +Kn +Vv +qN +Ut +qN +qN +zP +qN +qN +SJ +qN +zM +kz +zM +zM +pg +pg +RL +UN +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(37,1,1) = {" +mZ +ys +bB +DL +jT +Lc +zM +uH +EY +WJ +Ya +vw +vw +iI +Vv +Vv +Vv +qN +SK +KF +IR +kJ +wT +kJ +uS +gB +pE +cb +zM +ys +ys +AI +ys +ys +ys +ck +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(38,1,1) = {" +mZ +ys +zM +zM +zM +zM +zM +zM +zu +WJ +NB +zM +zM +zM +zM +Vv +zM +zM +LU +qN +lg +vP +wR +vJ +Ye +ZT +zM +zM +zM +xN +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(39,1,1) = {" +mZ +ys +ys +Av +ze +hM +OR +zM +mV +WJ +Ol +zM +ek +Dc +zM +zM +zM +Mr +Ut +qN +Ia +vs +of +xj +TL +MX +zM +zM +ys +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(40,1,1) = {" +mZ +ys +ys +Av +FL +Gp +jv +St +qz +WJ +DS +mA +MM +bu +zM +Kz +gX +Ut +Ut +zM +lx +qC +SY +xk +Jm +Ib +zM +ys +ys +ys +ys +ys +ck +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(41,1,1) = {" +mZ +Gr +ck +zM +zM +zM +tq +zM +SO +xB +vA +zM +oA +fV +zM +Db +io +Ut +cE +zM +DI +Br +nH +oc +cG +zM +zM +ys +ck +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(42,1,1) = {" +mZ +mZ +ys +ys +ys +zM +zM +zM +zM +Nj +GA +zM +UW +zM +zM +qa +TJ +Ay +zM +zM +zM +wi +aa +Ba +zM +zM +ys +ys +ys +ys +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(43,1,1) = {" +mZ +mZ +mZ +ys +ys +ys +zM +zM +jV +Ie +lh +zM +zM +zM +zM +zM +zM +zM +zM +ys +jQ +zM +zM +zM +zM +ys +ys +ys +ys +ck +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(44,1,1) = {" +mZ +mZ +mZ +mZ +ys +ck +ys +zM +XM +me +Hp +zM +zM +ys +ys +ys +ys +ys +ys +ck +ys +ys +ys +ys +ck +ys +mZ +mZ +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} +(45,1,1) = {" +mZ +mZ +mZ +mZ +mZ +ys +ys +zM +si +si +si +zM +ys +mZ +mZ +ys +ys +ys +mZ +ys +mZ +mZ +mZ +ys +ys +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +mZ +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm new file mode 100644 index 0000000000000..15a51d2858a1e --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndielab.dmm @@ -0,0 +1,1247 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/clipboard{ + pixel_y = 3; + pixel_x = -4 + }, +/obj/structure/noticeboard/directional/north, +/obj/item/petri_dish/random, +/obj/item/paper/fluff/junkmail_generic{ + name = "weird note" + }, +/obj/item/paper/guides/antag/supermatter_sliver, +/obj/item/stack/sheet/mineral/plasma{ + pixel_x = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"aP" = ( +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/cup/soda_cans/beer{ + pixel_x = -6 + }, +/obj/item/reagent_containers/cup/soda_cans/beer{ + pixel_x = 6 + }, +/obj/structure/closet/mini_fridge, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"bn" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/petri_dish{ + pixel_x = -10; + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/mortar{ + pixel_x = -17; + pixel_y = 1 + }, +/obj/item/pestle{ + pixel_x = -12; + pixel_y = -2 + }, +/obj/structure/microscope, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"bx" = ( +/obj/item/cigbutt, +/turf/template_noop, +/area/template_noop) +"bC" = ( +/obj/machinery/navbeacon{ + location = "syndielab_beacon1"; + codes_txt = "patrol;next_patrol=syndielab_beacon2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"cd" = ( +/obj/structure/chair/sofa/corp/left, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"cg" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/light/warm/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"ci" = ( +/obj/structure/flora/bush/pointy/style_3{ + pixel_y = -4; + pixel_x = 6 + }, +/obj/structure/flora/bush/ferny/style_2{ + pixel_y = 6; + pixel_x = -3 + }, +/turf/open/floor/grass{ + initial_gas_mix = "o2=1000;n2=1100;TEMP=280" + }, +/area/ruin/syndielab) +"cu" = ( +/obj/machinery/door/airlock/security{ + desc = "It opens and closes. Menacingly!"; + name = "Syndicate Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"cM" = ( +/mob/living/basic/trooper/syndicate/ranged/shotgun, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"cP" = ( +/obj/effect/mapping_helpers/bombable_wall, +/turf/closed/wall/r_wall/syndicate/nodiagonal{ + desc = "An ominous looking wall. It has extra insulation to keep the heat in."; + name = "plastitanium wall" + }, +/area/ruin/syndielab) +"dD" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/bbqsauce{ + pixel_y = 8; + pixel_x = -9 + }, +/obj/item/reagent_containers/condiment/donksauce{ + pixel_y = 5; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"el" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"ex" = ( +/obj/structure/flora/tree/jungle/small/style_4{ + pixel_x = -14; + pixel_y = 5 + }, +/obj/structure/flora/bush/sunny{ + pixel_y = 12; + pixel_x = 12 + }, +/obj/structure/flora/bush/fullgrass/style_2, +/turf/open/floor/grass{ + initial_gas_mix = "o2=1000;n2=1100;TEMP=280" + }, +/area/ruin/syndielab) +"ey" = ( +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"gE" = ( +/obj/machinery/vending/donksnack{ + onstation_override = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"hl" = ( +/obj/machinery/navbeacon{ + location = "syndielab_beacon2"; + codes_txt = "patrol;next_patrol=syndielab_beacon3" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"hn" = ( +/obj/machinery/computer/telecomms/monitor{ + dir = 8; + icon_keyboard = "syndie_key" + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"hu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"iy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"iQ" = ( +/obj/structure/closet/crate/preopen, +/obj/item/radio/off{ + pixel_x = 8 + }, +/obj/item/radio/off{ + pixel_x = -5 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"lW" = ( +/obj/structure/filingcabinet, +/obj/item/paper/fluff/ruins/hauntedtradingpost/receipt/alternate, +/obj/item/pen, +/obj/item/paper/guides/antag/nuke_instructions, +/obj/item/cigarette/syndicate, +/obj/item/poster/random_contraband, +/obj/item/poster/random_contraband, +/obj/item/sticker/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"mi" = ( +/obj/structure/sign/poster/contraband/cybersun_six_hundred/directional/west, +/obj/item/vending_refill/donksoft{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/vending_refill/donksnackvendor, +/obj/structure/closet/crate/freezer/donk, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"na" = ( +/obj/item/climbing_hook, +/obj/item/pickaxe/silver{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/t_scanner/adv_mining_scanner{ + pixel_x = 3; + pixel_y = -1 + }, +/obj/item/hatchet/wooden{ + pixel_y = -7; + pixel_x = -3 + }, +/obj/structure/closet/crate/preopen, +/obj/structure/sign/poster/contraband/gorlex_recruitment/directional/west, +/obj/effect/decal/cleanable/plastic, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"nD" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/microwave, +/obj/machinery/light/warm/directional/east, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"nT" = ( +/obj/machinery/atmospherics/components/binary/pump/on/dark/hidden{ + dir = 1; + target_pressure = 180 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"oA" = ( +/obj/structure/syndicate_uplink_beacon, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"oY" = ( +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/east{ + cable_layer = 1 + }, +/obj/effect/mapping_helpers/apc/cut_AI_wire, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"pK" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/airalarm/directional/north, +/obj/item/implanter/radio, +/obj/item/implantcase{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/traitor_bug{ + pixel_y = 6; + pixel_x = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"qy" = ( +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/item/clothing/mask/gas/syndicate, +/obj/structure/rack, +/obj/machinery/light/warm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"qC" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"ry" = ( +/obj/item/clothing/shoes/workboots/mining{ + pixel_x = -7; + pixel_y = 10 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"rH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"rO" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"sa" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"sj" = ( +/obj/structure/chair/office/tactical{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"sp" = ( +/obj/effect/decal/cleanable/plastic, +/obj/structure/mop_bucket/janitorialcart{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"sV" = ( +/obj/machinery/vending/donksofttoyvendor{ + onstation_override = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"tb" = ( +/obj/machinery/light/warm/directional/north, +/obj/effect/decal/cleanable/oil/streak, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"tC" = ( +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"uT" = ( +/obj/structure/table/wood, +/obj/item/ammo_casing/shotgun/scatterlaser{ + pixel_y = 6; + pixel_x = 1 + }, +/obj/item/ammo_casing/shotgun/buckshot{ + pixel_y = 4; + pixel_x = 8 + }, +/turf/open/floor/carpet/red, +/area/ruin/syndielab) +"uX" = ( +/obj/structure/flora/bush/ferny{ + pixel_y = 2; + pixel_x = -2 + }, +/obj/machinery/air_sensor{ + chamber_id = "syndielab_biodome" + }, +/turf/open/floor/grass{ + initial_gas_mix = "o2=1000;n2=1100;TEMP=280" + }, +/area/ruin/syndielab) +"vr" = ( +/obj/structure/sign/poster/contraband/revolver/directional/east, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"vE" = ( +/obj/structure/safe, +/obj/item/book/granter/crafting_recipe/donk_secret_recipe, +/obj/item/stack/sheet/mineral/plasma/thirty, +/obj/item/storage/wallet/money{ + desc = "It can hold a few small and personal things." + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"vO" = ( +/obj/machinery/door/airlock/survival_pod{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"wh" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/trash/ready_donk{ + pixel_x = 6 + }, +/obj/structure/sign/poster/contraband/eat/directional/east, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"wj" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"wl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"wJ" = ( +/obj/structure/rack, +/obj/item/storage/backpack/satchel, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/suit/hooded/explorer/syndicate{ + pixel_x = 8; + pixel_y = -2 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"xa" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"xg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"xr" = ( +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/door/airlock/security{ + desc = "It opens and closes. Menacingly!"; + name = "Syndicate Airlock" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"yW" = ( +/turf/open/floor/carpet/red, +/area/ruin/syndielab) +"AD" = ( +/obj/structure/bookcase, +/obj/item/book/manual/fish_catalog{ + pixel_x = -3; + pixel_y = -6 + }, +/obj/item/book/manual/nuclear{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/book/manual/wiki/cytology{ + pixel_x = 6; + pixel_y = -2 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"AR" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal{ + desc = "An ominous looking wall. It has extra insulation to keep the heat in."; + name = "plastitanium wall" + }, +/area/ruin/syndielab) +"AX" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_y = -6; + pixel_x = 4 + }, +/turf/open/floor/carpet/red, +/area/ruin/syndielab) +"Co" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"CS" = ( +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Dd" = ( +/obj/item/storage/bag/trash/filled, +/obj/structure/closet/crate/bin, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"De" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/trash/semki{ + pixel_y = 12 + }, +/obj/item/soap/syndie, +/obj/structure/noticeboard/directional/east, +/obj/item/paper/fluff/junkmail_generic{ + name = "weird note" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"EY" = ( +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/door/airlock/security/glass{ + desc = "It opens and closes. Menacingly!"; + name = "Syndicate Airlock" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Fz" = ( +/obj/structure/cable/layer1, +/obj/machinery/power/terminal{ + cable_layer = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"FJ" = ( +/obj/machinery/light/warm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Gi" = ( +/obj/machinery/navbeacon{ + location = "syndielab_beacon4"; + codes_txt = "patrol;next_patrol=syndielab_beacon1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"GL" = ( +/obj/structure/chair/office/tactical, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"GV" = ( +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/door/airlock/security{ + desc = "It opens and closes. Menacingly!"; + name = "Syndicate Airlock" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Hq" = ( +/obj/item/seeds/lavaland/cactus{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/seeds/lavaland/cactus{ + pixel_y = 6; + pixel_x = 8 + }, +/obj/item/seeds/lavaland/fireblossom{ + pixel_y = 3; + pixel_x = 3 + }, +/obj/item/stack/ore/glass/basalt{ + amount = 50; + pixel_y = -3; + pixel_x = -3 + }, +/obj/structure/closet/crate/secure/syndicate/cybersun/dawn{ + req_access = null + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"Hs" = ( +/obj/structure/rack, +/obj/item/storage/bag/trash, +/obj/item/pushbroom, +/obj/item/storage/bag/trash{ + pixel_x = 9; + pixel_y = -3 + }, +/obj/machinery/airalarm/directional/south, +/obj/structure/cable/layer1, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"HH" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/paper/guides/antag/hdd_extraction{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/book/manual/wiki/tcomms{ + pixel_x = 12; + pixel_y = 1 + }, +/obj/structure/sign/poster/contraband/interdyne_gene_clinics/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"HS" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/syndicate, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"IQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/mob/living/basic/bot/dedbot, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Jc" = ( +/obj/effect/overloader_trap{ + uses_remaining = 1; + shock_damage = 55; + shock_range = 2; + machine_overload_damage = 160 + }, +/obj/machinery/telecomms/hub, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"JF" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/sign/poster/contraband/hacking_guide/directional/north, +/obj/item/assembly/signaler/cyborg{ + pixel_y = 5; + pixel_x = 6 + }, +/obj/item/assembly/voice{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"Ka" = ( +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/door/airlock/security/glass{ + desc = "It opens and closes. Menacingly!"; + name = "Syndicate Airlock" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"KV" = ( +/obj/machinery/computer/atmos_control/noreconnect{ + atmos_chambers = list("syndielab_biodome"="Biodome Atmos"); + dir = 4; + name = "gas tank monitor"; + desc = "This computer connects to and controls the sensors and equipment in a nearby pressurised gas reservoir."; + icon_keyboard = "syndie_key" + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Lt" = ( +/obj/item/paper/fluff/operative, +/obj/structure/noticeboard/directional/north, +/obj/structure/cable/layer1, +/obj/item/ammo_casing/shotgun/buckshot/spent{ + pixel_x = 8; + pixel_y = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"MW" = ( +/turf/template_noop, +/area/template_noop) +"NM" = ( +/obj/structure/sign/poster/contraband/donk_co/directional/east, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Qj" = ( +/obj/structure/flora/bush/grassy{ + pixel_x = 15; + pixel_y = 3 + }, +/obj/structure/flora/bush, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ + dir = 1; + chamber_id = "syndielab_biodome" + }, +/turf/open/floor/grass{ + initial_gas_mix = "o2=1000;n2=1100;TEMP=280" + }, +/area/ruin/syndielab) +"QO" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/computer_disk/syndicate/camera_app{ + pixel_y = 4; + pixel_x = -5 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/crowbar/hammer{ + pixel_x = 3; + pixel_y = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"Sq" = ( +/obj/structure/rack, +/obj/item/pinata/donk{ + pixel_y = 10 + }, +/obj/item/storage/box/party_poppers{ + pixel_y = 1; + pixel_x = 7 + }, +/obj/item/storage/box/firecrackers{ + pixel_x = -8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Te" = ( +/obj/machinery/navbeacon{ + location = "syndielab_beacon3"; + codes_txt = "patrol;next_patrol=syndielab_beacon4" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Tl" = ( +/obj/item/stack/tile/carpet/donk/thirty{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/item/toy/plush/donkpocket{ + pixel_x = 12; + pixel_y = 3 + }, +/obj/item/stack/tile/carpet/donk/thirty{ + pixel_x = -6; + pixel_y = -5 + }, +/obj/item/toy/plush/donkpocket{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/stack/package_wrap, +/obj/structure/closet/crate/preopen, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"Ts" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/sign/poster/contraband/c20r/directional/north, +/obj/item/anomaly_releaser{ + pixel_y = 6 + }, +/obj/item/anomaly_releaser, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"TB" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"UF" = ( +/obj/machinery/door/airlock/survival_pod/glass{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/fans/tiny, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"UM" = ( +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/magazine/m9mm, +/obj/structure/closet/crate/secure/syndicate/gorlex/weapons, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/syndielab) +"Vf" = ( +/obj/effect/decal/cleanable/molten_object, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/item/stack/ore/plasma{ + pixel_x = 7; + pixel_y = 10 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Vu" = ( +/obj/structure/aquarium/donkfish, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"VO" = ( +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Wn" = ( +/obj/machinery/computer/terminal{ + dir = 4; + upperinfo = "ERROR - NO FINGERPRINT MATCH ON FILE!"; + tguitheme = "syndicate"; + desc = "An state-of-the-art lab terminal. The Cybersun Industries logo is imprinted just below the screen."; + content = list("*Solid Matter Analyzer and Research Terminal*"); + name = "lab terminal"; + icon_screen = "tcboss"; + icon_keyboard = "syndie_key" + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Wo" = ( +/obj/structure/table/wood, +/obj/item/ammo_casing/shotgun/fletchette{ + pixel_y = 6 + }, +/obj/item/ammo_casing/shotgun/fletchette{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/gun/ballistic/shotgun/musket, +/turf/open/floor/carpet/red, +/area/ruin/syndielab) +"WO" = ( +/obj/item/trash/boritos/red{ + pixel_y = -9; + pixel_x = -5 + }, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) +"Xe" = ( +/obj/structure/closet/crate/cardboard, +/obj/item/paint/red{ + pixel_y = 2; + pixel_x = -6 + }, +/obj/item/paint_palette{ + pixel_y = 6; + pixel_x = 8 + }, +/obj/item/mod/paint, +/obj/structure/sign/poster/contraband/energy_swords/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Xm" = ( +/obj/structure/closet/crate/secure/trashcart, +/obj/item/relic, +/obj/item/storage/bag/trash/filled{ + pixel_y = 1; + pixel_x = 6 + }, +/obj/item/storage/bag/trash/filled{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/storage/bag/trash/filled{ + pixel_y = -1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Xt" = ( +/turf/closed/mineral/snowmountain/icemoon, +/area/icemoon/underground/explored) +"YH" = ( +/obj/item/storage/medkit, +/obj/structure/sign/poster/contraband/free_key/directional/south, +/obj/structure/rack, +/obj/item/stack/medical/suture, +/obj/item/clothing/neck/stethoscope, +/obj/item/reagent_containers/hypospray/medipen/atropine, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Ze" = ( +/obj/machinery/porta_turret/syndicate/energy/cybersun, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"Zx" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/smes/magical/cybersun{ + cable_layer = 1; + input_level = 180000; + output_level = 200000; + dir = 1 + }, +/obj/structure/cable/layer1, +/turf/open/floor/mineral/plastitanium, +/area/ruin/syndielab) +"ZW" = ( +/obj/structure/chair/sofa/corp/right, +/mob/living/basic/trooper/syndicate/ranged/shotgun, +/obj/machinery/light/warm/directional/north, +/obj/structure/cable/layer1, +/turf/open/floor/iron/dark/textured, +/area/ruin/syndielab) + +(1,1,1) = {" +MW +MW +MW +MW +Xt +Xt +bx +MW +MW +Xt +MW +MW +MW +MW +MW +MW +"} +(2,1,1) = {" +MW +MW +MW +MW +Xt +AR +AR +vO +AR +Xt +Xt +Xt +Xt +MW +MW +MW +"} +(3,1,1) = {" +MW +MW +Xt +Xt +Xt +AR +cg +xg +AR +AR +cP +AR +Xt +Xt +Xt +MW +"} +(4,1,1) = {" +MW +AR +AR +AR +AR +AR +AR +UF +AR +na +mi +AR +AR +AR +Xt +Xt +"} +(5,1,1) = {" +Xt +AR +aa +Wn +bC +EY +el +el +AR +iQ +iy +vE +Xe +AR +AR +Xt +"} +(6,1,1) = {" +Xt +AR +Ts +sj +FJ +AR +qy +el +AR +AD +ry +ey +VO +Tl +AR +Xt +"} +(7,1,1) = {" +Xt +AR +bn +Vf +xa +AR +Ze +Gi +cu +el +ey +wl +sa +Hq +AR +Xt +"} +(8,1,1) = {" +Xt +AR +AR +AR +EY +AR +qC +qC +AR +tb +HS +ey +sp +UM +AR +Xt +"} +(9,1,1) = {" +Xt +AR +pK +KV +el +nT +Qj +ex +qC +el +Sq +cM +Hs +AR +AR +Xt +"} +(10,1,1) = {" +Xt +AR +JF +sj +el +qC +uX +ci +qC +el +oY +Fz +Zx +AR +Xt +Xt +"} +(11,1,1) = {" +Xt +AR +Jc +oA +FJ +AR +qC +qC +AR +GV +AR +qC +qC +AR +Xt +MW +"} +(12,1,1) = {" +Xt +AR +HH +GL +hl +IQ +rH +rH +xr +Te +hu +TB +lW +AR +Xt +MW +"} +(13,1,1) = {" +Xt +AR +QO +hn +el +Xm +rO +aP +AR +Lt +AX +yW +YH +AR +Xt +MW +"} +(14,1,1) = {" +Xt +AR +AR +AR +EY +qC +qC +qC +AR +ZW +uT +yW +Vu +AR +Xt +MW +"} +(15,1,1) = {" +Xt +Xt +AR +gE +el +wj +dD +Co +AR +cd +Wo +yW +Dd +AR +Xt +MW +"} +(16,1,1) = {" +MW +Xt +AR +sV +NM +tC +tC +tC +Ka +WO +vr +CS +wJ +AR +Xt +MW +"} +(17,1,1) = {" +MW +Xt +AR +AR +AR +nD +wh +De +AR +AR +AR +AR +AR +AR +MW +MW +"} +(18,1,1) = {" +MW +MW +Xt +Xt +AR +AR +AR +AR +AR +Xt +Xt +Xt +Xt +Xt +Xt +MW +"} +(19,1,1) = {" +MW +MW +MW +Xt +Xt +Xt +Xt +Xt +Xt +Xt +MW +MW +MW +MW +MW +MW +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 82f4d3677800a..85b662d04aa95 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -406,6 +406,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/ruin/powered/beach) +"mv" = ( +/obj/effect/spawner/message_in_a_bottle/low_prob, +/turf/open/misc/beach/coast, +/area/ruin/powered/beach) "mw" = ( /obj/structure/flora/coconuts, /turf/open/misc/beach/sand, @@ -985,6 +989,7 @@ dir = 1 }, /obj/machinery/light/directional/south, +/obj/effect/spawner/message_in_a_bottle/low_prob, /turf/open/misc/beach/coast/corner{ dir = 8 }, @@ -1990,7 +1995,7 @@ bG bL VI VI -yT +mv pz Eu pz diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index 1ecd393cc7d4d..6bf42240c855b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -754,6 +754,7 @@ dir = 8 }, /obj/effect/decal/cleanable/blood, +/obj/item/crusher_trophy/retool_kit/ashenskull, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "mo" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_crashsite.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_crashsite.dmm new file mode 100644 index 0000000000000..828e7b7f74352 --- /dev/null +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_crashsite.dmm @@ -0,0 +1,908 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"b" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/unpowered) +"c" = ( +/obj/item/gps/computer, +/obj/structure/tubes, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"d" = ( +/obj/structure/tubes, +/obj/structure/rack, +/obj/item/survivalcapsule, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"e" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/unpowered) +"f" = ( +/obj/structure/bed/pod{ + dir = 1 + }, +/obj/item/bedsheet/black{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"g" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"h" = ( +/obj/effect/decal/cleanable/rubble, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"i" = ( +/obj/effect/mob_spawn/corpse/goliath, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"j" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/item/bitrunning_disk/item/pka_mods, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/unpowered) +"k" = ( +/obj/structure/girder, +/turf/open/floor/plating/lavaland_atmos, +/area/ruin/unpowered) +"l" = ( +/turf/open/water/lavaland_atmos, +/area/lavaland/surface) +"m" = ( +/obj/machinery/door/airlock/survival_pod/glass, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"n" = ( +/turf/closed/wall/mineral/titanium{ + initial_gas_mix = "LAVALAND_ATMOS" + }, +/area/ruin/unpowered) +"o" = ( +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface) +"p" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"q" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/unpowered) +"r" = ( +/obj/machinery/door/airlock/titanium{ + name = "Escape Pod Airlock" + }, +/turf/open/floor/mineral/titanium/blue/lavaland_atmos, +/area/ruin/unpowered) +"s" = ( +/turf/open/floor/pod/dark, +/area/ruin/powered) +"t" = ( +/obj/structure/flora/tree/stump, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"u" = ( +/obj/structure/bonfire/prelit, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"v" = ( +/obj/effect/decal/cleanable/rubble, +/obj/item/stack/sheet/mineral/titanium, +/obj/item/stack/sheet/mineral/titanium, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"w" = ( +/obj/effect/decal/cleanable/glass/titanium, +/obj/item/stack/sheet/mineral/titanium, +/obj/item/stack/sheet/mineral/titanium, +/turf/open/floor/plating, +/area/ruin/unpowered) +"x" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/turf/open/misc/ashplanet/wateryrock, +/area/lavaland/surface) +"y" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/mob_spawn/corpse/human/engineer, +/turf/open/floor/mineral/titanium/blue/lavaland_atmos, +/area/ruin/unpowered) +"z" = ( +/obj/item/book/manual/fish_catalog, +/turf/open/misc/ashplanet/wateryrock, +/area/lavaland/surface) +"B" = ( +/mob/living/basic/mining/goliath, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"D" = ( +/obj/item/gun/energy/recharge/kinetic_accelerator, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"E" = ( +/turf/open/misc/ashplanet/wateryrock, +/area/lavaland/surface) +"F" = ( +/obj/effect/mob_spawn/corpse/human/cargo_tech, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"G" = ( +/turf/template_noop, +/area/template_noop) +"H" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/cook, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/unpowered) +"I" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue/lavaland_atmos, +/area/ruin/unpowered) +"J" = ( +/obj/machinery/smartfridge/survival_pod{ + desc = "A heated storage unit. This one's seen better days."; + name = "dusty survival pod storage" + }, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"K" = ( +/obj/structure/fans, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"L" = ( +/obj/item/storage/toolbox/fishing, +/turf/open/misc/ashplanet/wateryrock, +/area/lavaland/surface) +"M" = ( +/obj/structure/rack, +/obj/item/pickaxe/emergency, +/obj/item/pickaxe/emergency, +/obj/item/crowbar/large/emergency, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"N" = ( +/turf/closed/wall/mineral/titanium/survival/pod, +/area/ruin/powered) +"O" = ( +/obj/effect/spawner/structure/window/reinforced/shuttle, +/turf/open/floor/plating, +/area/ruin/unpowered) +"P" = ( +/obj/effect/mob_spawn/corpse/human/miner, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"Q" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/unpowered) +"R" = ( +/mob/living/basic/mining/goliath/ancient, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface) +"S" = ( +/obj/structure/bed/pod, +/obj/item/bedsheet/black, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"T" = ( +/obj/structure/tubes, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"U" = ( +/obj/item/bait_can/worm/premium, +/turf/open/misc/ashplanet/wateryrock, +/area/lavaland/surface) +"V" = ( +/obj/structure/table/survival_pod, +/obj/item/food/meat/steak/goliath, +/turf/open/floor/pod/dark, +/area/ruin/powered) +"Y" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst{ + dir = 8 + }, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/unpowered) +"Z" = ( +/obj/machinery/power/shuttle_engine/propulsion/burst, +/turf/closed/wall/mineral/titanium/interior, +/area/ruin/unpowered) + +(1,1,1) = {" +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +"} +(2,1,1) = {" +G +G +G +G +G +G +G +o +o +G +o +o +G +o +o +G +G +G +G +G +G +G +G +G +G +"} +(3,1,1) = {" +G +G +G +G +G +G +o +o +o +o +o +o +o +o +o +o +G +o +G +G +G +G +G +G +G +"} +(4,1,1) = {" +G +G +G +G +G +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +G +o +G +G +G +"} +(5,1,1) = {" +G +G +G +G +o +o +o +o +o +E +E +E +E +E +E +o +o +o +o +o +o +o +o +G +G +"} +(6,1,1) = {" +G +G +G +o +o +o +o +a +a +E +l +l +l +l +E +E +F +N +N +N +N +N +o +G +G +"} +(7,1,1) = {" +G +G +G +o +o +a +a +a +t +E +l +l +l +l +E +E +a +N +K +s +M +N +o +G +G +"} +(8,1,1) = {" +G +G +G +o +o +a +a +a +a +E +E +l +l +l +E +h +a +N +J +s +p +N +o +G +G +"} +(9,1,1) = {" +G +G +G +o +n +q +q +Z +a +a +E +E +l +U +E +a +a +N +V +s +S +N +o +o +G +"} +(10,1,1) = {" +G +G +G +o +O +y +I +r +a +a +R +z +x +L +a +a +h +N +N +m +N +N +o +G +G +"} +(11,1,1) = {" +G +G +G +o +n +q +k +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +o +o +G +"} +(12,1,1) = {" +G +G +G +o +o +v +a +B +a +a +i +a +a +a +a +a +a +a +B +a +a +a +G +G +G +"} +(13,1,1) = {" +G +G +G +G +o +o +a +a +a +a +D +a +a +a +a +u +a +a +a +a +a +a +G +G +G +"} +(14,1,1) = {" +G +G +G +G +o +o +Y +b +Y +P +a +a +a +a +a +h +a +a +a +a +a +a +G +G +G +"} +(15,1,1) = {" +G +G +G +o +o +o +q +e +Q +N +N +m +N +N +t +a +a +a +a +a +a +a +G +G +G +"} +(16,1,1) = {" +G +G +G +o +o +o +q +j +Q +N +K +s +f +N +a +a +a +a +a +a +a +G +G +G +G +"} +(17,1,1) = {" +G +G +G +o +o +o +n +o +Q +N +J +s +g +N +a +Y +b +Y +a +a +a +o +o +G +G +"} +(18,1,1) = {" +G +G +G +G +o +o +o +o +o +N +c +T +d +N +a +q +e +q +a +a +o +o +o +G +G +"} +(19,1,1) = {" +G +G +G +G +G +o +o +o +o +N +N +N +N +N +o +q +H +q +a +o +o +o +o +G +G +"} +(20,1,1) = {" +G +G +G +G +G +o +o +o +o +o +o +o +o +o +o +q +w +o +o +o +o +G +G +G +G +"} +(21,1,1) = {" +G +G +G +G +G +G +G +o +o +o +o +o +o +o +o +o +o +o +o +o +G +G +G +G +G +"} +(22,1,1) = {" +G +G +G +G +G +G +G +G +G +G +G +G +o +o +o +o +o +o +o +G +G +G +G +G +G +"} +(23,1,1) = {" +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +"} +(24,1,1) = {" +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +"} +(25,1,1) = {" +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +G +"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm index a2b3d227d5db2..35492d9e9f2e0 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm @@ -63,12 +63,7 @@ /obj/item/cult_shift, /obj/effect/decal/remains/human, /obj/item/melee/cultblade/dagger, -/obj/effect/step_trigger/sound_effect{ - happens_once = 1; - name = "\proper a grave mistake"; - sound = 'sound/hallucinations/i_see_you1.ogg'; - triggerer_only = 1 - }, +/obj/effect/step_trigger/sound_effect/lavaland_cult_altar, /obj/effect/step_trigger/message{ message = "You've made a grave mistake, haven't you?"; name = "ohfuck" diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm index d4ebe90811fb2..4cbf3478bc233 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_phonebooth.dmm @@ -13,7 +13,7 @@ /area/ruin/powered/lavaland_phone_booth) "k" = ( /obj/machinery/vending/snack/green{ - onstation_override = 1 + all_products_free = 0 }, /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating/lavaland_atmos, @@ -23,9 +23,8 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, -/obj/machinery/atmospherics/components/tank/air{ - dir = 8; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 8 }, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/lavaland_atmos, @@ -67,7 +66,7 @@ /area/ruin/powered/lavaland_phone_booth) "W" = ( /obj/machinery/vending/cigarette{ - onstation_override = 1 + all_products_free = 0 }, /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating/lavaland_atmos, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index 5653125ca0e60..6e29288ba6737 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -376,7 +376,7 @@ /obj/item/storage/box/lights/bulbs, /obj/item/storage/toolbox/mechanical/old, /obj/item/gift{ - contains_type = /obj/item/gun/ballistic/automatic/toy/unrestricted + contains_type = /obj/item/gun/ballistic/automatic/toy }, /obj/item/gift{ contains_type = /obj/item/gun/ballistic/automatic/pistol/toy diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index c70a28308c3ec..41b4510ea3459 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -338,7 +338,6 @@ /area/ruin/powered/seedvault) "bc" = ( /obj/machinery/light/directional/west, -/obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/green/line{ dir = 8 @@ -346,6 +345,7 @@ /obj/effect/turf_decal/trimline/green/line{ dir = 4 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bd" = ( @@ -375,10 +375,10 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bh" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ dir = 6 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bi" = ( @@ -395,10 +395,10 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bj" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ dir = 10 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bk" = ( @@ -413,7 +413,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/green/line{ dir = 8 @@ -421,6 +420,7 @@ /obj/effect/turf_decal/trimline/green/line{ dir = 4 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bm" = ( @@ -479,13 +479,13 @@ /area/ruin/powered/seedvault) "bw" = ( /obj/machinery/light/directional/south, -/obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/green/line{ dir = 1 }, /obj/effect/turf_decal/trimline/green/line, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bx" = ( @@ -511,17 +511,17 @@ /turf/closed/wall/r_wall, /area/ruin/powered/seedvault) "bB" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ dir = 5 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bC" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ dir = 9 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "bD" = ( @@ -565,7 +565,6 @@ /turf/open/floor/iron/freezer, /area/ruin/powered/seedvault) "pZ" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/trimline/green/line{ @@ -574,10 +573,10 @@ /obj/effect/turf_decal/trimline/green/line{ dir = 4 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "rF" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/green/line{ dir = 8 @@ -585,6 +584,7 @@ /obj/effect/turf_decal/trimline/green/line{ dir = 4 }, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) "rX" = ( @@ -656,12 +656,12 @@ /turf/open/floor/iron/freezer, /area/ruin/powered/seedvault) "VF" = ( -/obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/green/line{ dir = 1 }, /obj/effect/turf_decal/trimline/green/line, +/obj/machinery/hydroponics/constructable/fullupgrade, /turf/open/floor/mineral/plastitanium, /area/ruin/powered/seedvault) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 13a82feee1d21..b73cf11fda63e 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -18,19 +18,19 @@ "aj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical/syndicate_access, +/obj/machinery/vending/medical/syndicate, /turf/open/floor/iron/white/side{ dir = 4 }, /area/ruin/syndicate_lava_base/virology) "ak" = ( -/obj/machinery/vending/boozeomat/syndicate_access, +/obj/machinery/vending/boozeomat/syndicate, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ruin/syndicate_lava_base/bar) "al" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical/syndicate_access, +/obj/machinery/vending/medical/syndicate, /turf/open/floor/iron/white, /area/ruin/syndicate_lava_base/medbay) "ap" = ( @@ -4426,6 +4426,9 @@ /obj/item/stack/sheet/plastitaniumglass{ amount = 15 }, +/obj/item/holosign_creator/atmos, +/obj/item/circuitboard/machine/thermomachine, +/obj/item/circuitboard/machine/thermomachine, /turf/open/floor/iron, /area/ruin/syndicate_lava_base/engineering) "YP" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm index 1c4f402f49d1f..7e885840c40e5 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1/mistake_inevitable.dmm @@ -211,7 +211,9 @@ /obj/item/storage/toolbox/syndicate, /obj/item/pipe_dispenser, /obj/item/rpd_upgrade/unwrench, +/obj/item/circuitboard/machine/emitter, /obj/structure/rack, +/obj/item/circuitboard/machine/emitter, /turf/open/floor/iron/dark, /area/ruin/syndicate_lava_base/testlab) "uT" = ( diff --git a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm index 4bdf2af01f19d..a52a428a8258a 100644 --- a/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm +++ b/_maps/RandomRuins/SpaceRuins/bigderelict1.dmm @@ -573,13 +573,7 @@ /area/ruin/space/has_grav/derelictoutpost) "cC" = ( /obj/structure/alien/weeds/creature, -/mob/living/basic/creature{ - desc = "Awh its so sm-OH GOD WHAT THE FUCK."; - health = 25; - maxHealth = 25; - name = "hatchling"; - current_size = 0.85 - }, +/mob/living/basic/creature/hatchling, /turf/open/floor/iron, /area/ruin/space/has_grav/derelictoutpost) "cD" = ( @@ -765,9 +759,7 @@ /area/ruin/space/has_grav/derelictoutpost) "dl" = ( /obj/structure/alien/weeds/creature, -/mob/living/basic/creature{ - name = "Miss Tiggles" - }, +/mob/living/basic/creature/tiggles, /turf/open/floor/iron, /area/ruin/space/has_grav/derelictoutpost) "dm" = ( diff --git a/_maps/RandomRuins/SpaceRuins/commsbuoy_lowtech.dmm b/_maps/RandomRuins/SpaceRuins/commsbuoy_lowtech.dmm new file mode 100644 index 0000000000000..994589f0e51e0 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/commsbuoy_lowtech.dmm @@ -0,0 +1,283 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"c" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy, +/turf/template_noop, +/area/space/nearstation) +"d" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"j" = ( +/obj/structure/lattice/catwalk, +/turf/template_noop, +/area/space/nearstation) +"m" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/turf/template_noop, +/area/space/nearstation) +"n" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/turf/template_noop, +/area/space/nearstation) +"o" = ( +/obj/structure/fluff/sat_dish{ + pixel_y = -15; + pixel_x = -11 + }, +/obj/structure/fluff/sat_dish{ + pixel_y = -9; + pixel_x = 12 + }, +/turf/template_noop, +/area/space/nearstation) +"p" = ( +/obj/structure/fluff/tram_rail/end, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"s" = ( +/obj/structure/fluff/sat_dish{ + pixel_x = 15; + dir = 8; + pixel_y = -7 + }, +/turf/template_noop, +/area/space/nearstation) +"t" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"x" = ( +/obj/structure/fluff/tram_rail/anchor, +/turf/template_noop, +/area/space/nearstation) +"z" = ( +/obj/structure/fluff/commsbuoy_broadcaster, +/turf/open/floor/iron/recharge_floor/Airless, +/area/space/nearstation) +"C" = ( +/obj/structure/fluff/sat_dish{ + pixel_y = 11; + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"D" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"E" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"F" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"G" = ( +/turf/template_noop, +/area/space/nearstation) +"I" = ( +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"K" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"L" = ( +/turf/closed/wall/mineral/titanium, +/area/space/nearstation) +"M" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/unpowered) +"N" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/unpowered) +"O" = ( +/obj/structure/fluff/commsbuoy_receiver, +/turf/open/floor/iron/recharge_floor/Airless, +/area/space/nearstation) +"P" = ( +/obj/structure/fluff/tram_rail/end, +/turf/template_noop, +/area/space/nearstation) +"S" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/turf/template_noop, +/area/space/nearstation) +"U" = ( +/obj/structure/fluff/commsbuoy_processor, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"X" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"Y" = ( +/obj/structure/lattice/catwalk, +/obj/structure/fluff/sat_dish{ + pixel_y = 9; + dir = 1; + pixel_x = 8 + }, +/obj/structure/fluff/sat_dish{ + pixel_y = 15; + dir = 1; + pixel_x = -11 + }, +/turf/template_noop, +/area/space/nearstation) +"Z" = ( +/turf/open/floor/iron/solarpanel/airless, +/area/space/nearstation) + +(1,1,1) = {" +a +a +a +a +a +n +a +a +a +"} +(2,1,1) = {" +a +n +o +N +C +K +a +a +a +"} +(3,1,1) = {" +m +K +s +N +X +O +Z +Z +a +"} +(4,1,1) = {" +I +S +M +N +c +L +j +Z +Z +"} +(5,1,1) = {" +I +F +N +N +G +p +a +a +a +"} +(6,1,1) = {" +x +U +j +N +M +D +a +a +a +"} +(7,1,1) = {" +x +t +X +N +N +Y +Z +Z +a +"} +(8,1,1) = {" +I +d +a +N +j +X +Z +Z +Z +"} +(9,1,1) = {" +P +P +a +z +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +E +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +P +a +a +a +a +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/commsbuoy_nt.dmm b/_maps/RandomRuins/SpaceRuins/commsbuoy_nt.dmm new file mode 100644 index 0000000000000..4fa47033077dc --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/commsbuoy_nt.dmm @@ -0,0 +1,1209 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aJ" = ( +/obj/machinery/door/airlock/titanium{ + name = "Comms Buoy Airlock" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"aL" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"bj" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/space/nt_commsbuoy) +"dO" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/nt_commsbuoy) +"dX" = ( +/obj/machinery/computer/terminal/nt_commsbuoy, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"et" = ( +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"ew" = ( +/obj/structure/fluff{ + name = "telecommunication hub"; + desc = "A mighty piece of hardware used to send/receive massive amounts of data."; + icon = 'icons/obj/machines/telecomms.dmi'; + icon_state = "hub" + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"eX" = ( +/obj/structure/lattice/catwalk, +/turf/template_noop, +/area/space/nearstation) +"fx" = ( +/obj/structure/fluff{ + icon = 'icons/obj/machines/wallmounts.dmi'; + icon_state = "pod_off"; + name = "radio dish controller"; + desc = "A console for adjusting the satellite's radio dishes manually. The screen won't even power on without proper authorization, which you know you're never getting."; + pixel_y = 30 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"fJ" = ( +/turf/template_noop, +/area/template_noop) +"gw" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"hb" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/fluff/tram_rail/end, +/turf/template_noop, +/area/space/nearstation) +"hk" = ( +/obj/structure/table, +/obj/item/paper/fluff/ruins/nt_commsbuoy/inspection{ + pixel_y = 3; + pixel_x = 6 + }, +/obj/item/reagent_containers/cup/glass/mug/nanotrasen{ + pixel_y = 5; + pixel_x = 4 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"hn" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"hH" = ( +/obj/structure/rack, +/obj/item/clothing/suit/space{ + pixel_y = 5; + pixel_x = -10 + }, +/obj/item/clothing/suit/space{ + pixel_y = 1; + pixel_x = 5 + }, +/obj/item/clothing/head/helmet/space{ + pixel_x = -7; + pixel_y = -5 + }, +/obj/item/clothing/head/helmet/space{ + pixel_y = -10; + pixel_x = 8 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"in" = ( +/obj/structure/fluff{ + icon = 'icons/obj/machines/wallmounts.dmi'; + icon_state = "pod_off"; + name = "radio dish controller"; + desc = "A console for adjusting the satellite's radio dishes manually. The screen won't even power on without proper authorization, which you know you're never getting."; + pixel_y = 30 + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/mob_spawn/corpse/human/engineer, +/obj/item/keycard/nt_commsbuoy{ + pixel_y = 9; + pixel_x = 3 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"io" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"it" = ( +/obj/machinery/computer/terminal/nt_commsbuoy/blackbox, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"iv" = ( +/obj/item/stock_parts/subspace/treatment, +/obj/item/stock_parts/subspace/transmitter, +/obj/item/stock_parts/subspace/filter, +/obj/item/stock_parts/subspace/crystal, +/obj/item/stock_parts/subspace/ansible, +/obj/item/stock_parts/subspace/analyzer, +/obj/item/stock_parts/subspace/amplifier, +/obj/structure/closet/crate/centcom, +/obj/item/storage/box/lights/bulbs, +/obj/effect/spawner/random/exotic/technology, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"jy" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = -32 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"jz" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"kZ" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"lu" = ( +/obj/machinery/porta_turret/syndicate/energy, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/space/nt_commsbuoy) +"lB" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"lT" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"lY" = ( +/obj/structure/table, +/obj/structure/noticeboard/directional/north, +/obj/item/paper/fluff/ruins/nt_commsbuoy/table_of_contents, +/obj/machinery/light/small/directional/east, +/obj/item/gps/spaceruin{ + pixel_y = 4; + pixel_x = 5 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"mu" = ( +/obj/structure/fluff/fake_camera{ + dir = 9 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"nn" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"oA" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/turf/template_noop, +/area/space/nearstation) +"pC" = ( +/obj/machinery/door/puzzle/keycard/nt_commsbuoy, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"pR" = ( +/turf/open/floor/mineral/titanium/white/airless, +/area/space/nearstation) +"qi" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"ri" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"rl" = ( +/obj/structure/fluff{ + icon = 'icons/mob/simple/hivebot.dmi'; + icon_state = "def_radar-off"; + name = "radio dish component"; + desc = "Remarkable Nanotrasen technology. This does... something to make the radio dish work."; + pixel_y = 16 + }, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"tq" = ( +/obj/item/storage/toolbox/electrical{ + pixel_y = 9 + }, +/obj/structure/rack, +/obj/effect/spawner/random/engineering/tool_advanced, +/obj/machinery/light/small/directional/west, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"tx" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/space/nearstation) +"tO" = ( +/obj/structure/fluff{ + icon = 'icons/obj/machines/wallmounts.dmi'; + icon_state = "airlock_control_standby"; + name = "radio dish component"; + desc = "Remarkable Nanotrasen technology. This does... something to make the radio dish work."; + pixel_y = 32; + pixel_x = 6 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"uG" = ( +/obj/structure/fluff/commsbuoy_receiver, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"uH" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/turf/template_noop, +/area/space/nearstation) +"vr" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Comms Buoy External Airlock" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"wS" = ( +/obj/structure/lattice, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"xI" = ( +/obj/structure/cable, +/obj/machinery/power/smes/full, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"yk" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/turf/template_noop, +/area/space/nearstation) +"zt" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/machinery/door/airlock/titanium{ + name = "Comms Buoy Airlock" + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"zA" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail/anchor{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"zO" = ( +/obj/structure/lattice, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"Ad" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"AA" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"AD" = ( +/obj/machinery/computer/terminal/nt_commsbuoy/relay{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"AE" = ( +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"Br" = ( +/obj/structure/cable, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/space/nt_commsbuoy) +"CN" = ( +/obj/effect/mob_spawn/corpse/human/nanotrasensoldier, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"DW" = ( +/obj/structure/fluff/sat_dish{ + dir = 8; + pixel_y = -5; + pixel_x = 17 + }, +/obj/structure/fluff/sat_dish{ + pixel_y = -10; + pixel_x = -5 + }, +/turf/template_noop, +/area/space/nearstation) +"EA" = ( +/obj/structure/closet/firecloset/full, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"EQ" = ( +/obj/structure/fluff/sat_dish{ + pixel_y = -18; + pixel_x = 6 + }, +/turf/template_noop, +/area/space/nearstation) +"ES" = ( +/turf/open/floor/mineral/titanium/white, +/area/ruin/space/nt_commsbuoy) +"FC" = ( +/turf/closed/wall/mineral/iron, +/area/ruin/space/nt_commsbuoy) +"FH" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/orange{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/clothing/head/helmet/space/syndicate/orange{ + pixel_x = 9; + pixel_y = -5 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"FK" = ( +/obj/structure/fluff/tram_rail/end, +/turf/template_noop, +/area/space/nearstation) +"Gd" = ( +/obj/structure/fluff/commsbuoy_processor, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"Gq" = ( +/obj/structure/sign/warning/radiation/directional/south, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/space/nt_commsbuoy) +"Gw" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/mapping_helpers/apc/cell_5k, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/effect/mapping_helpers/apc/unlocked, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"HC" = ( +/obj/structure/fluff/commsbuoy_broadcaster, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"II" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"Jp" = ( +/obj/structure/cable, +/obj/machinery/power/rtg/advanced, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"Jv" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/fluff/tram_rail, +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"Kr" = ( +/obj/machinery/power/rtg/advanced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"Lc" = ( +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"LI" = ( +/obj/machinery/telecomms/relay/preset/telecomms, +/obj/structure/fluff/fake_camera{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"Mc" = ( +/obj/effect/decal/cleanable/greenglow/radioactive, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"Mp" = ( +/obj/structure/fluff/fake_camera{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"Qb" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/machinery/door/airlock/titanium{ + name = "Comms Buoy Airlock" + }, +/turf/open/floor/mineral/titanium/yellow, +/area/ruin/space/nt_commsbuoy) +"Qd" = ( +/obj/effect/decal/cleanable/blood/trails{ + dir = 6 + }, +/obj/item/paper/fluff/ruins/nt_commsbuoy/torn_page, +/obj/structure/fluff/fake_camera{ + dir = 5 + }, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"Re" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"RY" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"TS" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/fluff/tram_rail/end, +/turf/template_noop, +/area/space/nearstation) +"UR" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/turf/template_noop, +/area/space/nearstation) +"Vg" = ( +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"VI" = ( +/obj/structure/fluff/fake_camera{ + dir = 8 + }, +/turf/template_noop, +/area/template_noop) +"Ws" = ( +/obj/structure/marker_beacon/cerulean, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"WI" = ( +/obj/structure/fluff{ + name = "comms buoy blackbox recorder"; + desc = "A recording device that logs recent events and communications in the event of a catastrophic failiure or accident. This one is haphazardly adjusted to print the readout onto the accompanying console."; + icon = 'icons/obj/machines/telecomms.dmi'; + icon_state = "blackbox" + }, +/turf/open/floor/mineral/titanium/blue, +/area/ruin/space/nt_commsbuoy) +"Xi" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"Yp" = ( +/obj/structure/fluff/fake_camera{ + dir = 5 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"Yr" = ( +/turf/closed/wall/mineral/titanium, +/area/ruin/space/nt_commsbuoy) +"YN" = ( +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) +"YY" = ( +/turf/open/floor/plating, +/area/ruin/space/nt_commsbuoy) + +(1,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +"} +(2,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +uG +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +"} +(3,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +hn +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +"} +(4,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +Yr +fJ +hn +fJ +Yr +fJ +fJ +fJ +fJ +fJ +fJ +"} +(5,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +Yr +Yr +pR +Yr +Yr +fJ +fJ +fJ +fJ +fJ +fJ +"} +(6,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +Yr +bj +Yr +fJ +fJ +fJ +fJ +fJ +fJ +fJ +"} +(7,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +FC +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +"} +(8,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +Yr +bj +bj +bj +Yr +fJ +fJ +fJ +fJ +fJ +fJ +"} +(9,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +bj +fx +Mp +hk +bj +fJ +fJ +fJ +fJ +fJ +fJ +"} +(10,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +bj +dX +et +AD +bj +fJ +fJ +fJ +fJ +fJ +fJ +"} +(11,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +Yr +bj +bj +aJ +bj +bj +fJ +fJ +fJ +fJ +fJ +fJ +"} +(12,1,1) = {" +fJ +yk +fJ +fJ +fJ +fJ +bj +tq +gw +et +EA +bj +Yr +fJ +fJ +fJ +fJ +fJ +"} +(13,1,1) = {" +fJ +UR +fJ +fJ +fJ +DW +bj +it +et +et +bj +bj +bj +Yr +fJ +fJ +fJ +fJ +"} +(14,1,1) = {" +fJ +aL +fJ +yk +EQ +Yr +bj +WI +et +Gq +bj +YY +iv +bj +fJ +fJ +yk +fJ +"} +(15,1,1) = {" +fJ +wS +hn +zO +hn +bj +bj +ew +et +Br +Qb +Xi +xI +bj +fJ +fJ +lT +fJ +"} +(16,1,1) = {" +fJ +ri +yk +UR +fJ +eX +bj +LI +et +Br +bj +Mc +YN +bj +fJ +oA +lT +fJ +"} +(17,1,1) = {" +fJ +FK +zO +wS +fJ +hn +bj +Gd +io +Gw +bj +Kr +Jp +bj +fJ +Vg +Ad +fJ +"} +(18,1,1) = {" +fJ +fJ +lT +hb +fJ +fJ +Yr +bj +bj +pC +bj +bj +bj +Yr +fJ +Vg +Jv +fJ +"} +(19,1,1) = {" +fJ +fJ +Re +fJ +fJ +fJ +fJ +bj +et +et +et +EA +bj +fJ +fJ +Vg +aL +fJ +"} +(20,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +bj +jz +ES +ES +jy +bj +fJ +fJ +uH +TS +fJ +"} +(21,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +bj +mu +ES +ES +et +bj +fJ +fJ +qi +lT +fJ +"} +(22,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +Yr +bj +et +ES +ES +et +bj +Yr +fJ +qi +UR +fJ +"} +(23,1,1) = {" +fJ +fJ +Yr +Yr +fJ +fJ +bj +lu +et +ES +ES +et +lu +bj +fJ +HC +aL +fJ +"} +(24,1,1) = {" +fJ +fJ +fJ +Yr +Yr +fJ +bj +tO +et +ES +ES +et +Lc +bj +eX +tx +zA +fJ +"} +(25,1,1) = {" +fJ +rl +hn +pR +bj +FC +bj +in +et +ES +ES +et +nn +bj +Ws +tx +RY +fJ +"} +(26,1,1) = {" +fJ +fJ +fJ +Yr +Yr +fJ +bj +dX +CN +ES +dO +Yp +bj +bj +fJ +tx +zA +fJ +"} +(27,1,1) = {" +fJ +fJ +Yr +Yr +fJ +fJ +bj +lY +kZ +AE +lB +et +bj +fJ +fJ +qi +aL +fJ +"} +(28,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +Yr +bj +bj +bj +zt +bj +Yr +fJ +fJ +AA +TS +fJ +"} +(29,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +bj +FH +CN +Qd +bj +fJ +fJ +fJ +Vg +Re +fJ +"} +(30,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +bj +II +YY +hH +bj +fJ +fJ +fJ +FK +fJ +fJ +"} +(31,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +Yr +bj +vr +bj +Yr +fJ +fJ +fJ +fJ +fJ +fJ +"} +(32,1,1) = {" +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +VI +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +fJ +"} diff --git a/_maps/RandomRuins/SpaceRuins/commsbuoy_pirate.dmm b/_maps/RandomRuins/SpaceRuins/commsbuoy_pirate.dmm new file mode 100644 index 0000000000000..18f2117135c4d --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/commsbuoy_pirate.dmm @@ -0,0 +1,299 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"c" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 4 + }, +/turf/template_noop, +/area/space/nearstation) +"d" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"f" = ( +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"g" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ruin/space/unpowered) +"h" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/turf/template_noop, +/area/space/nearstation) +"i" = ( +/obj/structure/lattice, +/obj/structure/sign/poster/contraband/self_ai_liberation/directional/north, +/turf/template_noop, +/area/space/nearstation) +"j" = ( +/obj/structure/sign/poster/contraband/syndicate_recruitment/directional/west, +/obj/structure/fluff/commsbuoy_broadcaster, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"m" = ( +/obj/structure/billboard/nanotrasen/defaced, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"o" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"r" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"s" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy, +/turf/template_noop, +/area/space/nearstation) +"u" = ( +/obj/structure/lattice/catwalk, +/obj/structure/sign/poster/contraband/free_key/directional/south, +/turf/template_noop, +/area/space/nearstation) +"v" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"w" = ( +/obj/structure/fluff/tram_rail/anchor{ + dir = 1 + }, +/obj/structure/fluff/tram_rail/end{ + dir = 8 + }, +/turf/template_noop, +/area/space/nearstation) +"x" = ( +/obj/structure/fluff/tram_rail/end, +/turf/template_noop, +/area/space/nearstation) +"B" = ( +/obj/structure/fluff/commsbuoy_processor, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"C" = ( +/obj/structure/fluff/sat_dish{ + pixel_y = -15; + pixel_x = -11 + }, +/obj/structure/fluff/sat_dish{ + pixel_y = -9; + pixel_x = 12 + }, +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"D" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"E" = ( +/turf/open/floor/iron/solarpanel/airless, +/area/space/nearstation) +"F" = ( +/obj/structure/lattice, +/obj/structure/fluff/tram_rail{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"G" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"J" = ( +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"K" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ruin/space/unpowered) +"O" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/space/nearstation) +"P" = ( +/obj/structure/fluff/commsbuoy_receiver, +/turf/open/floor/plating/reinforced/airless, +/area/space/nearstation) +"Q" = ( +/obj/structure/fluff/tram_rail, +/turf/template_noop, +/area/space/nearstation) +"S" = ( +/obj/structure/fluff/sat_dish{ + pixel_y = 11; + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) +"T" = ( +/obj/structure/fluff/sat_dish{ + pixel_x = 17; + dir = 8; + pixel_y = -8 + }, +/turf/template_noop, +/area/space/nearstation) +"W" = ( +/obj/structure/lattice/catwalk, +/turf/template_noop, +/area/space/nearstation) +"X" = ( +/obj/structure/fluff/tram_rail/end{ + dir = 1 + }, +/obj/structure/fluff/tram_rail/anchor, +/turf/template_noop, +/area/space/nearstation) +"Y" = ( +/obj/structure/fluff/tram_rail/anchor, +/turf/template_noop, +/area/space/nearstation) +"Z" = ( +/obj/structure/fluff/tram_rail/anchor{ + dir = 1 + }, +/turf/template_noop, +/area/space/nearstation) + +(1,1,1) = {" +a +c +a +a +a +c +a +a +"} +(2,1,1) = {" +a +F +C +K +S +o +a +a +"} +(3,1,1) = {" +h +f +T +K +i +P +E +a +"} +(4,1,1) = {" +Y +w +g +K +s +O +E +E +"} +(5,1,1) = {" +x +d +K +K +g +G +W +E +"} +(6,1,1) = {" +h +B +u +K +K +m +E +E +"} +(7,1,1) = {" +Y +r +v +K +K +v +W +E +"} +(8,1,1) = {" +Q +D +a +K +g +J +E +E +"} +(9,1,1) = {" +Q +x +a +j +c +E +E +a +"} +(10,1,1) = {" +x +a +a +X +Z +a +a +a +"} +(11,1,1) = {" +a +a +a +x +f +a +a +a +"} +(12,1,1) = {" +a +a +a +a +G +a +a +a +"} diff --git a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm index a7eac1fe1a8b1..025a2b62e0a83 100644 --- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm +++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm @@ -1062,7 +1062,6 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/dangerous_research/lab) "oJ" = ( -/obj/structure/closet/crate/medical, /obj/item/stack/medical/suture/emergency, /obj/item/stack/medical/gauze/twelve, /obj/item/reagent_containers/hypospray/medipen/blood_loss, @@ -1070,6 +1069,9 @@ /obj/effect/turf_decal/tile/dark_red/anticorner{ dir = 4 }, +/obj/structure/closet/crate/secure/freezer/interdyne{ + req_access = null + }, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/dangerous_research) "oW" = ( @@ -2155,7 +2157,6 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/dangerous_research/lab) "BG" = ( -/obj/structure/closet/crate, /obj/item/stack/sheet/mineral/plasma/thirty, /obj/item/stack/sheet/mineral/wood/fifty, /obj/item/stack/sheet/iron/fifty, @@ -2164,6 +2165,9 @@ amount = 30 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/secure/syndicate/interdyne{ + req_access = null + }, /turf/open/floor/iron, /area/ruin/space/has_grav/dangerous_research/maint) "BJ" = ( @@ -3658,7 +3662,6 @@ /turf/open/floor/iron/dark, /area/ruin/space/has_grav/dangerous_research) "VQ" = ( -/obj/structure/closet/crate, /obj/item/reagent_containers/cup/glass/waterbottle/large, /obj/item/reagent_containers/cup/glass/waterbottle/large, /obj/item/reagent_containers/cup/glass/waterbottle/large, @@ -3669,6 +3672,9 @@ /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 8 }, +/obj/structure/closet/crate/secure/syndicate/interdyne{ + req_access = null + }, /turf/open/floor/iron, /area/ruin/space/has_grav/dangerous_research/maint) "Wm" = ( diff --git a/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm b/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm index f8ec15738e1dc..512888b5e24ab 100644 --- a/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm +++ b/_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm @@ -72,7 +72,7 @@ /turf/open/floor/iron/smooth_edge, /area/ruin/space/has_grav/derelictsulaco) "dk" = ( -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /obj/item/stack/sheet/mineral/sandbags{ amount = 2 }, @@ -1110,7 +1110,7 @@ /area/template_noop) "KS" = ( /obj/machinery/door/window/brigdoor/left/directional/east, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /obj/structure/barricade/sandbags, /turf/open/floor/iron/stairs{ dir = 8 diff --git a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm index 7b12e87992c8a..cb2a35084f93e 100644 --- a/_maps/RandomRuins/SpaceRuins/forgottenship.dmm +++ b/_maps/RandomRuins/SpaceRuins/forgottenship.dmm @@ -613,7 +613,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/syndicate_forgotten_ship) "ct" = ( -/obj/machinery/vending/medical/syndicate_access/cybersun, +/obj/machinery/vending/medical/syndicate/cybersun, /turf/open/floor/plastic, /area/ruin/space/has_grav/syndicate_forgotten_ship) "cu" = ( diff --git a/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm b/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm index a81508dbe1f40..6aca5d7938a01 100644 --- a/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm +++ b/_maps/RandomRuins/SpaceRuins/garbagetruck1.dmm @@ -491,9 +491,6 @@ /area/ruin/space/has_grav/garbagetruck/foodwaste) "xf" = ( /obj/item/trash/tray, -/obj/item/trash/waffles, -/obj/item/trash/waffles, -/obj/item/trash/waffles, /obj/item/food/grown/mushroom/plumphelmet, /obj/structure/closet/crate/trashcart, /mob/living/basic/mouse/rat, diff --git a/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm b/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm new file mode 100644 index 0000000000000..9efa8cd365454 --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/hauntedtradingpost.dmm @@ -0,0 +1,7590 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ad" = ( +/obj/structure/table/wood, +/obj/item/c_tube{ + pixel_y = 8 + }, +/obj/item/gun/ballistic/shotgun/toy/crossbow, +/obj/machinery/light/warm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"ah" = ( +/obj/structure/cable/layer1, +/obj/machinery/camera/xray/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_vault_lasertrap"; + suicide_pact = 1; + suicide_pact_id = "donk_vault_lasertrap" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"am" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"ap" = ( +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"au" = ( +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"aw" = ( +/obj/structure/window/reinforced/fulltile, +/obj/effect/spawner/random/structure/grille, +/obj/effect/mapping_helpers/damaged_window, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"aD" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/obj/item/assembly/igniter{ + pixel_x = -7; + pixel_y = -11 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"aH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"aM" = ( +/obj/structure/rack, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"aO" = ( +/obj/structure/grille/broken, +/obj/effect/mapping_helpers/damaged_window, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"aP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"ba" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"bd" = ( +/obj/structure/table/wood, +/obj/structure/cable/layer1, +/obj/machinery/door/poddoor/shutters{ + id = "donk_market" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"be" = ( +/obj/structure/rack, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bf" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/item/toner/large{ + pixel_y = 8; + pixel_x = 4 + }, +/obj/item/toner/large{ + pixel_y = -4; + pixel_x = 4 + }, +/obj/item/toner/large{ + pixel_y = 2; + pixel_x = 4 + }, +/obj/item/food/grown/onion/red{ + pixel_y = 5; + pixel_x = -12 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"bn" = ( +/obj/structure/table/wood, +/obj/effect/overloader_trap{ + uses_remaining = 2; + shock_damage = 45; + trigger_cooldown_duration = 30 + }, +/obj/machinery/coffeemaker, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"bo" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + space_dir = 4; + name = "Dock 4 External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_4" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bq" = ( +/obj/structure/cable/layer1, +/obj/machinery/vending/sovietsoda{ + all_products_free = 0 + }, +/obj/structure/sign/poster/contraband/clown/directional/east, +/obj/machinery/duct, +/obj/effect/mapping_helpers/broken_machine, +/obj/machinery/camera/autoname/directional/east{ + camera_construction_state = 1; + camera_enabled = 0 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"br" = ( +/obj/structure/table/wood/fancy/orange, +/obj/machinery/recharger{ + pixel_y = 8; + pixel_x = -4 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"bt" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/oil/streak{ + pixel_y = -7 + }, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"bu" = ( +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"bx" = ( +/obj/item/rack_parts, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bz" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 1 + }, +/obj/structure/sign/poster/ripped/directional/south, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"bA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bC" = ( +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bI" = ( +/obj/effect/spawner/random/trash/crushed_can, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bQ" = ( +/obj/structure/cable/layer1, +/obj/effect/spawner/random/trash/bin, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/duct, +/obj/effect/spawner/random/trash/deluxe_garbage, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bU" = ( +/obj/structure/rack, +/obj/item/tank/internals/oxygen/yellow, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"bV" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/light_switch/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"bY" = ( +/obj/machinery/door/airlock/highsecurity{ + desc = "It's labelled AI CORE - SENIOR EMPLOYEES ONLY"; + id_tag = "donk_aicore_door_bolts"; + name = "Secure Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"bZ" = ( +/obj/structure/table/wood, +/obj/structure/desk_bell, +/obj/machinery/duct, +/obj/effect/decal/cleanable/wrapping, +/obj/structure/curtain/cloth/fancy, +/obj/structure/cable/layer1, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"ca" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/oil/slippery, +/obj/machinery/camera/xray/directional/west, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"cb" = ( +/obj/item/clothing/neck/stethoscope, +/obj/item/reagent_containers/syringe/contraband/methamphetamine, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"ch" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled STORAGE B" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"cm" = ( +/obj/structure/rack, +/obj/item/toy/nuke{ + pixel_y = 8; + pixel_x = 7 + }, +/obj/item/toy/figure/syndie{ + pixel_x = 8 + }, +/obj/item/toy/figure/syndie, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"co" = ( +/obj/structure/cable/layer1, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"cq" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"ct" = ( +/obj/structure/table/wood, +/obj/machinery/microwave, +/obj/effect/decal/cleanable/oil/streak, +/obj/structure/cable/layer1, +/obj/effect/overloader_trap{ + trigger_delay = 10 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"cv" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"cB" = ( +/obj/item/throwing_star/toy{ + pixel_y = -6; + pixel_x = -7 + }, +/obj/item/barcodescanner, +/obj/item/ammo_casing/foam_dart{ + dir = 8; + pixel_x = 7; + pixel_y = 12 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/mob/living/basic/mouse/rat, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"cC" = ( +/obj/structure/cable/layer1, +/obj/effect/spawner/random/trash/bin, +/obj/effect/spawner/random/trash/food_packaging, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"cF" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/layer1, +/obj/machinery/camera/xray/directional/east, +/obj/machinery/button/door/invisible_tripwire{ + donk_ai_slave = 1; + suicide_pact = 1; + suicide_pact_id = "donk_office_trap_shutters"; + id = "donk_office_trap_shutters"; + sync_doors = 0 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"cL" = ( +/obj/structure/cable/layer1, +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"cN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"cO" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled STORAGE D - EMPLOYEES ONLY."; + id_tag = "donk_door_bolts" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"cQ" = ( +/obj/structure/cable/layer1, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"cT" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/storage/belt/utility{ + desc = "The tool storage solution that hangs around your waist. This one has 'VLAD' embroidered on it." + }, +/obj/structure/sign/poster/contraband/interdyne_gene_clinics/directional/north, +/obj/machinery/light/warm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"cV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"cY" = ( +/obj/effect/spawner/random/entertainment/arcade, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"db" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"dc" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/fuel_pool, +/obj/structure/sign/poster/contraband/energy_swords/directional/north, +/obj/machinery/duct, +/obj/structure/chair/sofa/left/maroon, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"dj" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Glass Airlock" + }, +/obj/structure/cable/layer1, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"dt" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"du" = ( +/obj/structure/cable/layer1, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/light/red/dim/directional/east, +/obj/item/circuitboard/machine/microwave, +/obj/item/multitool/circuit{ + pixel_y = 2; + pixel_x = -8 + }, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"dv" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/radio{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"dw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"dx" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/stamp/syndicate{ + pixel_y = 11; + pixel_x = 4 + }, +/obj/item/stamp/denied{ + pixel_y = 11; + pixel_x = -7 + }, +/obj/effect/spawner/random/entertainment/cigar, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"dC" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/lattice/catwalk, +/obj/structure/cable/layer1, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"dD" = ( +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"dE" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/storage/bag/trash/filled, +/mob/living/basic/mouse/rat, +/obj/item/screwdriver/red, +/obj/item/crowbar, +/obj/item/multitool, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"dH" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/ash/large{ + pixel_y = -9; + pixel_x = -9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/chair/wood{ + pixel_y = 2; + pixel_x = 2 + }, +/obj/machinery/button/door/invisible_tripwire{ + donk_ai_slave = 1; + suicide_pact = 1; + suicide_pact_id = "donk_office_trap_shutters"; + id = "donk_office_trap_shutters"; + sync_doors = 0 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"dN" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"dU" = ( +/obj/structure/cable/layer1, +/obj/machinery/vending/cigarette/syndicate{ + all_products_free = 0 + }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"ef" = ( +/obj/structure/cable/layer1, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"ej" = ( +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"ek" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/vending/clothing{ + all_products_free = 0 + }, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"en" = ( +/obj/structure/cable/layer1, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/light/red/dim/directional/west, +/obj/item/mod/construction/broken_core, +/obj/item/mod/module/storage/large_capacity, +/obj/item/mod/module/visor/night, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"eB" = ( +/obj/structure/cable/layer1, +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/duct, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"eE" = ( +/obj/structure/secure_safe/directional/north{ + pixel_y = 44 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sink/directional/south, +/obj/machinery/button/door{ + pixel_y = 22; + pixel_x = -12; + id = "donk_market"; + name = "shutter button" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"eN" = ( +/obj/structure/cable/layer1, +/obj/item/dualsaber/toy, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"fg" = ( +/obj/structure/rack, +/obj/effect/spawner/random/engineering/tool_advanced, +/obj/structure/sign/clock/directional/north, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"fk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"fu" = ( +/obj/structure/table/wood, +/obj/item/dice/d10{ + pixel_y = 2; + pixel_x = 6 + }, +/obj/item/dice/d10{ + pixel_y = 1; + pixel_x = -8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"fA" = ( +/obj/item/vending_refill/donksoft{ + pixel_y = -6; + pixel_x = -6 + }, +/obj/item/vending_refill/donksnackvendor{ + pixel_x = 10; + pixel_y = -6 + }, +/obj/item/vending_refill/sustenance{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/vending_refill/youtool{ + pixel_y = 8; + pixel_x = 10 + }, +/obj/effect/turf_decal/bot_red, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/large{ + desc = "A hefty wooden crate labelled 'VENDOR REFILLS'. You'll need a crowbar to get it open." + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"fE" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"fK" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"fT" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/lattice/catwalk, +/obj/structure/cable/layer1, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"fW" = ( +/obj/structure/rack, +/obj/item/melee/skateboard, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"fZ" = ( +/obj/effect/decal/cleanable/oil/streak, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"ga" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 1 Internal Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"gb" = ( +/obj/machinery/light/red/dim/directional/east, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"gh" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/mob/living/basic/mouse/rat, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"gn" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/item/coin/titanium{ + pixel_x = 12; + pixel_y = 11 + }, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"gv" = ( +/obj/structure/cable/layer1, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"gz" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"gH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/light/broken/directional/south, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"gK" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + space_dir = 8; + name = "Dock 1 External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_1" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"gS" = ( +/obj/machinery/door/poddoor, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"gT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 8 + }, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/wood/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"gV" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/wood{ + desc = "It's labelled MANAGERS OFFICE - SENIOR EMPLOYEES ONLY"; + id_tag = "donk_office_entrance"; + name = "Executive Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"gW" = ( +/obj/machinery/light/warm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"hd" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/candy{ + pixel_y = 9; + pixel_x = -6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/item/book/random, +/obj/structure/sign/poster/contraband/cybersun_six_hundred/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"hf" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/poster/contraband/syndicate_pistol/directional/west, +/mob/living/simple_animal/bot/secbot{ + faction = list("Syndicate"); + bot_cover_flags = 4; + baton_type = /obj/item/melee/baton/security/cattleprod; + name = "\improper Syndicate Securitron"; + desc = "A little security robot, reprogrammed by the syndicate. He looks downright surly." + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"hi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/basic/viscerator, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"hl" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"hr" = ( +/obj/structure/table/wood, +/obj/item/pen/fountain, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"hw" = ( +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"hx" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/east{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"hF" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled STORAGE E - EMPLOYEES ONLY." + }, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"hH" = ( +/obj/structure/table/wood, +/obj/machinery/microwave, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"hK" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/safe, +/obj/item/mail/junkmail, +/obj/item/market_uplink/blackmarket, +/obj/item/clothing/suit/armor/bulletproof{ + desc = "A Type II heavy bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." + }, +/obj/item/coin/gold, +/obj/item/vending_refill/donksnackvendor, +/obj/item/circuitboard/machine/vending/donksnackvendor, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"hL" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/poster/official/moth_epi/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"hO" = ( +/obj/item/stack/sheet/iron/twenty, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"hT" = ( +/obj/effect/mapping_helpers/damaged_window, +/obj/structure/window/reinforced/fulltile, +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"hV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"hW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"hX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/carpet/orange/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"ia" = ( +/obj/structure/safe/floor, +/obj/item/fishing_hook/shiny{ + desc = "A fancy fishing hook made out of gold."; + name = "fancy gold fishing hook" + }, +/obj/item/food/bait/natural, +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_vault_lasertrap"; + suicide_pact = 1; + suicide_pact_id = "donk_vault_lasertrap" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"ic" = ( +/obj/effect/spawner/random/trash/mess, +/obj/item/stack/sheet/glass{ + pixel_y = 7; + pixel_x = 7; + amount = 15 + }, +/obj/item/stack/sheet/iron/ten, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"ij" = ( +/obj/machinery/light/warm/directional/east, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"ik" = ( +/obj/structure/closet/crate/preopen, +/obj/item/rack_parts, +/obj/item/stack/wrapping_paper/xmas, +/obj/item/radio/off, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"in" = ( +/obj/machinery/light/broken/directional/south, +/obj/item/storage/wallet/random, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"ip" = ( +/obj/structure/cable/layer1, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/machinery/duct, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/broken/directional/east, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"iu" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"iv" = ( +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"ix" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 6; + pixel_x = 8 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"iz" = ( +/obj/machinery/porta_turret/syndicate/donk, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"iC" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"iD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"iE" = ( +/obj/item/chair/wood{ + pixel_y = -7; + pixel_x = 2 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_office_entrance_trap_gamma" + }, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_office_entrance_trap_gamma"; + donk_ai_slave = 1; + multiuse = 1; + resets_self = 1 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"iH" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 4 Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/welded, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_4" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/door/firedoor/closed{ + ignore_alarms = 1; + welded = 1; + alarm_type = null + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"iS" = ( +/obj/effect/decal/cleanable/plastic, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"iU" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_office_trap_shutters" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"iW" = ( +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled WORKSTATION - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"iX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"iY" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/plastic, +/obj/item/stack/sheet/plastic/five{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - MISC' and has the Donk Co. logo stamped on it." + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/item/stack/sheet/iron/twenty, +/obj/item/electronics/apc{ + pixel_x = -5; + pixel_y = 3 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"jd" = ( +/obj/structure/cable/layer1, +/obj/item/restraints/handcuffs/cable/zipties/used, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"je" = ( +/obj/effect/mine/shrapnel/sting, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"jk" = ( +/obj/structure/cable/layer1, +/obj/structure/rack, +/obj/item/flashlight/seclite{ + name = "syndicate flashlight"; + desc = "A robust flashlight used by syndicate security." + }, +/obj/item/megaphone{ + inhand_icon_state = "megaphone-cargo"; + icon_state = "megaphone-cargo"; + desc = "A device used to project your voice. Loudly. It has 'PROPERTY OF DONK CO' written on the side."; + name = "donk co megaphone" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"jq" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/ammo_casing/foam_dart{ + dir = 4; + pixel_x = 7; + pixel_y = 6 + }, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/effect/spawner/random/mod/maint, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"jF" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/east, +/obj/machinery/button/door/invisible_tripwire{ + donk_ai_slave = 1; + suicide_pact = 1; + suicide_pact_id = "donk_office_trap_shutters"; + id = "donk_office_trap_shutters"; + sync_doors = 0 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"jK" = ( +/obj/structure/cable/layer1, +/obj/machinery/porta_turret/syndicate/energy/cybersun, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"jL" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/item/reagent_containers/condiment/donksauce{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/instrument/banjo, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"jY" = ( +/obj/structure/cable/layer1, +/obj/structure/noticeboard/directional/north, +/obj/item/paper/fluff/ruins/hauntedtradingpost/warning, +/obj/machinery/duct, +/obj/item/paper/fluff/ruins/hauntedtradingpost/oldnote, +/obj/item/paper/fluff/ruins/hauntedtradingpost/officememo, +/obj/structure/chair/sofa/right/maroon, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"ka" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/obj/machinery/navbeacon{ + location = "breakroom1"; + codes_txt = "patrol;next_patrol=hall1" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"kl" = ( +/mob/living/basic/viscerator, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"km" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/food_packaging, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/structure/sign/departments/custodian/directional/west, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"kp" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"kq" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/item/folder, +/obj/item/folder, +/obj/item/paper/pamphlet/violent_video_games, +/obj/item/folder, +/obj/item/paper/fluff/ruins/hauntedtradingpost/brainstorming/eureka, +/obj/item/storage/box/gum/nicotine, +/obj/item/folder/yellow, +/obj/item/paper/fluff/ruins/hauntedtradingpost/brainstorming/eureka3, +/obj/item/folder/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/xray/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"kr" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space) +"kx" = ( +/mob/living/basic/bot/dedbot{ + bot_mode_flags = 29 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"kz" = ( +/obj/item/food/badrecipe/moldy/bacteria{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/effect/decal/cleanable/ash, +/obj/machinery/light/warm/dim/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"kD" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/poster/official/moth_hardhat/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"kE" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/robot_debris/limb, +/obj/structure/sign/departments/cargo/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"kG" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/obj/structure/cable/layer1, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"kI" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"kR" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood/fancy/orange, +/obj/machinery/microwave, +/obj/structure/sign/poster/contraband/donk_co/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"kV" = ( +/obj/structure/table/wood, +/obj/item/c_tube, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"kX" = ( +/obj/structure/table/wood, +/obj/item/paper/fluff/ruins/hauntedtradingpost/officememo{ + pixel_y = 12; + pixel_x = -2 + }, +/obj/item/storage/box/donkpockets/donkpocketpizza, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"la" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"lc" = ( +/obj/structure/chair/comfy/brown, +/obj/structure/sign/poster/contraband/donk_co/directional/north, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"lx" = ( +/obj/structure/chair/comfy/black, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"lA" = ( +/mob/living/basic/viscerator, +/obj/effect/turf_decal/bot_red, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"lD" = ( +/obj/structure/bookcase/random/reference, +/obj/item/book/random{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/book/random{ + pixel_y = -7; + pixel_x = 6 + }, +/obj/item/book/bible{ + pixel_y = 8; + pixel_x = -6 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"lG" = ( +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"lI" = ( +/obj/machinery/photocopier/gratis, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/overloader_trap{ + shock_damage = 40; + uses_remaining = 3; + trigger_delay = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"lQ" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"lR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"lT" = ( +/obj/machinery/vending/cola/black{ + all_products_free = 0 + }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/broken_machine, +/obj/effect/decal/cleanable/glass, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"lW" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"me" = ( +/obj/item/bodypart/leg/left/skeleton{ + pixel_y = 8; + pixel_x = -12 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_waste" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"mf" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 2 Internal Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"mh" = ( +/obj/item/circuitboard/machine/vendatray{ + pixel_y = 15 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"mn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/airalarm/directional/south, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"mp" = ( +/obj/structure/sign/departments/restroom/directional/south, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_toilet" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"mt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"mz" = ( +/obj/structure/cable/layer1, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"mB" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 4 Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/welded, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_4" + }, +/obj/machinery/door/firedoor/closed{ + ignore_alarms = 1; + welded = 1; + alarm_type = null + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"mL" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"mR" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/food/fortunecookie{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/food/fortunecookie{ + pixel_x = -6 + }, +/obj/item/food/mozzarella_sticks{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/machinery/camera/xray/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"mT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"mV" = ( +/obj/effect/mapping_helpers/damaged_window, +/obj/structure/window/reinforced/fulltile, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"nb" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled STAFFROOM - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"nf" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 1 Internal Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"nh" = ( +/obj/structure/cable/layer1, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"nk" = ( +/obj/effect/decal/cleanable/robot_debris, +/obj/machinery/duct, +/obj/machinery/firealarm/directional/south, +/obj/item/food/deadmouse, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"nu" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"nC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"nD" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"nE" = ( +/obj/structure/cable/layer1, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"nF" = ( +/obj/structure/cable/layer1, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"nG" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"nJ" = ( +/obj/structure/cable/layer1, +/obj/structure/rack, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/item/language_manual/roundstart_species/unlimited, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/west{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"nZ" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"od" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"og" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/cleanable/wrapping, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"ok" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"ot" = ( +/obj/machinery/porta_turret/syndicate/energy/cybersun, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"ox" = ( +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - MISC' and has the Donk Co. logo stamped on it." + }, +/obj/item/card/id/away/donk{ + pixel_x = 3; + pixel_y = 8 + }, +/obj/item/card/id/away/donk{ + pixel_y = 1; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"oy" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance/no_decals, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"oz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"oB" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/pen/red{ + pixel_x = 10; + pixel_y = 8 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_y = 8; + pixel_x = -4 + }, +/obj/effect/spawner/random/bureaucracy/paper, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"oC" = ( +/obj/machinery/light/warm/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"oF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"oJ" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/item/storage/wallet/money{ + pixel_y = -5; + desc = "It can hold a few small and personal things. This one is monogrammed 'S.C.'." + }, +/obj/machinery/camera/autoname/directional/west{ + camera_construction_state = 1; + camera_enabled = 0 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"oN" = ( +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"oO" = ( +/obj/structure/cable/layer1, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"oT" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"oW" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"pb" = ( +/obj/structure/cable/multilayer, +/obj/structure/cable/layer1, +/obj/structure/safe/floor, +/obj/item/sticker/syndicate/apc, +/obj/item/grenade/empgrenade, +/obj/item/book/granter/crafting_recipe/donk_secret_recipe, +/obj/item/ai_module/core/full/cybersun, +/obj/item/reagent_containers/condiment/donksauce, +/mob/living/basic/cybersun_ai_core{ + donk_ai_master = 1 + }, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"pc" = ( +/obj/structure/table/wood, +/obj/item/cardpack/series_one{ + pixel_y = -8; + pixel_x = -11; + card_count = 4; + guaranteed_count = 0; + desc = "Contains six cards of varying rarity from the 2560 Core Set. Collect them all! This pack seems to have been resealed..." + }, +/obj/machinery/door/poddoor/shutters{ + id = "donk_market" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"pg" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/item/trash/ready_donk{ + pixel_x = 6; + pixel_y = -16 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"pj" = ( +/obj/effect/spawner/random/entertainment/coin, +/mob/living/basic/mad_piano{ + faction = list("Syndicate") + }, +/obj/item/card/id/away/donk/boss{ + pixel_y = 11 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"pm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/furniture_parts, +/obj/structure/noticeboard/directional/north, +/obj/item/paper/fluff/ruins/hauntedtradingpost/nomodsuits, +/obj/item/universal_scanner, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"pn" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/poddoor/shutters{ + id_tag = "donk_office_trap_shutters"; + id = "donk_office_trap_shutters" + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"pw" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"py" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/obj/structure/cable/layer1, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"pz" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"pB" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_office_trap_shutters" + }, +/obj/structure/cable/layer1, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"pG" = ( +/obj/structure/lattice/catwalk, +/obj/effect/spawner/structure/electrified_grille{ + spawn_list = list(/obj/structure/grille,/obj/structure/cable/layer1) + }, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"pN" = ( +/obj/structure/cable/layer1, +/obj/structure/window/reinforced/fulltile, +/obj/effect/mapping_helpers/damaged_window, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"pO" = ( +/mob/living/basic/mouse/brown, +/obj/structure/cable/layer1, +/obj/structure/sink/directional/east, +/obj/structure/mirror/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/sign/poster/official/cleanliness/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"pS" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/screwdriver/power{ + pixel_y = 8 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"pT" = ( +/obj/item/restraints/handcuffs/cable/zipties/used, +/obj/item/restraints/handcuffs/cable/zipties/used, +/obj/machinery/light/warm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"pX" = ( +/obj/structure/cable/layer1, +/obj/structure/rack, +/obj/item/storage/medkit/fire{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/item/storage/medkit/brute{ + pixel_x = 3; + pixel_y = 6 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"qb" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/vending/assist{ + all_products_free = 0 + }, +/obj/machinery/camera/xray/directional/west, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"qi" = ( +/obj/effect/decal/cleanable/fuel_pool, +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/item/toy/plush/donkpocket{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"qp" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/mine/shrapnel/sting, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"qB" = ( +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - TOY STOCK' and has the Donk Co. logo stamped on it." + }, +/obj/item/instrument/musicalmoth, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"qF" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/robot_debris/down, +/obj/item/ammo_casing/foam_dart{ + pixel_x = 2 + }, +/obj/effect/decal/cleanable/glass/plastitanium/screws{ + desc = "These screws are pretty loose." + }, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"qK" = ( +/obj/structure/cable/layer1, +/obj/structure/holosign/barrier/cyborg/cybersun_ai_shield{ + desc = "A fragile holographic energy field projected by an AI core. It blocks movement. Excels at blocking lethal projectiles." + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/circuit/red, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"qL" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/warning/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/xray/directional/south, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"qM" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/item/tank/internals/oxygen/yellow, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"qP" = ( +/obj/structure/bed/maint, +/obj/machinery/light/broken/directional/west, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"qQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"qR" = ( +/turf/open/space/basic, +/area/space) +"qY" = ( +/obj/item/tank/jetpack/oxygen/security{ + name = "red jetpack (oxygen)" + }, +/obj/item/tank/internals/oxygen/red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"ra" = ( +/obj/machinery/light/warm/directional/south, +/obj/structure/cable/layer1, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"rd" = ( +/obj/machinery/door/airlock/highsecurity{ + desc = "It's labelled AI CORE - SENIOR EMPLOYEES ONLY"; + id_tag = "donk_aicore_door_bolts"; + name = "Secure Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked{ + id_tag = "donk_aicore_door_bolts" + }, +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"rg" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/blood/old, +/obj/item/restraints/legcuffs/beartrap/prearmed, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"rk" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/structure/cable/layer1, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"rr" = ( +/obj/structure/table/wood, +/obj/item/toy/figure/ninja{ + pixel_y = 8; + pixel_x = 8; + name = "\improper Evil Underlord action figure"; + toysay = "For my dark master!" + }, +/obj/item/toy/figure/ninja{ + toysay = "Slaughter them all! For the Dark God!"; + name = "\improper Shadow Knight action figure" + }, +/obj/item/toy/figure/ninja{ + toysay = "Slaughter them all! For the Dark God!"; + name = "\improper Shadow Knight action figure"; + pixel_x = -10; + pixel_y = 4 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"rs" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"ru" = ( +/obj/structure/cable/layer1, +/obj/machinery/recharger{ + pixel_x = -9; + pixel_y = 10 + }, +/obj/structure/table/wood, +/obj/item/food/cubannachos{ + pixel_x = 5; + pixel_y = 8 + }, +/obj/item/food/donkpocket/warm/pizza{ + pixel_y = 12; + pixel_x = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/cable/layer1, +/obj/machinery/cell_charger{ + pixel_y = -7 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"rv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"rx" = ( +/obj/machinery/door/poddoor/shutters{ + id = "donk_toilet_window" + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"rI" = ( +/obj/machinery/light_switch/directional/east, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"rN" = ( +/obj/structure/chair/sofa/corner/brown{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"rV" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"se" = ( +/obj/structure/sink/directional/south, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"sh" = ( +/obj/structure/frame/machine, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"sk" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Glass Airlock" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"sr" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/storage/toolbox/syndicate{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/machinery/light/red/dim/directional/west, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"ss" = ( +/obj/structure/cable/layer1, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/spawner/random/exotic/technology, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/item/gun/energy/laser/carbine/cybersun, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/south{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"su" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom/directional/south{ + frequency = 1463 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/camera/xray/directional/south, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"sv" = ( +/obj/structure/table/wood, +/obj/structure/sign/poster/contraband/donk_co/directional/north, +/obj/item/trash/ready_donk, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"sx" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/machinery/porta_turret/syndicate/donk, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"sy" = ( +/obj/structure/sign/poster/contraband/blasto_detergent/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"sB" = ( +/obj/structure/cable/layer1, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/cell_charger, +/obj/machinery/button/door{ + pixel_y = 23; + pixel_x = 10; + id = "donk_office_peek"; + name = "shutter button" + }, +/obj/item/stock_parts/power_store/cell/bluespace{ + pixel_y = 2 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"sD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"sH" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"sM" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/south{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"sN" = ( +/obj/structure/sign/poster/contraband/energy_swords/directional/east, +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 19; + pixel_x = -2 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"sQ" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/wood{ + desc = "It's labelled WAITING ROOM - SENIOR EMPLOYEES ONLY"; + id_tag = "donk_office_entrance"; + name = "Executive Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"sR" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood/fancy/orange, +/obj/item/kirbyplants/organic{ + pixel_y = 14 + }, +/obj/item/stack/spacecash/c10, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"sT" = ( +/obj/effect/mine/shrapnel/sting, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"sU" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/paper/fluff/ruins/hauntedtradingpost/curatorsnote{ + pixel_y = -2; + pixel_x = -6 + }, +/obj/structure/desk_bell{ + pixel_x = 4 + }, +/obj/item/radio{ + pixel_y = 14; + pixel_x = 6 + }, +/obj/item/gps/spaceruin{ + pixel_y = 10; + pixel_x = -7 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"sW" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"sY" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"ta" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"tb" = ( +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"tj" = ( +/obj/structure/cable/layer1, +/obj/item/universal_scanner, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"tl" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"tm" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"tw" = ( +/obj/machinery/light/warm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"tG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"tJ" = ( +/obj/structure/sign/poster/contraband/eat/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/item/book/random, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"tK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"tL" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"tP" = ( +/obj/structure/closet/crate/secure/trashcart/filled, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/caution/white{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/item/mop, +/obj/item/food/badrecipe/moldy/bacteria, +/obj/effect/spawner/random/maintenance/no_decals, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"tQ" = ( +/obj/structure/rack, +/obj/item/analyzer, +/obj/item/radio, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"tW" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"tZ" = ( +/obj/structure/lattice/catwalk, +/obj/effect/spawner/random/structure/grille, +/obj/structure/cable/layer1, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"uj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"uq" = ( +/obj/structure/rack, +/obj/item/food/peanuts/random, +/obj/item/circuitboard/machine/microwave, +/obj/item/hand_labeler, +/obj/effect/spawner/random/entertainment/coin, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"ur" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"uA" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/poddoor/shutters{ + id = "donk_vault_lasertrap" + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"uE" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Glass Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"uF" = ( +/mob/living/basic/mouse/rat, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"uH" = ( +/turf/open/floor/carpet/orange/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"uT" = ( +/obj/structure/cable/layer1, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"uZ" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"va" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/lattice/catwalk, +/obj/structure/cable/layer1, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"ve" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"vf" = ( +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"vg" = ( +/obj/structure/rack, +/obj/item/analyzer, +/obj/item/radio, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"vm" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/ammo_casing/foam_dart{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/item/ammo_casing/foam_dart{ + dir = 4; + pixel_x = 7; + pixel_y = 6 + }, +/obj/machinery/light/broken/directional/east, +/obj/item/toy/snappop{ + pixel_y = 21; + pixel_x = -5 + }, +/obj/item/toy/snappop{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/item/ammo_box/magazine/toy/pistol{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/machinery/duct, +/obj/machinery/camera/xray/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"vr" = ( +/obj/structure/cable/layer1, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"vv" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/vending/cola/shamblers{ + all_products_free = 0 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"vw" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"vx" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"vA" = ( +/obj/structure/door_assembly/door_assembly_ext{ + anchored = 1 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/carpet/orange/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"vD" = ( +/obj/structure/cable/layer1, +/obj/item/wrench/caravan{ + pixel_x = -8 + }, +/obj/structure/table/wood, +/obj/item/crowbar/hammer{ + pixel_x = -4 + }, +/obj/item/screwdriver/nuke{ + pixel_y = -4 + }, +/obj/structure/sign/poster/contraband/pwr_game/directional/south, +/obj/machinery/light/warm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"vH" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/restraints/legcuffs/beartrap/prearmed{ + trap_damage = 30 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"vM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"vY" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/warm/directional/east, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"vZ" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/south, +/obj/effect/overloader_trap{ + uses_remaining = 1; + shock_damage = 60; + trigger_cooldown_duration = 30; + shock_range = 0; + trigger_range = 0; + machine_overload_damage = 200 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"wg" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled STAFF MEETING ROOM - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"wk" = ( +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"wn" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"ws" = ( +/obj/machinery/light/warm/directional/west, +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 9; + pixel_x = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"wy" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"wz" = ( +/obj/item/storage/box/donkpockets{ + pixel_y = 8; + pixel_x = -8 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/storage/box/donkpockets/donkpockethonk{ + pixel_x = -8 + }, +/obj/item/storage/box/donkpockets/donkpockethonk{ + pixel_y = -4; + pixel_x = -8 + }, +/obj/item/storage/box/donkpockets/donkpocketpizza{ + pixel_y = 8; + pixel_x = 8 + }, +/obj/item/storage/box/donkpockets/donkpocketpizza{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/storage/box/donkpockets/donkpocketspicy{ + pixel_x = 8 + }, +/obj/item/storage/box/donkpockets/donkpocketspicy{ + pixel_x = 8; + pixel_y = -4 + }, +/obj/structure/closet/crate/large{ + desc = "A hefty wooden crate labelled 'DONK POCKETS BOX BULK' You'll need a crowbar to get it open." + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"wA" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/storage/cans/sixsoda, +/obj/machinery/light/warm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"wD" = ( +/obj/machinery/porta_turret/syndicate/donk, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"wE" = ( +/obj/structure/table/wood, +/obj/item/storage/dice{ + pixel_y = 10; + pixel_x = 6 + }, +/obj/item/dice/d100{ + pixel_y = 12; + pixel_x = -9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/fluff/ruins/hauntedtradingpost/rpgrules{ + pixel_y = -2; + pixel_x = -8 + }, +/obj/item/toy/figure/dsquad{ + toysay = "Kneel before me!"; + name = "\improper Evil Overlord action figure"; + pixel_x = 3; + pixel_y = -5 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"wH" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"wK" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled... something. Whatever it said has been scratched out and painted over."; + id_tag = "donk_door_bolts" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable/layer1, +/obj/structure/barricade/wooden/crude, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"wQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"wX" = ( +/obj/structure/table/wood, +/obj/machinery/door/poddoor/shutters{ + id = "donk_market" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"xg" = ( +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"xn" = ( +/obj/structure/cable/layer1, +/obj/structure/frame/machine/secured, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"xr" = ( +/obj/structure/closet/crate/large{ + desc = "A hefty wooden crate labelled 'REJECT - DEFECTIVE'. You'll need a crowbar to get it open." + }, +/obj/item/ammo_casing/shotgun/ion{ + pixel_y = 4; + pixel_x = -4 + }, +/obj/item/ammo_casing/shotgun/ion, +/obj/item/ammo_casing/shotgun/ion{ + pixel_y = 4; + pixel_x = 4 + }, +/obj/machinery/duct, +/obj/item/gun/ballistic/shotgun/musket{ + pixel_y = -7 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"xs" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/machinery/light/warm/directional/south, +/obj/item/toy/plush/donkpocket{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/kitchen/tongs{ + pixel_y = 4; + pixel_x = -7 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"xu" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_office_trap_shutters" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"xE" = ( +/obj/machinery/light/broken/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"xG" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/corner{ + dir = 8 + }, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"xN" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"xO" = ( +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"xT" = ( +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/random/entertainment/lighter, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"xU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"xV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"xW" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/structure/cable/layer1, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"xY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"yb" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"yi" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"ys" = ( +/obj/structure/cable/layer1, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"yz" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/porta_turret/syndicate/donk, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"yE" = ( +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - DECO' and has the Donk Co. logo stamped on it." + }, +/obj/item/poster/random_contraband{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/poster/random_contraband{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/poster/random_contraband{ + pixel_x = -5; + pixel_y = -2 + }, +/obj/item/poster/random_contraband{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/poster/traitor{ + pixel_y = 4; + pixel_x = -1 + }, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"yF" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"yI" = ( +/obj/structure/cable/layer1, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"yK" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"yS" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"yU" = ( +/obj/item/rack_parts{ + pixel_y = 8; + pixel_x = 2 + }, +/obj/effect/turf_decal/bot_red, +/obj/item/storage/toolbox/syndicate{ + pixel_y = -4; + pixel_x = -2 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"zb" = ( +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled STORAGE D - EMPLOYEES ONLY." + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"zd" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"zg" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"zi" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled STAFF MEETING ROOM - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"zm" = ( +/obj/structure/closet/cardboard/metal{ + desc = "An iron alternative to the ubiquitous cardboard box. This one is labelled 'Do Not Open - Live Snakes Inside'." + }, +/obj/item/toy/plush/snakeplushie, +/mob/living/basic/snake/banded, +/mob/living/basic/snake/banded, +/mob/living/basic/snake/banded, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"zq" = ( +/obj/item/cardboard_cutout, +/obj/item/ammo_casing/foam_dart{ + pixel_x = 10; + pixel_y = 7; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"zt" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"zz" = ( +/obj/structure/table/wood, +/obj/item/laser_pointer/red, +/obj/item/pen/red{ + pixel_y = 9; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"zO" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/south{ + cable_layer = 1 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"zQ" = ( +/mob/living/basic/viscerator, +/obj/effect/turf_decal/bot_red, +/obj/machinery/button/door{ + pixel_y = 23; + pixel_x = 8; + normaldoorcontrol = 1; + specialfunctions = 4; + id = "donk_aicore_door_bolts"; + name = "Door Bolt Button"; + skin = "-warning"; + silicon_access_disabled = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Ab" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"Af" = ( +/obj/structure/safe/floor, +/obj/structure/mannequin/wood, +/obj/item/circuitboard/computer/slot_machine, +/obj/item/circuitboard/computer/slot_machine, +/obj/item/circuitboard/machine/chem_dispenser/drinks/fullupgrade, +/obj/item/roulette_wheel_beacon, +/obj/item/coin/iron, +/obj/item/coin/iron, +/obj/item/coin/silver, +/obj/item/card/id/away/donk/boss, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Aj" = ( +/obj/structure/cable/layer1, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Aq" = ( +/obj/structure/table/wood, +/obj/item/food/ready_donk/mac_n_cheese{ + pixel_y = -2; + pixel_x = -6 + }, +/obj/item/food/ready_donk/mac_n_cheese{ + pixel_y = 2; + pixel_x = -6 + }, +/obj/item/kitchen/fork/plastic{ + pixel_x = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"At" = ( +/obj/structure/lattice/catwalk, +/obj/effect/spawner/structure/electrified_grille{ + spawn_list = list(/obj/structure/grille,/obj/structure/cable/layer1) + }, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Au" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/machinery/door/airlock/wood{ + name = "Executive Airlock"; + desc = "It's labelled MANAGEMENT - SENIOR EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"AB" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/line, +/obj/machinery/light/red/dim/directional/south, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"AG" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/highsecurity{ + desc = "It's labelled SYSTEM CONTROL - SENIOR EMPLOYEES ONLY"; + id_tag = "donk_door_bolts"; + name = "Secure Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"AQ" = ( +/obj/structure/frame/machine/secured, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/item/circuitboard/machine/vendor, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/camera/autoname/directional/south{ + camera_construction_state = 1; + camera_enabled = 0 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"AU" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/obj/machinery/navbeacon{ + location = "workhall"; + codes_txt = "patrol;next_patrol=securehall" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Bb" = ( +/obj/machinery/navbeacon{ + location = "cybersun_ai_core" + }, +/obj/structure/cable/layer1, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Bc" = ( +/obj/machinery/light/warm/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Bg" = ( +/obj/structure/cable/layer1, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/stack/sheet/plastitaniumglass/fifty, +/obj/item/stack/sheet/mineral/plastitanium{ + pixel_y = 8; + amount = 50 + }, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Bi" = ( +/obj/structure/lattice, +/obj/effect/spawner/random/structure/grille, +/turf/open/space/basic, +/area/space) +"Bj" = ( +/obj/structure/rack, +/obj/effect/spawner/random/medical/minor_healing, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Bo" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Br" = ( +/obj/structure/rack, +/obj/effect/spawner/random/trash/crushed_can, +/obj/effect/spawner/random/decoration/glowstick, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Bx" = ( +/obj/machinery/navbeacon{ + location = "hall2"; + codes_txt = "patrol;next_patrol=hall3" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"BE" = ( +/obj/structure/cable/layer1, +/obj/machinery/power/terminal{ + dir = 1; + cable_layer = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"BH" = ( +/obj/structure/cable/layer1, +/obj/machinery/navbeacon{ + location = "managers"; + codes_txt = "patrol;next_patrol=workhall" + }, +/mob/living/basic/bot/dedbot, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"BI" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled DISPOSALS - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"BJ" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled STALL 3 - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"BP" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 6; + pixel_x = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"BS" = ( +/mob/living/basic/cockroach, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/arrows/white{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"Ct" = ( +/obj/structure/cable/layer1, +/obj/item/cigbutt, +/obj/machinery/light_switch/directional/east, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/south{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Cz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"CD" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/lattice/catwalk, +/obj/structure/cable/layer1, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"CF" = ( +/obj/structure/sink/directional/south, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"CJ" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"CR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"CS" = ( +/obj/structure/table/wood, +/obj/structure/desk_bell, +/obj/machinery/duct, +/obj/structure/curtain/cloth/fancy, +/obj/structure/cable/layer1, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"CU" = ( +/obj/structure/chair/wood, +/obj/structure/sign/poster/contraband/syndicate_recruitment/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_office_entrance_trap_alpha" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_office_entrance_trap_alpha"; + resets_self = 1; + donk_ai_slave = 1; + multiuse = 1 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"CZ" = ( +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"Db" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/machinery/door/airlock/highsecurity{ + desc = "It's labelled SYSTEM CONTROL - SENIOR EMPLOYEES ONLY"; + id_tag = "donk_door_bolts"; + name = "Secure Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Dg" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/soda_cans/shamblers{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/paper/fluff/ruins/hauntedtradingpost/brainstorming{ + pixel_x = -5 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Di" = ( +/obj/structure/rack, +/obj/effect/spawner/random/decoration/glowstick, +/turf/open/floor/catwalk_floor/iron_smooth/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Dm" = ( +/obj/structure/filingcabinet, +/obj/structure/sign/clock/directional/north, +/obj/item/food/candy/bronx, +/obj/item/lipstick, +/obj/item/grenade/frag, +/obj/item/sticker/heart, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Dn" = ( +/obj/effect/spawner/random/trash/food_packaging, +/obj/item/stack/sheet/mineral/wood/fifty{ + amount = 42 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"Dp" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Dt" = ( +/obj/structure/rack, +/obj/item/tank/internals/oxygen/yellow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Dz" = ( +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/obj/structure/cable/layer1, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"DI" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Glass Airlock" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"DM" = ( +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"DP" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/item/radio/intercom/directional/south{ + frequency = 1463 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"DR" = ( +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"DT" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"DX" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"DY" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "Donk_Trash_Chute" + }, +/obj/machinery/light/small/dim/directional/west, +/obj/machinery/button/door{ + pixel_y = 10; + pixel_x = -23; + id = "donk_waste" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"El" = ( +/obj/structure/cable/layer1, +/obj/machinery/recharger{ + pixel_x = -9; + pixel_y = -8 + }, +/obj/structure/table/wood, +/obj/item/stock_parts/matter_bin{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/item/paper/fluff/ruins/hauntedtradingpost/oldnote/aiclue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Ep" = ( +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Et" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Eu" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/south, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"EC" = ( +/obj/structure/lattice/catwalk, +/obj/effect/spawner/structure/electrified_grille{ + spawn_list = list(/obj/structure/grille,/obj/structure/cable/layer1) + }, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"EK" = ( +/obj/item/coin/plastic{ + pixel_y = -9; + pixel_x = -9 + }, +/obj/item/ammo_casing/foam_dart{ + dir = 4; + pixel_x = 7; + pixel_y = 6 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_waste" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"EQ" = ( +/obj/structure/cable/layer1, +/obj/structure/sink/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"EX" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"EZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Fc" = ( +/obj/structure/easel{ + anchored = 1; + name = "spreadsheet stand"; + desc = "Only for the finest of spreadsheets!" + }, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Fd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Fh" = ( +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"Fp" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Ft" = ( +/obj/structure/cable/layer1, +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - DECO' and has the Donk Co. logo stamped on it." + }, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/universal_scanner, +/obj/item/laser_pointer/red, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Fx" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Fy" = ( +/obj/effect/decal/cleanable/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/vending/custom, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"FB" = ( +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"FE" = ( +/obj/structure/grille/broken, +/obj/effect/spawner/random/trash/crushed_can, +/obj/structure/lattice/catwalk, +/obj/effect/spawner/random/trash/crushed_can, +/obj/structure/cable/layer1, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"FI" = ( +/mob/living/basic/mouse/rat, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"FL" = ( +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 6; + pixel_x = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"FO" = ( +/obj/machinery/photocopier/gratis, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/obj/effect/overloader_trap{ + shock_damage = 40; + uses_remaining = 3; + trigger_delay = 10 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"FT" = ( +/obj/machinery/duct, +/obj/structure/noticeboard/directional/south, +/obj/item/paper/fluff/ruins/hauntedtradingpost/rpgclub, +/obj/item/paper/fluff/ruins/hauntedtradingpost/warning/turrets, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"FY" = ( +/obj/item/food/donut/meat{ + pixel_x = -2; + pixel_y = 1; + name = "meaty ring"; + desc = "A dog treat. It's in the shape of a bagel, and is made of processed meaty giblets." + }, +/obj/item/food/bowled/wish{ + pixel_y = -14; + pixel_x = -10; + desc = "92% tap water, 7% canine backwash, 1% other."; + name = "water bowl" + }, +/obj/structure/bed/dogbed, +/mob/living/basic/pet/dog/bullterrier/guarddog{ + faction = list("Syndicate") + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Ga" = ( +/obj/effect/spawner/random/entertainment/arcade, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_refuel_window"; + donk_ai_slave = 1 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Ge" = ( +/obj/item/food/badrecipe/moldy{ + pixel_x = -5; + pixel_y = -6 + }, +/mob/living/basic/mouse/white, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_waste" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"Gg" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/poddoor/shutters{ + id = "donk_office_peek" + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Gk" = ( +/turf/open/floor/circuit/red, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Gp" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/corner, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Gq" = ( +/obj/structure/rack, +/obj/item/analyzer, +/obj/item/radio, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Gs" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/poster/contraband/revolver/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Gw" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + space_dir = 8; + name = "Dock 2 External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_2" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Gy" = ( +/obj/structure/table/wood, +/obj/structure/desk_bell, +/obj/machinery/door/poddoor/shutters{ + id = "donk_market" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"GA" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"GC" = ( +/obj/structure/safe/floor, +/obj/structure/cable/layer1, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/item/storage/box/donkpockets/donkpocketgondola, +/obj/item/toy/basketball{ + name = "autographed basketball"; + desc = "A basketball that has been signed by legendary basketball player Richard E. Durkis." + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/stack/sheet/mineral/diamond{ + amount = 10 + }, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_vault_lasertrap"; + suicide_pact = 1; + suicide_pact_id = "donk_vault_lasertrap" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"GG" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"GS" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Hb" = ( +/obj/effect/mapping_helpers/damaged_window, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"He" = ( +/obj/structure/rack, +/obj/effect/spawner/random/entertainment/money_medium, +/obj/item/storage/bag/money{ + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Hh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Hj" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/weldingtool/hugetank, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Hp" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled STALL 1 - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Hq" = ( +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Ht" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/north{ + cable_layer = 1 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Hu" = ( +/obj/structure/table/wood, +/obj/item/trash/boritos/red{ + pixel_y = 12; + pixel_x = 6 + }, +/obj/item/paper/crumpled{ + pixel_x = 10; + desc = "Ew, it's been used as a napkin..." + }, +/obj/item/food/grown/grapes/green{ + pixel_x = -4; + pixel_y = 5 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Hw" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Hz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"HA" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/effect/turf_decal/caution/white{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"HB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"HD" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/food/beef_wellington{ + pixel_y = 4 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"HF" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/west, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/airalarm/directional/west, +/obj/structure/rack, +/obj/item/hand_labeler_refill, +/obj/item/hand_labeler, +/obj/effect/spawner/random/bureaucracy/pen, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"HG" = ( +/obj/item/broken_bottle, +/obj/item/cane/white, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"HK" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled STORAGE A" + }, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"HL" = ( +/obj/item/toy/basketball{ + pixel_y = 8; + pixel_x = 1 + }, +/obj/item/toy/dodgeball{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/toy/dodgeball{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/toy/dodgeball, +/obj/structure/rack, +/obj/item/toy/basketball{ + pixel_y = -4; + pixel_x = -6 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"HR" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"HV" = ( +/obj/structure/shipping_container/donk_co, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"HX" = ( +/obj/structure/rack, +/obj/item/shard, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Ic" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 3 Internal Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_3" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Ie" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Ii" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/line, +/obj/machinery/light/red/dim/directional/south, +/obj/machinery/camera/xray/directional/south, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Im" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/machinery/button/door{ + pixel_y = -23; + pixel_x = -8; + normaldoorcontrol = 1; + specialfunctions = 4; + id = "donk_aicore_door_bolts"; + name = "Door Bolt Button"; + skin = "-warning"; + silicon_access_disabled = 1 + }, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Ip" = ( +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Iv" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"IA" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 6; + pixel_x = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"IL" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/red/dim/directional/west, +/obj/structure/holosign/barrier/cyborg/cybersun_ai_shield, +/turf/open/floor/circuit/red, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"IN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"IQ" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/robot_debris, +/mob/living/basic/mouse/rat, +/obj/effect/decal/cleanable/oil/streak{ + pixel_y = -7 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"IR" = ( +/obj/structure/closet/cardboard{ + desc = "A typical example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013' and has the Donk Co. logo stamped on it." + }, +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/trash/popcorn/salty, +/obj/item/ammo_casing/shotgun/fletchette{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/ammo_casing/shotgun/fletchette{ + pixel_x = -2; + pixel_y = -7 + }, +/obj/item/ammo_casing/shotgun/fletchette{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/machinery/camera/xray/directional/east, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"IT" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/ash{ + pixel_y = -6; + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable/layer1, +/obj/machinery/button/door/invisible_tripwire{ + donk_ai_slave = 1; + suicide_pact = 1; + suicide_pact_id = "donk_office_trap_shutters"; + id = "donk_office_trap_shutters"; + sync_doors = 0 + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"IX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Jj" = ( +/obj/structure/showerframe{ + pixel_y = -2; + pixel_x = -8 + }, +/obj/structure/sinkframe{ + pixel_x = 2 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"Jw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Jx" = ( +/obj/structure/cable/layer1, +/obj/structure/frame/machine/secured, +/obj/structure/sign/poster/ripped/directional/east, +/obj/machinery/duct, +/obj/item/shard, +/obj/machinery/camera/autoname/directional/east{ + camera_construction_state = 1; + camera_enabled = 0 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"JE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"JG" = ( +/obj/structure/sink/directional/west, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"JJ" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/red/dim/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"JP" = ( +/obj/structure/sign/poster/contraband/c20r/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/item/paper/fluff/ruins/hauntedtradingpost/receipt/alternate, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"JX" = ( +/obj/structure/cable/layer1, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"JY" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/poddoor/shutters/preopen, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"JZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer4{ + dir = 8 + }, +/turf/open/floor/wood/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Kd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Kl" = ( +/obj/machinery/firealarm/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Kr" = ( +/obj/structure/cable/layer1, +/obj/structure/reagent_dispensers/water_cooler, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"KC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"KF" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"KG" = ( +/obj/structure/rack, +/obj/item/toy/ammo/gun, +/obj/item/toy/ammo/gun, +/obj/item/toy/gun, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"KH" = ( +/obj/structure/cable/layer1, +/obj/machinery/vending/donksnack{ + all_products_free = 0 + }, +/obj/machinery/duct, +/obj/machinery/camera/autoname/directional/west{ + camera_construction_state = 1; + camera_enabled = 0 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"KI" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"KO" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"KQ" = ( +/obj/item/plunger{ + pixel_x = -9; + pixel_y = 18 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/button/door{ + pixel_y = 25; + pixel_x = 12; + id = "donk_toilet" + }, +/obj/machinery/button/door{ + pixel_y = 25; + pixel_x = -12; + id = "donk_toilet_window"; + name = "window shutter button" + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet/secret{ + secret_type = /obj/item/toy/plush/nukeplushie; + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"KZ" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/holosign/barrier/cyborg/cybersun_ai_shield, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Ld" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=breakroom1"; + location = "lounge" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Le" = ( +/obj/structure/rack, +/obj/item/radio, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Lf" = ( +/obj/structure/rack, +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/poster/contraband/donk_co/directional/north, +/obj/item/storage/box/donkpockets, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Li" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Ls" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/item/restraints/legcuffs/beartrap/prearmed{ + trap_damage = 30 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Lt" = ( +/obj/structure/rack, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/effect/spawner/random/medical/minor_healing, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Lz" = ( +/obj/structure/cable/layer1, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/ai_module/supplied/protect_station{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/machinery/light/red/dim/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"LC" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"LD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"LF" = ( +/obj/structure/cable/layer1, +/obj/structure/bookcase, +/obj/item/book/granter/crafting_recipe/death_sandwich{ + pixel_x = 6; + pixel_y = -7 + }, +/obj/item/book/granter/crafting_recipe/cooking_sweets_101{ + pixel_x = 10; + pixel_y = 10 + }, +/obj/item/book/manual/wiki/cooking_to_serve_man{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/book/random{ + pixel_x = -8; + pixel_y = 4 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"LG" = ( +/obj/item/paper/fluff/ruins/hauntedtradingpost/receipt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"LI" = ( +/obj/item/circuitboard/machine/vending/donksofttoyvendor{ + pixel_y = -2; + pixel_x = -6 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"LL" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"LM" = ( +/obj/effect/decal/cleanable/robot_debris/up, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"LO" = ( +/obj/structure/sign/poster/contraband/donut_corp/directional/west, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"LP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"LQ" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/poster/contraband/arc_slimes/directional/north, +/obj/item/trash/syndi_cakes{ + pixel_y = 4; + pixel_x = -8 + }, +/obj/item/clothing/shoes/sneakers/orange, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"LS" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/stock_parts/micro_laser/ultra{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/stock_parts/micro_laser/ultra{ + pixel_x = -8; + pixel_y = -12 + }, +/obj/item/stock_parts/micro_laser/ultra{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"LW" = ( +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/item/poster/random_contraband, +/obj/item/paper/fluff/ruins/hauntedtradingpost/brainstorming/eureka2, +/obj/item/healthanalyzer, +/obj/item/skillchip/brainwashing, +/obj/item/storage/fancy/cigarettes/cigpack_shadyjims, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Mc" = ( +/obj/item/trash/boritos/red{ + pixel_y = -12 + }, +/obj/machinery/navbeacon{ + location = "securehall"; + codes_txt = "patrol;next_patrol=managers" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Md" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Mf" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/effect/spawner/random/bureaucracy/paper, +/obj/effect/spawner/random/bureaucracy/pen, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Mg" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/effect/spawner/structure/window/reinforced/indestructible, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_refuel_window" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"Mh" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/obj/item/card/id/away/donk, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Mr" = ( +/obj/machinery/camera/autoname/directional/west{ + camera_construction_state = 1; + camera_enabled = 0 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Mu" = ( +/obj/effect/mapping_helpers/bombable_wall, +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Mx" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/machinery/navbeacon{ + location = "hall1"; + codes_txt = "patrol;next_patrol=hall2" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"MJ" = ( +/obj/structure/cable/layer1, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"MN" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/wirecutters{ + pixel_y = -6 + }, +/obj/item/circuitboard/machine/microwave{ + pixel_x = 9; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/item/multitool/circuit{ + pixel_y = 2; + pixel_x = -8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/west{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"MO" = ( +/obj/machinery/duct, +/obj/machinery/vending/snack{ + all_products_free = 0 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"MR" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal{ + desc = "An ominous looking wall."; + name = "reinforced wall" + }, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Ne" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Ng" = ( +/obj/structure/cable/layer1, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/food_or_drink/donkpockets_single, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/effect/spawner/random/maintenance/no_decals, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Ni" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/obj/structure/cable/layer1, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Nk" = ( +/obj/structure/table/wood, +/obj/item/storage/box/bandages, +/obj/machinery/camera/xray/directional/west, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Nr" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled STAFFROOM - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Nt" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Nw" = ( +/obj/structure/cable/layer1, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"NB" = ( +/obj/structure/cable/layer1, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/stock_parts/capacitor/super{ + pixel_y = 5 + }, +/obj/machinery/button/door{ + pixel_y = 23; + pixel_x = -10; + id = "donk_corridor_peek"; + name = "shutter button" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"NH" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Glass Airlock" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/layer1, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"NM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"NS" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"NY" = ( +/obj/structure/cable/layer1, +/obj/machinery/vending/coffee{ + all_products_free = 0 + }, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"NZ" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 2 Internal Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Of" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/fuel_pool, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Oh" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Oi" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/cas{ + pixel_y = 1; + pixel_x = -6 + }, +/obj/item/toy/cards/deck/cas/black{ + pixel_y = 10; + pixel_x = -6 + }, +/obj/machinery/duct, +/obj/machinery/light_switch/directional/south, +/obj/item/universal_scanner{ + pixel_y = 12; + pixel_x = 5 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"OD" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"OE" = ( +/obj/structure/cable/layer1, +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled STORAGE C - EMPLOYEES ONLY." + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"OL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"OP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/item/screwdriver{ + pixel_y = -12 + }, +/obj/item/vending_refill/custom, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"OR" = ( +/obj/machinery/atmospherics/components/tank/air{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"OS" = ( +/obj/structure/cable/layer1, +/obj/item/trash/ready_donk, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/closet/crate/bin, +/obj/machinery/firealarm/directional/east, +/obj/structure/sign/clock/directional/north, +/obj/item/trash/syndi_cakes, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Pd" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/machinery/duct, +/obj/item/toy/snappop{ + pixel_y = 6; + pixel_x = 6 + }, +/obj/item/weldingtool{ + pixel_y = 3; + pixel_x = -5 + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Pe" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/obj/item/book/random, +/obj/item/food/badrecipe/moldy{ + pixel_y = -6 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"Pg" = ( +/obj/structure/safe, +/obj/item/pet_carrier, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/food/ready_donk/donkrange_chicken, +/obj/item/gun/ballistic/rifle/boltaction/donkrifle, +/obj/item/tank/internals/emergency_oxygen/engi, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Pk" = ( +/obj/structure/cable/layer1, +/obj/machinery/vending/tool{ + all_products_free = 0 + }, +/obj/structure/sign/poster/contraband/donk_co/directional/west, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Pq" = ( +/obj/item/mail/junkmail, +/obj/item/folder/red, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/fluff/ruins/hauntedtradingpost/officememo, +/obj/structure/filingcabinet/chestdrawer/wheeled, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/light_switch/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Pv" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Px" = ( +/obj/structure/chair/wood, +/obj/structure/sign/poster/contraband/gorlex_recruitment/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_office_entrance_trap_beta" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_office_entrance_trap_beta"; + resets_self = 1; + donk_ai_slave = 1; + multiuse = 1 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"PA" = ( +/obj/effect/decal/cleanable/fuel_pool, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"PD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"PE" = ( +/obj/structure/cable/layer1, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/structure/sign/poster/contraband/hacking_guide/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"PU" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/camera/xray/directional/north, +/mob/living/basic/mouse/rat, +/obj/item/food/badrecipe/moldy/bacteria, +/obj/effect/spawner/random/trash/deluxe_garbage, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"PX" = ( +/obj/structure/cable/layer1, +/obj/structure/holosign/barrier/cyborg/cybersun_ai_shield, +/turf/open/floor/circuit/red, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Qc" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + desc = "It's labelled STORAGE E - EMPLOYEES ONLY." + }, +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"Qe" = ( +/obj/structure/sign/poster/contraband/donk_co/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Qr" = ( +/obj/structure/cable/layer1, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/warm/directional/west, +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Qw" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Qy" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/north{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"QA" = ( +/obj/structure/sign/warning, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"QF" = ( +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"QM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/vending/sovietsoda{ + all_products_free = 0 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"QV" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/broken/directional/north, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"QX" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Ra" = ( +/obj/structure/cable/layer1, +/obj/item/chair/plastic, +/obj/item/chair/plastic{ + pixel_y = 4 + }, +/obj/item/chair/plastic{ + pixel_y = 8 + }, +/obj/item/chair/plastic{ + pixel_y = 16 + }, +/obj/item/chair/plastic{ + pixel_y = 12 + }, +/obj/item/chair/plastic{ + pixel_y = 16 + }, +/obj/structure/rack, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Rb" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Re" = ( +/obj/structure/table/wood/fancy/orange, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Ri" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/east{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"Rj" = ( +/obj/structure/sign/warning/pods/directional/west, +/obj/effect/spawner/random/trash/deluxe_garbage, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Ro" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Rq" = ( +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Rv" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/structure/holosign/barrier/cyborg/cybersun_ai_shield, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Rx" = ( +/obj/structure/rack, +/obj/structure/cable/layer1, +/obj/item/storage/box/mothic_rations, +/obj/structure/sign/poster/contraband/mothic_rations/directional/north, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Ry" = ( +/obj/effect/decal/cleanable/glass/plastitanium/screws{ + desc = "Someone's got a screw loose! Or 41 screws loose." + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"RA" = ( +/obj/item/shield/buckler, +/obj/item/grenade/barrier, +/obj/effect/decal/cleanable/plastic, +/obj/machinery/light/warm/dim/directional/west, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"RC" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/firealarm/directional/east, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/north{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"RH" = ( +/obj/docking_port/stationary{ + dir = 8; + dwidth = 11; + height = 24; + name = "Donk Co Trading Outpost: Dock 2"; + shuttle_id = "whiteship_home"; + width = 35 + }, +/turf/open/space/basic, +/area/space) +"RI" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 1 + }, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"RN" = ( +/obj/structure/closet/l3closet, +/obj/item/soap/syndie, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"RR" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/door/airlock/grunge{ + desc = "It's labelled STALL 2 - EMPLOYEES ONLY" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"RU" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/poddoor/shutters{ + id = "donk_market" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"RW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/syndicate, +/obj/machinery/door/airlock/wood{ + desc = "It's labelled MANAGERS OFFICE - SENIOR EMPLOYEES ONLY"; + name = "Ecevutive Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_vault" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"RX" = ( +/obj/item/stack/medical/suture{ + amount = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Sh" = ( +/obj/item/trash/ready_donk, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"Sj" = ( +/obj/effect/spawner/random/trash/mopbucket, +/obj/item/wrench, +/obj/item/crowbar, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"Sl" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/meter, +/obj/effect/spawner/random/maintenance/no_decals, +/obj/effect/spawner/random/trash/deluxe_garbage, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"Sx" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/west{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"Sy" = ( +/obj/effect/spawner/random/structure/grille, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"SA" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"SF" = ( +/obj/item/target/clown{ + pixel_y = 3 + }, +/obj/item/bikehorn, +/obj/item/soap/syndie{ + pixel_y = -9 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"SK" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/red/dim/directional/east, +/obj/structure/holosign/barrier/cyborg/cybersun_ai_shield, +/turf/open/floor/circuit/red, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"SO" = ( +/obj/item/ammo_box/foambox{ + pixel_x = -10; + pixel_y = 7 + }, +/obj/item/mod/module/recycler/donk/safe{ + pixel_y = -3; + pixel_x = 7 + }, +/obj/item/gun/ballistic/automatic/pistol/toy{ + pixel_y = -6; + pixel_x = -5 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"SQ" = ( +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"SX" = ( +/obj/machinery/button/door{ + pixel_y = 24; + pixel_x = 9; + id = "donk_office_trap_shutters"; + name = "shutter button"; + sync_doors = 0 + }, +/obj/machinery/button/door/selfdestructs{ + normaldoorcontrol = 1; + id = "donk_door_bolts"; + specialfunctions = 4; + pixel_x = -9; + pixel_y = 24; + desc = "A button for unbolting doors throughout the facility."; + name = "door bolt override" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"SY" = ( +/obj/structure/cable/layer1, +/obj/effect/turf_decal/stripes/red/line, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Ti" = ( +/obj/structure/sign/poster/ripped/directional/north, +/obj/structure/reagent_dispensers/fueltank/large, +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Tl" = ( +/obj/structure/cable/layer1, +/obj/structure/frame/machine/secured, +/obj/machinery/light/red/dim/directional/north, +/obj/item/circuitboard/machine/smes, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"Tp" = ( +/obj/machinery/door/poddoor/shutters{ + id = "donk_corridor_peek" + }, +/obj/structure/cable/layer1, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"Tz" = ( +/obj/structure/table/wood, +/obj/item/hourglass{ + pixel_x = 10; + pixel_y = 7 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"TB" = ( +/obj/structure/rack, +/turf/open/floor/catwalk_floor/iron_smooth/airless, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"TC" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/structure/closet/crate/secure/trashcart/filled, +/obj/item/food/badrecipe/moldy/bacteria, +/obj/item/food/fishmeat/donkfish, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/obj/item/card/id/away/donk{ + pixel_y = -4; + pixel_x = -8 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"TF" = ( +/obj/effect/mapping_helpers/bombable_wall, +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"TH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/light/warm/directional/south, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"TI" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"TK" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"TP" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/basic/bot/cleanbot{ + additional_access = /datum/id_trim/away/hauntedtradingpost; + bot_mode_flags = 0; + name = "\improper Henry"; + unique_name = 1; + desc = "A dusty and dented old cleaning robot. Despite his scars and his aging body, he determinedly stands by to cleanse the galaxy. One stain at a time."; + req_one_access = list("syndicate") + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"TR" = ( +/obj/structure/sign/poster/ripped/directional/south, +/obj/structure/cable/layer1, +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - DECO' and has the Donk Co. logo stamped on it." + }, +/obj/effect/spawner/random/maintenance/no_decals/two, +/obj/item/toy/snappop{ + pixel_x = 5 + }, +/obj/item/assembly/prox_sensor{ + pixel_y = -3; + pixel_x = -6 + }, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"TT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4; + name = "external vent" + }, +/turf/open/space/basic, +/area/space) +"TU" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"TY" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen/red, +/obj/machinery/door/poddoor/shutters{ + id = "donk_market" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Uf" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Uk" = ( +/obj/structure/bed/maint, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"Uu" = ( +/obj/structure/table/wood, +/obj/item/pen/red{ + pixel_y = -3; + pixel_x = -6 + }, +/obj/item/poster/random_contraband{ + pixel_y = 8 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Ux" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/departments/custodian/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Uy" = ( +/obj/structure/cable/layer1, +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/mapping_helpers/airalarm/syndicate_access, +/obj/machinery/duct, +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"UD" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/machinery/door/airlock/wood{ + desc = "It's labelled CONFERENCE ROOM - SENIOR EMPLOYEES ONLY"; + name = "Executive Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"UO" = ( +/obj/structure/chair/sofa/corner/brown{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"UV" = ( +/obj/effect/decal/cleanable/fuel_pool, +/obj/item/lighter{ + pixel_y = 8; + pixel_x = 14 + }, +/obj/effect/decal/cleanable/oil/slippery{ + pixel_y = 6; + pixel_x = 6 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"UW" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/machinery/vending/medical{ + all_products_free = 0; + name = "\improper CyberMed +" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"UZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/wood{ + desc = "It's labelled CONFERENCE ROOM - SENIOR EMPLOYEES ONLY"; + name = "Executive Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_vault" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Vf" = ( +/obj/effect/spawner/random/structure/furniture_parts, +/obj/effect/spawner/random/entertainment/musical_instrument, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Vj" = ( +/obj/structure/table/wood, +/obj/item/food/cornchips{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/food/chocolatebar{ + pixel_y = 6; + pixel_x = 5 + }, +/obj/item/toy/figure/ian{ + name = "\improper Dire-Corgi action figure"; + pixel_x = 2; + pixel_y = -13; + toysay = "ARF!!!" + }, +/obj/item/reagent_containers/cup/glass/mug/tea{ + pixel_y = -2; + pixel_x = -8 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Vl" = ( +/obj/structure/table/wood, +/obj/item/toy/figure/wizard/special{ + pixel_y = 9; + pixel_x = -4; + }, +/obj/item/toy/figure/warden{ + name = "\improper Knight action figure"; + toysay = "Upon my oath, Armoria will not fall!" + }, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Vm" = ( +/obj/structure/table/wood, +/obj/machinery/microwave, +/obj/structure/sign/poster/contraband/microwave/directional/north, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Vq" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/circuitboard/machine/vendor, +/obj/item/circuitboard/machine/vendor{ + pixel_y = 12 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"Vw" = ( +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - MISC' and has the Donk Co. logo stamped on it." + }, +/obj/item/stack/sheet/cardboard/fifty{ + pixel_y = 4 + }, +/obj/item/paper_bin/bundlenatural{ + pixel_x = 6 + }, +/obj/item/paper_bin/bundlenatural{ + pixel_x = -5 + }, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"VA" = ( +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"VJ" = ( +/obj/structure/cable/layer1, +/obj/effect/mapping_helpers/apc/syndicate_access, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/power/apc/auto_name/directional/west{ + cable_layer = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"VP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/navbeacon{ + location = "hall3"; + codes_txt = "patrol;next_patrol=hall4" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"VQ" = ( +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"VW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation) +"VX" = ( +/obj/structure/cable/layer1, +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/pistol/toy, +/obj/effect/decal/cleanable/fuel_pool, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Wa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/drip{ + pixel_y = 6; + pixel_x = 8 + }, +/obj/machinery/navbeacon{ + location = "hall4"; + codes_txt = "patrol;next_patrol=lounge" + }, +/mob/living/basic/bot/firebot{ + additional_access = /datum/id_trim/away/hauntedtradingpost; + bot_mode_flags = 3; + req_one_access = list("syndicate"); + faction = list("Syndicate") + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Wf" = ( +/obj/structure/lattice/catwalk, +/obj/effect/spawner/structure/electrified_grille{ + spawn_list = list(/obj/structure/grille,/obj/structure/cable/layer1) + }, +/turf/open/space/basic, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Wg" = ( +/obj/structure/rack, +/obj/item/card/emagfake{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/item/card/emagfake{ + pixel_y = 2 + }, +/obj/item/card/emagfake{ + pixel_y = -4; + pixel_x = -1 + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"Wn" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/broken/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Wo" = ( +/obj/structure/closet/crate/cardboard/mothic{ + name = "cardboard box"; + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'ORDER #494316' and has the seal of the nomadic moth fleet stamped on it." + }, +/obj/item/food/grown/herbs{ + pixel_x = 10; + pixel_y = 4 + }, +/obj/item/food/grown/herbs{ + pixel_x = -6; + pixel_y = 1 + }, +/obj/item/food/grown/herbs, +/obj/effect/spawner/random/trash/deluxe_garbage, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Wu" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/warm/directional/west, +/obj/machinery/duct, +/obj/structure/closet/crate/bin, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Wv" = ( +/obj/structure/fireaxecabinet/empty/directional/north, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Ww" = ( +/obj/machinery/vending/coffee{ + all_products_free = 0 + }, +/obj/structure/cable/layer1, +/obj/machinery/duct, +/obj/effect/mapping_helpers/broken_machine, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"WA" = ( +/obj/machinery/door/airlock/highsecurity{ + desc = "It's labelled AI CORE - SENIOR EMPLOYEES ONLY"; + id_tag = "donk_aicore_door_bolts"; + name = "Secure Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/away/command, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/circuit/red/off, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"WD" = ( +/obj/structure/rack, +/obj/item/tank/internals/oxygen/yellow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"WF" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Dock 3 Internal Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_3" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"WN" = ( +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"WO" = ( +/obj/structure/cable/layer1, +/obj/machinery/power/smes/magical/cybersun{ + cable_layer = 1; + donk_ai_slave = 1; + input_level = 180000; + output_level = 200000 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"WP" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"WV" = ( +/obj/structure/cable/layer1, +/obj/structure/sign/poster/ripped/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"WW" = ( +/obj/item/electronics/firelock{ + pixel_x = 8 + }, +/obj/item/trash/ready_donk{ + pixel_y = 10; + pixel_x = -9 + }, +/obj/effect/turf_decal/arrows/red{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "Donk_Trash_Chute" + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals) +"Xe" = ( +/obj/structure/cable/layer1, +/obj/machinery/vending/cola/shamblers{ + all_products_free = 0 + }, +/obj/machinery/duct, +/obj/effect/overloader_trap, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Xh" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Xj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/bureaucracy/briefcase, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"Xu" = ( +/obj/item/ammo_casing/foam_dart{ + pixel_x = 10; + pixel_y = 14; + dir = 4 + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"Xy" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood/fancy/orange, +/obj/item/storage/box/donkpockets{ + pixel_y = 12; + pixel_x = 8 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 12; + pixel_x = -6 + }, +/obj/item/food/dankpocket{ + pixel_x = -10 + }, +/obj/item/food/dankpocket, +/obj/item/food/dankpocket{ + pixel_x = 10 + }, +/obj/machinery/light/warm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"Xz" = ( +/obj/structure/table/wood, +/obj/machinery/microwave, +/obj/machinery/door/poddoor/shutters{ + id = "donk_market" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"XB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/spawner/random/structure/furniture_parts, +/obj/item/stock_parts/capacitor/super, +/obj/item/stock_parts/capacitor/super, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"XC" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + space_dir = 4; + name = "Dock 3 External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "donk_dock_3" + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"XJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"XK" = ( +/obj/machinery/vending/donksnack{ + all_products_free = 0 + }, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"XR" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"XT" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"XU" = ( +/obj/structure/table/wood, +/obj/item/coffee_cartridge{ + pixel_y = -2; + pixel_x = -12 + }, +/obj/item/reagent_containers/cup/glass/mug/britcup{ + pixel_x = -11; + pixel_y = 7 + }, +/obj/item/pinata/donk, +/obj/item/radio/intercom/directional/north{ + frequency = 1463 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"XW" = ( +/obj/structure/holosign/barrier/cyborg/cybersun_ai_shield, +/turf/open/floor/circuit/red, +/area/ruin/space/has_grav/hauntedtradingpost/aicore) +"XX" = ( +/obj/structure/cable/layer1, +/obj/machinery/light/small/broken/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/button/door/invisible_tripwire{ + id = "donk_vault_lasertrap"; + suicide_pact = 1; + suicide_pact_id = "donk_vault_lasertrap" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Ye" = ( +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/machinery/camera/xray/directional/south, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Yg" = ( +/obj/structure/cable/layer1, +/obj/machinery/duct, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"Yq" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/bedsheet/syndie{ + pixel_y = 5 + }, +/obj/item/storage/fancy/cigarettes/cigpack_syndicate, +/obj/item/storage/pill_bottle/happy{ + pixel_x = -8 + }, +/obj/item/bedsheet/orange{ + pixel_y = 8 + }, +/obj/effect/turf_decal/bot_red, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"Yw" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/carpet/orange, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"YB" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/porta_turret/syndicate/donk{ + scan_range = 7 + }, +/turf/open/floor/plating/reinforced, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"YF" = ( +/obj/structure/cable/layer1, +/obj/structure/table/wood, +/obj/item/food/pizza/donkpocket{ + pixel_y = 6; + pixel_x = 2 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"YG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/directional/south, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor) +"YI" = ( +/obj/machinery/duct, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"YJ" = ( +/obj/machinery/light/small/broken/directional/west, +/mob/living/basic/viscerator, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage) +"YK" = ( +/obj/item/dice/d4{ + pixel_y = -6; + pixel_x = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"YM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"YN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable/layer1, +/obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor) +"YR" = ( +/obj/structure/cable/layer1, +/obj/structure/frame/machine/secured, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/employees) +"YT" = ( +/obj/structure/aquarium/donkfish, +/turf/open/floor/wood/large, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"YX" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom) +"YY" = ( +/obj/structure/sign/clock/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"YZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "donk_office_trap_shutters" + }, +/turf/open/floor/carpet/donk, +/area/ruin/space/has_grav/hauntedtradingpost/office) +"Zf" = ( +/obj/structure/filingcabinet, +/obj/item/paper/fluff/ruins/hauntedtradingpost/nomodsuits, +/obj/item/paper/fluff/ruins/hauntedtradingpost/oldnote, +/obj/item/paper/fluff/junkmail_generic{ + name = "strange note" + }, +/obj/item/paper/fluff/ruins/hauntedtradingpost/receipt/alternate_alt, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"Zi" = ( +/obj/structure/cable/layer1, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint) +"Zn" = ( +/obj/structure/closet/crate/mail, +/obj/item/mail/junkmail, +/obj/item/mail/junkmail, +/obj/item/paper/fluff/operative, +/obj/item/mail/junkmail, +/obj/item/mail/junkmail, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"Zt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ + pipe_color = "#FF7B00"; + color = "#FF7B00" + }, +/obj/structure/sign/poster/ripped/directional/north, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) +"Zu" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space) +"ZI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom) +"ZK" = ( +/obj/item/stack/tile/carpet/donk/thirty{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/effect/spawner/random/decoration/carpet, +/obj/item/toy/plush/donkpocket{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/pillow{ + pixel_y = -2; + pixel_x = 10 + }, +/obj/effect/turf_decal/bot_red, +/obj/structure/closet/crate/cardboard{ + desc = "A fine example of the ubiquitous cardboard box. Handy if you want to store things. This box is labelled 'OUTLET 6013 - DECO' and has the Donk Co. logo stamped on it." + }, +/turf/open/floor/plating, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"ZU" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage) +"ZZ" = ( +/obj/machinery/camera/autoname/directional/east{ + camera_construction_state = 1; + camera_enabled = 0 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/hauntedtradingpost/public) + +(1,1,1) = {" +qR +qR +wn +wn +wn +wn +wn +wn +wn +wn +wn +CD +EC +EC +CD +EC +gz +me +Ge +EK +gz +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +"} +(2,1,1) = {" +qR +qR +wn +fA +qP +ZK +wz +yE +RA +sM +wn +lQ +ys +ys +Ni +lQ +gz +TC +Sh +jq +WP +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +"} +(3,1,1) = {" +qR +qR +wn +Dn +hO +xU +WN +zm +WN +mz +wn +MN +LS +El +ru +Vq +gz +HG +WW +FI +WP +qR +TT +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +RH +qR +qR +qR +qR +qR +"} +(4,1,1) = {" +qR +qR +wn +Yq +zd +yU +xU +Zn +xU +wk +wn +cT +oW +VW +oW +vD +gz +cB +gh +Pe +gz +gz +rx +gz +qR +qR +qR +qR +Pv +gK +Pv +Pv +gK +Pv +Gw +Pv +Pv +Gw +Pv +qR +ba +qR +qR +"} +(5,1,1) = {" +qR +qR +wn +xT +kz +Ab +ZU +ZU +xE +wk +wn +PE +iX +tb +tb +Gs +gz +tP +BS +HA +DY +gz +KQ +gz +qR +qR +qR +qR +Pv +bA +bU +Gq +hW +Pv +QF +be +Lt +QF +Pv +qR +yS +qR +qR +"} +(6,1,1) = {" +qR +qR +wn +wn +wn +wn +wn +hF +wn +Qc +wn +Iv +am +og +VW +Ux +gz +RN +uF +xg +dE +gz +mp +gz +NS +qR +qR +NS +Pv +QF +tK +ok +QF +Pv +QF +tK +KC +QF +Pv +qR +kr +qR +qR +"} +(7,1,1) = {" +qR +va +rs +sR +EQ +Uy +hd +TK +rs +IX +IX +IX +Mf +kX +ct +xN +BI +zt +sW +Ri +sW +pO +sW +gz +NS +NS +NS +NS +Pv +bI +qM +Le +Kd +Pv +wQ +Dt +tQ +Kd +Pv +NS +kr +qR +qR +"} +(8,1,1) = {" +qR +At +kG +nh +Ne +Ne +cV +Rb +rs +Ls +FO +xr +Vw +OL +iS +nk +gz +gz +gz +gz +gz +gz +BI +gz +pw +pw +pw +pw +Pv +ga +Pv +Pv +nf +Pv +NZ +Pv +Pv +mf +Pv +NS +kr +NS +NS +"} +(9,1,1) = {" +qR +va +nF +hH +vM +Ro +Aj +YN +Au +AU +vH +IR +qp +ij +JG +DR +rI +iW +rg +oJ +ad +zq +lW +km +tl +cY +JP +gW +tG +rv +DT +tG +xV +Fd +xV +tG +tG +zO +yi +yi +yi +yi +NS +"} +(10,1,1) = {" +qR +At +nF +Aq +Hq +Ro +LF +rs +rs +lQ +lQ +lQ +Mu +lQ +lQ +lQ +lQ +tl +bt +Ie +od +Ld +VQ +IA +nb +yK +Wa +QF +Hz +oz +Uf +QF +QF +Hz +Yw +QF +VP +fK +OE +CZ +sh +yi +qR +"} +(11,1,1) = {" +qR +At +nF +bf +Hq +Mc +FB +Tp +sr +MJ +cv +JJ +cv +cv +en +Li +PU +wK +tj +LM +VQ +ef +Ra +Ct +tl +Kr +Md +oO +bq +UW +LC +Yg +ip +Jx +NY +gn +gv +GS +yi +CZ +Jj +yi +qR +"} +(12,1,1) = {" +qR +At +nF +XB +Hq +Aj +hx +Tp +pS +Nw +DM +DM +Nw +sT +yb +AG +IQ +tl +LQ +PA +aP +qF +tl +tl +tl +uZ +uE +uZ +uZ +uZ +uZ +NH +uZ +uZ +uZ +Rq +Uf +XT +yi +WV +TP +yi +qR +"} +(13,1,1) = {" +qR +At +nF +lI +oF +ra +rs +rs +NB +Nw +Gp +vw +vw +yz +Rv +Li +Li +tl +Ti +qi +VQ +Eu +tl +Af +Qr +CS +db +ix +nG +LO +Mr +uT +dt +UO +uZ +MO +QF +Xh +yi +XR +Zf +yi +qR +"} +(14,1,1) = {" +qR +At +nF +PD +Cz +Aj +AG +bu +fZ +DM +SY +ot +ve +MR +rd +MR +MR +tl +tl +jY +lG +Ft +tl +uq +ta +hr +XJ +dw +dw +tw +BP +uT +sU +bz +uZ +XK +xO +tJ +yi +OE +yi +yi +Bi +"} +(15,1,1) = {" +qR +At +nF +iY +EZ +qL +Li +jk +je +Nw +Ii +ve +QA +lA +nE +IL +MR +MR +tl +dc +UV +TR +tl +tl +RR +uZ +Xz +wX +pc +uZ +YY +uT +HB +dD +DI +QF +QF +gH +yi +CZ +Sj +yi +kr +"} +(16,1,1) = {" +qR +At +rs +OS +QX +DP +Li +xn +Nw +eN +Oh +MR +zQ +Gk +iv +qK +Bg +MR +tl +dU +Xu +tW +VX +tl +Ht +uZ +eE +mh +He +TY +RX +uT +Bc +uZ +uZ +YG +xO +QM +yi +hL +ox +yi +kr +"} +(17,1,1) = {" +qR +qR +rs +rs +rs +sQ +Li +Tl +Bb +wD +rV +WA +iv +iv +ot +XW +pb +MR +tl +YR +LI +aD +Of +tl +QV +Hp +ta +cQ +cQ +bd +Fp +mL +Kl +uZ +Vm +bC +OP +AQ +yi +Qy +kx +yi +kr +"} +(18,1,1) = {" +qR +qR +NS +ur +CU +Dp +Li +WO +BE +yb +Im +MR +kl +Gk +iv +PX +ss +MR +tl +Xe +VA +VQ +hl +Nr +oT +uZ +Lf +Ip +Ip +RU +mT +CJ +hw +uZ +sv +bC +cN +ek +yi +CZ +ic +yi +kr +"} +(19,1,1) = {" +qR +qR +NS +ur +iE +GG +Li +pX +je +Nw +AB +ve +QA +kl +nE +SK +MR +MR +tl +Pd +vm +Bo +cL +tl +Mh +uZ +Rx +aH +aM +Gy +FL +uT +in +uZ +uZ +CF +xO +Fy +yi +WV +cb +yi +kr +"} +(20,1,1) = {" +qR +qR +NS +ur +Px +Ye +TF +bu +bu +DM +SY +ot +ve +MR +bY +MR +MR +kI +tl +tl +tl +wg +tl +tl +BJ +uZ +bd +wX +wX +uZ +Zt +uT +uT +uT +dj +gv +QF +TH +yi +CZ +Uk +yi +kr +"} +(21,1,1) = {" +ur +KO +ur +ur +ur +gV +ur +ur +sB +Nw +xG +Fx +Fx +sx +KZ +Li +kI +kI +lD +nJ +HF +OD +kI +pm +ta +kV +mT +mT +NM +ws +mT +dD +HD +RI +uZ +Ww +xO +Qe +yi +ch +yi +yi +Bi +"} +(22,1,1) = {" +ur +Wv +Rj +Pg +Pq +tL +VJ +Gg +Hj +yb +DM +DM +Nw +je +Nw +Db +ca +hf +JX +co +nZ +FT +kI +hK +vY +bZ +iC +Ry +sN +dD +ZZ +dD +HR +rN +uZ +vv +hW +Xh +yi +CZ +qY +yi +qR +"} +(23,1,1) = {" +ur +Wo +ej +vf +hV +vx +tm +Gg +Lz +bu +cv +gb +zg +bu +du +Li +fg +Jw +wE +rr +Hu +ka +kI +kI +kI +uZ +sk +uZ +uZ +uZ +uZ +DI +uZ +uZ +uZ +LC +Uf +XT +yi +kD +ik +yi +qR +"} +(24,1,1) = {" +ur +Dm +ej +FY +xY +vZ +ur +ur +pz +pz +pz +pz +pz +pz +pz +pz +YB +Ep +Vj +Vl +fu +YI +Nk +Oi +kI +eB +jd +bQ +qb +Pk +LD +Yg +Wu +KH +lT +pg +gv +Wn +yi +CZ +nD +yi +qR +"} +(25,1,1) = {" +ur +YT +ej +dv +sH +BH +ur +jK +pz +kq +ap +lR +Fc +Xj +pj +pz +Vf +Ep +Hw +GA +Hw +uj +Hh +iu +zi +yK +Mx +QF +nC +iD +Uf +QF +QF +fk +iD +QF +Bx +fK +HK +Zi +TI +yi +qR +"} +(26,1,1) = {" +ur +ur +SX +dx +xY +kp +ur +uA +pz +LW +ap +lx +Uu +la +oC +pz +pz +se +YK +Nt +Nt +kE +wy +cC +kI +Ga +sy +pT +tG +xV +XT +tG +xV +tG +sD +tG +cq +mn +yi +yi +yi +yi +NS +"} +(27,1,1) = {" +pG +ur +lc +oB +sH +su +ur +ia +pz +bn +ap +LL +Dg +la +ap +bV +UD +YX +kR +Xy +yF +yF +cO +yF +yF +Mg +yF +pw +Pv +Ic +Pv +Pv +WF +Pv +iH +Pv +Pv +mB +mV +NS +Bi +NS +NS +"} +(28,1,1) = {" +pG +Dz +ej +br +xY +EX +RW +XX +pz +XU +ap +LL +Tz +KF +ap +Ng +yF +yF +yF +yF +yF +xW +Fh +zb +Sl +wH +yF +NS +Pv +wQ +vg +WD +mt +Hb +oN +HX +bx +hX +KI +NS +Zu +qR +qR +"} +(29,1,1) = {" +pG +JY +CR +Re +Qw +dN +ur +ah +UZ +fE +ap +LL +zz +la +ap +mR +yF +oy +YJ +Sx +Fh +Fh +LP +yF +OR +nu +yF +NS +Pv +QF +IN +LG +QF +Pv +uH +gT +JZ +uH +Sy +qR +Zu +qR +qR +"} +(30,1,1) = {" +pG +JY +vr +vf +vf +vr +ur +GC +pz +jL +ap +au +SA +au +ap +YF +yF +HV +SF +HV +KG +SQ +qB +yF +sY +sY +yF +qR +Pv +QF +Br +Bj +qQ +Pv +uH +Di +TB +uH +hT +qR +Bi +qR +qR +"} +(31,1,1) = {" +pG +ur +pB +iU +YZ +xu +ur +uA +pz +wA +YM +JE +YM +ZI +rk +xs +yF +SQ +SQ +SQ +HL +hi +Wg +yF +qR +qR +qR +qR +Pv +XC +Pv +Pv +XC +Pv +bo +Pv +aO +vA +aw +qR +kr +qR +qR +"} +(32,1,1) = {" +FE +pN +IT +jF +cF +dH +pn +jK +pz +RC +Et +DX +TU +DX +DX +iz +yF +SQ +SO +SQ +fW +SQ +cm +yF +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +"} +(33,1,1) = {" +fT +ur +ur +ur +ur +ur +ur +ur +pz +pz +pz +py +yI +yI +pz +pz +yF +yF +yF +yF +yF +gS +yF +yF +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +"} +(34,1,1) = {" +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +tZ +dC +Wf +Wf +Wf +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +qR +"} diff --git a/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm b/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm index 64e7be0705b6b..c925d017ad3a3 100644 --- a/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm +++ b/_maps/RandomRuins/SpaceRuins/infested_frigate.dmm @@ -562,7 +562,7 @@ /obj/machinery/airalarm/directional/north, /obj/effect/mapping_helpers/airalarm/all_access, /obj/machinery/icecream_vat{ - desc = "Waffle co. actually ordered these guys to steal one of these just to be sure." + desc = "Waffle Corp. actually ordered these guys to steal one of these just to be sure." }, /turf/open/floor/plating, /area/ruin/space/has_grav/infested_frigate) @@ -690,7 +690,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/infested_frigate) "kw" = ( -/obj/machinery/vending/boozeomat/syndicate_access, +/obj/machinery/vending/boozeomat/syndicate, /turf/open/floor/iron/freezer, /area/ruin/space/has_grav/infested_frigate) "kS" = ( @@ -856,7 +856,7 @@ icon_state = "floor5-old" }, /obj/item/ammo_casing/spent, -/obj/item/gun/ballistic/automatic/plastikov, +/obj/item/gun/ballistic/automatic/smartgun, /obj/effect/mob_spawn/corpse/human/syndicatepilot, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/infested_frigate) @@ -2790,7 +2790,7 @@ icon_state = "plastitaniumtiny" }, /mob/living/basic/alien/queen/large{ - loot = list(/obj/effect/gibspawner/xeno,/obj/item/ammo_box/magazine/plastikov9mm,/obj/effect/mob_spawn/corpse/human/syndicatecommando/soft_suit); + loot = list(/obj/effect/gibspawner/xeno,/obj/item/ammo_box/magazine/smartgun,/obj/effect/mob_spawn/corpse/human/syndicatecommando/soft_suit); desc = "What you saw in your dreams last night."; faction = list("syndicate","xenomorph") }, diff --git a/_maps/RandomRuins/SpaceRuins/interdyne.dmm b/_maps/RandomRuins/SpaceRuins/interdyne.dmm index cf8c7f8c0d408..9c802b0be434c 100644 --- a/_maps/RandomRuins/SpaceRuins/interdyne.dmm +++ b/_maps/RandomRuins/SpaceRuins/interdyne.dmm @@ -140,7 +140,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) "fS" = ( -/obj/machinery/vending/medical/syndicate_access, +/obj/machinery/vending/medical/syndicate, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) "ga" = ( diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index ade5d068b6ebc..0c3c231b5f225 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -417,6 +417,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/away/general, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) "ce" = ( @@ -724,10 +725,13 @@ /area/ruin/space/ancientstation/delta/hall) "dj" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 6 }, -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/turf/open/floor/iron/dark, /area/ruin/space/ancientstation/beta/mining) "dk" = ( /obj/effect/decal/cleanable/dirt, @@ -958,6 +962,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "em" = ( @@ -970,6 +975,7 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "eo" = ( @@ -1639,9 +1645,7 @@ /area/ruin/space/ancientstation/charlie/hall) "hr" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/dinnerware{ - onstation = 0 - }, +/obj/machinery/vending/dinnerware, /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) "ht" = ( @@ -1698,6 +1702,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hydro) +"hJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/charlie/engie) "hM" = ( /obj/structure/sign/departments/science, /turf/closed/wall, @@ -1788,6 +1797,7 @@ dir = 4 }, /obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/away/general, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) "ic" = ( @@ -2059,6 +2069,10 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/rnd) +"iY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/charlie/engie) "jc" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -2352,9 +2366,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/coffee{ - onstation = 0 - }, +/obj/machinery/vending/coffee, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/dorms) "ku" = ( @@ -2728,9 +2740,7 @@ /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/hall) "lU" = ( -/obj/machinery/vending/hydronutrients{ - onstation = 0 - }, +/obj/machinery/vending/hydronutrients, /obj/effect/turf_decal/tile/green/anticorner/contrasted, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hydro) @@ -2874,6 +2884,12 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, /turf/open/floor/iron, /area/ruin/space/ancientstation/beta/mining) "mC" = ( @@ -2935,10 +2951,8 @@ /area/ruin/space/ancientstation/beta/mining) "mP" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/catwalk_floor, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, /area/ruin/space/ancientstation/beta/supermatter) "mR" = ( /obj/effect/decal/cleanable/dirt, @@ -3029,6 +3043,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ dir = 4 }, +/obj/effect/mapping_helpers/airlock/access/all/away/general, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) "nc" = ( @@ -3057,6 +3072,7 @@ dir = 10 }, /obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/away/general, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) "nf" = ( @@ -3496,6 +3512,7 @@ dir = 1 }, /obj/machinery/computer/apc_control/away, +/obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "pK" = ( @@ -3607,8 +3624,11 @@ /area/ruin/space/ancientstation/delta/hall) "qx" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/airless, /area/ruin/space/ancientstation/beta/supermatter) "qF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2{ @@ -3640,11 +3660,9 @@ "qQ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, /obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/catwalk_floor, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, /area/ruin/space/ancientstation/charlie/engie) "rc" = ( /obj/effect/decal/cleanable/dirt, @@ -3732,6 +3750,10 @@ /obj/effect/mapping_helpers/apc/away_general_access, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) +"rL" = ( +/obj/machinery/atmospherics/components/unary/airlock_pump, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/beta/mining) "rN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3797,6 +3819,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/hall) +"rY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/airless, +/area/ruin/space/ancientstation/beta/supermatter) "si" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, @@ -4237,6 +4266,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/airless, /area/ruin/space/ancientstation/beta/hall) +"vs" = ( +/obj/machinery/light/small/red/directional/east, +/turf/open/floor/iron/dark, +/area/ruin/space/ancientstation/charlie/engie) "vv" = ( /obj/machinery/light/small/directional/south, /obj/structure/closet/crate, @@ -4491,7 +4524,10 @@ "wR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 4 + }, +/turf/open/floor/iron/dark, /area/ruin/space/ancientstation/charlie/engie) "wS" = ( /obj/item/stack/rods, @@ -4619,10 +4655,11 @@ /turf/open/floor/iron/cafeteria, /area/ruin/space/ancientstation/charlie/kitchen) "yk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1 +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to Distro" }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/hall) "yq" = ( @@ -4723,6 +4760,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/effect/mapping_helpers/airlock/access/all/away/general, /turf/open/floor/iron/white/textured_large, /area/ruin/space/ancientstation/delta/biolab) "zm" = ( @@ -4843,6 +4881,7 @@ dir = 4 }, /obj/machinery/firealarm/directional/east, +/obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "zZ" = ( @@ -4851,6 +4890,7 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "Aa" = ( @@ -5084,6 +5124,7 @@ /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "Bz" = ( @@ -5126,6 +5167,7 @@ /area/ruin/space/ancientstation/delta/rnd) "BP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) "BR" = ( @@ -5494,6 +5536,14 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"EI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/ruin/space/ancientstation/delta/hall) "EP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -5753,6 +5803,12 @@ /area/ruin/space/ancientstation/delta/hall) "Gt" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/engie) "Gv" = ( @@ -5778,6 +5834,10 @@ /area/ruin/space/ancientstation/delta/hall) "GJ" = ( /obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) "GK" = ( @@ -5995,6 +6055,7 @@ /obj/machinery/light_switch/directional/west{ pixel_x = -24 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) "Ip" = ( @@ -6290,6 +6351,8 @@ /area/ruin/space/ancientstation/delta/hall) "JR" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor, /area/ruin/space/ancientstation/delta/hall) "JT" = ( @@ -6527,6 +6590,17 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine/o2, /area/ruin/space/ancientstation/beta/atmos) +"Li" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/catwalk_floor, +/area/ruin/space/ancientstation/charlie/engie) "Lm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6833,7 +6907,10 @@ "Ni" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/official/safety_internals/directional/north, -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 4 + }, +/turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/hall) "Np" = ( /obj/effect/decal/cleanable/blood/xtracks{ @@ -6879,7 +6956,10 @@ /turf/open/floor/iron/airless, /area/ruin/space/ancientstation/beta/medbay) "NC" = ( -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 1 + }, +/turf/open/floor/iron/dark/airless, /area/ruin/space/ancientstation/beta/supermatter) "ND" = ( /obj/structure/window/reinforced/spawner/directional/west, @@ -7154,10 +7234,8 @@ /area/ruin/space/ancientstation/charlie/sec) "Po" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/catwalk_floor, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, /area/ruin/space/ancientstation/delta/hall) "Pq" = ( /obj/machinery/door/airlock/science, @@ -7395,6 +7473,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) +"Rd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plating, +/area/ruin/space/ancientstation/charlie/engie) "Rf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -7653,6 +7743,12 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/engie) "Tg" = ( @@ -7816,10 +7912,9 @@ /area/ruin/space/solars/ancientstation/charlie/solars) "Ui" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, /area/ruin/space/ancientstation/delta/hall) "Uj" = ( /obj/structure/girder, @@ -7861,6 +7956,12 @@ /turf/open/floor/iron/white, /area/ruin/space/ancientstation/charlie/hall) "Us" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, /turf/open/floor/catwalk_floor, /area/ruin/space/ancientstation/beta/mining) "Uu" = ( @@ -7891,6 +7992,10 @@ "UN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine/airless, /area/ruin/space/ancientstation/beta/supermatter) "UP" = ( @@ -8016,8 +8121,8 @@ /area/ruin/space/ancientstation/beta/supermatter) "VU" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/catwalk_floor, +/obj/effect/mapping_helpers/airlock/access/all/away/general, +/turf/open/floor/iron/dark/airless, /area/ruin/space/ancientstation/beta/mining) "VV" = ( /turf/open/floor/plating, @@ -8028,12 +8133,15 @@ /area/ruin/space/ancientstation/delta/biolab) "Wa" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, /obj/structure/cable, /obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/catwalk_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/iron/dark, /area/ruin/space/ancientstation/charlie/engie) "Wd" = ( /obj/effect/decal/cleanable/blood/xtracks{ @@ -8057,6 +8165,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/structure/sign/warning/vacuum/directional/west, /turf/open/floor/iron, /area/ruin/space/ancientstation/charlie/engie) "Wp" = ( @@ -8239,6 +8348,12 @@ "XJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4{ + dir = 5 + }, /turf/open/floor/plating, /area/ruin/space/ancientstation/charlie/engie) "XK" = ( @@ -8593,6 +8708,14 @@ }, /turf/open/floor/iron, /area/ruin/space/ancientstation/delta/hall) +"ZN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine/airless, +/area/ruin/space/ancientstation/beta/supermatter) "ZP" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -10593,9 +10716,9 @@ iv Qi ZD Hj -Hj +ZN qx -NC +rY NC mP Jg @@ -11164,11 +11287,11 @@ aa aa aa VU -Us +rL Us dj mB -mG +cm cm gh mM @@ -11177,10 +11300,10 @@ mZ RR aa aa -aa -aa -aa -aa +JB +JB +JB +my dH dH my @@ -11250,7 +11373,7 @@ aa my aa aa -my +aa aa Jg aa @@ -11316,7 +11439,7 @@ aa my aa aa -JB +aa aa Jg aa @@ -11377,12 +11500,12 @@ aa aa aa aa -aa +eI Ma qQ -Ma +eI +aa aa -JB aa Jg aa @@ -11443,12 +11566,12 @@ aa aa aa aa -aa Ma +iY wR Ma aa -JB +aa aa Jg aa @@ -11509,9 +11632,9 @@ aa aa aa aa -aa Ma -wR +vs +Li Ma aa aa @@ -11575,7 +11698,7 @@ aa Ma Ma eI -Ma +dl eI Wa eI @@ -11771,11 +11894,11 @@ mS kQ oy em -em +kJ em fe fE -fE +Rd fE fe em @@ -11837,7 +11960,7 @@ mY kQ AX em -ju +hJ eM pn fF @@ -14019,7 +14142,7 @@ MS EE cD Dg -cD +EI yq cD TA diff --git a/_maps/RandomRuins/SpaceRuins/phonebooth.dmm b/_maps/RandomRuins/SpaceRuins/phonebooth.dmm index 9f766e42f850b..1cf0f64e7ff0a 100644 --- a/_maps/RandomRuins/SpaceRuins/phonebooth.dmm +++ b/_maps/RandomRuins/SpaceRuins/phonebooth.dmm @@ -13,7 +13,7 @@ /area/ruin/space/has_grav/powered/space_phone_booth) "k" = ( /obj/machinery/vending/snack/green{ - onstation_override = 1 + all_products_free = 1 }, /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating/airless, @@ -23,9 +23,8 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, -/obj/machinery/atmospherics/components/tank/air{ - dir = 8; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 8 }, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/airless, @@ -67,7 +66,7 @@ /area/ruin/space/has_grav/powered/space_phone_booth) "W" = ( /obj/machinery/vending/cigarette{ - onstation_override = 1 + all_products_free = 0 }, /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating/airless, diff --git a/_maps/RandomRuins/SpaceRuins/spinwardsmoothies.dmm b/_maps/RandomRuins/SpaceRuins/spinwardsmoothies.dmm index 91f7771f0ea69..1ac14090b39ce 100644 --- a/_maps/RandomRuins/SpaceRuins/spinwardsmoothies.dmm +++ b/_maps/RandomRuins/SpaceRuins/spinwardsmoothies.dmm @@ -44,9 +44,7 @@ }, /area/ruin/space/has_grav/spinwardsmoothies) "ti" = ( -/obj/machinery/vending/boozeomat/all_access{ - onstation = 0 - }, +/obj/machinery/vending/boozeomat, /turf/open/floor/wood/tile, /area/ruin/space/has_grav/spinwardsmoothies) "wv" = ( diff --git a/_maps/RandomRuins/SpaceRuins/waystation.dmm b/_maps/RandomRuins/SpaceRuins/waystation.dmm index 38f8fcbac8cdd..312eb4d9bca59 100644 --- a/_maps/RandomRuins/SpaceRuins/waystation.dmm +++ b/_maps/RandomRuins/SpaceRuins/waystation.dmm @@ -1264,7 +1264,7 @@ }, /obj/structure/table/reinforced, /obj/machinery/button/door/directional/north{ - desc = "A door remote control switch. From the looks of it, It seems to be broken after being pressed too hard, it's bloody handprint still visible."; + desc = "A door remote control switch. From the looks of it, It seems to be broken after being pressed too hard, its bloody handprint still visible."; name = "Vault Lockdown" }, /obj/item/modular_computer/laptop/preset/civilian, diff --git a/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm b/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm index 602aa1a273b9d..12bc608bda910 100644 --- a/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm +++ b/_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm @@ -1331,9 +1331,7 @@ /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 8 }, -/obj/machinery/vending/medical{ - onstation = 0 - }, +/obj/machinery/vending/medical, /turf/open/floor/iron/showroomfloor/airless, /area/ruin/space/has_grav/whiteship/box) "PV" = ( diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index 3b5c32345c0e3..0c30bb3c51d51 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -598,7 +598,7 @@ /turf/open/floor/iron/freezer, /area/awaymission/cabin) "cH" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowcabin, /obj/structure/cable, /turf/open/floor/wood, /area/awaymission/cabin) @@ -660,7 +660,7 @@ /turf/open/floor/iron/white, /area/awaymission/cabin) "cQ" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowcabin, /obj/structure/cable, /turf/open/floor/carpet, /area/awaymission/cabin) @@ -2904,7 +2904,7 @@ /area/awaymission/cabin/snowforest) "rk" = ( /obj/machinery/light/directional/south, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowcabin, /obj/structure/sign/poster/official/report_crimes/directional/south, /obj/structure/cable, /turf/open/floor/carpet, @@ -4122,7 +4122,7 @@ pixel_x = -1; pixel_y = 10 }, -/obj/item/gun/ballistic/shotgun/toy/unrestricted{ +/obj/item/gun/ballistic/shotgun/toy{ pixel_y = -2 }, /obj/effect/light_emitter{ diff --git a/_maps/RandomZLevels/TheBeach.dmm b/_maps/RandomZLevels/TheBeach.dmm index c7a097a02ad17..d179a7dc5148c 100644 --- a/_maps/RandomZLevels/TheBeach.dmm +++ b/_maps/RandomZLevels/TheBeach.dmm @@ -102,6 +102,17 @@ "bi" = ( /turf/open/floor/iron/white/textured_large, /area/awaymission/beach) +"bo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/turf_decal/tile/dark/half{ + pixel_y = -1; + pixel_x = 5; + dir = 8 + }, +/turf/open/water/beach, +/area/awaymission/beach) "bx" = ( /obj/effect/turf_decal/sand, /obj/machinery/door/airlock/wood{ @@ -278,16 +289,6 @@ /obj/structure/musician/piano, /turf/open/floor/wood, /area/awaymission/beach) -"dx" = ( -/obj/structure/sign/directions/dorms/directional/north{ - pixel_y = 35 - }, -/obj/structure/sign/directions/medical/directional/north{ - pixel_y = 29 - }, -/obj/machinery/computer/slot_machine, -/turf/open/floor/wood/large, -/area/awaymission/beach) "dL" = ( /obj/machinery/door/airlock/public/glass{ name = "Locker Room" @@ -505,6 +506,10 @@ }, /turf/closed/wall/mineral/wood, /area/awaymission/beach) +"gq" = ( +/obj/item/broken_bottle, +/turf/open/misc/beach/sand, +/area/awaymission/beach) "gw" = ( /obj/item/stack/sheet/mineral/sandstone{ pixel_x = -8 @@ -733,7 +738,7 @@ /turf/open/floor/iron/white/textured_large, /area/awaymission/beach) "jF" = ( -/obj/machinery/vending/boozeomat/all_access{ +/obj/machinery/vending/boozeomat{ desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. May not work for bartenders that don't have Nanotrasen bank accounts." }, /turf/open/floor/wood/large, @@ -894,17 +899,6 @@ /obj/structure/table/wood, /turf/open/floor/wood/large, /area/awaymission/beach) -"lk" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/effect/turf_decal/tile/dark/half{ - pixel_y = -1; - pixel_x = 5; - dir = 8 - }, -/turf/open/water/beach, -/area/awaymission/beach) "ll" = ( /obj/machinery/door/airlock/wood{ name = "Room 11"; @@ -1191,6 +1185,10 @@ }, /turf/open/misc/beach/sand, /area/awaymission/beach) +"pq" = ( +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/misc/beach/sand, +/area/awaymission/beach) "pr" = ( /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind{ pixel_x = -17; @@ -1688,7 +1686,7 @@ "vq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/beach, /turf/open/floor/plating, /area/awaymission/beach) "vx" = ( @@ -2573,13 +2571,6 @@ }, /turf/open/misc/beach/sand, /area/awaymission/beach) -"FJ" = ( -/obj/item/instrument/guitar{ - pixel_y = 4; - pixel_x = -1 - }, -/turf/open/misc/beach/coast, -/area/awaymission/beach) "FK" = ( /obj/item/toy/seashell{ pixel_x = 12; @@ -2775,7 +2766,7 @@ /turf/open/floor/iron/white/textured_large, /area/awaymission/beach) "Il" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /turf/open/misc/beach/sand, /area/awaymission/beach) "It" = ( @@ -2856,6 +2847,17 @@ /obj/machinery/light/directional/west, /turf/open/floor/wood/large, /area/awaymission/beach) +"Jv" = ( +/obj/item/paper/fluff/old_pirate_note{ + pixel_x = -5; + pixel_y = -7 + }, +/obj/item/pen/fountain{ + pixel_y = -11; + pixel_x = -8 + }, +/turf/open/misc/beach/sand, +/area/awaymission/beach) "JF" = ( /obj/structure/marker_beacon/burgundy, /turf/open/water/beach, @@ -2960,6 +2962,13 @@ }, /turf/open/misc/beach/sand, /area/awaymission/beach) +"KQ" = ( +/obj/item/instrument/guitar{ + pixel_y = 4; + pixel_x = -1 + }, +/turf/open/misc/beach/coast, +/area/awaymission/beach) "KV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, @@ -3330,6 +3339,12 @@ }, /turf/open/misc/beach/sand, /area/awaymission/beach) +"Pb" = ( +/obj/item/fishing_rod, +/obj/structure/closet/crate/trashcart, +/obj/item/reagent_containers/cup/glass/bottle/rum/aged, +/turf/open/misc/beach/sand, +/area/awaymission/beach) "Pe" = ( /turf/open/misc/beach/coast{ dir = 5 @@ -3378,6 +3393,11 @@ }, /turf/open/misc/beach/sand, /area/awaymission/beach) +"PU" = ( +/obj/effect/mob_spawn/corpse/human/old_pirate_captain, +/obj/structure/bed/maint, +/turf/open/misc/beach/sand, +/area/awaymission/beach) "Qe" = ( /obj/effect/turf_decal/sand, /obj/machinery/door/airlock/wood{ @@ -3586,7 +3606,7 @@ /area/awaymission/beach) "SB" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/beach, /turf/open/floor/plating, /area/awaymission/beach) "SI" = ( @@ -3996,6 +4016,16 @@ "Zp" = ( /turf/open/floor/wood/large, /area/awaymission/beach) +"Zs" = ( +/obj/structure/sign/directions/dorms/directional/north{ + pixel_y = 35 + }, +/obj/structure/sign/directions/medical/directional/north{ + pixel_y = 29 + }, +/obj/machinery/computer/slot_machine, +/turf/open/floor/wood/large, +/area/awaymission/beach) "Zt" = ( /obj/structure/table/bronze, /obj/item/storage/toolbox/fishing{ @@ -7415,8 +7445,8 @@ XB XB Vf YV -VY -VY +Pb +gq hL ni XB @@ -7672,8 +7702,8 @@ XB XB Vf VY -VY -VY +pq +PU Er BK XB @@ -7929,7 +7959,7 @@ XB XB Vf VY -VY +Jv VY VY BK @@ -8187,7 +8217,7 @@ XB Vf IZ VY -VY +pq VY BK XB @@ -13210,7 +13240,7 @@ xv xv xv xv -dx +Zs Zp Zp mb @@ -16284,7 +16314,7 @@ vx Bq Xd Ej -lk +bo LC XB XB @@ -29420,7 +29450,7 @@ VY VY Rn VY -FJ +KQ xv CG Gh diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index c64aa99d1aab6..a21d64d505b63 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -480,7 +480,7 @@ /turf/open/floor/plating, /area/awaymission/caves/research) "cR" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/caves, /turf/open/floor/plating, /area/awaymission/caves/research) "cS" = ( @@ -610,7 +610,7 @@ "dw" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/caves, /turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid/level_two) "dx" = ( @@ -653,7 +653,7 @@ "dH" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/caves, /turf/open/floor/wood, /area/awaymission/caves/northblock) "dI" = ( @@ -705,7 +705,7 @@ /obj/structure/bed, /obj/item/bedsheet, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/caves, /turf/open/floor/wood, /area/awaymission/caves/northblock) "ea" = ( @@ -714,7 +714,7 @@ /area/awaymission/caves/northblock) "ed" = ( /obj/structure/bed, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/caves, /turf/open/floor/wood, /area/awaymission/caves/northblock) "ee" = ( @@ -849,7 +849,7 @@ /turf/open/floor/iron, /area/awaymission/caves/listeningpost) "eO" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/caves, /turf/open/floor/iron, /area/awaymission/caves/listeningpost) "eP" = ( @@ -1584,7 +1584,7 @@ }, /area/awaymission/caves/bmp_asteroid/level_two) "Bs" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/caves, /turf/open/misc/asteroid/basalt{ initial_gas_mix = "n2=23;o2=14;TEMP=2.7" }, diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 3a4e4c8affed6..a8f52784b343a 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -1903,14 +1903,14 @@ /turf/open/floor/mineral/titanium/yellow, /area/awaymission/moonoutpost19/arrivals) "ms" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/moonoutpost, /turf/open/floor/mineral/titanium/blue, /area/awaymission/moonoutpost19/arrivals) "mt" = ( /obj/structure/chair{ dir = 8 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/moonoutpost, /turf/open/floor/mineral/titanium/blue, /area/awaymission/moonoutpost19/arrivals) "mu" = ( @@ -1955,7 +1955,7 @@ /turf/open/floor/mineral/titanium/yellow, /area/awaymission/moonoutpost19/arrivals) "mI" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/moonoutpost, /turf/open/floor/mineral/titanium/yellow, /area/awaymission/moonoutpost19/arrivals) "mJ" = ( @@ -1965,7 +1965,7 @@ icon_state = "beacon"; name = "tracking beacon" }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/moonoutpost, /turf/open/floor/mineral/titanium/yellow, /area/awaymission/moonoutpost19/arrivals) "mK" = ( diff --git a/_maps/RandomZLevels/museum.dmm b/_maps/RandomZLevels/museum.dmm index 2937250b1f9ba..d9c7d0aa705a6 100644 --- a/_maps/RandomZLevels/museum.dmm +++ b/_maps/RandomZLevels/museum.dmm @@ -1235,7 +1235,7 @@ }, /obj/item/reagent_containers/cup/glass/coffee, /obj/item/paper/fluff/scrambled_pass{ - puzzle_id = "museum_r_wing_puzzle" + puzzle_id = "museum_right_wing" }, /turf/open/floor/iron/dark, /area/awaymission/museum) @@ -1426,7 +1426,7 @@ /turf/open/indestructible/plating, /area/awaymission/museum) "lz" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/museum, /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/grass, /area/awaymission/museum) @@ -2720,7 +2720,7 @@ "wi" = ( /obj/machinery/door/poddoor/shutters/indestructible{ dir = 8; - id = "museum_secret" + id = "museum_right_wing" }, /turf/open/floor/iron, /area/awaymission/museum) @@ -3095,7 +3095,7 @@ /turf/open/floor/iron/smooth_large, /area/awaymission/museum) "zd" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/museum, /turf/open/floor/grass, /area/awaymission/museum) "zg" = ( @@ -3128,7 +3128,7 @@ /turf/open/floor/bluespace, /area/awaymission/museum) "zC" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/wood/tile, /area/awaymission/museum) "zE" = ( @@ -3958,7 +3958,7 @@ /area/awaymission/museum) "FO" = ( /obj/effect/decal/cleanable/crayon/puzzle/pin{ - puzzle_id = "museum_r_wing_puzzle" + puzzle_id = "museum_right_wing" }, /turf/closed/indestructible/reinforced, /area/awaymission/museum) @@ -4152,7 +4152,7 @@ /obj/effect/turf_decal/siding/dark_blue, /obj/machinery/door/poddoor/shutters/indestructible{ dir = 8; - id = "museum_secret" + id = "museum_right_wing" }, /turf/open/floor/iron/dark, /area/awaymission/museum) @@ -4221,7 +4221,7 @@ /area/awaymission/museum) "Id" = ( /obj/effect/decal/cleanable/crayon/puzzle/pin{ - puzzle_id = "museum_r_wing_puzzle" + puzzle_id = "museum_right_wing" }, /turf/closed/indestructible/wood, /area/awaymission/museum) @@ -4503,7 +4503,7 @@ }, /area/awaymission/museum) "KN" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/museum, /obj/effect/turf_decal/siding/wood{ dir = 1 }, @@ -5246,7 +5246,7 @@ /obj/structure/fluff/fake_camera, /obj/effect/decal/puzzle_dots{ pixel_y = -32; - id = "museum_r_wing_puzzle" + id = "museum_right_wing" }, /turf/open/floor/iron/dark, /area/awaymission/museum) @@ -5332,10 +5332,10 @@ }, /obj/machinery/door/poddoor/shutters/indestructible{ dir = 8; - id = "museum_secret" + id = "museum_right_wing" }, /obj/machinery/puzzle/password/pin/directional/south{ - id = "museum_r_wing_puzzle"; + id = "museum_right_wing"; late_initialize_pop = 1 }, /turf/open/floor/iron/dark, @@ -5349,7 +5349,7 @@ /obj/machinery/light/directional/west, /obj/effect/decal/cleanable/crayon/puzzle/pin{ pixel_x = -32; - puzzle_id = "museum_r_wing_puzzle" + puzzle_id = "museum_right_wing" }, /turf/open/floor/iron/white/small, /area/awaymission/museum) @@ -34926,7 +34926,7 @@ FK FK FK FK -FO +FK FK FK FK @@ -37490,7 +37490,7 @@ GQ FK FK vb -FK +FO FK FK PP diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index 1e84014fa0e1b..ae1814b7d7096 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -389,7 +389,7 @@ /turf/open/floor/iron/dark, /area/awaymission/research/interior/gateway) "bR" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /turf/open/floor/iron/dark, /area/awaymission/research/interior/gateway) "bS" = ( @@ -438,7 +438,7 @@ /turf/open/floor/iron/dark, /area/awaymission/research/interior/gateway) "bZ" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /obj/effect/turf_decal/stripes/line, /obj/structure/cable, /turf/open/floor/iron/dark, @@ -481,12 +481,12 @@ /area/awaymission/research/interior/gateway) "cj" = ( /obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /turf/open/floor/iron/dark, /area/awaymission/research/interior/gateway) "ck" = ( /obj/machinery/door/window/right/directional/south, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /obj/structure/cable, /turf/open/floor/iron/dark, /area/awaymission/research/interior/gateway) @@ -1761,7 +1761,7 @@ /obj/structure/toilet{ dir = 8 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/awaymission/research/interior/bathroom) @@ -2007,7 +2007,7 @@ "jU" = ( /obj/structure/bed, /obj/item/bedsheet/blue, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /turf/open/floor/wood, /area/awaymission/research/interior/dorm) "jV" = ( @@ -2505,7 +2505,7 @@ "lT" = ( /obj/structure/bed, /obj/item/bedsheet/patriot, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /turf/open/floor/wood, /area/awaymission/research/interior/dorm) "lX" = ( @@ -2976,7 +2976,7 @@ /area/awaymission/research/interior) "sM" = ( /obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/research, /obj/structure/cable, /turf/open/floor/iron/dark, /area/awaymission/research/interior/gateway) diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index ee207f21e86d6..be1301a9fbabf 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -172,23 +172,16 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/research) "aQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aR" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/item/bedsheet/purple, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) @@ -196,21 +189,14 @@ /turf/closed/wall, /area/awaymission/snowdin/post/dorm) "aT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/bedsheet/purple, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aU" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) @@ -218,63 +204,42 @@ /turf/closed/wall/rust, /area/awaymission/snowdin/post/dorm) "aW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aX" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aZ" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/item/bedsheet/orange, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "ba" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/sign/poster/contraband/kudzu/directional/north, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bb" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/item/paper/crumpled/ruins/snowdin/dontdeadopeninside, /obj/item/bedsheet/green, /turf/open/floor/wood, @@ -299,11 +264,7 @@ /turf/closed/indestructible/rock/snow/ice, /area/awaymission/snowdin/cave/cavern) "bi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -325,11 +286,7 @@ /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "bl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -385,29 +342,17 @@ /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "bw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/kitchenspike, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "bx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, @@ -430,12 +375,7 @@ /area/awaymission/snowdin/post/research) "bF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/research) @@ -453,33 +393,18 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "bH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "bI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "bJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) @@ -489,16 +414,12 @@ /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "bM" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "bN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/spider/stickyweb, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) @@ -513,11 +434,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "bQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormresearch3"; @@ -526,11 +443,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormresearch2"; @@ -539,11 +452,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormresearch1"; @@ -552,11 +461,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormhydro2"; @@ -566,11 +471,7 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "bU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ id_tag = "snowdindormhydro1"; @@ -580,11 +481,7 @@ /area/awaymission/snowdin/post/dorm) "bV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -613,11 +510,7 @@ /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) "cc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/kitchenspike, /obj/structure/spider/stickyweb, /turf/open/floor/iron/freezer, @@ -650,11 +543,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/light/directional/north, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) @@ -673,11 +562,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -695,11 +580,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) @@ -712,11 +593,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -729,11 +606,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -748,11 +621,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -770,11 +639,7 @@ /area/awaymission/snowdin/post/research) "cA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, @@ -816,12 +681,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/spider/stickyweb, /turf/open/floor/iron/freezer, /area/awaymission/snowdin/post/kitchen) @@ -829,12 +689,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock{ name = "Freezer" }, @@ -846,24 +701,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/kitchen/fork, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -872,63 +717,33 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) "cO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) "cP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/holopad, /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/kitchen) "cR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/kitchen) "cS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/food/egg_smudge, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -949,23 +764,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "cW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -974,12 +779,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -988,21 +788,12 @@ /area/awaymission/snowdin/post/dorm) "cY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "cZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1011,12 +802,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "da" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1026,34 +812,20 @@ /area/awaymission/snowdin/post/dorm) "db" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "dd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "de" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1062,21 +834,12 @@ /area/awaymission/snowdin/post/dorm) "df" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "dg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1088,12 +851,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "dh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -1101,12 +859,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "di" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -1117,12 +870,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/research) @@ -1163,11 +911,7 @@ /area/awaymission/snowdin/post/kitchen) "dt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/food/flour, /obj/structure/cable, /turf/open/floor/plating, @@ -1245,11 +989,7 @@ /area/awaymission/snowdin/post) "dL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, @@ -1325,11 +1065,7 @@ /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "eb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/sign/poster/contraband/lusty_xenomorph/directional/east, /obj/structure/table/wood, /obj/item/paper_bin, @@ -1355,12 +1091,8 @@ /area/awaymission/snowdin/post/dorm) "eh" = ( /obj/structure/bed, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/landmark/awaystart, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/landmark/awaystart/snowdin, /obj/item/bedsheet/red, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, @@ -1371,11 +1103,7 @@ /area/awaymission/snowdin/post) "ej" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post) @@ -1434,11 +1162,7 @@ /area/awaymission/snowdin/post/kitchen) "ez" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -1500,11 +1224,7 @@ /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "eP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "eQ" = ( @@ -1514,12 +1234,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "eR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -1531,12 +1246,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) @@ -1544,12 +1254,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock{ id_tag = "snowdindormsec"; name = "James Reed's Private Quarters" @@ -1560,12 +1265,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) @@ -1573,22 +1273,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/trash/cheesie, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "eW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/trash/cheesie, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) @@ -1622,11 +1312,7 @@ /area/awaymission/snowdin/post/research) "fd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/plating, @@ -1657,11 +1343,7 @@ /area/awaymission/snowdin/post/messhall) "fj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/public/glass{ name = "Kitchen" }, @@ -1724,12 +1406,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "fu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /turf/open/floor/plating, @@ -1745,11 +1422,7 @@ /area/awaymission/snowdin/post) "fx" = ( /obj/item/reagent_containers/blood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -1828,11 +1501,7 @@ /area/awaymission/snowdin/post/hydro) "fQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) @@ -1851,11 +1520,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/hydro) "fV" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 4 @@ -1907,11 +1572,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/cave) "gh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) @@ -1919,11 +1580,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -1956,11 +1613,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/cave/mountain) "gm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/closet/crate, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/suit/hooded/wintercoat, @@ -1968,12 +1621,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "gn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -1981,37 +1629,14 @@ /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "go" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/awaymission/snowdin/post) -"gp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "gq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -2084,11 +1709,7 @@ /area/awaymission/snowdin/post/hydro) "gF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -2118,11 +1739,7 @@ /area/awaymission/snowdin/post/hydro) "gL" = ( /obj/structure/sink/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) @@ -2185,12 +1802,7 @@ /turf/closed/mineral/diamond/ice, /area/awaymission/snowdin/cave/cavern) "gZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -2204,12 +1816,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -2220,12 +1827,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/maintenance{ name = "Misc Storage" }, @@ -2233,33 +1835,18 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "hc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "hd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "he" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/closet/crate/preopen, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/shoes/winterboots, @@ -2299,10 +1886,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "ho" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/mining_main/mechbay) "hp" = ( @@ -2325,11 +1909,6 @@ }, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) -"ht" = ( -/obj/structure/table, -/obj/item/trash/waffles, -/turf/open/floor/iron/cafeteria, -/area/awaymission/snowdin/post/messhall) "hu" = ( /obj/structure/chair{ dir = 8 @@ -2360,11 +1939,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "hA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "hB" = ( @@ -2418,24 +1993,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/carpet, /area/awaymission/snowdin/post/dorm) "hJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock{ id_tag = "snowdindormcap"; name = "Overseer's Private Quarters" @@ -2446,24 +2011,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "hL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2486,11 +2041,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "hO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -2504,11 +2055,7 @@ /area/awaymission/snowdin/post) "hP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /obj/structure/cable, @@ -2521,24 +2068,20 @@ /area/awaymission/snowdin/post/gateway) "hR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "hS" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/turf_decal/loading_area, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "hT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/landmark/awaystart, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) @@ -2551,11 +2094,7 @@ /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "hW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "hX" = ( @@ -2568,11 +2107,7 @@ /area/awaymission/snowdin/post/hydro) "hY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/hydro) @@ -2591,15 +2126,6 @@ /obj/structure/fireaxecabinet/directional/north, /turf/open/floor/plating, /area/awaymission/snowdin/post/secpost) -"ib" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/awaymission/snowdin/post/hydro) "ic" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/closed/wall/ice, @@ -2660,22 +2186,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "ip" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2683,12 +2199,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "iq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2699,12 +2210,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "ir" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -2715,12 +2221,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "is" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2735,12 +2236,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "it" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2751,11 +2247,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "iu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -2767,12 +2259,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -2782,12 +2269,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/sign/departments/medbay/directional/north, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -2815,33 +2297,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 5 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "iB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "iC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/landmark/awaystart, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/landmark/awaystart/snowdin, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "iD" = ( @@ -2862,11 +2334,7 @@ /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "iH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "iI" = ( @@ -2885,11 +2353,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "iL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 }, @@ -2908,23 +2372,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "iP" = ( /obj/machinery/light/directional/north, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2932,12 +2386,7 @@ /area/awaymission/snowdin/post/garage) "iQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2947,24 +2396,14 @@ /obj/machinery/door/airlock/public/glass{ name = "Garage" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "iS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -2972,12 +2411,7 @@ /area/awaymission/snowdin/post/garage) "iT" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -2991,12 +2425,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "iV" = ( @@ -3004,12 +2433,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "iW" = ( @@ -3041,12 +2465,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/storage/box{ name = "box of donkpockets" }, @@ -3070,11 +2489,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/dorm) "jh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -3120,12 +2535,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "jp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -3134,12 +2544,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "jq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3148,12 +2553,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "jr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -3174,18 +2574,14 @@ /turf/open/floor/iron/white, /area/awaymission/snowdin/post/minipost) "ju" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/awaymission/snowdin/post/gateway) "jv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/landmark/awaystart, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3215,20 +2611,12 @@ /area/awaymission/snowdin/post/messhall) "jz" = ( /obj/structure/table, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/kitchen/fork, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "jB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/sink/directional/west, /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 @@ -3257,13 +2645,9 @@ /obj/structure/chair{ dir = 4 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "jF" = ( @@ -3287,21 +2671,14 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "jJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "jK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -3325,11 +2702,7 @@ }, /area/awaymission/snowdin/cave/cavern) "jP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock{ name = "Bathroom" @@ -3356,11 +2729,7 @@ /area/awaymission/snowdin/post) "jV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, @@ -3385,11 +2754,7 @@ /area/awaymission/snowdin/post/gateway) "jZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/poddoor/shutters/preopen{ id = "snowdin_gate" }, @@ -3406,11 +2771,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) "kc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) @@ -3436,41 +2797,23 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "ki" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "kj" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "kk" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -3505,21 +2848,12 @@ /turf/closed/wall/ice, /area/awaymission/snowdin/cave/mountain) "kv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -3527,12 +2861,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3540,12 +2869,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "ky" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3555,37 +2879,15 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) -"kA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/showroomfloor, -/area/awaymission/snowdin/post/dorm) "kB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "kF" = ( @@ -3615,11 +2917,7 @@ /area/awaymission/snowdin/post) "kK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -3685,11 +2983,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "kV" = ( @@ -3718,11 +3012,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "kZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -3733,11 +3023,7 @@ /area/awaymission/snowdin/post/mining_main/mechbay) "lb" = ( /obj/machinery/light/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -3751,12 +3037,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "lf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -3771,12 +3052,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "lj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "lk" = ( @@ -3788,22 +3064,13 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "lm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/mop_bucket/janitorialcart, /obj/item/mop, /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "lo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -3815,12 +3082,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/two, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3830,12 +3092,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/three, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -3846,12 +3103,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/four, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3861,12 +3113,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/five, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -3876,12 +3123,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/six, /obj/structure/cable, /turf/open/floor/iron, @@ -3890,23 +3132,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/snowdin_station_sign/up/seven, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post) "lv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /turf/open/floor/iron, @@ -3915,12 +3148,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post) @@ -3928,12 +3156,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -3948,23 +3171,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/firedoor, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "lz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -3972,12 +3185,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) "lA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -3985,12 +3193,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/messhall) "lB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4001,12 +3204,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) @@ -4014,21 +3212,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "lE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4041,12 +3230,7 @@ /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) "lF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -4054,11 +3238,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "lG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -4067,24 +3247,14 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "lH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/hydro) "lI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /turf/open/floor/iron, @@ -4099,33 +3269,14 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "lK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/awaymission/snowdin/post/hydro) -"lL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post/hydro) "lM" = ( /obj/machinery/door/airlock/external/glass/ruin, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -4136,12 +3287,7 @@ /area/awaymission/snowdin/post/garage) "lO" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -4149,12 +3295,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "lP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4165,24 +3306,14 @@ /obj/machinery/door/airlock{ name = "Mechanic's Quarters" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) "lR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, @@ -4229,12 +3360,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "mb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4242,12 +3368,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "mc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4261,12 +3382,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -4274,12 +3390,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "me" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 1 }, @@ -4287,12 +3398,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "mf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4348,11 +3454,7 @@ /area/awaymission/snowdin/post/messhall) "mo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/awaymission/snowdin/post/messhall) @@ -4405,12 +3507,7 @@ /turf/open/floor/plating/snowed/smoothed, /area/awaymission/snowdin/outside) "my" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "mz" = ( @@ -4421,7 +3518,7 @@ /obj/structure/chair{ dir = 8 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/garage) @@ -4451,22 +3548,13 @@ /area/awaymission/snowdin/post/custodials) "mI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/awaymission/snowdin/post) "mJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -4500,11 +3588,7 @@ /area/awaymission/snowdin/post/messhall) "mP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/engineering/glass{ name = "Engineering" }, @@ -4530,11 +3614,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "mT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) @@ -4589,12 +3670,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "ne" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 }, @@ -4603,12 +3679,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "nf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -4621,49 +3692,20 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "nh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/plating, /area/awaymission/snowdin/post) "ni" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post) -"nj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/awaymission/snowdin/post) -"nk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 10; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/awaymission/snowdin/post) "nl" = ( /obj/effect/baseturf_helper/asteroid/snow, /turf/closed/wall, @@ -4676,11 +3718,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "np" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -4780,11 +3818,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "nM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post) @@ -4811,11 +3845,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "nR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -4867,11 +3897,7 @@ /turf/closed/wall, /area/awaymission/snowdin/post/secpost) "of" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/cable, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -4914,32 +3940,17 @@ /area/awaymission/snowdin/post/engineering) "on" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "oo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "op" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) "or" = ( @@ -5006,43 +4017,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/secpost) "oE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/awaymission/snowdin/post/secpost) "oF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post/secpost) "oG" = ( /obj/structure/table, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 }, @@ -5067,11 +4058,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "oK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -5079,11 +4066,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "oL" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -5105,11 +4088,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) "oO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) @@ -5267,23 +4246,13 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post) "ps" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/awaymission/snowdin/post) "pt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, @@ -5299,11 +4268,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) "pv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible{ dir = 8 }, @@ -5406,14 +4371,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/awaymission/snowdin/post) -"pQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/awaymission/snowdin/post) "pR" = ( /obj/structure/closet/emcloset, /obj/item/clothing/suit/hooded/wintercoat, @@ -5427,11 +4384,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "pT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible{ dir = 5 }, @@ -5592,11 +4545,7 @@ /area/awaymission/snowdin/post) "qs" = ( /obj/machinery/door/airlock/external/glass/ruin, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/barricade/wooden/crude, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, @@ -5605,28 +4554,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /obj/machinery/power/terminal{ dir = 8 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) -"qu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/awaymission/snowdin/post/engineering) "qv" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ name = "Air Mix To Turbine Mix" @@ -5690,7 +4624,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/post/custodials) "qF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/cavern2) "qG" = ( @@ -5738,11 +4672,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/engineering) "qS" = ( @@ -5823,9 +4753,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern2) "rd" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern2) @@ -5854,12 +4783,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "rm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 9; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post) "rn" = ( @@ -5872,11 +4796,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "ro" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/engineering) "rp" = ( @@ -5969,11 +4889,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post) "rI" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/layer4{ + dir = 1 }, /obj/effect/light_emitter{ name = "cave light"; @@ -6323,7 +5240,7 @@ desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional."; dir = 4; icon_screen = null; - name = "Shuttle Transist Console" + name = "Shuttle Transit Console" }, /turf/open/floor/iron/dark/snowdin, /area/awaymission/snowdin/outside) @@ -6549,11 +5466,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern1) "ut" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/structure/table, /obj/item/stack/sheet/glass/fifty{ @@ -6782,7 +5696,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/dorm) "vt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/cavern1) "vu" = ( @@ -6802,12 +5716,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/cavern1) "vy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, @@ -6815,7 +5724,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/dorm) "vA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/cavern1) "vB" = ( @@ -6843,7 +5752,7 @@ /turf/open/floor/iron/showroomfloor, /area/awaymission/snowdin/post/cavern1) "vG" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector{ +/obj/machinery/atmospherics/components/unary/outlet_injector/layer4{ dir = 1 }, /turf/open/floor/plating/snowed/cavern, @@ -6916,7 +5825,7 @@ desc = "A console meant for calling and sending a transit ferry. It seems iced-over and non-functional."; dir = 1; icon_screen = null; - name = "Shuttle Transist Console" + name = "Shuttle Transit Console" }, /turf/open/floor/mineral/titanium/blue, /area/awaymission/snowdin/post/broken_shuttle) @@ -7134,12 +6043,7 @@ /turf/open/floor/engine/cult, /area/awaymission/snowdin/post/mining_dock) "xw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 6; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/firealarm/directional/west, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -7298,13 +6202,6 @@ slowdown = 1 }, /area/awaymission/snowdin/cave) -"xV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4 - }, -/turf/closed/mineral/snowmountain/cavern, -/area/awaymission/snowdin/cave/cavern) "xW" = ( /turf/closed/wall/ice, /area/awaymission/snowdin/post/mining_dock) @@ -7708,7 +6605,7 @@ /turf/closed/wall/mineral/wood, /area/awaymission/snowdin/igloo) "zv" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ dir = 8 }, /turf/open/floor/plating/snowed/cavern, @@ -7760,9 +6657,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_dock) "zH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/machinery/space_heater, /obj/structure/sign/warning/xeno_mining/directional/east, @@ -7770,14 +6666,11 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_dock) "zI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/ice, /area/awaymission/snowdin/post/mining_dock) "zJ" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ dir = 8 }, /obj/effect/turf_decal/stripes/line{ @@ -8146,7 +7039,7 @@ }, /area/awaymission/snowdin/cave) "Be" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 8 }, @@ -8602,7 +7495,7 @@ /obj/structure/bed{ dir = 4 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/snowdin, /obj/item/bedsheet/nanotrasen{ dir = 4 }, @@ -10244,11 +9137,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/item/storage/box{ name = "box of donkpockets" }, @@ -10425,11 +9314,8 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "MP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, /obj/machinery/firealarm/directional/east, /obj/machinery/light/broken/directional/east, @@ -10556,11 +9442,8 @@ /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/cave/cavern) "NA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -10692,12 +9575,7 @@ /turf/open/floor/iron/white, /area/awaymission/snowdin/post) "Oh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/broken/directional/south, /turf/open/floor/iron/showroomfloor, @@ -10822,22 +9700,14 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/secpost) "OX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "OZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/door/airlock/security{ name = "Security Checkpoint" @@ -10893,12 +9763,7 @@ }, /area/awaymission/snowdin/cave) "Pm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -10990,11 +9855,7 @@ /turf/open/floor/iron/dark, /area/awaymission/snowdin/cave) "PU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/button/door/directional/east{ id = "snowdindormcap"; @@ -11098,9 +9959,8 @@ }, /area/awaymission/snowdin/cave) "Qn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, /obj/structure/sign/warning/xeno_mining/directional/east, /turf/open/floor/plating, @@ -11140,11 +10000,8 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main/mechbay) "QB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, /obj/machinery/light/broken/directional/south, /obj/effect/mapping_helpers/broken_floor, @@ -11202,11 +10059,7 @@ /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/cave/cavern) "QN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/public/glass, /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -11493,12 +10346,7 @@ /turf/open/floor/iron, /area/awaymission/snowdin/post/research) "Sr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -11837,7 +10685,7 @@ /turf/open/floor/engine/plasma, /area/awaymission/snowdin/post/engineering) "Up" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/post/cavern2) "Uq" = ( @@ -11852,12 +10700,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main/mechbay) "Us" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, @@ -12458,12 +11301,7 @@ "Yd" = ( /obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - dir = 5; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "Ye" = ( @@ -12643,11 +11481,7 @@ /turf/open/floor/plating, /area/awaymission/snowdin/post/gateway) "Zj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -12664,11 +11498,7 @@ /turf/open/misc/asteroid/snow, /area/awaymission/snowdin/outside) "Zp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden{ - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/item/storage/medkit/o2{ pixel_x = 4; @@ -12730,12 +11560,7 @@ /turf/open/misc/asteroid/snow/ice, /area/awaymission/snowdin/cave/cavern) "ZH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible{ - dir = 4; - piping_layer = 4; - pixel_x = 5; - pixel_y = 5 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/awaymission/snowdin/post/engineering) @@ -19500,7 +18325,7 @@ aV ir jh jP -kA +lf Oh aV aV @@ -21293,7 +20118,7 @@ dG dM Mg fz -gp +gn hg hN it @@ -23873,7 +22698,7 @@ kK lv js jW -nj +nM nL dK js @@ -24130,14 +22955,14 @@ kJ lw jo js -nk +rm nM QN oK ps -pQ +rm qs -pQ +rm rm rH dX @@ -25678,7 +24503,7 @@ on oO pv pT -qu +ZH Sj rp SK @@ -26177,7 +25002,7 @@ Kd ex fJ gA -ht +hq hW iH jz @@ -28748,12 +27573,12 @@ bf fV gL hA -ib +lK iL jB iL iL -lL +lK mv iK nA @@ -62267,7 +61092,7 @@ eJ eJ eJ eL -xV +eJ fr fr fr diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 5eeed4517657e..16cc8924aae9b 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -17,13 +17,6 @@ "ag" = ( /turf/closed/wall/mineral/titanium, /area/awaymission/undergroundoutpost45/central) -"ah" = ( -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, -/area/awaymission/undergroundoutpost45/caves) "ai" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -108,14 +101,14 @@ /turf/open/floor/iron/dark, /area/awaymission/undergroundoutpost45/central) "ax" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/underground, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/central) "ay" = ( /obj/structure/chair/comfy/beige{ dir = 4 }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/underground, /turf/open/floor/iron/grimy, /area/awaymission/undergroundoutpost45/central) "az" = ( @@ -125,7 +118,7 @@ icon_state = "beacon"; name = "tracking beacon" }, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/underground, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, @@ -133,7 +126,7 @@ /area/awaymission/undergroundoutpost45/central) "aB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/underground, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, @@ -225,7 +218,7 @@ /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/central) "aT" = ( -/obj/effect/landmark/awaystart, +/obj/effect/landmark/awaystart/underground, /turf/open/floor/iron/grimy, /area/awaymission/undergroundoutpost45/central) "aU" = ( @@ -451,11 +444,7 @@ /area/awaymission/undergroundoutpost45/central) "ci" = ( /obj/effect/decal/cleanable/blood/gibs/limb, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "cm" = ( /obj/effect/decal/cleanable/dirt, @@ -6396,11 +6385,7 @@ "zb" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "ze" = ( /obj/structure/table, @@ -6430,11 +6415,7 @@ /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/engineering) "zq" = ( -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "zr" = ( /obj/machinery/door/firedoor, @@ -6470,19 +6451,11 @@ "zK" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "zO" = ( /obj/effect/decal/cleanable/blood/gibs/up, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "zX" = ( /obj/structure/closet/secure_closet{ @@ -6604,11 +6577,7 @@ /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "BN" = ( /obj/machinery/computer/monitor{ @@ -6621,21 +6590,13 @@ /area/awaymission/undergroundoutpost45/engineering) "BQ" = ( /obj/effect/decal/cleanable/blood/splatter, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Cd" = ( /obj/structure/alien/weeds, /obj/structure/glowshroom/single, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Cj" = ( /obj/structure/table/reinforced, @@ -6760,14 +6721,10 @@ /turf/open/floor/iron/dark, /area/awaymission/undergroundoutpost45/gateway) "DJ" = ( -/obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ dir = 6 }, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "DL" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -6907,11 +6864,7 @@ /area/awaymission/undergroundoutpost45/central) "Gn" = ( /obj/structure/alien/weeds, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Gp" = ( /obj/structure/table/reinforced, @@ -6963,11 +6916,7 @@ "HW" = ( /obj/structure/alien/weeds, /obj/structure/glowshroom/single, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Ic" = ( /obj/structure/cable, @@ -7018,11 +6967,7 @@ "IT" = ( /obj/structure/alien/weeds, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "IV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7115,11 +7060,7 @@ "KN" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/splatter, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "KO" = ( /obj/machinery/door/firedoor, @@ -7139,11 +7080,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "KU" = ( /obj/structure/closet/crate, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "KW" = ( /obj/machinery/airalarm/directional/north, @@ -7167,37 +7104,18 @@ /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Lk" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Lo" = ( /obj/machinery/atmospherics/components/unary/passive_vent/layer2{ dir = 4 }, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, -/area/awaymission/undergroundoutpost45/caves) -"Lz" = ( -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 351.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "LT" = ( /obj/structure/table/reinforced, @@ -7247,19 +7165,11 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "Mx" = ( /obj/machinery/light/small/directional/east, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "MC" = ( /obj/machinery/light/small/directional/west, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "MJ" = ( /obj/machinery/light/blacklight/directional/west, @@ -7375,12 +7285,8 @@ /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/engineering) "OF" = ( -/obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "OL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green, @@ -7476,11 +7382,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Qw" = ( /obj/structure/disposalpipe/segment{ @@ -7541,11 +7443,7 @@ /area/awaymission/undergroundoutpost45/gateway) "RA" = ( /obj/machinery/light/small/directional/south, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "RC" = ( /obj/machinery/airalarm/directional/west, @@ -7652,11 +7550,7 @@ /area/awaymission/undergroundoutpost45/crew_quarters) "Tr" = ( /obj/structure/alien/resin/membrane, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Tu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -7709,21 +7603,13 @@ "UH" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/down, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "UM" = ( -/obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ dir = 10 }, -/turf/open/floor/plating{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "UU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7787,11 +7673,7 @@ "Wd" = ( /obj/structure/alien/resin/wall, /obj/structure/alien/weeds, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Wk" = ( /obj/structure/cable, @@ -7819,14 +7701,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/awaymission/undergroundoutpost45/crew_quarters) -"WE" = ( -/obj/structure/glowshroom/single, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 351.9 - }, -/area/awaymission/undergroundoutpost45/caves) "WG" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -7889,11 +7763,7 @@ /area/awaymission/undergroundoutpost45/research) "XF" = ( /obj/structure/ore_box, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "XJ" = ( /obj/structure/table/reinforced, @@ -7911,11 +7781,7 @@ /area/awaymission/undergroundoutpost45/engineering) "XQ" = ( /obj/structure/glowshroom/single, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "XU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7925,11 +7791,7 @@ /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/mob_spawn/corpse/human, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "Yf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7987,20 +7849,12 @@ /area/awaymission/undergroundoutpost45/engineering) "Zs" = ( /obj/machinery/light/small/directional/north, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "ZD" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs/core, -/turf/open/misc/asteroid{ - initial_gas_mix = "co2=173.4;n2=135.1;plasma=229.8;TEMP=351.9"; - name = "Cave Floor"; - temperature = 363.9 - }, +/turf/open/misc/asteroid/plasma, /area/awaymission/undergroundoutpost45/caves) "ZH" = ( /obj/machinery/airalarm/directional/east, @@ -36710,7 +36564,7 @@ tT gy uN hH -ah +zq zq ad ad @@ -36967,7 +36821,7 @@ tP gc uO vk -ah +zq zq zq ad @@ -37224,7 +37078,7 @@ tV gy uP hH -ah +zq zq zq zq @@ -42062,7 +41916,7 @@ ad ad ad ad -Lz +zq an bq aC @@ -42318,8 +42172,8 @@ ad ad ad ad -Lz -WE +zq +XQ ae bq aD @@ -42574,9 +42428,9 @@ ad ad ad ad -WE -Lz -Lz +XQ +zq +zq an bq aC @@ -42831,9 +42685,9 @@ ad ad ad ad -Lz -Lz -Lz +zq +zq +zq an al aD @@ -43088,9 +42942,9 @@ ad ad ad ad -Lz -Lz -Lz +zq +zq +zq aP bY aD @@ -43346,8 +43200,8 @@ ad ad ad ad -WE -Lz +XQ +zq aP bq cX @@ -43603,8 +43457,8 @@ ad ad ad ad -Lz -Lz +zq +zq an bZ bq @@ -43860,8 +43714,8 @@ ad ad ad ad -Lz -Lz +zq +zq an cS al @@ -44117,8 +43971,8 @@ ad ad ad ad -WE -Lz +XQ +zq an cT bq @@ -44374,8 +44228,8 @@ ad ad ad ad -Lz -Lz +zq +zq ae cU bq @@ -45410,9 +45264,9 @@ ad ad ad ad -ah -ah -ah +zq +zq +zq MC zq zq @@ -45688,7 +45542,7 @@ zq zq zq zq -ad +zq zq zq zq @@ -48325,7 +48179,7 @@ zq zq zq zq -ad +zq ad ad ad diff --git a/_maps/deathmatch/lattice_battles.dmm b/_maps/deathmatch/lattice_battles.dmm new file mode 100644 index 0000000000000..25508fc93d462 --- /dev/null +++ b/_maps/deathmatch/lattice_battles.dmm @@ -0,0 +1,976 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"bm" = ( +/obj/structure/lattice/catwalk, +/obj/structure/closet/crate/large/hats, +/turf/open/chasm, +/area/deathmatch/fullbright) +"bz" = ( +/obj/structure/railing/unbreakable{ + dir = 1 + }, +/obj/item/clothing/head/cone, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"cN" = ( +/obj/structure/railing/unbreakable{ + dir = 8 + }, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"dM" = ( +/turf/open/chasm, +/area/deathmatch/fullbright) +"gz" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"gN" = ( +/turf/closed/mineral/random, +/area/deathmatch/fullbright) +"gW" = ( +/obj/structure/railing/unbreakable{ + dir = 1 + }, +/obj/structure/flora/lunar_plant/style_1, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"ho" = ( +/obj/structure/flora/lunar_plant/style_1, +/obj/effect/invisible_wall, +/obj/structure/railing/unbreakable{ + dir = 6 + }, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"hH" = ( +/obj/structure/railing/unbreakable{ + dir = 5 + }, +/obj/structure/flora/rock/pile/style_random, +/obj/structure/flora/lunar_plant/style_3, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"jb" = ( +/obj/structure/flora/rock/style_random, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"lO" = ( +/obj/structure/railing/unbreakable{ + dir = 9 + }, +/obj/structure/flora/rock/pile/style_random, +/obj/structure/flora/lunar_plant/style_3, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"rE" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/closed/mineral/random, +/area/deathmatch/fullbright) +"sl" = ( +/mob/living/basic/spider/giant/hunter/away_caves, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/spider/stickyweb, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"sQ" = ( +/obj/structure/flora/lunar_plant/style_2, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"tw" = ( +/obj/structure/railing/unbreakable{ + dir = 4 + }, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"tL" = ( +/obj/structure/railing/unbreakable, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"uJ" = ( +/obj/structure/railing/unbreakable{ + dir = 4 + }, +/obj/item/clothing/head/cone, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"uO" = ( +/obj/structure/lattice/catwalk, +/obj/structure/closet/crate/critter, +/mob/living/basic/mothroach, +/mob/living/basic/mothroach, +/mob/living/basic/mothroach, +/turf/open/chasm, +/area/deathmatch/fullbright) +"vk" = ( +/obj/structure/lattice/catwalk, +/turf/open/chasm, +/area/deathmatch/fullbright) +"vr" = ( +/obj/structure/flora/lunar_plant/style_2, +/obj/structure/spider/stickyweb/very_sticky, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"wb" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/chasm, +/area/deathmatch/fullbright) +"yB" = ( +/obj/structure/railing/unbreakable{ + dir = 8 + }, +/obj/structure/flora/lunar_plant/style_1, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"AS" = ( +/mob/living/basic/pet/cat/space, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"BL" = ( +/obj/structure/railing/unbreakable{ + dir = 1 + }, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"Cf" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/flora/lunar_plant/style_3, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"CI" = ( +/mob/living/basic/pet/dog/corgi/puppy/void, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"CP" = ( +/obj/structure/lattice/catwalk, +/obj/item/clothing/head/cone, +/turf/open/chasm, +/area/deathmatch/fullbright) +"Dk" = ( +/mob/living/basic/wumborian_fugu, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"He" = ( +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"Ia" = ( +/obj/machinery/power/floodlight, +/obj/structure/lattice/catwalk, +/turf/open/chasm, +/area/deathmatch/fullbright) +"IT" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/deathmatch_player_spawn, +/obj/effect/decal/cleanable/rubble, +/turf/open/chasm, +/area/deathmatch/fullbright) +"JE" = ( +/obj/structure/railing/unbreakable{ + dir = 10 + }, +/obj/structure/flora/lunar_plant/style_1, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"KO" = ( +/obj/structure/closet/crate/cardboard, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"LN" = ( +/obj/structure/railing/corner, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"MF" = ( +/obj/structure/lattice, +/turf/open/chasm, +/area/deathmatch/fullbright) +"MZ" = ( +/obj/item/clothing/head/cone, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"Nf" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/structure/lattice, +/turf/open/chasm, +/area/deathmatch/fullbright) +"NA" = ( +/obj/structure/flora/lunar_plant/style_2, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"NG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/closet/crate/cardboard, +/obj/item/statuebust, +/turf/open/chasm, +/area/deathmatch/fullbright) +"NI" = ( +/obj/structure/lattice/catwalk, +/obj/effect/decal/cleanable/rubble, +/turf/open/chasm, +/area/deathmatch/fullbright) +"NY" = ( +/obj/effect/invisible_wall, +/obj/structure/railing/unbreakable, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"OF" = ( +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"St" = ( +/mob/living/basic/spider/giant/nurse/away_caves, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"SL" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/flora/lunar_plant/style_3, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"Uy" = ( +/obj/item/clothing/head/cone, +/obj/effect/invisible_wall, +/obj/structure/railing/corner/unbreakable{ + dir = 1 + }, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"UU" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/flora/rock/style_random, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"Xf" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/spider/stickyweb, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"Xk" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/power/floodlight, +/turf/open/chasm, +/area/deathmatch/fullbright) +"Xo" = ( +/obj/structure/flora/rock/style_random, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"Yu" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/railing/unbreakable{ + dir = 6 + }, +/obj/structure/flora/lunar_plant/style_3, +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"YH" = ( +/obj/effect/invisible_wall, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"YV" = ( +/obj/structure/lattice/catwalk, +/obj/item/clothing/head/cone, +/obj/effect/decal/cleanable/rubble, +/turf/open/chasm, +/area/deathmatch/fullbright) +"Zp" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) +"ZH" = ( +/obj/structure/flora/rock/pile/style_random, +/mob/living/basic/cow/moonicorn, +/turf/open/misc/asteroid/moon, +/area/deathmatch/fullbright) + +(1,1,1) = {" +rE +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +"} +(2,1,1) = {" +gN +gN +He +He +jb +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +"} +(3,1,1) = {" +gN +He +He +Dk +He +KO +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +"} +(4,1,1) = {" +gN +jb +Cf +He +LN +tw +uJ +tw +tw +Yu +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +"} +(5,1,1) = {" +gN +gN +OF +Zp +NY +dM +MF +MF +MF +MF +MF +gN +gN +gN +gN +gN +gN +gN +gN +MF +gN +gN +gN +gN +gN +"} +(6,1,1) = {" +gN +gN +gN +MZ +ho +vk +MF +vk +vk +MF +MF +MF +vk +vk +vk +vk +vk +MF +dM +dM +lO +gN +gN +gN +gN +"} +(7,1,1) = {" +gN +gN +gN +gN +gN +MF +MF +wb +vk +vk +MF +vk +wb +vk +vk +vk +vk +wb +MF +dM +bz +gN +gN +gN +gN +"} +(8,1,1) = {" +gN +gN +gN +gN +JE +MF +vk +vk +vk +vk +vk +NI +vk +vk +vk +vk +MF +vk +MF +MF +BL +sQ +gN +gN +gN +"} +(9,1,1) = {" +gN +gN +sQ +YH +tL +MF +vk +vk +vk +CP +vk +vk +vk +vk +vk +CP +MF +vk +vk +MF +BL +ZH +gN +gN +gN +"} +(10,1,1) = {" +gN +gN +gN +AS +tL +MF +vk +MF +MF +vk +vk +NI +vk +MF +vk +vk +MF +vk +vk +MF +gW +jb +gN +gN +gN +"} +(11,1,1) = {" +gN +gN +gN +CI +tL +MF +vk +vk +MF +MF +vk +vk +MF +MF +vk +vk +vk +vk +vk +vk +hH +gN +gN +gN +gN +"} +(12,1,1) = {" +gN +gN +gN +jb +tL +MF +vk +vk +vk +vk +vk +vk +vk +vk +vk +vk +vk +vk +vk +NG +gN +gN +gN +gN +gN +"} +(13,1,1) = {" +gN +gN +gN +gN +Yu +MF +MF +wb +vk +vk +vk +vk +wb +CP +vk +vk +vk +wb +vk +Xk +gN +gN +gN +gN +gN +"} +(14,1,1) = {" +gN +gN +gN +gN +gN +Ia +MF +vk +vk +vk +vk +vk +vk +vk +vk +NI +vk +vk +vk +gN +gN +gN +gN +gN +gN +"} +(15,1,1) = {" +gN +gN +gN +gN +gN +gN +bm +vk +vk +vk +vk +MF +MF +vk +vk +vk +MF +MF +vk +gN +gN +gN +gN +gN +gN +"} +(16,1,1) = {" +gN +gN +gN +gN +gN +gN +gN +MF +MF +vk +vk +MF +vk +vk +vk +vk +MF +vk +vk +gN +gN +gN +gN +gN +gN +"} +(17,1,1) = {" +gN +gN +gN +gN +gN +gN +MF +MF +vk +vk +NI +vk +vk +vk +vk +CP +vk +vk +vk +gN +gN +gN +gN +gN +gN +"} +(18,1,1) = {" +gN +gN +gN +gN +gN +MF +MF +MF +vk +vk +YV +vk +MF +MF +vk +vk +vk +vk +vk +gN +gN +gN +gN +gN +gN +"} +(19,1,1) = {" +gN +gN +gN +gN +SL +dM +MF +Nf +vk +vk +vk +MF +Nf +MF +MF +vk +vk +IT +vk +uO +gN +gN +gN +gN +gN +"} +(20,1,1) = {" +gN +gN +gN +gN +dM +dM +dM +MF +MF +vk +MF +MF +MF +MF +MF +MF +vk +vk +MF +MF +UU +gN +gN +gN +gN +"} +(21,1,1) = {" +gN +gN +gN +SL +dM +dM +dM +dM +uO +gN +gN +gN +gN +gN +gN +gN +vk +MF +dM +dM +BL +St +Xf +gN +gN +"} +(22,1,1) = {" +gN +gN +gN +jb +NA +dM +SL +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +lO +yB +cN +Uy +vr +gN +gN +gN +"} +(23,1,1) = {" +gN +gN +gN +gN +gz +Xo +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +sl +gz +gN +gN +gN +gN +gN +"} +(24,1,1) = {" +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +"} +(25,1,1) = {" +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +gN +"} diff --git a/_maps/deathmatch/ragin_mages.dmm b/_maps/deathmatch/ragin_mages.dmm index 3dcdb966d1147..96249fcf6928d 100644 --- a/_maps/deathmatch/ragin_mages.dmm +++ b/_maps/deathmatch/ragin_mages.dmm @@ -8,7 +8,7 @@ dir = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "aT" = ( /obj/item/cardboard_cutout/adaptive{ pixel_y = 14; @@ -17,7 +17,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "bb" = ( /obj/structure/chair/wood/wings{ dir = 8 @@ -28,15 +28,15 @@ set_luminosity = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "bg" = ( /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "bv" = ( /obj/machinery/power/shuttle_engine/propulsion, /turf/open/floor/plating/airless, -/area/deathmatch/teleport) +/area/deathmatch) "co" = ( /obj/structure/table/reinforced, /obj/item/paper_bin/carbon{ @@ -44,7 +44,7 @@ pixel_x = 7 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "ct" = ( /obj/structure/flora/bush/grassy/style_random, /mob/living/basic/pet/gondola{ @@ -52,24 +52,24 @@ faction = list("gondola", "Wizard") }, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "cU" = ( /obj/structure/chair/wood/wings{ dir = 1 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "dj" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "ds" = ( /turf/open/floor/carpet/purple, -/area/deathmatch/teleport) +/area/deathmatch) "ez" = ( /obj/structure/closet/crate, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "fH" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/griddle, @@ -82,19 +82,19 @@ pixel_x = 9 }, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "fI" = ( /turf/open/lava, -/area/deathmatch/teleport) +/area/deathmatch) "gn" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "gr" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/structure/chair/wood, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "hg" = ( /obj/structure/railing/corner/end/flip{ dir = 8 @@ -104,14 +104,14 @@ dir = 8 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "hk" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 21; pixel_x = -7 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "hK" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/light_emitter{ @@ -120,20 +120,20 @@ set_luminosity = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "ig" = ( /obj/structure/table/wood, /obj/item/stack/medical/bruise_pack{ pixel_x = -12 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "iz" = ( /obj/structure/chair/comfy/brown{ dir = 1 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "iL" = ( /obj/effect/light_emitter{ set_cap = 2; @@ -141,7 +141,7 @@ set_luminosity = 4 }, /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "iQ" = ( /obj/structure/table, /obj/structure/bedsheetbin{ @@ -149,42 +149,42 @@ pixel_x = 3 }, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "iZ" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/structure/sink/directional/west, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "jb" = ( /obj/machinery/door/airlock/wood, /obj/structure/railing/corner/end/flip, /obj/structure/railing/corner/end, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "jg" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/landmark/deathmatch_player_spawn, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "jm" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/mystery_box/wands, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "js" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "jM" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "jV" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/door/airlock/wood, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "kl" = ( /obj/structure/flora/bush/grassy/style_random, /obj/machinery/light/floor, @@ -194,7 +194,7 @@ set_luminosity = 4 }, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "li" = ( /obj/structure/table, /obj/item/extinguisher{ @@ -206,7 +206,7 @@ pixel_x = -6 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "lM" = ( /obj/structure/bed{ dir = 1 @@ -220,19 +220,19 @@ set_luminosity = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "lO" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "mu" = ( /obj/effect/turf_decal/stripes, /obj/structure/railing{ dir = 4 }, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "mV" = ( /obj/structure/railing{ dir = 4 @@ -242,40 +242,40 @@ }, /obj/structure/mystery_box/tdome, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "nk" = ( /obj/item/gun/magic/wand/death, /obj/structure/window/reinforced/plasma/spawner/directional/east, /obj/structure/window/reinforced/plasma/spawner/directional/north, /obj/structure/window/reinforced/plasma/spawner/directional/west, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "nx" = ( /obj/effect/landmark/deathmatch_player_spawn, /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "nQ" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "on" = ( /obj/structure/table/wood, /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "oP" = ( /obj/structure/destructible/cult/item_dispenser/archives/library, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "pe" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 21; pixel_x = -7 }, /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "ph" = ( /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "pv" = ( /obj/effect/light_emitter{ set_cap = 2; @@ -283,18 +283,18 @@ set_luminosity = 4 }, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "pL" = ( /obj/effect/turf_decal/stripes{ dir = 1 }, /obj/structure/mystery_box/wands, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "pV" = ( /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "qx" = ( /obj/effect/light_emitter{ set_cap = 2; @@ -302,15 +302,15 @@ set_luminosity = 4 }, /turf/open/floor/carpet/purple, -/area/deathmatch/teleport) +/area/deathmatch) "qY" = ( /obj/structure/closet/crate/bin, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "rj" = ( /obj/machinery/door/window/right/directional/east, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "rD" = ( /obj/structure/railing{ dir = 4 @@ -319,11 +319,11 @@ dir = 8 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "sf" = ( /obj/structure/mirror/directional/east, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "tL" = ( /obj/structure/flora/bush/fullgrass/style_random, /mob/living/simple_animal/hostile/ooze/gelatinous{ @@ -331,7 +331,7 @@ faction = list("slime", "Wizard") }, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "ue" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/item/food/burger/yellow{ @@ -347,14 +347,14 @@ }, /obj/structure/table/reinforced, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "ui" = ( /obj/effect/turf_decal/stripes, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "uz" = ( /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "uR" = ( /obj/item/clothing/shoes/sandal/magic{ pixel_y = 16 @@ -365,82 +365,82 @@ set_luminosity = 4 }, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "vh" = ( /obj/structure/mystery_box/wands, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "vv" = ( /obj/vehicle/ridden/scooter/skateboard{ dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "vR" = ( /obj/structure/bookcase/random, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "wd" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/structure/mystery_box/wands, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "wl" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 1; pixel_x = -6 }, /turf/open/floor/carpet/purple, -/area/deathmatch/teleport) +/area/deathmatch) "wL" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/gibber/autogibber, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "xk" = ( /obj/structure/sink/directional/south, /obj/structure/mirror/directional/north{ pixel_y = 36 }, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "xs" = ( /obj/structure/flora/bush/grassy/style_random, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "yA" = ( /obj/structure/chair/wood/wings, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "zN" = ( /obj/structure/mystery_box/wands, /obj/structure/sign/poster/contraband/the_big_gas_giant_truth/directional/north, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "zO" = ( /obj/structure/closet, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Au" = ( /obj/structure/railing{ dir = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "AD" = ( /obj/structure/sign/departments/restroom/directional/west, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Bm" = ( /obj/effect/landmark/deathmatch_player_spawn, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "Cb" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/structure/table/wood, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "Cj" = ( /obj/structure/table, /obj/item/clothing/ears/earmuffs{ @@ -456,10 +456,10 @@ pixel_y = -10 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Cq" = ( /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "CM" = ( /obj/structure/railing/corner, /obj/structure/railing/corner{ @@ -477,11 +477,8 @@ set_luminosity = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "DK" = ( -/obj/structure/railing{ - dir = 8 - }, /obj/structure/railing{ dir = 8 }, @@ -489,11 +486,11 @@ dir = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "DW" = ( /obj/machinery/computer, /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "Eh" = ( /obj/effect/light_emitter{ set_cap = 2; @@ -501,64 +498,64 @@ set_luminosity = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Fb" = ( /obj/effect/turf_decal/stripes{ dir = 1 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Fm" = ( /obj/structure/chair/comfy/black{ dir = 1 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Fv" = ( /obj/structure/chair/wood/wings{ dir = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Fx" = ( /obj/item/target, /obj/structure/sign/flag/nanotrasen/directional/north, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "FL" = ( /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "Ge" = ( /obj/item/flashlight/flare{ pixel_x = -5; pixel_y = -12 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Gv" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 2; pixel_x = 5 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "GC" = ( /obj/effect/spawner/structure/window, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "GZ" = ( /obj/structure/curtain, /obj/machinery/shower/directional/north, /obj/item/soap/syndie, /turf/open/floor/noslip, -/area/deathmatch/teleport) +/area/deathmatch) "Hf" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 1; pixel_x = -6 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Hs" = ( /turf/template_noop, /area/template_noop) @@ -572,17 +569,17 @@ pixel_y = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "HP" = ( /obj/structure/chair/comfy/black{ dir = 1 }, /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "HS" = ( /obj/structure/table/wood/fancy, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "IE" = ( /obj/structure/table/wood, /obj/item/clothing/suit/wizrobe/black{ @@ -594,40 +591,40 @@ pixel_x = 6 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "IM" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 2; pixel_x = 5 }, /turf/open/floor/carpet/purple, -/area/deathmatch/teleport) +/area/deathmatch) "Jm" = ( /turf/closed/wall/mineral/wood, -/area/deathmatch/teleport) +/area/deathmatch) "Jo" = ( /obj/structure/toilet{ dir = 4 }, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "Kr" = ( /obj/effect/landmark/deathmatch_player_spawn, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "KW" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Le" = ( /obj/structure/filingcabinet, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Mg" = ( /obj/machinery/computer, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Nl" = ( /obj/machinery/power/shuttle_engine/heater{ resistance_flags = 3 @@ -636,21 +633,21 @@ resistance_flags = 3 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Nm" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 21; pixel_x = 6 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Nt" = ( /obj/item/target{ pixel_y = 11 }, /obj/effect/turf_decal/stripes, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "NW" = ( /obj/structure/railing{ dir = 4 @@ -659,30 +656,30 @@ dir = 1 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Ok" = ( /obj/machinery/vending/cigarette, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "OD" = ( /obj/structure/filingcabinet, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "OK" = ( /obj/item/kirbyplants/organic/plant10{ pixel_y = 21; pixel_x = 6 }, /turf/open/floor/carpet/red, -/area/deathmatch/teleport) +/area/deathmatch) "PD" = ( /obj/structure/table/wood, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Qj" = ( /obj/structure/dresser, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "QH" = ( /obj/structure/table, /obj/item/clothing/head/wizard{ @@ -690,19 +687,19 @@ pixel_x = 4 }, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "QT" = ( /obj/structure/mystery_box/wands, /turf/open/floor/plastic, -/area/deathmatch/teleport) +/area/deathmatch) "RB" = ( /obj/machinery/vending/snack, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "RI" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "RT" = ( /obj/machinery/power/shuttle_engine/heater{ resistance_flags = 3 @@ -711,14 +708,14 @@ resistance_flags = 3 }, /turf/open/lava, -/area/deathmatch/teleport) +/area/deathmatch) "Sa" = ( /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "SK" = ( /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "Th" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/structure/table/reinforced, @@ -736,15 +733,15 @@ set_luminosity = 4 }, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) "Vk" = ( /obj/machinery/door/window/left/directional/east, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "VM" = ( /obj/structure/table/wood/poker, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Wl" = ( /obj/structure/railing{ dir = 4 @@ -755,37 +752,37 @@ set_luminosity = 4 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "WX" = ( /obj/machinery/vending/magivend, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Xv" = ( /obj/structure/railing, /obj/structure/railing{ dir = 1 }, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "YP" = ( /obj/structure/closet/crate/coffin, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "YS" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/engine/cult, -/area/deathmatch/teleport) +/area/deathmatch) "Zo" = ( /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/floor/grass, -/area/deathmatch/teleport) +/area/deathmatch) "ZS" = ( /obj/structure/railing/corner/end/flip, /turf/open/floor/iron, -/area/deathmatch/teleport) +/area/deathmatch) (1,1,1) = {" Hs diff --git a/_maps/deathmatch/ragnarok.dmm b/_maps/deathmatch/ragnarok.dmm new file mode 100644 index 0000000000000..89273eb45ada2 --- /dev/null +++ b/_maps/deathmatch/ragnarok.dmm @@ -0,0 +1,2211 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aJ" = ( +/obj/item/wallframe/painting/eldritch/beauty, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"aN" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"aR" = ( +/obj/structure/bonfire/dense/prelit, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"bb" = ( +/obj/structure/flora/coconuts, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"bj" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/bonfire/dense/prelit, +/turf/open/floor/wood/large, +/area/deathmatch) +"bn" = ( +/turf/closed/wall/mineral/bronze, +/area/deathmatch) +"bv" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"bI" = ( +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"bO" = ( +/obj/structure/fluff/clockwork/alloy_shards/medium, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"bU" = ( +/turf/open/indestructible/plating, +/area/deathmatch) +"cb" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/cult, +/area/deathmatch) +"cr" = ( +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/floor/cult, +/area/deathmatch) +"cs" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"cH" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/cult, +/area/deathmatch) +"cR" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/effect/turf_decal/weather/dirt, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"cT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood/tile, +/area/deathmatch) +"dv" = ( +/obj/structure/fluff/clockwork/clockgolem_remains, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze, +/area/deathmatch) +"dI" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"dS" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"eB" = ( +/obj/effect/spawner/random/decoration/glowstick/on, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"eG" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"eL" = ( +/obj/effect/decal/remains/human, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"eU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/remains/human, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"fc" = ( +/obj/effect/rune/wall, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/cult, +/area/deathmatch) +"fl" = ( +/obj/structure/fake_stairs/wood, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"ft" = ( +/obj/effect/turf_decal/siding/wood/end, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"fO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"fW" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/fluff/clockwork/alloy_shards/medium, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"gi" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/flora/bush/jungle/a/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"gx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/flora/coconuts, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"gz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/cult, +/area/deathmatch) +"gJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"hg" = ( +/obj/effect/visible_heretic_influence, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"hr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"hw" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"hV" = ( +/turf/open/chasm/jungle, +/area/deathmatch) +"hY" = ( +/mob/living/carbon/human/species/monkey, +/obj/item/flashlight/flare/torch, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"ih" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/flora/bush/jungle/b/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"ij" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"iq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"iJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/water/jungle, +/area/deathmatch) +"iO" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/misc/dirt/jungle/dark, +/area/deathmatch) +"jb" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"jv" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"jC" = ( +/obj/item/food/grown/banana, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"jI" = ( +/obj/effect/rune/wall, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/cult, +/area/deathmatch) +"jL" = ( +/obj/structure/flora/rock/style_random, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"jP" = ( +/obj/effect/decal/cleanable/blood/innards, +/turf/open/floor/cult, +/area/deathmatch) +"kc" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"ku" = ( +/obj/structure/flora/tree/jungle/style_random, +/obj/item/food/grown/banana/bunch, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"lr" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/bonfire/dense/prelit, +/turf/open/floor/wood/large, +/area/deathmatch) +"lx" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"lC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/cult, +/area/deathmatch) +"lK" = ( +/obj/structure/chair/wood/wings{ + dir = 1 + }, +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/floor/wood/tile, +/area/deathmatch) +"lR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"lX" = ( +/obj/effect/rune/blood_boil, +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/cult, +/area/deathmatch) +"mr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit, +/turf/open/indestructible/plating, +/area/deathmatch) +"mD" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/cult, +/area/deathmatch) +"nO" = ( +/obj/structure/flora/bush/jungle/c/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"ou" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"ox" = ( +/obj/effect/cosmic_rune, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"oB" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/deathmatch) +"oC" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"oF" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/effect/decal/cleanable/rubble, +/obj/effect/turf_decal/weather/dirt, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"oO" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"pr" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/obj/effect/decal/cleanable/ants/fire, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"px" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/rubble, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"pz" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/item/wallframe/painting/eldritch/vines, +/turf/open/indestructible/plating, +/area/deathmatch) +"pF" = ( +/obj/effect/rune/blood_boil, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/cult, +/area/deathmatch) +"qa" = ( +/turf/open/misc/grass/jungle, +/area/deathmatch) +"qg" = ( +/turf/open/floor/wood/tile, +/area/deathmatch) +"qh" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water/jungle, +/area/deathmatch) +"qk" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/turf_decal/weather/dirt, +/obj/item/flashlight/flare/culttorch, +/turf/open/floor/cult, +/area/deathmatch) +"qp" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/flora/tree/jungle/small/style_random, +/obj/structure/flora/coconuts, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"qL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"rc" = ( +/obj/structure/fluff/clockwork/alloy_shards, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze/flat, +/area/deathmatch) +"rh" = ( +/obj/structure/fluff/clockwork/alloy_shards/medium, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"rm" = ( +/obj/structure/flora/rock/pile/jungle/large/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"rD" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"rH" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"sa" = ( +/obj/structure/flora/rock/style_random, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/rubble, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"sd" = ( +/obj/structure/table/bronze, +/obj/item/toy/clockwork_watch, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze, +/area/deathmatch) +"sC" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"sE" = ( +/obj/effect/visible_heretic_influence, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/plating, +/area/deathmatch) +"sF" = ( +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/floor/cult, +/area/deathmatch) +"sJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/cult, +/area/deathmatch) +"tl" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/closed/wall/r_wall/heretic_rust, +/area/deathmatch) +"tm" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"tE" = ( +/obj/effect/rune/malformed{ + icon_state = "hierophant"; + color = "#FFFF00" + }, +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/floor/bronze/filled, +/area/deathmatch) +"uT" = ( +/obj/structure/table/bronze, +/obj/item/clockwork_alloy, +/obj/item/stack/sheet/bronze/thirty, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze, +/area/deathmatch) +"vI" = ( +/obj/structure/flora/tree/jungle/small/style_random, +/obj/structure/flora/coconuts, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"vR" = ( +/obj/structure/rack/skeletal, +/obj/item/clothing/head/helmet/chaplain/cage{ + pixel_y = 11; + pixel_x = -1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/tile, +/area/deathmatch) +"wf" = ( +/obj/structure/rack/skeletal, +/obj/item/clothing/head/helmet/chaplain{ + pixel_y = 9 + }, +/turf/open/floor/wood/tile, +/area/deathmatch) +"wv" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/deathmatch) +"wH" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/large, +/area/deathmatch) +"wJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"wP" = ( +/obj/structure/flora/rock/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"wR" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"xc" = ( +/obj/structure/flora/grass/jungle/a/style_random, +/mob/living/carbon/human/species/monkey, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"xx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight/flare/culttorch, +/turf/open/floor/cult, +/area/deathmatch) +"xC" = ( +/obj/effect/rune/wall, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/cult, +/area/deathmatch) +"ye" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/cult, +/area/deathmatch) +"yv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/cult, +/area/deathmatch) +"yY" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/spawner/random/decoration/glowstick/on, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"yZ" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"zo" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"zX" = ( +/obj/structure/girder/bronze, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze/flat, +/area/deathmatch) +"Ab" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/item/flashlight/flare/culttorch, +/turf/open/floor/cult, +/area/deathmatch) +"An" = ( +/obj/structure/fluff/clockwork/alloy_shards/large, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze, +/area/deathmatch) +"Ar" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/cult, +/area/deathmatch) +"Av" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"AE" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/cult, +/area/deathmatch) +"AN" = ( +/obj/structure/sacrificealtar, +/obj/item/knife/bloodletter{ + name = "McGuffin"; + desc = "An occult looking dagger that is cold to the touch. Somehow, the flawless orb on the pommel is made entirely of liquid blood. Honestly pretty disappointing as far as Mcguffins go." + }, +/turf/open/floor/wood/tile, +/area/deathmatch) +"AO" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Ba" = ( +/obj/structure/destructible/cult/pylon, +/turf/open/floor/cult, +/area/deathmatch) +"Bd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"Be" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"Bi" = ( +/obj/item/food/grown/banana, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"Bl" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Bp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"CB" = ( +/obj/structure/destructible/eldritch_crucible, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit, +/obj/effect/heretic_rune/big, +/turf/open/indestructible/plating, +/area/deathmatch) +"CE" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"CR" = ( +/mob/living/carbon/human/species/monkey, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Dn" = ( +/obj/structure/girder/cult, +/turf/open/floor/cult, +/area/deathmatch) +"Do" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Ds" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Du" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/item/flashlight/flare/torch, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"DA" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Ed" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"EF" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/plating, +/area/deathmatch) +"Fj" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"Fn" = ( +/obj/item/food/grown/banana/bunch, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"FK" = ( +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"FO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/deathmatch) +"FQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"FS" = ( +/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze, +/area/deathmatch) +"Ga" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/effect/turf_decal/weather/dirt, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"GD" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"GE" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/cult, +/area/deathmatch) +"GO" = ( +/obj/item/food/grown/banana, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"GS" = ( +/obj/structure/girder/bronze, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze/flat, +/area/deathmatch) +"HN" = ( +/obj/structure/flora/rock/pile/jungle/large/style_random, +/obj/item/flashlight/flare/torch, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"HS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze/filled, +/area/deathmatch) +"HV" = ( +/obj/effect/rune/empower, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/cult, +/area/deathmatch) +"Ic" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Ig" = ( +/turf/closed/indestructible/rock, +/area/deathmatch) +"Ik" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Io" = ( +/obj/structure/fluff/clockwork/blind_eye, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze/filled, +/area/deathmatch) +"IG" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/mob/living/carbon/human/species/monkey, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"IM" = ( +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/cult, +/area/deathmatch) +"Jf" = ( +/turf/open/misc/dirt/jungle/dark, +/area/deathmatch) +"JF" = ( +/obj/structure/flora/grass/jungle/a/style_random, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"JL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Kg" = ( +/obj/structure/flora/rock/style_4, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Kl" = ( +/obj/effect/spawner/structure/window/bronze, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"KL" = ( +/turf/open/floor/cult, +/area/deathmatch) +"KT" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/chasm/jungle, +/area/deathmatch) +"Lf" = ( +/obj/structure/fluff/clockwork/alloy_shards, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"LC" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/floor/cult, +/area/deathmatch) +"LU" = ( +/obj/structure/flora/grass/jungle/a/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"LW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/water/jungle, +/area/deathmatch) +"My" = ( +/obj/structure/table/wood, +/obj/item/food/grown/holymelon, +/turf/open/floor/wood/tile, +/area/deathmatch) +"MM" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/chasm/jungle, +/area/deathmatch) +"Nf" = ( +/obj/structure/girder/cult, +/turf/open/misc/dirt/jungle/dark, +/area/deathmatch) +"NQ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water/jungle, +/area/deathmatch) +"NX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/flora/rock/style_4, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Or" = ( +/obj/structure/flora/tree/jungle/style_random, +/obj/structure/flora/coconuts, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Ov" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Pi" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Px" = ( +/obj/structure/flora/tree/jungle/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"PC" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"PH" = ( +/obj/effect/visible_heretic_influence, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"PI" = ( +/turf/open/floor/wood/large, +/area/deathmatch) +"PU" = ( +/obj/structure/flora/bush/jungle/c/style_random, +/obj/structure/flora/rock/style_random, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"Qf" = ( +/turf/closed/wall/r_wall, +/area/deathmatch) +"QF" = ( +/obj/effect/visible_heretic_influence, +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"QO" = ( +/obj/effect/forcefield/cult, +/turf/open/misc/dirt/jungle/dark, +/area/deathmatch) +"QQ" = ( +/turf/closed/wall/r_wall/heretic_rust, +/area/deathmatch) +"Rj" = ( +/obj/structure/flora/rock/style_random, +/obj/effect/turf_decal/weather/dirt, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"Rm" = ( +/obj/effect/forcefield/cult/permanent, +/turf/open/misc/dirt/jungle/dark, +/area/deathmatch) +"RL" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"RW" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"Sf" = ( +/obj/effect/rune/wall, +/turf/open/misc/dirt/jungle/dark, +/area/deathmatch) +"Sh" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/floor/cult, +/area/deathmatch) +"Sp" = ( +/obj/structure/fluff/clockwork/alloy_shards/small, +/obj/structure/fluff/clockwork/fallen_armor, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze, +/area/deathmatch) +"Sw" = ( +/turf/open/misc/dirt/jungle/wasteland, +/area/deathmatch) +"SC" = ( +/turf/closed/wall/heretic_rust, +/area/deathmatch) +"SE" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/jungle, +/area/deathmatch) +"SW" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Ti" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/indestructible/plating, +/area/deathmatch) +"To" = ( +/obj/structure/flora/bush/jungle/c/style_random, +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/rock/pile/jungle/large/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"TE" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/misc/asteroid/moon, +/area/deathmatch) +"TN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/water/jungle, +/area/deathmatch) +"TX" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/effect/decal/cleanable/ants/fire, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"UI" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/cult, +/area/deathmatch) +"UM" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/effect/turf_decal/siding/wood, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"UQ" = ( +/obj/structure/rack/skeletal, +/obj/item/clothing/head/helmet/chaplain/witchunter_hat{ + pixel_y = 8; + pixel_x = -1 + }, +/turf/open/floor/wood/tile, +/area/deathmatch) +"UX" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"UY" = ( +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"Vm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Vv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"VF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/flora/bush/jungle/b/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"VP" = ( +/obj/effect/spawner/random/decoration/glowstick/on, +/turf/open/indestructible/plating, +/area/deathmatch) +"VY" = ( +/obj/structure/table/bronze, +/obj/item/clothing/shoes/bronze, +/obj/item/clothing/suit/costume/bronze, +/obj/item/clothing/head/costume/bronze, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/flashlight/flare/torch, +/turf/open/floor/bronze/flat, +/area/deathmatch) +"VZ" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Wm" = ( +/obj/structure/fluff/clockwork/alloy_shards/medium, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/bronze, +/area/deathmatch) +"Wp" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/dirt/jungle/dark, +/area/deathmatch) +"Ww" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/water/jungle, +/area/deathmatch) +"Xa" = ( +/obj/structure/rack/skeletal, +/obj/item/clothing/head/helmet/chaplain/ancient{ + pixel_y = 6 + }, +/turf/open/floor/wood/tile, +/area/deathmatch) +"XL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/wallframe/painting/eldritch/weeping, +/turf/open/floor/plating/heretic_rust, +/area/deathmatch) +"XT" = ( +/turf/closed/wall/mineral/cult/artificer, +/area/deathmatch) +"Yn" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/water/jungle, +/area/deathmatch) +"Ys" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/misc/dirt/jungle, +/area/deathmatch) +"Yv" = ( +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Yx" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"YA" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/cult, +/area/deathmatch) +"YI" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/deathmatch) +"YN" = ( +/obj/structure/girder/cult, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/cult, +/area/deathmatch) +"YY" = ( +/obj/structure/girder/cult, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/cult, +/area/deathmatch) +"Zj" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"Zw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood/tile, +/area/deathmatch) +"ZJ" = ( +/obj/structure/destructible/cult/pants_altar, +/obj/effect/rune/apocalypse{ + req_cultists = 999 + }, +/obj/item/knife/ritual, +/turf/open/floor/cult, +/area/deathmatch) +"ZR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/misc/grass/jungle, +/area/deathmatch) +"ZY" = ( +/obj/structure/bonfire/dense/prelit, +/turf/open/misc/dirt/jungle, +/area/deathmatch) + +(1,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(2,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +SC +SC +SC +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(3,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +sa +UY +UY +TE +QQ +QQ +QQ +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(4,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +Ig +bI +qa +Px +qa +dS +bU +UY +UY +bU +QQ +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(5,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +ij +dS +GO +qa +qa +Sw +oC +EF +Sw +Sw +Sw +Px +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(6,1,1) = {" +Ig +Ig +Ig +Ig +Ig +jL +jv +CR +LU +qa +Sw +Sw +yY +aJ +bU +QQ +QF +Sw +LU +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(7,1,1) = {" +Ig +Ig +Ig +Ig +jL +ij +qa +hw +qa +Sw +oC +SC +sE +UY +Be +ox +Qf +Sw +Sw +IG +ij +jL +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(8,1,1) = {" +Ig +Ig +Ig +Ig +bI +nO +HN +qa +vI +oC +QQ +QQ +UY +Be +UY +bU +UX +Bi +oC +LU +LU +dS +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(9,1,1) = {" +Ig +Ig +Ig +ij +qa +qa +LU +qa +Sw +JF +QQ +pz +UY +CB +eL +Be +XL +VP +SC +tm +qa +vI +pr +Ig +Ig +Ig +Ig +Ig +Ig +"} +(10,1,1) = {" +Ig +Ig +Ig +aN +qa +qa +Or +Bl +QF +Qf +tl +UY +eU +UY +UY +UY +SC +kc +Ga +PH +FK +FK +FK +ZY +Ig +Ig +Ig +Ig +Ig +"} +(11,1,1) = {" +Ig +Ig +Ig +GD +qa +LU +Fn +aR +Sw +Sw +oC +UY +UY +EF +UY +mr +dI +lx +PI +Vm +Ic +TN +qh +FK +wR +Ig +Ig +Ig +Ig +"} +(12,1,1) = {" +Ig +Ig +wR +ZY +FK +FK +FK +sC +LU +pr +Sw +Ti +fO +lR +hg +Bd +FK +lx +PI +NX +NQ +NQ +Ed +AO +CE +DA +Ig +Ig +Ig +"} +(13,1,1) = {" +Ig +Ig +iJ +TN +TN +TN +Ww +FK +FK +FK +cs +FK +eB +SC +FK +sC +Ic +Ds +PI +Bp +FK +FK +wR +wJ +FK +yZ +Ig +Ig +Ig +"} +(14,1,1) = {" +Ig +Ig +SE +NQ +NQ +LW +Kg +AO +PC +FK +FK +Yn +PC +RL +PI +Do +FK +Pi +PI +gx +FK +qa +FK +FK +FK +Du +Ig +Ig +Ig +"} +(15,1,1) = {" +Ig +Ig +sC +sC +FK +bb +wJ +Ed +bv +PI +ou +Ed +FK +Ds +ft +Vv +oO +FK +FK +aR +GD +qa +jv +qa +GD +RW +jL +Ig +Ig +"} +(16,1,1) = {" +Ig +Ig +wP +GD +qa +Wp +ZY +FK +RL +PI +Bp +bb +wJ +rD +YI +jb +rH +Ys +iq +iq +hr +qp +GO +hY +qa +ij +Ig +Ig +Ig +"} +(17,1,1) = {" +Ig +Ig +jC +xc +QO +fc +Nf +Sf +Rm +yv +Jf +FK +sC +FK +sC +lx +oB +qg +qg +qg +vR +gJ +qa +rm +jv +nO +Ig +Ig +Ig +"} +(18,1,1) = {" +Ig +Ig +ij +Px +Nf +lX +Wp +Jf +Ab +Sf +Jf +qa +GD +qa +qa +gi +Xa +cT +My +qg +qg +fl +jv +qa +qa +ku +Ig +Ig +Ig +"} +(19,1,1) = {" +Ig +Ig +PU +cR +Jf +Ar +cH +cH +KL +YA +QO +Jf +Yv +qa +aR +Ov +qg +qg +AN +lK +qg +VF +qa +VZ +iq +Yx +Ig +Ig +Ig +"} +(20,1,1) = {" +Ig +Ig +Ig +oF +Nf +Wp +gz +KL +jP +KL +lC +Sf +Jf +qa +qa +Ov +wf +qg +My +qg +cT +fl +VZ +Zj +bj +Ig +Ig +Ig +Ig +"} +(21,1,1) = {" +Ig +Ig +Ig +Rj +XT +YY +Sh +ye +ZJ +ye +LC +pF +XT +qa +FQ +eG +oB +Zw +qg +qg +UQ +ZR +Zj +wH +FO +KT +Ig +Ig +Ig +"} +(22,1,1) = {" +Ig +Ig +XT +KL +sJ +AE +KL +cr +KL +AE +jI +Nf +Jf +qa +qa +ih +JL +JL +JL +JL +qL +SW +wH +FO +KT +hV +Ig +Ig +Ig +"} +(23,1,1) = {" +Ig +Ig +XT +GE +ij +Jf +IM +sF +qk +Nf +Wp +Jf +jv +hY +qa +qa +qa +qa +qa +qa +Ov +wH +FO +KT +hV +hV +Ig +Ig +Ig +"} +(24,1,1) = {" +Ig +Ig +Ig +Wp +Nf +UI +KL +Ba +xC +Jf +Jf +qa +qa +jv +To +qa +qa +jv +Or +TX +Ov +wv +KT +hV +hV +Ig +Ig +Ig +Ig +"} +(25,1,1) = {" +Ig +Ig +XT +mD +KL +HV +gz +KL +YN +Wp +qa +qa +qa +qa +qa +qa +jv +qa +dS +qa +UM +lr +MM +hV +Ig +Ig +Ig +Ig +Ig +"} +(26,1,1) = {" +Ig +Ig +Ig +XT +xx +KL +Nf +Sf +Jf +aR +Px +Ik +GO +qa +nO +jL +Av +bO +rc +bn +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(27,1,1) = {" +Ig +Ig +Ig +Ig +Dn +cb +Wp +Jf +qa +jv +qa +qa +qa +jL +bI +Ig +Lf +px +fW +dv +Sp +zX +bn +Ig +Ig +Ig +Ig +Ig +Ig +"} +(28,1,1) = {" +Ig +Ig +Ig +Ig +Ig +iO +jL +ij +zo +Ig +Ig +Ig +Ig +Ig +Ig +Ig +An +HS +Fj +Fj +rh +sd +Kl +Ig +Ig +Ig +Ig +Ig +Ig +"} +(29,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +bn +GS +Wm +tE +Io +uT +Kl +Ig +Ig +Ig +Ig +Ig +Ig +"} +(30,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Kl +FS +VY +bn +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} +(31,1,1) = {" +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +Ig +"} diff --git a/_maps/deathmatch/species_warfare.dmm b/_maps/deathmatch/species_warfare.dmm new file mode 100644 index 0000000000000..e80485c2b5e5c --- /dev/null +++ b/_maps/deathmatch/species_warfare.dmm @@ -0,0 +1,2461 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aA" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/machinery/medical_kiosk, +/obj/structure/sign/poster/official/moth_meth/directional/east, +/turf/open/indestructible/white, +/area/deathmatch) +"aD" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/effect/spawner/random/vending/colavend, +/turf/open/indestructible, +/area/deathmatch) +"by" = ( +/mob/living/basic/mothroach, +/turf/open/indestructible/white, +/area/deathmatch) +"bL" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/surgery_tray/full, +/turf/open/indestructible/white, +/area/deathmatch) +"bX" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/structure/table/glass, +/obj/item/storage/fancy/donut_box, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"cd" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/light/built/directional/south, +/obj/machinery/computer{ + dir = 4 + }, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"cl" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/structure/bed, +/obj/effect/spawner/random/bedsheet, +/obj/machinery/light/small/blacklight/directional/north, +/turf/open/floor/wood, +/area/deathmatch) +"cs" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/vehicle/sealed/mecha/ripley, +/obj/item/mecha_parts/mecha_equipment/air_tank/full, +/turf/open/floor/iron/dark, +/area/deathmatch) +"cy" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/cryo_cell, +/turf/open/indestructible/white, +/area/deathmatch) +"dv" = ( +/obj/effect/turf_decal/tile/green/half/contrasted, +/turf/open/indestructible, +/area/deathmatch) +"dA" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"dB" = ( +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/portable_atmospherics/canister, +/turf/open/indestructible, +/area/deathmatch) +"ee" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/indestructible, +/area/deathmatch) +"em" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"es" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/machinery/stasis{ + dir = 1 + }, +/obj/effect/landmark/deathmatch_player_spawn, +/obj/machinery/light/floor, +/turf/open/indestructible/white, +/area/deathmatch) +"eE" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/atmospherics/components/binary/crystallizer{ + dir = 4 + }, +/turf/open/indestructible, +/area/deathmatch) +"eO" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/deathmatch) +"eW" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"fg" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted, +/turf/open/indestructible/dark, +/area/deathmatch) +"fm" = ( +/obj/item/pillow/random, +/turf/open/floor/wood, +/area/deathmatch) +"fA" = ( +/obj/machinery/power/tracker, +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/deathmatch) +"fP" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/door/airlock/command/glass, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"fV" = ( +/obj/effect/turf_decal/tile/purple/full, +/obj/machinery/door/airlock/science/glass, +/turf/open/indestructible/white/smooth_large, +/area/deathmatch) +"gH" = ( +/mob/living/basic/pet/cat/feral, +/obj/structure/bed, +/obj/item/bedsheet/runtime, +/obj/machinery/light/small/blacklight/directional/south, +/turf/open/floor/wood, +/area/deathmatch) +"gI" = ( +/turf/open/indestructible/dark, +/area/deathmatch) +"gM" = ( +/obj/effect/spawner/random/structure/closet_private, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/wood, +/area/deathmatch) +"hk" = ( +/obj/effect/turf_decal/tile/green/full, +/obj/machinery/door/airlock/glass, +/turf/open/indestructible/large, +/area/deathmatch) +"ho" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible, +/area/deathmatch) +"hA" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/turf/open/indestructible, +/area/deathmatch) +"hC" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/table/optable, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/white, +/area/deathmatch) +"hG" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/mecha_parts/mecha_equipment/ripleyupgrade, +/turf/open/floor/iron/dark, +/area/deathmatch) +"hR" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/indestructible/plating, +/area/deathmatch) +"is" = ( +/obj/item/grenade/spawnergrenade/cat, +/turf/open/floor/wood, +/area/deathmatch) +"iu" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/sleeper/self_control, +/turf/open/indestructible/white, +/area/deathmatch) +"ix" = ( +/obj/effect/turf_decal/tile/dark_blue{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"iK" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/deathmatch) +"iM" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/structure/table/glass, +/obj/item/surgery_tray/full, +/turf/open/indestructible/white, +/area/deathmatch) +"iV" = ( +/obj/item/card/id/advanced/engioutpost, +/obj/effect/decal/remains/human/smokey, +/turf/open/indestructible, +/area/deathmatch) +"jm" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/closet/firecloset/full, +/turf/open/indestructible/dark, +/area/deathmatch) +"jn" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/machinery/light/floor, +/turf/open/indestructible/dark, +/area/deathmatch) +"ju" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"jw" = ( +/turf/open/space/basic, +/area/deathmatch) +"jR" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, +/obj/machinery/rnd/production/protolathe/offstation, +/obj/machinery/light/directional/east, +/turf/open/indestructible/white, +/area/deathmatch) +"ko" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/vending/cigarette/syndicate, +/obj/machinery/light/directional/east, +/turf/open/indestructible, +/area/deathmatch) +"kY" = ( +/obj/machinery/door/airlock{ + id_tag = "Cabin2"; + name = "Cabin 4" + }, +/turf/open/chasm{ + icon_state = "wood"; + icon = 'icons/turf/floors.dmi'; + base_icon_state = "wood"; + name = "Dorms 4" + }, +/area/deathmatch) +"lF" = ( +/obj/effect/spawner/random/structure/closet_private, +/turf/open/floor/wood, +/area/deathmatch) +"mn" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/machinery/computer/security/wooden_tv{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"mo" = ( +/obj/effect/turf_decal/tile/yellow/full, +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/west, +/turf/open/indestructible/large, +/area/deathmatch) +"mK" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/closet/emcloset, +/turf/open/indestructible/white, +/area/deathmatch) +"mO" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"nb" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible/dark/textured, +/area/deathmatch) +"nf" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/glass/bottle/champagne/cursed, +/obj/item/food/donut/trumpet, +/turf/open/indestructible/dark, +/area/deathmatch) +"nQ" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"nT" = ( +/obj/effect/turf_decal/tile/purple/anticorner/contrasted, +/obj/structure/closet/firecloset/full, +/turf/open/indestructible/white, +/area/deathmatch) +"oq" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/obj/effect/decal/cleanable/greenglow, +/turf/open/indestructible/white, +/area/deathmatch) +"oy" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/indestructible, +/area/deathmatch) +"oD" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/small/blacklight/directional/west, +/turf/open/indestructible/dark/textured, +/area/deathmatch) +"oN" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/indestructible, +/area/deathmatch) +"pD" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/deathmatch) +"pH" = ( +/obj/structure/cable, +/obj/structure/table/reinforced, +/obj/item/fireaxe/metal_h2_axe, +/turf/open/indestructible, +/area/deathmatch) +"pJ" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/light/directional/west, +/turf/open/indestructible, +/area/deathmatch) +"pL" = ( +/mob/living/basic/lizard/wags_his_tail, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/deathmatch) +"qF" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted, +/turf/open/indestructible/white, +/area/deathmatch) +"qM" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"qV" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/computer{ + dir = 8 + }, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"rq" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table/reinforced, +/obj/item/toy/plush/slimeplushie{ + pixel_y = 10 + }, +/obj/item/mecha_parts/mecha_equipment/weapon/energy/mecha_kineticgun, +/turf/open/floor/iron/dark, +/area/deathmatch) +"ru" = ( +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/rnd/production/circuit_imprinter/offstation, +/obj/item/mecha_parts/mecha_equipment/wormhole_generator, +/turf/open/indestructible/white, +/area/deathmatch) +"rO" = ( +/obj/structure/bed, +/obj/effect/spawner/random/bedsheet, +/obj/item/melee/supermatter_sword, +/obj/machinery/light/small/blacklight/directional/south, +/turf/open/floor/wood, +/area/deathmatch) +"rP" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/table, +/obj/item/restraints/legcuffs/beartrap{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/restraints/legcuffs/beartrap{ + pixel_x = 2 + }, +/obj/item/key/janitor{ + pixel_y = 10 + }, +/turf/open/indestructible, +/area/deathmatch) +"rV" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/deathmatch) +"sn" = ( +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/wood, +/area/deathmatch) +"st" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, +/turf/open/indestructible/white, +/area/deathmatch) +"su" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/storage/belt/utility/full{ + pixel_y = 4 + }, +/obj/item/storage/belt/utility/full, +/turf/open/indestructible, +/area/deathmatch) +"sx" = ( +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/machinery/computer{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"sJ" = ( +/turf/open/floor/wood, +/area/deathmatch) +"sL" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/structure/table/glass, +/obj/item/storage/medkit/regular, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"sW" = ( +/obj/effect/turf_decal/tile/dark_blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/indestructible, +/area/deathmatch) +"tR" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/computer{ + dir = 4 + }, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"uq" = ( +/obj/structure/table, +/obj/effect/spawner/random/entertainment/dice, +/turf/open/indestructible, +/area/deathmatch) +"uQ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"uX" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/landmark/deathmatch_player_spawn, +/turf/open/indestructible, +/area/deathmatch) +"vb" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/turf/open/indestructible, +/area/deathmatch) +"vm" = ( +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/deathmatch) +"vq" = ( +/obj/structure/cable, +/turf/open/floor/iron/solarpanel/airless, +/area/deathmatch) +"vB" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible, +/area/deathmatch) +"vI" = ( +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/indestructible, +/area/deathmatch) +"vT" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/light/built/directional/south, +/turf/open/indestructible, +/area/deathmatch) +"wb" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/stasis{ + dir = 1 + }, +/obj/effect/landmark/deathmatch_player_spawn, +/obj/machinery/light/floor, +/turf/open/indestructible/white, +/area/deathmatch) +"wd" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/indestructible, +/area/deathmatch) +"wj" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible, +/area/deathmatch) +"wA" = ( +/obj/structure/table/glass, +/obj/item/storage/box/syringes, +/obj/item/gun/syringe, +/obj/item/reagent_containers/cup/bottle/morphine{ + pixel_y = 17; + pixel_x = -7 + }, +/obj/item/reagent_containers/cup/bottle/traitor{ + pixel_y = 17; + pixel_x = 8 + }, +/obj/item/toy/plush/moth{ + name = "Mender Moff" + }, +/turf/open/indestructible/white, +/area/deathmatch) +"wG" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/structure/closet/firecloset/full, +/turf/open/indestructible/white, +/area/deathmatch) +"wM" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/blacklight/directional/north, +/turf/open/indestructible, +/area/deathmatch) +"xe" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/turf/open/indestructible, +/area/deathmatch) +"xj" = ( +/obj/effect/decal/cleanable/blood/footprints, +/turf/open/indestructible/white, +/area/deathmatch) +"xL" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/indestructible/large, +/area/deathmatch) +"xT" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/item/storage/medkit/brute{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/storage/medkit/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/cable, +/obj/structure/table/glass, +/turf/open/indestructible/white, +/area/deathmatch) +"yq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/open/indestructible/white, +/area/deathmatch) +"yy" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/glass/bottle/champagne/cursed, +/obj/item/food/donut/trumpet, +/turf/open/indestructible/dark, +/area/deathmatch) +"yD" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/machinery/light/cold/dim/directional/east, +/turf/open/indestructible/white, +/area/deathmatch) +"yU" = ( +/obj/effect/turf_decal/tile/green/anticorner/contrasted, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/deathmatch) +"zg" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted, +/obj/item/kirbyplants/random, +/turf/open/indestructible, +/area/deathmatch) +"zs" = ( +/obj/effect/turf_decal/tile/blue/full, +/turf/open/indestructible/white/smooth_large, +/area/deathmatch) +"zt" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/light/built/directional/south, +/obj/machinery/computer{ + dir = 8 + }, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"zw" = ( +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 4 + }, +/turf/open/indestructible, +/area/deathmatch) +"zx" = ( +/obj/item/stack/tile/iron/four{ + pixel_y = 7; + pixel_x = 10 + }, +/obj/structure/cable, +/turf/open/indestructible/plating, +/area/deathmatch) +"zJ" = ( +/turf/closed/indestructible/reinforced, +/area/deathmatch) +"zK" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/turf/open/indestructible/dark, +/area/deathmatch) +"zZ" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/spawner/random/vending/colavend, +/turf/open/indestructible, +/area/deathmatch) +"Ac" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/machinery/light/floor, +/turf/open/indestructible, +/area/deathmatch) +"Ag" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile/purple/half/contrasted, +/obj/effect/decal/cleanable/oil, +/turf/open/indestructible/white, +/area/deathmatch) +"AE" = ( +/obj/effect/turf_decal/tile/yellow/full, +/obj/machinery/door/airlock/engineering/glass, +/turf/open/indestructible/large, +/area/deathmatch) +"AQ" = ( +/mob/living/basic/migo/hatsune, +/obj/structure/bed, +/obj/item/bedsheet/cult, +/obj/machinery/light/small/blacklight/directional/south, +/turf/open/floor/wood, +/area/deathmatch) +"AZ" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/item/storage/medkit/brute{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/storage/medkit/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/table/glass, +/turf/open/indestructible/white, +/area/deathmatch) +"Bc" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/item/clothing/suit/armor/elder_atmosian, +/obj/item/clothing/head/helmet/elder_atmosian, +/turf/open/indestructible, +/area/deathmatch) +"Bh" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/obj/structure/table/glass, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health{ + pixel_y = 6 + }, +/obj/machinery/light/cold/dim/directional/east, +/turf/open/indestructible/white, +/area/deathmatch) +"Bu" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, +/turf/open/indestructible, +/area/deathmatch) +"BA" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill, +/turf/open/indestructible/white, +/area/deathmatch) +"BH" = ( +/turf/open/chasm{ + icon_state = "wood"; + icon = 'icons/turf/floors.dmi'; + base_icon_state = "wood"; + name = "Dorms 4" + }, +/area/deathmatch) +"BL" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"BV" = ( +/obj/effect/decal/cleanable/garbage, +/turf/open/indestructible, +/area/deathmatch) +"Dm" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible/dark/textured, +/area/deathmatch) +"DN" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/machinery/vending/engivend, +/turf/open/indestructible, +/area/deathmatch) +"DV" = ( +/obj/effect/turf_decal/tile/dark_blue{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"DZ" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/machinery/light/floor, +/turf/open/floor/iron, +/area/deathmatch) +"El" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/machinery/light/directional/east, +/turf/open/indestructible, +/area/deathmatch) +"Es" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/table/glass, +/obj/item/gun/ballistic/rifle/rebarxbow/forced, +/obj/item/ammo_casing/rebar, +/obj/item/ammo_casing/rebar, +/obj/item/ammo_casing/rebar, +/obj/machinery/light/built/directional/north, +/turf/open/indestructible, +/area/deathmatch) +"EC" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/effect/decal/cleanable/ash/large, +/turf/open/indestructible, +/area/deathmatch) +"EN" = ( +/obj/effect/turf_decal/tile/dark_blue{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"FY" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/machinery/sleeper/self_control{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"Gl" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/mecha_part_fabricator/maint, +/turf/open/floor/iron/dark, +/area/deathmatch) +"Gm" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/machinery/recharger, +/turf/open/indestructible/dark, +/area/deathmatch) +"Gp" = ( +/obj/effect/landmark/deathmatch_player_spawn, +/obj/machinery/light/floor, +/turf/open/indestructible/white, +/area/deathmatch) +"Gy" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"GA" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/indestructible, +/area/deathmatch) +"GF" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/directional/east, +/turf/open/indestructible, +/area/deathmatch) +"GY" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/structure/reagent_dispensers/fueltank/large, +/turf/open/indestructible, +/area/deathmatch) +"Hj" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/obj/structure/closet/firecloset/full, +/turf/open/indestructible, +/area/deathmatch) +"Hy" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/cryo_cell{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"Ia" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/deathmatch) +"Iq" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/structure/rack, +/obj/item/gun/energy/e_gun/mini/practice_phaser, +/obj/machinery/light/built/directional/north, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"Iu" = ( +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma, +/turf/open/indestructible/white, +/area/deathmatch) +"Iz" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/obj/machinery/vending/tool, +/turf/open/indestructible, +/area/deathmatch) +"IA" = ( +/obj/effect/spawner/random/structure/closet_private, +/obj/item/toy/plush/awakenedplushie, +/turf/open/floor/wood, +/area/deathmatch) +"IJ" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/indestructible, +/area/deathmatch) +"IR" = ( +/obj/vehicle/ridden/janicart/upgraded, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/tile/iron/four{ + pixel_y = 7; + pixel_x = 10 + }, +/turf/open/indestructible/plating, +/area/deathmatch) +"JL" = ( +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted, +/obj/structure/table/glass, +/obj/machinery/recharger, +/turf/open/indestructible/dark, +/area/deathmatch) +"JS" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/indestructible, +/area/deathmatch) +"JX" = ( +/obj/item/melee/chainofcommand/tailwhip/kitty, +/turf/open/floor/wood, +/area/deathmatch) +"Ka" = ( +/obj/machinery/door/airlock{ + id_tag = "Cabin7"; + name = "Cabin 1" + }, +/turf/open/floor/wood, +/area/deathmatch) +"Kv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/mecha_wreckage/durand, +/obj/item/mecha_parts/mecha_equipment/repair_droid, +/turf/open/indestructible/white, +/area/deathmatch) +"Lk" = ( +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/deathmatch) +"Lq" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/computer, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"Lr" = ( +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/mop_bucket/janitorialcart, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible, +/area/deathmatch) +"Lt" = ( +/obj/effect/turf_decal/tile/green/anticorner/contrasted, +/turf/open/indestructible, +/area/deathmatch) +"LY" = ( +/obj/item/clothing/suit/pillow_suit, +/obj/item/clothing/head/pillow_hood, +/turf/open/floor/wood, +/area/deathmatch) +"Mi" = ( +/obj/structure/cable, +/obj/structure/table/reinforced, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible, +/area/deathmatch) +"Mn" = ( +/turf/open/indestructible/white, +/area/deathmatch) +"ME" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/obj/structure/table/reinforced, +/obj/item/clothing/head/collectable/welding, +/obj/item/sticker/syndicate/flash{ + pixel_x = 3 + }, +/obj/item/sticker/syndicate/flash{ + pixel_x = -4 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"MG" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health{ + pixel_y = 6 + }, +/turf/open/indestructible/white, +/area/deathmatch) +"Nb" = ( +/obj/machinery/light/floor, +/turf/open/indestructible/white, +/area/deathmatch) +"Ne" = ( +/obj/effect/turf_decal/tile/purple/full, +/obj/effect/turf_decal/tile/purple/full, +/obj/effect/turf_decal/tile/purple/full, +/obj/effect/turf_decal/tile/purple/full, +/obj/structure/table/reinforced/plasmarglass, +/obj/machinery/door/window/right/directional/north, +/turf/open/indestructible/white/smooth_large, +/area/deathmatch) +"Nr" = ( +/obj/machinery/vending/medical, +/turf/open/indestructible/white, +/area/deathmatch) +"Ns" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/bucket, +/obj/item/mop, +/turf/open/indestructible, +/area/deathmatch) +"Nv" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/obj/machinery/light/small/blacklight/directional/east, +/turf/open/indestructible/dark/textured, +/area/deathmatch) +"ND" = ( +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/machinery/computer{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"Oa" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/indestructible, +/area/deathmatch) +"Oo" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"Os" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/deathmatch) +"Ot" = ( +/obj/effect/turf_decal/tile/dark_blue, +/turf/open/indestructible/dark, +/area/deathmatch) +"OF" = ( +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/structure/rack, +/obj/item/cane, +/obj/structure/fireaxecabinet/directional/south, +/obj/machinery/light/built/directional/south, +/turf/open/indestructible/dark/smooth_large, +/area/deathmatch) +"ON" = ( +/obj/effect/turf_decal/tile/blue/full, +/obj/machinery/door/airlock/multi_tile/public/glass{ + dir = 8 + }, +/turf/open/indestructible/white/smooth_large, +/area/deathmatch) +"Ps" = ( +/obj/structure/table/reinforced, +/turf/open/indestructible, +/area/deathmatch) +"Qo" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted, +/mob/living/basic/bot/medbot, +/obj/item/mecha_parts/mecha_equipment/gravcatapult, +/turf/open/indestructible/white, +/area/deathmatch) +"QM" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible, +/area/deathmatch) +"RX" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = -7; + pixel_y = 12 + }, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/toy/plush/lizard_plushie, +/turf/open/indestructible/plating, +/area/deathmatch) +"RY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 8 + }, +/obj/item/mecha_parts/mecha_equipment/extinguisher, +/turf/open/indestructible/white, +/area/deathmatch) +"Sh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space/basic, +/area/deathmatch) +"Sm" = ( +/obj/structure/table/reinforced, +/obj/item/grenade/gas_crystal/crystal_foam, +/turf/open/indestructible, +/area/deathmatch) +"Sn" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/optable, +/obj/item/reagent_containers/syringe/contraband/methamphetamine, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/white, +/area/deathmatch) +"Sy" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer, +/turf/open/indestructible/white, +/area/deathmatch) +"To" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"TZ" = ( +/obj/structure/cable, +/turf/open/floor/plating/airless, +/area/deathmatch) +"Uj" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/turf/open/indestructible, +/area/deathmatch) +"Ur" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/deathmatch) +"UD" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/turf/open/indestructible, +/area/deathmatch) +"UH" = ( +/obj/structure/table, +/obj/effect/spawner/random/entertainment/deck, +/turf/open/indestructible, +/area/deathmatch) +"Vl" = ( +/turf/open/indestructible, +/area/deathmatch) +"Vp" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/item/kirbyplants/photosynthetic, +/turf/open/indestructible/dark, +/area/deathmatch) +"VE" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/item/kirbyplants/random/dead, +/obj/effect/decal/cleanable/vomit, +/turf/open/indestructible, +/area/deathmatch) +"Wf" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/storage/medkit/fire, +/obj/item/toy/plush/plasmamanplushie, +/turf/open/indestructible, +/area/deathmatch) +"Wy" = ( +/obj/machinery/vending/drugs, +/turf/open/indestructible/white, +/area/deathmatch) +"WE" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/indestructible, +/area/deathmatch) +"XZ" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/deathmatch) +"Yb" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/structure/closet/firecloset/full, +/turf/open/indestructible, +/area/deathmatch) +"Yo" = ( +/mob/living/basic/cat_butcherer, +/obj/structure/bed, +/obj/item/bedsheet/runtime, +/obj/machinery/light/small/blacklight/directional/north, +/turf/open/floor/wood, +/area/deathmatch) +"Yr" = ( +/mob/living/basic/alien/maid, +/obj/structure/bed, +/obj/effect/spawner/random/bedsheet, +/obj/effect/decal/cleanable/vomit, +/obj/machinery/light/small/blacklight/directional/north, +/turf/open/floor/wood, +/area/deathmatch) +"YJ" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, +/obj/machinery/rnd/destructive_analyzer, +/turf/open/indestructible/white, +/area/deathmatch) +"YQ" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/indestructible/dark, +/area/deathmatch) +"Za" = ( +/obj/effect/spawner/structure/window/reinforced/indestructible, +/turf/open/indestructible/plating, +/area/deathmatch) +"Zb" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/indestructible, +/area/deathmatch) +"ZO" = ( +/obj/effect/turf_decal/tile/green, +/turf/open/indestructible, +/area/deathmatch) + +(1,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +jw +TZ +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(2,1,1) = {" +jw +jw +jw +jw +jw +vq +vq +vq +vq +Sh +vq +vq +vq +vq +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(3,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +rV +Sh +rV +rV +Za +Za +Za +Za +Za +Za +Za +Za +rV +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(4,1,1) = {" +jw +jw +jw +jw +jw +vq +vq +vq +vq +Sh +vq +zJ +zJ +mK +cy +st +dA +Hy +wG +zJ +zJ +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(5,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +rV +Sh +rV +Za +hC +Mn +yq +yq +yq +yq +Mn +Sn +Za +rV +rV +rV +rV +jw +jw +jw +jw +jw +jw +jw +"} +(6,1,1) = {" +jw +jw +jw +jw +jw +jw +vq +vq +vq +Sh +vq +Za +bL +Mn +Mn +Mn +wA +xj +xj +iM +zJ +zJ +zJ +Za +zJ +zJ +jw +jw +jw +jw +jw +jw +"} +(7,1,1) = {" +jw +jw +rV +rV +rV +jw +jw +jw +jw +Sh +jw +Za +wb +Mn +Mn +by +Nr +by +Mn +es +zJ +Lr +rP +uX +IR +zJ +rV +jw +jw +jw +jw +jw +"} +(8,1,1) = {" +jw +rV +zJ +Za +Za +Za +zJ +rV +jw +Sh +jw +Za +AZ +Mn +Mn +Mn +Wy +Mn +Mn +xT +zJ +wM +BV +pL +dv +Za +rV +jw +jw +jw +jw +jw +"} +(9,1,1) = {" +rV +zJ +zJ +tR +sx +cd +zJ +zJ +rV +Sh +jw +Za +iu +Mn +Mn +Mn +Nb +Mn +Mn +FY +zJ +Ns +ZO +VE +hR +zJ +rV +rV +jw +jw +jw +jw +"} +(10,1,1) = {" +rV +zJ +Lq +Gy +YQ +eW +sL +zJ +rV +Sh +rV +Za +MG +yD +qM +qM +aA +qM +qM +Bh +zJ +RX +yU +zJ +xL +zJ +zJ +Za +zJ +jw +jw +jw +"} +(11,1,1) = {" +rV +Za +nf +gI +jn +gI +Gm +zJ +zJ +zJ +zJ +zJ +zJ +zJ +zs +ON +zJ +zs +ON +zJ +zJ +zJ +hk +Za +Iu +Kv +Gl +cs +zJ +jw +jw +jw +"} +(12,1,1) = {" +jw +Za +jm +ix +gI +gI +zK +fP +nb +fP +eO +wd +pD +pD +sW +Zb +Zb +Zb +Zb +ee +pJ +ho +vm +Za +ME +Ag +rq +hG +zJ +jw +jw +jw +"} +(13,1,1) = {" +rV +zJ +Iq +Oo +gI +Ot +fg +fP +Nv +fP +iK +QM +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +vI +Ne +BA +uQ +em +RY +Za +rV +jw +jw +"} +(14,1,1) = {" +rV +Za +Lq +BL +gI +Vp +OF +zJ +zJ +zJ +Hj +Vl +Ac +Vl +Vl +Vl +Vl +Vl +Vl +Ac +Vl +Vl +zg +Za +Sy +Mn +Gp +qF +Za +rV +jw +jw +"} +(15,1,1) = {" +rV +zJ +Iq +Oo +gI +DV +ju +fP +oD +fP +iK +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +JS +fV +oq +Mn +Mn +Qo +Za +rV +jw +jw +"} +(16,1,1) = {" +jw +Za +mn +EN +gI +gI +zK +fP +Dm +fP +UD +wj +GF +WE +Uj +aD +ko +zZ +xe +GA +GA +vB +Yb +Za +ru +jR +YJ +nT +zJ +rV +rV +jw +"} +(17,1,1) = {" +rV +Za +yy +gI +jn +gI +JL +zJ +zJ +zJ +zJ +hk +zJ +hk +zJ +zJ +zJ +zJ +Za +mo +Za +AE +Za +zJ +zJ +Za +Za +Za +zJ +zJ +rV +jw +"} +(18,1,1) = {" +rV +zJ +Lq +mO +To +nQ +bX +zJ +cl +sJ +zJ +Lk +vb +vm +zJ +sJ +rO +zJ +Oa +XZ +XZ +XZ +XZ +XZ +Os +dB +dB +dB +dB +zJ +rV +jw +"} +(19,1,1) = {" +rV +zJ +zJ +qV +ND +zt +zJ +zJ +lF +sJ +Ka +Ia +Ac +dv +kY +BH +IA +zJ +Wf +Vl +Vl +Vl +Vl +Vl +EC +dB +dB +dB +dB +zJ +jw +jw +"} +(20,1,1) = {" +jw +rV +zJ +Za +Za +Za +zJ +zJ +zJ +zJ +zJ +Ia +Vl +dv +zJ +zJ +zJ +zJ +Es +Vl +Sm +DZ +Ps +Vl +vT +zJ +zJ +zJ +zJ +zJ +jw +jw +"} +(21,1,1) = {" +jw +jw +jw +jw +rV +rV +rV +zJ +Yo +JX +zJ +Ia +uq +dv +zJ +sn +AQ +zJ +su +Vl +pH +zx +Mi +Vl +eE +zJ +rV +rV +rV +jw +jw +jw +"} +(22,1,1) = {" +jw +jw +vq +jw +jw +vq +rV +zJ +gM +sJ +Ka +Ia +UH +dv +Ka +sJ +lF +zJ +IJ +iV +Vl +Vl +Vl +oy +Bu +zJ +rV +rV +jw +jw +jw +jw +"} +(23,1,1) = {" +jw +jw +vq +rV +rV +vq +jw +zJ +zJ +zJ +zJ +Ia +Vl +dv +zJ +zJ +zJ +zJ +Bc +Iz +DN +El +GY +oN +hA +zJ +rV +jw +jw +jw +jw +jw +"} +(24,1,1) = {" +jw +fA +Sh +Sh +Sh +Sh +Sh +zJ +Yr +LY +zJ +Ia +Ac +dv +zJ +is +gH +zJ +zJ +Za +Za +zJ +Za +Za +zJ +zJ +jw +jw +jw +jw +jw +jw +"} +(25,1,1) = {" +jw +rV +vq +rV +rV +vq +jw +zJ +lF +fm +Ka +zw +Ur +Lt +Ka +sJ +lF +zJ +rV +rV +jw +Sh +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(26,1,1) = {" +jw +jw +vq +jw +jw +vq +rV +zJ +Za +zJ +zJ +zJ +Za +zJ +zJ +zJ +Za +zJ +rV +vq +vq +Sh +vq +vq +jw +jw +jw +jw +jw +jw +jw +jw +"} +(27,1,1) = {" +jw +jw +jw +jw +jw +jw +rV +rV +rV +rV +rV +jw +jw +jw +jw +rV +rV +rV +rV +jw +rV +Sh +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(28,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +rV +Sh +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(29,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +vq +vq +Sh +vq +vq +jw +jw +jw +jw +jw +jw +jw +jw +"} +(30,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +rV +TZ +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(31,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +rV +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} +(32,1,1) = {" +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +jw +"} diff --git a/_maps/icebox.json b/_maps/icebox.json index 2f11d13e7eaa1..ea24dd3360455 100644 --- a/_maps/icebox.json +++ b/_maps/icebox.json @@ -14,7 +14,6 @@ }, "traits": [ { - "Up": true, "Mining": true, "Linkage": null, "Gravity": true, @@ -23,8 +22,6 @@ "No Parallax": true }, { - "Down": true, - "Up": true, "Mining": true, "Linkage": null, "Gravity": true, @@ -33,7 +30,6 @@ "No Parallax": true }, { - "Down": true, "Mining": true, "Linkage": null, "Gravity": true, @@ -48,6 +44,9 @@ "job_changes": { "Captain": { "special_charter": "moon" + }, + "Cook": { + "additional_cqc_areas": ["/area/station/service/bar/atrium"] } } } diff --git a/_maps/map_files/Basketball/stadium.dmm b/_maps/map_files/Basketball/stadium.dmm index bcbb91ce4b7ef..c6b6901672553 100644 --- a/_maps/map_files/Basketball/stadium.dmm +++ b/_maps/map_files/Basketball/stadium.dmm @@ -405,7 +405,7 @@ /turf/open/floor/wood, /area/centcom/basketball) "Ax" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/wood, /area/centcom/basketball) "AC" = ( diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index 8705383535bd4..427310fd0a7b6 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -1,14 +1,22 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aae" = ( -/obj/item/kirbyplants/random, -/obj/machinery/camera/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) +"aal" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - N2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "aan" = ( /obj/effect/landmark/carpspawn, /turf/open/space/basic, /area/space) +"aao" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "aap" = ( /obj/structure/sign/warning/pods/directional/north, /obj/effect/decal/cleanable/dirt/dust, @@ -22,21 +30,6 @@ }, /turf/open/floor/iron/small, /area/station/security/prison/shower) -"aaA" = ( -/obj/structure/table/reinforced, -/obj/structure/spider/stickyweb, -/obj/item/clothing/suit/hazardvest{ - pixel_x = 3; - pixel_y = 21 - }, -/obj/item/hfr_box/corner{ - pixel_x = -5; - pixel_y = 12 - }, -/obj/item/hfr_box/body/interface, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "aaH" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -50,6 +43,13 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"abc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Gas"; + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "abh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65,6 +65,19 @@ /obj/machinery/power/tracker, /turf/open/space/basic, /area/station/solars/aft) +"abv" = ( +/obj/structure/table, +/obj/item/paper/crumpled{ + pixel_x = -27; + pixel_y = 2 + }, +/obj/item/storage/medkit/regular{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/cargo/sorting) "abB" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, @@ -76,16 +89,6 @@ }, /turf/open/floor/iron, /area/station/security/tram) -"abR" = ( -/obj/machinery/power/emitter{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/sign/warning/no_smoking/circle/directional/south, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "acg" = ( /obj/machinery/power/smes/engineering, /turf/open/floor/plating, @@ -141,18 +144,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"adV" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/hallway) "aef" = ( /obj/structure/flora/bush/flowers_yw/style_3{ pixel_x = 5; @@ -168,6 +159,11 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) +"aem" = ( +/obj/machinery/power/terminal, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "aeu" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -192,6 +188,16 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/science/genetics) +"aeG" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aeX" = ( /obj/structure/window/spawner/directional/east, /obj/item/kirbyplants/random, @@ -201,6 +207,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/lobby) +"afa" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"afm" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "afu" = ( /obj/structure/chair/wood{ dir = 8 @@ -222,11 +240,6 @@ dir = 8 }, /area/station/science/lobby) -"afB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/radiation/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "afF" = ( /obj/structure/table, /turf/open/floor/iron, @@ -242,6 +255,16 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"afZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "agb" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -302,6 +325,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) "ahf" = ( @@ -350,6 +374,17 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/wood/tile, /area/station/command/bridge) +"ahI" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/item/folder/yellow{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ahW" = ( /obj/structure/railing{ dir = 1 @@ -365,6 +400,10 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"aiI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "aiK" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -375,11 +414,12 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) -"aiL" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ - dir = 8 +"ajg" = ( +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - upper" }, -/turf/open/floor/engine/airless, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, /area/station/engineering/atmos) "ako" = ( /obj/effect/turf_decal/stripes/line{ @@ -406,14 +446,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms) -"aky" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "akF" = ( /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/closed/wall, @@ -428,23 +460,6 @@ }, /turf/open/floor/iron, /area/station/security) -"akS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/suit_storage_unit/atmos, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) -"akU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - South" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "alb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -452,27 +467,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"alg" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) -"all" = ( -/obj/structure/table/greyscale, -/obj/item/folder/yellow{ - pixel_x = 9; - pixel_y = 1 - }, -/obj/item/pen{ - pixel_x = 5 - }, -/obj/item/reagent_containers/cup/bottle/welding_fuel{ - pixel_x = -7; - pixel_y = 5 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "als" = ( /obj/machinery/holopad, /turf/open/floor/iron/kitchen/small, @@ -493,6 +487,15 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/solars/starboard/aft) +"amb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "amh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -505,6 +508,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"amq" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/spawner/random/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "amE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -517,18 +527,6 @@ }, /turf/open/floor/iron/textured_half, /area/station/security/execution/transfer) -"amH" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Air to Mix" - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "amK" = ( /obj/effect/turf_decal/weather/snow, /obj/structure/disposalpipe/segment, @@ -541,11 +539,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"amV" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/turf/open/space/basic, -/area/space/nearstation) +"amX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "anb" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta, /obj/effect/turf_decal/siding/red/corner{ @@ -556,6 +558,14 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) +"and" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/turf/open/floor/plating, +/area/station/cargo/miningfoundry) "ani" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -605,14 +615,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"apd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"api" = ( +/obj/machinery/skill_station, +/turf/open/floor/wood/parquet, +/area/station/service/library) "apk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/dark_red{ @@ -656,6 +662,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/science/lab) +"apP" = ( +/obj/effect/spawner/random/trash, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "apZ" = ( /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) @@ -668,13 +679,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"aqn" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "aqo" = ( /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, @@ -770,6 +774,13 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) +"asf" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "N2O to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ask" = ( /obj/structure/cable, /obj/machinery/door/airlock/public/glass{ @@ -828,11 +839,6 @@ /obj/structure/sign/poster/contraband/lusty_xenomorph/directional/north, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) -"atx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/closet_maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "atB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -874,6 +880,14 @@ dir = 8 }, /area/station/maintenance/starboard/greater) +"atZ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "auc" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -935,18 +949,6 @@ /obj/structure/cable, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"auQ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "auT" = ( /obj/structure/cable, /obj/structure/chair/office{ @@ -955,6 +957,16 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) +"avd" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - Central Aft" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ave" = ( /turf/open/space, /area/space) @@ -993,11 +1005,22 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) +"avP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "avR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"avT" = ( +/obj/structure/cable, +/obj/structure/reflector/single/anchored, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "avU" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -1052,6 +1075,12 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) +"awH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "awL" = ( /obj/structure/chair{ dir = 4 @@ -1092,10 +1121,6 @@ }, /turf/closed/wall, /area/station/hallway/primary/central/aft) -"axj" = ( -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron, -/area/station/cargo/storage) "axq" = ( /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) @@ -1129,6 +1154,15 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"axP" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/brown/anticorner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "axX" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/tile/yellow/diagonal_centre, @@ -1162,18 +1196,6 @@ }, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"ayx" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "ayK" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) @@ -1195,17 +1217,6 @@ }, /turf/open/floor/wood, /area/station/engineering/main) -"ayT" = ( -/obj/effect/turf_decal/delivery/white{ - color = "#52B4E9" - }, -/obj/structure/reagent_dispensers/watertank/high, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 9 - }, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/iron/white/small, -/area/station/service/hydroponics) "ayV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1267,13 +1278,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/wood/large, /area/station/command/corporate_suite) -"azK" = ( -/obj/effect/turf_decal/siding/red, -/obj/item/kirbyplants/random, -/obj/item/storage/toolbox/mechanical, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron, -/area/station/cargo/storage) "azN" = ( /obj/structure/chair{ dir = 4 @@ -1302,19 +1306,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) +"azW" = ( +/obj/machinery/computer/atmos_control/nitrogen_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "azZ" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"aAb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/engineering/atmos) "aAj" = ( /obj/item/storage/backpack/duffelbag/sec{ pixel_x = -15; @@ -1389,6 +1394,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"aBt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "aBu" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -1430,6 +1443,18 @@ }, /turf/open/floor/carpet/blue, /area/station/commons/dorms) +"aBQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "aBV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -1484,16 +1509,6 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"aDJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/directions/vault/directional/west{ - dir = 2 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "aEa" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/tram, @@ -1539,22 +1554,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"aEq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) -"aEy" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "aEB" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/seed_rare, @@ -1622,16 +1621,16 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"aFH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) "aFR" = ( /turf/open/floor/plating, /area/station/security/tram) -"aFU" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "aFY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1654,11 +1653,6 @@ dir = 4 }, /area/station/science/ordnance/testlab) -"aGc" = ( -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/door/window/right/directional/west, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "aGq" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -1698,35 +1692,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"aGI" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/trash/can/food/pine_nuts{ - pixel_x = 16; - pixel_y = 6 - }, -/obj/machinery/cell_charger{ - pixel_x = -1; - pixel_y = 2 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "aGU" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"aHb" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "aHl" = ( /obj/structure/railing/corner, /obj/structure/disposalpipe/segment, @@ -1751,17 +1720,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/grass, /area/station/security/prison/garden) -"aHS" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "aIb" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -1788,12 +1746,15 @@ /area/station/maintenance/department/engine/atmos) "aIr" = ( /obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/south, /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchenshutters"; name = "Kitchen Shutters" }, -/turf/open/floor/iron/kitchen/small, +/obj/effect/turf_decal/siding/end{ + dir = 8 + }, +/obj/machinery/door/window/left/directional/south, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "aIu" = ( /obj/structure/bookcase/random/reference, @@ -1801,14 +1762,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/psychology) -"aIE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/decal/cleanable/generic, -/obj/effect/landmark/blobstart, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "aIO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1831,9 +1784,22 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/small, /area/station/engineering/main) +"aJb" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aJq" = ( /turf/closed/mineral/random/stationside, /area/space/nearstation) +"aJD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "aJE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wood{ @@ -1841,6 +1807,16 @@ }, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"aJP" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "aJV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -1871,16 +1847,13 @@ dir = 8 }, /area/station/construction/mining/aux_base) -"aKb" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"aKo" = ( -/obj/machinery/computer/atmos_control/plasma_tank, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"aKm" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 10 + }, +/turf/open/space/basic, +/area/space/nearstation) "aKx" = ( /obj/machinery/holopad, /turf/open/floor/iron/dark/small, @@ -1903,14 +1876,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/dock) -"aKU" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "aLk" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -1928,21 +1893,10 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) -"aLm" = ( -/turf/closed/wall/rust, -/area/station/cargo/drone_bay) "aLr" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"aLu" = ( -/obj/effect/turf_decal/delivery/white, -/obj/machinery/door/airlock/engineering/glass/critical{ - heat_proof = 1; - name = "Supermatter Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "aLv" = ( /obj/structure/transport/linear/tram, /obj/effect/turf_decal/stripes/white/line{ @@ -2014,13 +1968,21 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) -"aNc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 1 +"aMI" = ( +/obj/machinery/mineral/ore_redemption{ + dir = 4; + input_dir = 8; + output_dir = 4 }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/door/window/right/directional/east{ + name = "Ore Redemtion Window" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/textured_large, +/area/station/cargo/office) +"aNd" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aNj" = ( /obj/machinery/door/airlock/public{ name = "Arcade" @@ -2043,6 +2005,14 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/storage) +"aNE" = ( +/obj/machinery/computer/cargo{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "aNJ" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north{ @@ -2061,6 +2031,13 @@ "aNL" = ( /turf/closed/wall, /area/station/science/ordnance/bomb) +"aNO" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/machinery/camera/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "aNX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2082,14 +2059,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"aOb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/light/cold/directional/north, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +"aOa" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine) "aOh" = ( /obj/machinery/status_display/ai/directional/south, /obj/effect/turf_decal/tile/neutral{ @@ -2121,10 +2096,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/science/genetics) -"aOS" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "aOX" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 @@ -2155,15 +2126,6 @@ luminosity = 2 }, /area/station/science/ordnance/bomb) -"aPB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "aPD" = ( /obj/structure/chair{ dir = 1 @@ -2218,6 +2180,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/iron/dark, /area/station/medical/cryo) +"aQx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - North Corridor" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "aQF" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -2226,6 +2202,12 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) +"aQX" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "aQZ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -2264,6 +2246,14 @@ dir = 4 }, /area/station/maintenance/starboard/greater) +"aRx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "aRC" = ( /obj/structure/table, /obj/item/flashlight/lamp/green{ @@ -2284,23 +2274,11 @@ /obj/effect/turf_decal/trimline/neutral/end, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"aRS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/computer/security/telescreen/turbine/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "aRT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"aSc" = ( -/obj/structure/reflector/double/anchored, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "aSt" = ( /obj/effect/spawner/random/structure/closet_private, /obj/machinery/light/small/directional/north, @@ -2318,10 +2296,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/dock) -"aSV" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "aSW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -2385,6 +2359,11 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"aTB" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "aTG" = ( /obj/structure/table/reinforced, /obj/machinery/requests_console/directional/east{ @@ -2397,12 +2376,30 @@ /obj/machinery/recharger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"aUb" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) "aUA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/smooth_edge, /area/station/maintenance/starboard/greater) +"aUB" = ( +/obj/machinery/vending/wardrobe/robo_wardrobe, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "aUJ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -2415,20 +2412,6 @@ }, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"aUR" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/cold/directional/north, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "aVA" = ( /obj/structure/closet/secure_closet/freezer/empty, /obj/item/food/grown/tomato{ @@ -2547,20 +2530,6 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"aWG" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) -"aXy" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "aXC" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -2634,31 +2603,23 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/service/lawoffice) -"aZf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable, -/obj/structure/reflector/single/anchored{ - dir = 10 - }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "aZh" = ( /obj/machinery/modular_computer/preset/curator{ dir = 8 }, /turf/open/floor/carpet, /area/station/service/library) -"aZu" = ( -/obj/machinery/power/emitter{ - dir = 4 +"aZp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ + dir = 1 }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "aZG" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/siding/wood{ @@ -2687,7 +2648,7 @@ "bah" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/iron/dark/textured_corner{ dir = 4 }, @@ -2722,7 +2683,7 @@ dir = 1 }, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "baP" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2743,27 +2704,10 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"bbp" = ( -/obj/structure/spider/stickyweb/sealed, +"bbB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) -"bbF" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) -"bbK" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/kirbyplants/organic/applebush{ - pixel_y = 5 - }, -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) +/area/station/engineering/supermatter) "bbT" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -2777,6 +2721,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"bbV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "bcr" = ( /obj/effect/turf_decal/stripes/end, /turf/open/floor/plating/airless, @@ -2813,38 +2766,26 @@ dir = 4 }, /area/station/science/xenobiology) -"bcZ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, +"bdi" = ( /obj/structure/cable, -/obj/effect/landmark/start/station_engineer, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"bdb" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) -"bdd" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold/general/visible, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/machinery/meter, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) +/area/station/command/heads_quarters/qm) "bdN" = ( /obj/structure/falsewall, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"bdU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/computer/atmos_control/oxygen_tank{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bed" = ( /obj/structure/railing/corner{ dir = 1 @@ -2857,9 +2798,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) -"beg" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "bej" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wood/end{ @@ -2867,14 +2805,6 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"bes" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/service/library) "bey" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -2909,6 +2839,23 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) +"bfS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) +"bfU" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Air to Distro staging" + }, +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - lower" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bgg" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -2917,6 +2864,23 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/white/small, /area/station/science/server) +"bgl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/table/glass, +/obj/item/flashlight/lamp/green{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/taperecorder{ + pixel_x = -15; + pixel_y = 3 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "bgn" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" @@ -2986,20 +2950,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"bhb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "bho" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -3012,6 +2962,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"bhE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"bhN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "biB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/smooth_large, @@ -3021,6 +2990,11 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"biV" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "bja" = ( /obj/structure/railing/corner/end/flip{ dir = 8 @@ -3046,6 +3020,19 @@ }, /turf/open/floor/iron/white/side, /area/station/hallway/primary/central/aft) +"bjf" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/table, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "bjh" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -3064,6 +3051,9 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bjt" = ( +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "bjL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, @@ -3113,20 +3103,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bkI" = ( -/obj/machinery/status_display/evac/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"bkO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Mix" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "bkY" = ( /obj/machinery/requests_console/directional/west{ department = "Chief Medical Officer's Desk"; @@ -3177,6 +3153,14 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"blt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bly" = ( /obj/structure/closet/crate/miningcar, /turf/open/floor/iron, @@ -3198,17 +3182,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) -"blZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "bmr" = ( /obj/structure/cable, /obj/machinery/telecomms/broadcaster/preset_right, @@ -3251,6 +3224,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/maintenance/department/engine/atmos) +"bmO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/white, +/turf/closed/wall, +/area/station/maintenance/port/fore) "bmT" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -3293,15 +3276,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bnq" = ( -/obj/machinery/door/airlock/engineering{ - name = "Decomissioned Airlock" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/abandoned, -/turf/open/floor/iron/textured_half, -/area/station/engineering/engine_smes) "bnr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -3384,6 +3358,23 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"boB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) +"boG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron, +/area/station/cargo/storage) "boI" = ( /obj/machinery/mecha_part_fabricator/maint{ name = "forgotten exosuit fabricator" @@ -3450,20 +3441,6 @@ /obj/machinery/light/broken/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"bpv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Air Mix" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/engineering/atmos/pumproom) "bpI" = ( /obj/structure/table, /obj/item/storage/box/donkpockets, @@ -3489,6 +3466,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"bqc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bqd" = ( /obj/item/reagent_containers/cup/bottle/ammonia, /obj/structure/steam_vent, @@ -3537,6 +3520,18 @@ name = "Holodeck Projector Floor" }, /area/station/holodeck/rec_center) +"bqA" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/large/style_random{ + pixel_x = -20; + pixel_y = 3 + }, +/turf/open/floor/grass, +/area/station/service/chapel) "bqD" = ( /mob/living/basic/slime, /turf/open/floor/engine, @@ -3559,13 +3554,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/security/prison/workout) -"bre" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/crossing/horizontal{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "brj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/north, @@ -3606,13 +3594,10 @@ /obj/vehicle/ridden/scooter/skateboard/hoverboard, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"brC" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) +"brA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "brD" = ( /obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/tile/neutral{ @@ -3620,6 +3605,18 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"brG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) +"brO" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "brZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -3629,15 +3626,16 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/aft) -"bsn" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 +"bst" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "bsu" = ( /obj/structure/barricade/wooden/crude, /obj/effect/mapping_helpers/broken_floor, @@ -3680,15 +3678,17 @@ dir = 4 }, /area/station/maintenance/starboard/greater) -"bsJ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/reagent_dispensers/fueltank/large, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "bsP" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bta" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "btG" = ( /obj/structure/rack, /obj/effect/turf_decal/delivery/white, @@ -3727,6 +3727,12 @@ /obj/structure/chair/stool/bamboo, /turf/open/floor/carpet/lone, /area/station/service/chapel/office) +"bud" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "buf" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -3750,6 +3756,24 @@ dir = 8 }, /area/station/science/xenobiology) +"buI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/storage/belt/utility{ + pixel_x = -3; + pixel_y = -4 + }, +/obj/item/storage/belt/utility{ + pixel_x = 6 + }, +/obj/item/storage/belt/utility{ + pixel_x = -2; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "buJ" = ( /obj/effect/spawner/random/vending/snackvend, /obj/machinery/bluespace_vendor/directional/south, @@ -3805,33 +3829,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"bvV" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) -"bwy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/sign/poster/official/random/directional/west, -/obj/structure/destructible/cult/item_dispenser/archives/library, -/obj/item/book/codex_gigas, -/obj/machinery/light/small/dim/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/library) "bwz" = ( /obj/effect/spawner/random/entertainment/arcade, /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"bwY" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +"bwW" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_y = 6 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/break_room) "bxa" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -3857,28 +3871,6 @@ /obj/machinery/food_cart, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"bxs" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/orange/visible, -/obj/machinery/meter, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) -"bxu" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/machinery/button/door/directional/west{ - id = "Secure Storage"; - name = "Engineering Secure Storage"; - pixel_y = 24; - req_access = list("engine_equip") - }, -/turf/open/floor/iron/corner{ - dir = 8 - }, -/area/station/engineering/main) "bxI" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -3906,6 +3898,10 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/medical/morgue) +"byt" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "byv" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -3942,6 +3938,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"byR" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "byU" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -3950,6 +3955,14 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"bzc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "bzj" = ( /obj/machinery/rnd/production/techfab/department/service, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -3961,6 +3974,22 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) +"bzF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) +"bzW" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "bzZ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -3997,20 +4026,6 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"bAU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/portable_atmospherics/canister/plasma, -/turf/open/floor/plating, -/area/station/engineering/atmos/storage/gas) -"bBd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Turbine" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "bBh" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -4044,10 +4059,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"bBy" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "bBL" = ( /obj/effect/landmark/start/cook, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4079,30 +4090,6 @@ }, /turf/open/floor/iron, /area/station/security/processing) -"bCh" = ( -/obj/effect/turf_decal/stripes{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes{ - dir = 8 - }, -/obj/machinery/door/airlock/mining{ - name = "Bitrunning Den" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, -/turf/open/floor/iron/dark/smooth_half{ - dir = 1 - }, -/area/station/cargo/bitrunning/den) "bCn" = ( /obj/effect/turf_decal/tile/blue, /obj/structure/extinguisher_cabinet/directional/west, @@ -4144,16 +4131,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/lower) -"bCZ" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/arrows{ +"bDg" = ( +/obj/machinery/atmospherics/components/binary/pump{ dir = 1 }, /turf/open/floor/iron, -/area/station/cargo/sorting) +/area/station/engineering/atmos/project) "bDh" = ( /obj/effect/turf_decal/siding/yellow{ dir = 5 @@ -4165,6 +4148,16 @@ /obj/structure/cable, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"bDi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "O2 to Airmix" + }, +/obj/machinery/light/no_nightlight/directional/north, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "bDj" = ( /obj/effect/landmark/start/medical_doctor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -4208,18 +4201,22 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"bDO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2 to Pure" +"bDQ" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "bEd" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"bEv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bEw" = ( /obj/structure/sign/directions/supply{ dir = 1; @@ -4239,6 +4236,18 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, /area/station/science/lower) +"bEG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/directional/north{ + c_tag = "atmospherics - HFR" + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "bEN" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -4263,12 +4272,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"bFr" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/kirbyplants/random, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "bFt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -4362,13 +4365,14 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"bGU" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Filing Room" +"bGX" = ( +/obj/structure/chair/office, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/office) +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "bGY" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -4404,6 +4408,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"bHw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "bHy" = ( /obj/structure/chair/office/light, /obj/effect/landmark/start/scientist, @@ -4421,11 +4431,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"bIi" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "bIp" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -28; @@ -4436,6 +4441,11 @@ /obj/structure/window/spawner/directional/south, /turf/open/misc/sandy_dirt, /area/station/science/research) +"bIu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "bIJ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 4 @@ -4470,15 +4480,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) -"bJA" = ( -/obj/item/kirbyplants/random, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light_switch/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "bJK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -4486,13 +4487,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"bJN" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/radio/intercom/directional/west, -/obj/machinery/status_display/evac/directional/south, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "bJZ" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, @@ -4514,16 +4508,6 @@ /obj/effect/turf_decal/weather/dirt, /turf/open/floor/grass, /area/station/service/chapel) -"bKz" = ( -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "bKE" = ( /obj/effect/turf_decal/siding/red{ dir = 1 @@ -4537,6 +4521,18 @@ }, /turf/open/floor/iron/white/small, /area/station/security/warden) +"bKK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "bKN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/brigdoor/left/directional/west{ @@ -4560,14 +4556,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"bLu" = ( -/obj/structure/cable, +"bLp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"bLG" = ( +/obj/effect/spawner/structure/window, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/cargo/office) "bLS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4639,10 +4642,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/station/command/bridge) -"bNg" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "bNl" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "sci-entrance" @@ -4686,29 +4685,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"bNX" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cubicle) "bOa" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/frame/machine, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"bOb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "bOG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall, @@ -4728,13 +4710,23 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/misc/sandy_dirt, /area/station/hallway/secondary/entry) -"bOY" = ( -/obj/structure/sign/poster/random/directional/east, -/obj/machinery/conveyor{ - id = "mining" +"bPd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) +"bPk" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "bPy" = ( /obj/structure/cable, /obj/machinery/light/small/directional/west, @@ -4796,12 +4788,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"bRc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/doors/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "bRf" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/steam_vent, @@ -4840,6 +4826,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) +"bRA" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "bRK" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 4 @@ -4853,13 +4842,10 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"bSm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +"bSk" = ( +/obj/machinery/air_sensor/engine_chamber, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "bSo" = ( /turf/open/space/basic, /area/space/nearstation) @@ -4891,13 +4877,6 @@ }, /turf/closed/wall, /area/station/ai_monitored/turret_protected/ai) -"bTd" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/crossing/horizontal{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "bTo" = ( /obj/effect/turf_decal/weather/dirt, /obj/effect/turf_decal/weather/dirt{ @@ -4915,19 +4894,16 @@ }, /turf/open/floor/iron/textured_half, /area/station/cargo/miningoffice) -"bTJ" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"bTO" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) +"bTI" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"bUq" = ( +/obj/structure/cable, +/obj/item/reagent_containers/pill/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bUr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/blue{ @@ -5005,21 +4981,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"bWg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "bWh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -5054,13 +5015,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) -"bWk" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "bWl" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -5074,7 +5028,7 @@ dir = 4 }, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "bWs" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -5082,11 +5036,6 @@ /obj/machinery/chem_heater/withbuffer, /turf/open/floor/iron, /area/station/science/xenobiology) -"bXb" = ( -/obj/effect/turf_decal/sand/plating, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "bXi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5134,17 +5083,6 @@ }, /turf/open/floor/stone, /area/station/service/bar) -"bYe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "bYf" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/stripes/line{ @@ -5176,19 +5114,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"bYY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Air Mix" +"bYV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron/textured_half{ - dir = 1 +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 }, -/area/station/engineering/atmos/pumproom) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "bZa" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/white{ @@ -5270,22 +5207,21 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"caB" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter) -"caD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"cax" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/bot{ + dir = 1 }, -/turf/open/floor/wood, -/area/station/service/chapel/office) +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"cay" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "caI" = ( /obj/structure/cable, /obj/effect/decal/cleanable/glass, @@ -5313,6 +5249,12 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) +"cbh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "cbi" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom/directional/north{ @@ -5346,6 +5288,15 @@ "cbm" = ( /turf/closed/wall/rust, /area/station/ai_monitored/aisat/exterior) +"cbq" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "cbt" = ( /obj/structure/cable, /obj/structure/table/bronze, @@ -5376,13 +5327,6 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) -"cbJ" = ( -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/gas, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "cbO" = ( /obj/structure/chair{ dir = 1 @@ -5416,23 +5360,12 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"ccu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"ccx" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 - }, -/turf/open/space/basic, -/area/space/nearstation) +"ccA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/storage_shared) "ccD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5449,6 +5382,9 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, /obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "ccG" = ( @@ -5458,45 +5394,13 @@ /obj/machinery/light/cold/dim/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"ccL" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light_switch/directional/north, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/radio/off{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "ccO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/structure/table, -/obj/effect/turf_decal/siding/thinplating_new/dark{ +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 1 }, -/obj/effect/turf_decal/siding/thinplating_new/dark, -/obj/item/radio/intercom/directional/south, -/obj/item/c_tube{ - pixel_x = 20 - }, -/obj/item/clothing/head/cone{ - pixel_y = 5; - pixel_x = -6 - }, -/obj/item/clothing/head/cone{ - pixel_y = 7; - pixel_x = -6 - }, -/obj/item/pipe_dispenser{ - pixel_y = 9; - pixel_x = 14 - }, -/obj/item/cigarette{ - pixel_y = 2 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "cdg" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/grass, @@ -5505,6 +5409,16 @@ /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/circuit, /area/station/tcommsat/server) +"cdp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "CO2 to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cdz" = ( /obj/effect/turf_decal/tile/yellow, /obj/machinery/light/cold/dim/directional/west, @@ -5522,10 +5436,6 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"cdW" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/disposal/incinerator) "cdY" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -5538,15 +5448,27 @@ /obj/structure/window/spawner/directional/south, /turf/open/space/basic, /area/space/nearstation) -"ceA" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 +"ceD" = ( +/obj/machinery/door/airlock/grunge{ + name = "Janitorial Closet" }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/textured_half{ + dir = 8 + }, +/area/station/service/janitor) +"ceN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "ceP" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -5610,20 +5532,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"cgh" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste to Starboard Filter"; - dir = 1 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "cgs" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -5648,21 +5556,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"cgz" = ( -/obj/machinery/door/airlock/atmos{ - name = "DECOMISSIONED" - }, -/obj/structure/barricade/wooden/crude, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/engineering/atmospherics_engine) "cgL" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -5692,17 +5585,6 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) -"chb" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"chf" = ( -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "chh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5714,32 +5596,10 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"chj" = ( -/obj/structure/grille, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/atmos/space_catwalk) "chp" = ( /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) -"chr" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "chC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -5820,6 +5680,12 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"civ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ciR" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/command_all, @@ -5841,6 +5707,22 @@ /obj/effect/turf_decal/tile/purple/opposingcorners, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"cjc" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) +"cjf" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "cjm" = ( /obj/structure/closet/firecloset, /obj/machinery/status_display/evac/directional/south, @@ -5855,16 +5737,26 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"cjP" = ( -/obj/effect/turf_decal/delivery, +"cjD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron, +/area/station/engineering/atmos) "cjR" = ( /obj/structure/disposalpipe/segment, /obj/structure/plasticflaps/opaque, /turf/open/floor/iron, /area/station/maintenance/port/lesser) +"cjS" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "cjY" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5908,15 +5800,14 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, /area/station/maintenance/department/medical/central) -"ckI" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output{ - dir = 1 +"cky" = ( +/obj/machinery/airalarm/directional/north, +/obj/item/kirbyplants/organic/applebush{ + pixel_y = 5 }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "ckL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5949,21 +5840,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"cla" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Atmospherics - Distribution" - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "clb" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/kitchen/small, @@ -6009,10 +5885,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"clX" = ( -/obj/structure/railing/corner, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "clZ" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -6046,20 +5918,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"cmu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "cmw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6112,21 +5970,15 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"cnC" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "cnG" = ( /obj/machinery/suit_storage_unit/rd, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/rd) -"cnU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "cob" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -6157,6 +6009,10 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white/small, /area/station/medical/cryo) +"cor" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "cow" = ( /turf/closed/wall, /area/station/engineering/lobby) @@ -6170,12 +6026,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"coO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos) "cpA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -6190,15 +6040,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"cpC" = ( -/obj/effect/turf_decal/siding/red{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrogen_input{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) "cpE" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron, @@ -6356,6 +6197,18 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) +"csj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "csl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -6386,21 +6239,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/small, /area/station/medical/medbay/lobby) -"csA" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"csB" = ( -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "csE" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -6471,6 +6309,22 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/prison/rec) +"cuZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"cvc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/structure/table, +/obj/item/stack/sheet/mineral/plasma/five, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "cvk" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -6541,6 +6395,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) +"cwj" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "cwt" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -6599,14 +6459,6 @@ }, /turf/open/floor/plating, /area/station/science/cubicle) -"cxQ" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos/office) "cyf" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -6643,6 +6495,25 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/ce) +"cyQ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/rack, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -8; + pixel_y = 11 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/pickaxe, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "cyU" = ( /obj/effect/spawner/random/structure/table, /obj/effect/spawner/random/maintenance, @@ -6669,18 +6540,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"czf" = ( -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "czg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"czh" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_br, +/obj/structure/flora/bush/flowers_br/style_3, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "czq" = ( /obj/structure/curtain/cloth, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6758,6 +6628,15 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/science/robotics/mechbay) +"cAv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/office) "cAZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -6766,6 +6645,16 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"cBd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"cBl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "cBw" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/structure/filingcabinet/chestdrawer, @@ -6777,28 +6666,6 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"cBR" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) -"cBV" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) -"cBX" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/structure/transit_tube/horizontal{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "cCb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -6831,6 +6698,15 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"cCC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "cCD" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external{ @@ -6850,6 +6726,26 @@ /obj/structure/cable, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"cCP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/cable, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"cCV" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "cCW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6894,18 +6790,6 @@ dir = 8 }, /area/station/science/lower) -"cDE" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "Secure Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating/rust, -/area/station/engineering/storage_shared) "cDH" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -6942,6 +6826,22 @@ dir = 1 }, /area/station/maintenance/starboard/greater) +"cDQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"cDV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "cEn" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -6955,6 +6855,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"cEp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "cED" = ( /obj/structure/railing/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -6969,15 +6874,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"cEH" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "cEK" = ( /obj/effect/landmark/start/ai, /obj/item/radio/intercom/directional/south{ @@ -7081,6 +6977,14 @@ "cGj" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) +"cGG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cGI" = ( /obj/machinery/firealarm/directional/south, /obj/structure/closet/secure_closet/medical3, @@ -7089,6 +6993,17 @@ /obj/item/clothing/mask/surgical, /turf/open/floor/iron/small, /area/station/medical/storage) +"cGV" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/storage) +"cHh" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/east, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "cHp" = ( /obj/effect/turf_decal/siding/dark_red/corner{ dir = 4 @@ -7109,6 +7024,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"cHt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 9 + }, +/obj/machinery/meter/monitored/distro_loop, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "cHC" = ( /obj/structure/chair{ pixel_y = -2 @@ -7121,6 +7044,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/service/lawoffice) +"cHD" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cHG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7180,13 +7110,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/stone, /area/station/service/bar) -"cJb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "cJv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7246,6 +7169,10 @@ "cKk" = ( /turf/closed/mineral/random/stationside, /area/station/ai_monitored/turret_protected/aisat/maint) +"cKm" = ( +/obj/machinery/camera/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "cKt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7254,18 +7181,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"cKv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/sign/warning/electric_shock/directional/south, -/turf/open/floor/iron/stairs/old{ - dir = 8 - }, -/area/station/engineering/supermatter/room) +"cKy" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/atmospheric_sanity/ignore_area, +/turf/open/floor/iron, +/area/station/engineering/hallway) "cKL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -7286,6 +7210,13 @@ /obj/structure/marker_beacon/indigo, /turf/open/space/basic, /area/space/nearstation) +"cLw" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "cLD" = ( /obj/structure/window/spawner/directional/north, /obj/effect/turf_decal/siding/thinplating_new/dark{ @@ -7366,6 +7297,16 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"cMG" = ( +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"cMH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "cMS" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/north, @@ -7386,19 +7327,26 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron/dark/small, /area/station/maintenance/aft) -"cMZ" = ( -/obj/machinery/power/smes/engineering, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Energy Silos" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "cNk" = ( /obj/structure/sign/departments/restroom/directional/south, /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"cNl" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"cNw" = ( +/obj/effect/turf_decal/siding/red, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/cargo/storage) "cNR" = ( /obj/structure/chair/office{ dir = 4 @@ -7419,6 +7367,16 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"cOa" = ( +/obj/structure/table, +/obj/item/screwdriver{ + pixel_y = -6 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "cOd" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/flora/rock/pile/style_2{ @@ -7429,6 +7387,13 @@ /obj/structure/window/spawner/directional/west, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/recreation/entertainment) +"cOs" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/table, +/turf/open/floor/iron, +/area/station/cargo/sorting) "cOC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7442,6 +7407,25 @@ dir = 1 }, /area/station/science/xenobiology) +"cOI" = ( +/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) +"cOJ" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "cON" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -7479,16 +7463,6 @@ /obj/structure/urinal/directional/east, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"cPv" = ( -/obj/effect/turf_decal/siding/red{ - dir = 10 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) -"cPB" = ( -/obj/machinery/air_sensor/incinerator_tank, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "cPD" = ( /obj/effect/turf_decal/stripes/end{ dir = 4 @@ -7536,15 +7510,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"cQI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "cQN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7581,25 +7546,22 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/lobby) -"cRq" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/reagent_containers/cup/glass/mug/coco{ - pixel_x = -9 +"cRo" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "HFR Chamber" }, -/obj/item/paper_bin{ - pixel_x = 5; - pixel_y = 6 +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 }, -/obj/item/pen{ - pixel_x = 6; - pixel_y = 4 +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "cRw" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue, @@ -7651,6 +7613,10 @@ /obj/structure/flora/bush/sparsegrass, /turf/open/floor/grass, /area/station/service/chapel) +"cSc" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "cSk" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/closet/l3closet, @@ -7700,16 +7666,6 @@ "cSC" = ( /turf/closed/wall, /area/station/commons/vacant_room/office) -"cSP" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "cTn" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -7721,10 +7677,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"cTu" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "cTw" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/south, @@ -7749,10 +7701,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"cTS" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"cTK" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "cTX" = ( /obj/machinery/computer/crew{ dir = 4 @@ -7762,14 +7714,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"cUa" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) +"cTY" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "cUf" = ( /obj/structure/sign/directions/engineering{ dir = 1; @@ -7789,7 +7742,7 @@ /obj/structure/chair/stool/bar/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "cUH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -7818,6 +7771,13 @@ dir = 1 }, /area/station/hallway/primary/aft) +"cUV" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "cUY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -7868,13 +7828,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/execution/education) -"cVM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "cVQ" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -7884,20 +7837,6 @@ dir = 1 }, /area/station/science/lower) -"cVS" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"cVY" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos/office) "cWh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7905,6 +7844,11 @@ dir = 4 }, /area/station/maintenance/fore/lesser) +"cWC" = ( +/obj/item/reagent_containers/cup/watering_can/wood, +/obj/structure/table, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "cWM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -7919,10 +7863,6 @@ dir = 1 }, /area/station/hallway/primary/aft) -"cWQ" = ( -/obj/structure/barricade/wooden, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "cWZ" = ( /obj/machinery/door/airlock/external{ name = "Primary Docking Bay" @@ -7941,6 +7881,15 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"cXg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cXh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -8003,11 +7952,10 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "cYt" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -8054,15 +8002,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"cYT" = ( -/obj/structure/hedge, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) -"cYU" = ( -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) "cYW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/steam_vent, @@ -8087,6 +8026,15 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"cZj" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "cZk" = ( /obj/structure/chair{ dir = 1 @@ -8182,6 +8130,13 @@ dir = 1 }, /area/station/science/lower) +"day" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "daC" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/thinplating_new{ @@ -8195,14 +8150,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"dbo" = ( -/obj/structure/cable, -/obj/effect/spawner/random/structure/steam_vent, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "dbs" = ( /obj/structure/chair/plastic{ dir = 8 @@ -8241,23 +8188,6 @@ "dbF" = ( /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"dbJ" = ( -/obj/effect/landmark/start/librarian, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"dbN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "dbZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ @@ -8274,6 +8204,11 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"dcu" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "dcx" = ( /obj/effect/turf_decal/siding/white{ dir = 10 @@ -8314,6 +8249,13 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"dcK" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "dcS" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 4 @@ -8454,6 +8396,10 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/psychology) +"dfd" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "dff" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/airalarm/directional/east, @@ -8466,23 +8412,20 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"dfz" = ( -/obj/structure/barricade/wooden, -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance" +"dfM" = ( +/obj/structure/rack, +/obj/item/storage/medkit/regular, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/locked, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) -"dfN" = ( -/obj/structure/window/spawner/directional/west, -/obj/structure/window/spawner/directional/south, -/turf/open/floor/grass, /area/station/cargo/storage) +"dfT" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "dgm" = ( /obj/structure/railing/corner{ dir = 1 @@ -8513,6 +8456,25 @@ /obj/structure/cable, /turf/open/floor/iron/white/corner, /area/station/science/lower) +"dgt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/storage/fancy/candle_box, +/obj/structure/rack/skeletal, +/obj/machinery/camera/autoname/directional/west, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) +"dgy" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "dgV" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -8570,6 +8532,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"dhG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos) "dhH" = ( /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) @@ -8588,6 +8557,19 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"din" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/railing/corner, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "dis" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -8606,6 +8588,17 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/dark/small, /area/station/medical/medbay/lobby) +"dix" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - project room" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "diF" = ( /obj/machinery/door/airlock/public/glass{ name = "Barber" @@ -8619,7 +8612,7 @@ /obj/structure/chair/stool/bar/directional/south, /obj/effect/landmark/start/hangover, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "diI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -8638,18 +8631,13 @@ /obj/effect/landmark/start/mime, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"diL" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 +"diN" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/plating, +/area/station/cargo/office) "diP" = ( /turf/open/floor/iron, /area/station/hallway/primary/central/aft) @@ -8705,6 +8693,19 @@ /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"djX" = ( +/obj/structure/table, +/obj/item/grenade/chem_grenade/smart_metal_foam, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker; + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "djY" = ( /obj/machinery/door/airlock/public/glass{ name = "Dorms" @@ -8725,6 +8726,10 @@ }, /turf/open/floor/stone, /area/station/service/chapel) +"dkv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dkz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8733,25 +8738,17 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/tram) +"dkD" = ( +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "dkI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"dkR" = ( -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/loading_area, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "dkT" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/stripes/line{ @@ -8760,13 +8757,12 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/hallway/secondary/construction) -"dlk" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 +"dlj" = ( +/obj/structure/reflector/single/anchored{ + dir = 9 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "dlx" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/rock/pile/style_random, @@ -8802,17 +8798,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"dmb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "dmk" = ( /obj/machinery/holopad, /obj/effect/landmark/start/depsec/medical, @@ -8833,6 +8818,9 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"dmO" = ( +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "dmT" = ( /obj/machinery/camera/directional/north{ c_tag = "Xenobiology - Cell 2"; @@ -8898,12 +8886,12 @@ /obj/machinery/door/airlock/maintenance{ name = "Maintenance" }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) "dob" = ( @@ -8918,6 +8906,14 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/brig) +"doc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Mix" + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dof" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -8972,12 +8968,6 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) -"dpk" = ( -/obj/effect/turf_decal/arrows/white, -/obj/effect/decal/cleanable/generic, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "dps" = ( /obj/machinery/camera/directional/south{ c_tag = "AI Chamber - Aft"; @@ -8988,13 +8978,12 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"dpz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light_switch/directional/west, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +"dpH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ + dir = 8 + }, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "dpR" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -9011,16 +9000,26 @@ /obj/item/clothing/head/utility/chefhat, /turf/open/floor/iron/dark/small, /area/station/commons/fitness/locker_room) +"dqF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen/invisible{ + pixel_x = -2; + pixel_y = 7 + }, +/obj/machinery/newscaster/directional/north, +/obj/item/storage/photo_album/library, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "dqO" = ( /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) -"dqV" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 5 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "dqX" = ( /obj/structure/reagent_dispensers/wall/peppertank/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -9033,16 +9032,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"drw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/computer/atmos_control/nocontrol/incinerator{ - dir = 4 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "dry" = ( /obj/structure/bed/medical{ dir = 4 @@ -9061,15 +9050,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"drF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "drI" = ( /obj/structure/railing{ dir = 1 @@ -9138,11 +9118,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) -"dsE" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/screwdriver, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "dsK" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -9273,14 +9248,6 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) -"duY" = ( -/obj/structure/railing, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "dvd" = ( /turf/open/floor/iron/white/small, /area/station/service/hydroponics) @@ -9294,11 +9261,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"dvv" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) "dvJ" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/fourcorners, @@ -9308,16 +9270,15 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"dvO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +"dvP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 1 }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 +/turf/open/floor/iron/dark/corner{ + dir = 1 }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +/area/station/cargo/storage) "dvY" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -9343,6 +9304,9 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) +"dwy" = ( +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "dwC" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -9352,14 +9316,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"dwP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "dwT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9379,24 +9335,12 @@ "dxf" = ( /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) -"dxr" = ( -/obj/effect/turf_decal/stripes/white/box, -/obj/item/hfr_box/core, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) -"dxu" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering - Cold Room" +"dxv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 5 }, /turf/open/floor/iron, -/area/station/engineering/supermatter/room) +/area/station/engineering/atmos) "dxw" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/machinery/light/warm/directional/east, @@ -9467,21 +9411,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"dyt" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "dyF" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue{ @@ -9495,6 +9424,9 @@ dir = 4 }, /area/station/hallway/primary/central/fore) +"dyI" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "dyO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9512,6 +9444,21 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) +"dzh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/pipe_dispenser{ + pixel_y = -7; + pixel_x = 2 + }, +/obj/item/pipe_dispenser{ + pixel_y = 5; + pixel_x = -2 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dzi" = ( /obj/structure/table/wood, /obj/item/book/granter/action/spell/smoke/lesser{ @@ -9530,16 +9477,6 @@ /obj/item/radio/intercom/chapel/directional/east, /turf/open/floor/iron/terracotta/diagonal, /area/station/service/chapel/office) -"dzA" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) -"dzD" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "dzE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -9556,6 +9493,15 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"dAu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "dAz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -9607,6 +9553,10 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"dAZ" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "dBh" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -9619,6 +9569,14 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"dBn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dBr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9650,6 +9608,12 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) +"dBT" = ( +/obj/effect/turf_decal/box/white{ + color = "#EFB341" + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "dCe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9708,16 +9672,6 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"dDi" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "dDk" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/chapel{ @@ -9772,15 +9726,23 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"dDW" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Recreation" +"dEc" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured_half, -/area/station/commons/fitness/recreation/entertainment) +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/camera/directional/north{ + c_tag = "Atmospherics - Central Fore" + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"dEp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "dEq" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9791,12 +9753,17 @@ /obj/machinery/vending/cigarette, /turf/open/floor/iron/kitchen/small, /area/station/security/breakroom) -"dEA" = ( -/obj/machinery/modular_computer/preset/engineering, -/obj/structure/cable, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) +"dEw" = ( +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/space/basic, +/area/space/nearstation) +"dEy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "dEF" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -9809,19 +9776,36 @@ dir = 1 }, /area/station/science/ordnance/testlab) -"dEQ" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "dEY" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 5 }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"dFn" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) +"dFA" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) +"dFG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "dFN" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/north, @@ -9835,11 +9819,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"dFY" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "dGV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/closed/wall, +/obj/structure/closet/emcloset, +/turf/open/floor/catwalk_floor, /area/station/engineering/atmos/storage/gas) "dHk" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -9856,6 +9845,18 @@ }, /turf/open/floor/tram, /area/station/security/tram) +"dHx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - turbine" + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "dHL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9870,14 +9871,13 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"dHU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ - dir = 8 +"dHW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 1 }, +/obj/structure/lattice, /turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/area/space/nearstation) "dIt" = ( /obj/structure/cable, /obj/machinery/button/door/directional/east{ @@ -9890,6 +9890,12 @@ }, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/security/armory) +"dIw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "dIQ" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_3, @@ -9899,20 +9905,6 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/grass, /area/station/service/chapel) -"dIZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "dJd" = ( /obj/machinery/computer/records/security, /turf/open/floor/wood/tile, @@ -9926,12 +9918,27 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"dJn" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "dJv" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, /turf/open/floor/wood/tile, /area/station/service/bar) +"dJB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "dJT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9945,19 +9952,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"dJU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 10 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "dKl" = ( /obj/effect/spawner/random/engineering/material_cheap, /obj/effect/spawner/random/engineering/material, @@ -10008,13 +10002,20 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"dLj" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/effect/turf_decal/bot, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) +"dKY" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) +"dLl" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/bounty/start_closed, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "dLn" = ( /obj/structure/chair/office, /turf/open/floor/iron/dark/herringbone, @@ -10079,6 +10080,13 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"dMC" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/plating, +/area/station/hallway/primary/central/fore) "dMM" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, @@ -10130,14 +10138,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"dNM" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump/on/layer2{ - dir = 1; - name = "Air to Distro" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "dNU" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -10166,6 +10166,26 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/tools) +"dOH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"dOP" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "dOT" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -10180,24 +10200,6 @@ }, /turf/open/floor/wood, /area/station/security/detectives_office) -"dOU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/button/door/directional/west{ - id = "engsm"; - name = "Radiation Shutters Control" - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"dOY" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "dPa" = ( /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) @@ -10238,6 +10240,14 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) +"dPW" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/railing, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "dQi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -10290,17 +10300,10 @@ /obj/effect/turf_decal/siding/wood/end, /turf/open/floor/stone, /area/station/service/chapel) -"dRD" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +"dRz" = ( +/obj/docking_port/stationary/syndicate/northeast, +/turf/open/space/basic, +/area/space) "dRT" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10377,6 +10380,10 @@ "dTd" = ( /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"dTe" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood, +/area/station/cargo/boutique) "dTg" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10385,6 +10392,29 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"dTi" = ( +/obj/machinery/light/cold/directional/west, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) +"dTj" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock{ + name = "Cargo Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"dTo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dTB" = ( /obj/structure/broken_flooring/pile/directional/east, /obj/effect/decal/cleanable/dirt, @@ -10544,27 +10574,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"dXa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "dXb" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -10591,6 +10600,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) +"dXu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "dXO" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /obj/structure/disposalpipe/segment{ @@ -10648,15 +10665,17 @@ /obj/effect/landmark/start/cook, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) -"dYw" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/chair{ - dir = 4 +"dYv" = ( +/obj/structure/closet/radiation, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"dYE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/hallway) +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "dYI" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -10689,11 +10708,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"dYY" = ( -/obj/machinery/light/cold/dim/directional/north, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "dZa" = ( /obj/structure/table/reinforced, /obj/machinery/camera/directional/west, @@ -10714,13 +10728,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"dZm" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) "dZn" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -10761,14 +10768,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"dZX" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump/off/general/visible{ - dir = 4; - name = "Air to Pure" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "dZZ" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -10829,6 +10828,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood/tile, /area/station/service/bar) +"ebn" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "ebE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10846,6 +10850,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) +"ebM" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ebU" = ( /obj/structure/table/reinforced, /obj/structure/reagent_dispensers/servingdish, @@ -10925,6 +10942,19 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"edA" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "QMLoad"; + name = "Loading Conveyor"; + pixel_x = -13; + pixel_y = 19 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "edD" = ( /obj/machinery/light/small/directional/west, /obj/item/kirbyplants/random, @@ -11002,13 +11032,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"efl" = ( -/obj/effect/turf_decal/stripes/line{ +"efi" = ( +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "efm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11071,11 +11103,29 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"egg" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/asteroid, +/area/station/maintenance/starboard/greater) "egr" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) +"egA" = ( +/obj/machinery/vending/autodrobe, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/commons/fitness/locker_room) +"egC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "egG" = ( /obj/effect/landmark/start/medical_doctor, /obj/item/radio/intercom/directional/south, @@ -11090,18 +11140,63 @@ }, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"egL" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "egN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/chapel, /area/station/maintenance/starboard/greater) -"egR" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ +"egW" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"ehd" = ( +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/west, +/obj/structure/table/greyscale, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/cut{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Office" + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "ehf" = ( /obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11112,11 +11207,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"ehw" = ( -/obj/machinery/computer/atmos_control/carbon_tank, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"ehu" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse_aft"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -23; + req_access = list("cargo") + }, +/obj/machinery/light/small/dim/directional/west, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ehT" = ( /obj/machinery/door/airlock{ id_tag = "commiss2"; @@ -11147,6 +11250,16 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"eib" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "QMLoad2"; + name = "Unloading Conveyor"; + pixel_x = -13; + pixel_y = 3 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/cargo/storage) "eip" = ( /obj/machinery/power/port_gen/pacman, /obj/machinery/power/terminal{ @@ -11255,20 +11368,12 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/main) -"ekf" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ +"ejO" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input{ dir = 1 }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "ekr" = ( /obj/effect/turf_decal/siding/dark_red{ dir = 1 @@ -11336,17 +11441,22 @@ }, /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchenshutters"; - name = "Kitchen Shutters" + name = "Kitchen Shutters"; + dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding/end, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) -"eld" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Decontamination A" +"elc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab" }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/mechbay) "elh" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer2, /obj/structure/sign/warning/cold_temp/directional/west, @@ -11419,14 +11529,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"elN" = ( -/obj/effect/landmark/start/hangover, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) "elR" = ( /obj/structure/table, /obj/structure/window/spawner/directional/south, @@ -11442,6 +11544,11 @@ "emd" = ( /turf/open/floor/iron, /area/station/medical/chemistry) +"emg" = ( +/obj/effect/spawner/random/structure/crate_loot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "emn" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -11451,6 +11558,9 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"emz" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/department/electrical) "emB" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -11458,13 +11568,15 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"emC" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +"emF" = ( +/obj/machinery/light/warm/dim, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/turf_decal/stripes/red/end, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "ena" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed{ @@ -11495,9 +11607,33 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"enF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "enG" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance) +"enI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "enV" = ( /obj/structure/closet/secure_closet/research_director, /obj/item/radio/intercom/directional/north, @@ -11523,6 +11659,11 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/security/brig/entrance) +"eok" = ( +/obj/machinery/air_sensor/nitrogen_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "eoz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11542,19 +11683,17 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/central/greater) -"eoU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "epa" = ( /obj/machinery/telecomms/bus/preset_four, /obj/effect/decal/cleanable/dirt, /obj/machinery/camera/autoname/directional/east, /turf/open/floor/circuit, /area/station/tcommsat/server) +"epm" = ( +/obj/machinery/light/no_nightlight/directional/east, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos) "epn" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/full, @@ -11577,11 +11716,6 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) -"epr" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "epu" = ( /obj/machinery/holopad, /turf/open/floor/iron, @@ -11593,17 +11727,14 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"eqk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/security/glass{ - name = "Security Office" +"eqr" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Fuel Pipe to Incinerator"; + dir = 1 }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/security/checkpoint/science) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "eqz" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -11616,15 +11747,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"eqB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/window/reinforced/plasma/spawner/directional/west, -/obj/structure/cable, -/obj/machinery/power/energy_accumulator/tesla_coil/anchored, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "eqG" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/small, @@ -11675,22 +11797,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/tile, /area/station/science/lower) -"erJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/folder/yellow{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/clothing/glasses/meson, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -8; - pixel_y = 14 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "erK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/thinplating_new, @@ -11713,11 +11819,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ess" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "esv" = ( /obj/docking_port/stationary{ dwidth = 4; @@ -11773,6 +11874,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"eti" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/cargo/storage) "etl" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 5 @@ -11794,10 +11904,10 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/circuit, /area/station/maintenance/port/aft) -"etX" = ( -/obj/structure/sign/warning/hot_temp/directional/east, -/turf/open/floor/iron/stairs/right, -/area/station/engineering/atmos) +"etJ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/stone, +/area/station/service/chapel) "etZ" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/effect/turf_decal/siding/wideplating/dark/corner{ @@ -11810,6 +11920,13 @@ /obj/machinery/seed_extractor, /turf/open/floor/plating, /area/station/maintenance/department/prison) +"eue" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "eul" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -11846,11 +11963,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"euP" = ( -/obj/structure/chair/office, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "euR" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -11871,17 +11983,13 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"evm" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Engine Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" +"evj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 8 }, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/engine) +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "evq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11904,6 +12012,13 @@ dir = 4 }, /area/station/science/xenobiology) +"evw" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 9 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "evA" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -11915,6 +12030,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/maintenance/department/engine) +"evQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold/orange{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"evW" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ewt" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/south, @@ -11937,33 +12063,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"exr" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/machinery/air_sensor/oxygen_tank, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) -"exA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +"exF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/clothing/head/cone{ - pixel_x = -7; - pixel_y = 9 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"exE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to North Ports" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "exM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11991,6 +12099,26 @@ /obj/structure/sink/directional/east, /turf/open/floor/iron/white, /area/station/medical/virology) +"eyx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/obj/structure/sign/directions/supply/directional/west{ + pixel_x = 0; + pixel_y = 39 + }, +/obj/structure/sign/directions/vault/directional/west{ + dir = 2; + pixel_x = 0; + pixel_y = 30 + }, +/turf/open/floor/iron/small, +/area/station/hallway/primary/central/fore) "eyB" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -12008,6 +12136,22 @@ dir = 1 }, /area/station/ai_monitored/turret_protected/aisat/maint) +"eyW" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) +"eyY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "eyZ" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/firealarm/directional/west, @@ -12047,18 +12191,6 @@ /obj/vehicle/ridden/secway, /turf/open/floor/plating, /area/station/security/tram) -"ezG" = ( -/obj/structure/railing, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/engine_access, -/obj/effect/mapping_helpers/airalarm/link{ - chamber_id = "engine" - }, -/obj/effect/mapping_helpers/airalarm/tlv_no_checks, -/turf/open/floor/iron/stairs/old{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "ezM" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -12067,11 +12199,6 @@ /obj/effect/turf_decal/tile/dark_red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/entrance) -"ezQ" = ( -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "ezS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/showcase/cyborg/old{ @@ -12141,14 +12268,26 @@ /obj/machinery/light/floor, /turf/open/floor/noslip, /area/station/medical/medbay/central) -"eAC" = ( -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) -"eAI" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1, -/turf/open/space/basic, -/area/space/nearstation) +"eAE" = ( +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -2; + pixel_y = 2 + }, +/obj/structure/table, +/obj/item/stack/sheet/rglass{ + amount = 30; + pixel_x = 2; + pixel_y = -2 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "eAK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -12178,17 +12317,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) -"eBC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "eBH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12238,14 +12366,23 @@ }, /turf/open/floor/iron/small, /area/station/engineering/main) -"eDe" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Atmospherics Maintenance" +"eCO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) +"eCV" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) +/turf/open/floor/iron, +/area/station/cargo/sorting) "eDh" = ( /obj/effect/spawner/structure/window/survival_pod, /turf/open/floor/engine, @@ -12266,6 +12403,7 @@ /obj/machinery/door/airlock/engineering/glass{ name = "Engineering Foyer" }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) "eDr" = ( @@ -12358,6 +12496,21 @@ /obj/item/stamp/head/hos, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"eEj" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/atmos/office) +"eEn" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "eEq" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/corner, @@ -12366,16 +12519,17 @@ /obj/machinery/camera/directional/west, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"eEG" = ( +/obj/structure/hedge, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "eEL" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"eEX" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "eFc" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/firealarm/directional/west, @@ -12389,6 +12543,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) +"eFi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "eFk" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12559,18 +12719,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/security/prison/workout) -"eHv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/chair/comfy/brown{ - buildstackamount = 0; - color = "#c45c57"; - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/library) "eHy" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -12585,6 +12733,13 @@ /obj/structure/cable, /turf/open/floor/wood/tile, /area/station/maintenance/port/lesser) +"eHS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Gas to Filter" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "eIp" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12593,26 +12748,14 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) -"eIv" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) -"eIx" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"eIF" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/table, +"eII" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, -/area/station/cargo/sorting) +/area/station/hallway/primary/central/fore) "eIM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -12649,15 +12792,6 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"eIX" = ( -/obj/machinery/light/cold/directional/south, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "eJe" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /turf/open/floor/iron/smooth, @@ -12668,6 +12802,20 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"eJi" = ( +/obj/structure/table/wood, +/obj/item/hand_labeler_refill{ + pixel_x = -4; + pixel_y = 26 + }, +/obj/structure/sign/poster/official/random/directional/south, +/obj/machinery/fax{ + fax_name = "Quartermaster's Office"; + name = "Quartermaster's Fax Machine"; + pixel_y = 7 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "eJm" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -12721,9 +12869,11 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"eKU" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/atmos/pumproom) +"eKV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "eKW" = ( /obj/machinery/door/airlock/maintenance{ name = "Bathroom" @@ -12757,29 +12907,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"eLZ" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas Port"; - dir = 8 +"eLF" = ( +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"eMa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"eMb" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/pipe_scrubber, /turf/open/floor/iron, -/area/station/engineering/atmos) +/area/station/engineering/atmos/project) "eMc" = ( /obj/machinery/flasher/portable, /obj/effect/turf_decal/stripes/line{ @@ -12812,6 +12954,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"eNa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "eNl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12820,19 +12975,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"eNm" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/curved, -/turf/open/space/basic, -/area/space/nearstation) -"eNn" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/transit_tube/horizontal, -/turf/open/floor/plating/airless, -/area/space/nearstation) "eNo" = ( /obj/item/reagent_containers/cup/glass/bottle/beer/almost_empty{ pixel_x = -6 @@ -12859,6 +13001,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) +"eNP" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9"; + pixel_y = -15 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "eNU" = ( /obj/structure/table/reinforced, /obj/item/phone{ @@ -12872,11 +13022,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"eOh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "eOk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -12893,22 +13038,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"eOP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/holopad, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "eOX" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/item/kirbyplants/random, /obj/machinery/airalarm/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) +"eOY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "eOZ" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/airalarm/directional/north, @@ -12934,6 +13077,12 @@ }, /turf/open/floor/iron, /area/station/cargo/miningfoundry) +"ePr" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ePt" = ( /obj/structure/flora/grass/jungle/a/style_4, /turf/open/floor/grass, @@ -13001,6 +13150,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/dorms) +"eQI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/white/corner, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "eQQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13049,6 +13209,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/science/lower) +"eSA" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/hallway/primary/central/fore) "eSV" = ( /obj/structure/bed/maint, /turf/open/floor/iron/small, @@ -13102,6 +13272,12 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/tile, /area/station/service/bar) +"eTL" = ( +/obj/structure/cable, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/cargo/lobby) "eTT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13129,6 +13305,13 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) +"eUx" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/closet/toolcloset, +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "eUC" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -13158,15 +13341,13 @@ /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"eUR" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1; - name = "Gas to Cold Loop" - }, -/turf/open/floor/iron/smooth_edge{ +"eUY" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot{ dir = 1 }, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron, +/area/station/engineering/atmos) "eUZ" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 1 @@ -13200,30 +13381,6 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/aft) -"eVk" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"eVm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "eVz" = ( /obj/machinery/camera/directional/west{ c_tag = "AI Sat - Antechamber"; @@ -13234,6 +13391,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"eVC" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "eVH" = ( /obj/structure/window/spawner/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -13271,31 +13433,19 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"eWf" = ( -/obj/structure/closet/cardboard, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/item/airlock_painter, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"eWj" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 4; - initialize_directions = 8 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark/end{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "eWk" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, /turf/open/floor/wood, /area/station/service/chapel) +"eWr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "eWB" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -13334,6 +13484,11 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"eXl" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "eXo" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/server) @@ -13431,6 +13586,10 @@ }, /turf/open/misc/sandy_dirt, /area/station/maintenance/port/lesser) +"eZd" = ( +/obj/effect/spawner/random/structure/crate_loot, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "eZi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13448,15 +13607,21 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/commons/dorms) -"eZt" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "eZM" = ( /obj/structure/cable/layer3, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai) +"fai" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/closed/wall, +/area/station/engineering/atmos/storage/gas) +"fap" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "fav" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/computer/security/telescreen/entertainment/directional/west, @@ -13507,10 +13672,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"fbs" = ( -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "fbt" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -13538,7 +13699,7 @@ /obj/item/aicard, /obj/item/pai_card, /obj/item/circuitboard/aicore, -/obj/machinery/keycard_auth/directional/north{ +/obj/machinery/keycard_auth/wall_mounted/directional/north{ pixel_x = -5 }, /obj/machinery/button/door/directional/north{ @@ -13575,18 +13736,18 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"fcI" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ +"fcE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 }, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - Airlock" +/obj/machinery/door/airlock/atmos/glass{ + name = "Distro Access" }, -/obj/structure/cable, -/obj/structure/sign/warning/vacuum/external/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) +/area/station/engineering/atmos/pumproom) "fcU" = ( /obj/structure/window/spawner/directional/south, /obj/structure/flora/bush/large/style_random{ @@ -13671,6 +13832,19 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"feu" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/firealarm/directional/north, +/obj/machinery/computer/atmos_alert, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) +"fex" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "feL" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -13699,14 +13873,29 @@ }, /turf/open/floor/plating, /area/station/service/janitor) -"ffE" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 9 +"ffK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_1" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/turf/open/floor/catwalk_floor, +/area/station/engineering/main) +"ffL" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "fgk" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/status_display/door_timer{ @@ -13717,6 +13906,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"fgo" = ( +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "fgp" = ( /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) @@ -13769,6 +13962,10 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) +"fgX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "fho" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/implanter{ @@ -13803,17 +14000,6 @@ /obj/structure/mirror/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"fhX" = ( -/obj/structure/table/greyscale, -/obj/item/lightreplacer{ - pixel_y = 7 - }, -/obj/item/lightreplacer{ - pixel_y = 2; - pixel_x = -2 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "fhZ" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -13848,10 +14034,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"fiq" = ( -/obj/machinery/computer/atmos_control/nitrous_tank, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "fiw" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/table, @@ -13863,11 +14045,10 @@ /obj/item/plate, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"fiI" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"fiE" = ( +/obj/effect/turf_decal/siding/red, +/turf/open/floor/iron, +/area/station/cargo/storage) "fiK" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -13886,6 +14067,16 @@ /obj/structure/chair/sofa/bench/right, /turf/open/floor/stone, /area/station/service/chapel) +"fjf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fjh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "fjp" = ( /obj/machinery/door/airlock{ id_tag = "Cabin1"; @@ -13927,12 +14118,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"fkd" = ( -/obj/structure/chair/stool/directional/south, -/obj/machinery/holopad, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/sorting) "fkj" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -13949,6 +14134,10 @@ /obj/item/mod/module/signlang_radio, /turf/open/floor/iron/small, /area/station/medical/storage) +"fkr" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "fkF" = ( /obj/structure/table/wood, /obj/item/pen/red{ @@ -14010,6 +14199,16 @@ /obj/structure/flora/bush/flowers_yw/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"flx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Genetics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "flD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/corner{ @@ -14022,6 +14221,11 @@ c_tag = "Engineering - Canister Storage" }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/start/atmospheric_technician, +/obj/structure/chair/plastic, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) "flM" = ( @@ -14035,6 +14239,13 @@ /obj/item/flashlight/lantern, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/greater) +"fma" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron, +/area/station/cargo/storage) "fme" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -14144,6 +14355,26 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"foh" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - entrance" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) +"fos" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "fot" = ( /obj/effect/turf_decal/trimline/white/line, /obj/effect/turf_decal/trimline/white/mid_joiner, @@ -14213,19 +14444,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/research, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"fpF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Turbine Interior Airlock" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "fpN" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -14254,11 +14472,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/research) -"fqQ" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "fqT" = ( /obj/machinery/computer/slot_machine{ pixel_y = 2 @@ -14283,6 +14496,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"frn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/machinery/computer/atmos_control/carbon_tank, +/turf/open/floor/iron, +/area/station/engineering/atmos) "frC" = ( /obj/effect/turf_decal/tile/neutral/full, /turf/open/floor/iron/dark/smooth_large, @@ -14300,6 +14519,23 @@ /obj/machinery/door/window/brigdoor/right/directional/north, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/customs) +"frY" = ( +/obj/structure/closet/secure_closet/security/cargo, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) +"frZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "fsk" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -14367,31 +14603,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/aft) -"ftc" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/camera/directional/west{ - c_tag = "Atmospherics - Lockers" - }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"fts" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/computer/order_console/bitrunning{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ftv" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/table/reinforced, @@ -14425,6 +14636,28 @@ }, /turf/open/floor/wood, /area/station/service/chapel) +"ftI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"ftT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Decontamination A" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "ftX" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -14438,6 +14671,11 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"ful" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "fun" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14466,27 +14704,6 @@ /obj/effect/mapping_helpers/mail_sorting/security/detectives_office, /turf/open/floor/iron, /area/station/security/brig/entrance) -"fuB" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) -"fuC" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux, -/turf/open/floor/engine/airless, -/area/station/maintenance/disposal/incinerator) "fuD" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -14499,16 +14716,6 @@ }, /turf/open/space/basic, /area/space) -"fuT" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "fuV" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -14540,6 +14747,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor, /area/station/command/heads_quarters/ce) +"fvv" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/arrows/white{ + color = "#0000FF"; + pixel_y = 15 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "fvz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14568,6 +14783,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"fvX" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs/cable/red{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical, +/turf/open/floor/iron, +/area/station/cargo/sorting) "fwc" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -14581,6 +14805,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"fwr" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fwF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -14613,6 +14851,10 @@ dir = 1 }, /area/station/science/lobby) +"fwV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fwZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood, @@ -14625,6 +14867,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"fxc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "fxi" = ( /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) @@ -14639,14 +14886,14 @@ /obj/structure/table, /turf/open/floor/iron/kitchen/small, /area/station/maintenance/aft) -"fxV" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Waste" +"fxO" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) "fxW" = ( /obj/machinery/restaurant_portal/restaurant, /obj/effect/turf_decal/siding/wood{ @@ -14789,6 +15036,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"fAn" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fAr" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/barricade/wooden/crude, @@ -14813,6 +15067,12 @@ /obj/effect/spawner/random/structure/furniture_parts, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"fAD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fAJ" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -14876,12 +15136,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fBy" = ( -/obj/structure/table, -/obj/item/folder, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "fBB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -14912,19 +15166,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"fBZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Emitters" - }, -/obj/machinery/power/energy_accumulator/tesla_coil, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"fCd" = ( -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) "fCf" = ( /obj/effect/turf_decal/caution{ dir = 4 @@ -14954,20 +15195,21 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"fCK" = ( +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/supply, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "fCS" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"fCW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/storage_shared) "fDd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -14978,6 +15220,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"fDf" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Incinerator Access" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/engineering/atmos) "fDg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -15011,11 +15265,16 @@ /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) "fDO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" }, -/turf/closed/wall, -/area/station/engineering/atmos/storage/gas) +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "fDQ" = ( /obj/machinery/flasher/directional/north, /turf/open/floor/iron/dark/smooth_large, @@ -15069,40 +15328,19 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/engineering/lobby) -"fEi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/structure/sign/poster/official/plasma_effects/directional/west, -/obj/effect/mapping_helpers/apc/cell_10k, -/turf/open/floor/iron/smooth_corner{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "fEq" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"fEr" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, +"fEs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "fEC" = ( /turf/closed/wall, /area/station/maintenance/port/lesser) @@ -15113,6 +15351,16 @@ }, /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) +"fEM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cytology) "fEU" = ( /obj/structure/table, /obj/item/multitool{ @@ -15133,17 +15381,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"fFe" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "fFt" = ( /obj/structure/chair/wood{ dir = 8 @@ -15151,9 +15388,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/funeral) -"fFu" = ( -/turf/open/floor/iron/stairs/medium, -/area/station/engineering/atmos) "fFD" = ( /obj/effect/turf_decal/siding/blue, /obj/effect/landmark/start/paramedic, @@ -15234,13 +15468,24 @@ }, /turf/open/floor/plating/rust, /area/station/ai_monitored/turret_protected/aisat/maint) +"fGf" = ( +/obj/structure/cable, +/obj/machinery/modular_computer/preset/engineering{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "fGk" = ( /obj/machinery/smartfridge, /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchenshutters"; - name = "Kitchen Shutters" + name = "Kitchen Shutters"; + dir = 4 }, -/turf/open/floor/iron/kitchen/small, +/obj/effect/turf_decal/siding/end{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "fGT" = ( /obj/effect/turf_decal/tile/neutral{ @@ -15327,6 +15572,23 @@ /obj/machinery/vending/wardrobe/science_wardrobe, /turf/open/floor/iron/white, /area/station/science/research) +"fHX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) +"fIe" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "fIf" = ( /obj/structure/filingcabinet/filingcabinet, /obj/machinery/airalarm/directional/west, @@ -15342,10 +15604,27 @@ /obj/machinery/light/floor, /turf/open/floor/stone, /area/station/service/bar) +"fIq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/cargo/office) "fIw" = ( /obj/effect/landmark/navigate_destination/dockescpod, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"fIP" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"fJe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "fJl" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -15353,6 +15632,11 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/science/xenobiology) +"fJn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "fJs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15367,13 +15651,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/teleporter) -"fJt" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "fJK" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -15387,24 +15664,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"fJP" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"fJX" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/transit_tube/crossing/horizontal{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "fJZ" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/yellow{ @@ -15452,6 +15711,7 @@ cycle_id = "sci-entrance" }, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) "fKx" = ( @@ -15460,16 +15720,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/space/basic, /area/space/nearstation) -"fKA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "fKN" = ( /obj/effect/landmark/event_spawn, /obj/machinery/computer/security/telescreen/test_chamber/directional/west, @@ -15485,15 +15735,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/science/lower) -"fKR" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/disposal/bin, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron, -/area/station/engineering/hallway) "fLf" = ( /obj/structure/cable/layer3, /obj/structure/cable, @@ -15510,20 +15751,6 @@ /obj/item/assembly/mousetrap/armed, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"fLj" = ( -/obj/item/clothing/head/cone{ - pixel_x = -12; - pixel_y = 5 - }, -/obj/effect/decal/cleanable/insectguts, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "fLk" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -15561,29 +15788,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) -"fLy" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/item/reagent_containers/condiment/pack/sugar{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/glass/coffee/no_lid{ - pixel_y = 13; - pixel_x = 6 - }, -/obj/item/plate/small{ - pixel_y = 1; - pixel_x = -4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/food/butterbiscuit{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/turf/open/floor/iron, -/area/station/engineering/hallway) "fLC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -15604,22 +15808,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"fLF" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "QM #2" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "fLI" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron/dark/small, @@ -15656,6 +15844,15 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) +"fMf" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "fMg" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron/smooth, @@ -15700,21 +15897,16 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) -"fMP" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/binoculars{ - pixel_x = -7; - pixel_y = 13 - }, -/obj/item/phone{ - pixel_x = -3; - pixel_y = -3 +"fMB" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot{ + dir = 1 }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "fMQ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -15780,14 +15972,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/catwalk_floor, /area/station/ai_monitored/turret_protected/ai) -"fNQ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/railing/corner, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "fNR" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north{ @@ -15853,6 +16037,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) +"fOK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fOQ" = ( /obj/structure/cable, /obj/structure/window/reinforced/spawner/directional/north, @@ -15865,16 +16056,22 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"fPb" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "fPu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable/layer3, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat_interior) +"fPK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fPO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -15919,6 +16116,29 @@ /obj/structure/cable, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"fPZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/box/mousetraps{ + pixel_x = -5 + }, +/obj/item/storage/box/mousetraps{ + pixel_x = 11; + pixel_y = 7 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/small, +/area/station/service/janitor) +"fQv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fQA" = ( /obj/effect/spawner/random/structure/chair_maintenance{ dir = 8 @@ -15949,26 +16169,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) -"fRm" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "fRq" = ( /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 4 @@ -16000,11 +16200,24 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"fRI" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/misc/asteroid, +/area/station/maintenance/hallway/abandoned_command) "fRJ" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"fRM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "fRV" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -16022,9 +16235,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/parquet, /area/station/service/library) -"fSe" = ( -/turf/closed/wall/rust, -/area/station/cargo/miningfoundry) "fSf" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -16112,6 +16322,16 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"fTJ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Atmospherics Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/atmospherics_engine) "fTM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -16243,20 +16463,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fWe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - West" - }, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "fWi" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 1 @@ -16265,6 +16471,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"fWj" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "fWr" = ( /obj/structure/closet/crate, /obj/structure/barricade/wooden/crude, @@ -16286,18 +16501,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"fXe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "fXg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -16328,10 +16531,6 @@ }, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/foyer) -"fXo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/engine) "fXB" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16374,17 +16573,6 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood, /area/station/service/chapel) -"fYo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/binary/valve, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "fYr" = ( /obj/structure/table, /obj/item/extinguisher/empty, @@ -16441,23 +16629,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"fZL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) -"fZV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "fZZ" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -16510,15 +16681,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"gan" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Mech Bay" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/mechbay) "gaF" = ( /obj/machinery/stasis{ dir = 4 @@ -16565,6 +16727,21 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/white/small, /area/station/science/lab) +"gbf" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/power/smes{ + capacity = 1.8e+008; + charge = 2e+005 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"gbh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gbj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/floor, @@ -16582,13 +16759,6 @@ /obj/structure/alien/weeds, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) -"gbE" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) "gbG" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -16614,6 +16784,11 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"gbT" = ( +/obj/structure/table, +/obj/item/storage/bag/construction, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "gcg" = ( /obj/structure/chair{ name = "Defense" @@ -16634,28 +16809,6 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"gcM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/hallway) -"gcR" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "gdn" = ( /obj/item/kirbyplants/organic/applebush, /obj/effect/turf_decal/tile/red{ @@ -16774,7 +16927,7 @@ /obj/machinery/computer/security/hos{ dir = 4 }, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) "gfb" = ( @@ -16871,6 +17024,12 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"ggn" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/byteforge, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/bitrunning/den) "ggw" = ( /obj/effect/turf_decal/stripes/white/end{ dir = 1 @@ -16880,6 +17039,33 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ggz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"ggJ" = ( +/obj/machinery/light/no_nightlight/directional/east, +/obj/structure/sign/poster/official/nanotrasen_logo/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) +"ggK" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/pdapainter/supply, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "ggN" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 9 @@ -16992,6 +17178,11 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"gip" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "giq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -17003,6 +17194,12 @@ /obj/machinery/nuclearbomb/beer, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"giA" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "giU" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -17044,7 +17241,13 @@ }, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) +"gjE" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "gjL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ @@ -17053,48 +17256,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/tcommsat/server) -"gjP" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_x = -3; - pixel_y = -7 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = 3; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = -8 - }, -/obj/item/clothing/head/cone{ - pixel_x = -3; - pixel_y = -14 - }, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = -8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "gjS" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 1 @@ -17105,6 +17266,12 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/wood/tile, /area/station/command/bridge) +"gjU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gkq" = ( /obj/structure/transport/linear/tram, /obj/effect/turf_decal/stripes/white/corner, @@ -17148,28 +17315,10 @@ dir = 8 }, /area/station/engineering/main) -"gla" = ( -/turf/open/floor/iron/grimy, -/area/station/commons) -"gls" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/central/greater) -"glJ" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/structure/closet/firecloset, -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/off{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +"glo" = ( +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "glM" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -17177,16 +17326,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"glO" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/item/kirbyplants/random, -/obj/machinery/light/small/directional/west, -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "glT" = ( /obj/effect/landmark/event_spawn, /obj/structure/table, @@ -17240,14 +17379,44 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/cryo) -"gnd" = ( -/turf/closed/wall, -/area/station/engineering/atmos/office) +"gmv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/north, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "gnA" = ( /obj/structure/cable, /obj/machinery/light/small/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"gnB" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"gnK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "gnL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -17263,6 +17432,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"gnO" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gnQ" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/effect/spawner/structure/window, @@ -17323,6 +17501,12 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/dock) +"goS" = ( +/obj/machinery/incident_display/delam/directional/north, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "goT" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -17425,6 +17609,17 @@ /obj/structure/spider/stickyweb, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"gqw" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"gqS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "grm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -17435,14 +17630,6 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/on, /turf/open/floor/iron/dark/smooth_large, /area/station/security/execution/education) -"gro" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to South Ports" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "grx" = ( /obj/machinery/vending/wardrobe/medi_wardrobe, /obj/structure/window/reinforced/spawner/directional/west, @@ -17532,27 +17719,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"gtU" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) -"gub" = ( +"guh" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Distro to Waste" + name = "atmos to engine" }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "gun" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/red{ @@ -17560,6 +17732,20 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) +"guq" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"gus" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "guz" = ( /obj/structure/cable, /obj/item/kirbyplants/random, @@ -17585,16 +17771,6 @@ "guY" = ( /turf/closed/wall, /area/station/service/chapel/storage) -"gvB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/computer/turbine_computer{ - dir = 4 - }, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "gvV" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/office{ @@ -17611,6 +17787,14 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"gwf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/machinery/meter, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "gwl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17687,6 +17871,12 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"gxd" = ( +/obj/structure/reflector/single/anchored{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "gxg" = ( /obj/effect/turf_decal/siding/red{ dir = 9 @@ -17714,6 +17904,15 @@ /obj/structure/filingcabinet/employment, /turf/open/floor/wood/tile, /area/station/service/lawoffice) +"gxo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "gxq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17722,15 +17921,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"gxr" = ( -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/miningfoundry) "gxs" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research/glass{ @@ -17758,15 +17948,15 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"gxK" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) -"gxL" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/cargo/storage) +"gxA" = ( +/obj/structure/table, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/core, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "gxP" = ( /obj/structure/flora/bush/large/style_random, /obj/structure/window/spawner/directional/east, @@ -17789,6 +17979,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"gya" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "gyc" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -17813,6 +18011,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"gyj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "gyr" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/smooth, @@ -17873,14 +18082,16 @@ "gzF" = ( /turf/closed/wall/r_wall, /area/station/security/prison/rec) -"gzL" = ( -/obj/structure/window/reinforced/plasma/spawner/directional/west, -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/atmospherics/components/binary/valve{ +"gzM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "gzY" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -17898,6 +18109,13 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"gAy" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/mix_input{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "gAA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17918,6 +18136,13 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"gAQ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gAR" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -17927,16 +18152,10 @@ }, /turf/open/floor/iron, /area/station/security/warden) -"gBe" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +"gAV" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "gBg" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -17972,6 +18191,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) +"gBs" = ( +/obj/effect/spawner/structure/window, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/command/heads_quarters/qm) "gBu" = ( /turf/closed/wall/r_wall, /area/station/security/prison/mess) @@ -18009,11 +18234,30 @@ }, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) -"gBG" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"gBB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter/room) +"gBK" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "gBT" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/secure_safe/caps_spare, @@ -18050,10 +18294,6 @@ }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) -"gCp" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "gCq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, @@ -18092,21 +18332,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/service/lawoffice) -"gCP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"gCR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "gCT" = ( /turf/closed/wall, /area/station/hallway/secondary/command) @@ -18120,16 +18345,6 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) -"gDe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/railing, -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/floor/iron/stairs/old{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "gDk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18147,19 +18362,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"gDq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 9 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "gDs" = ( /obj/structure/lattice, /obj/structure/window/spawner/directional/south, @@ -18187,6 +18389,37 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"gEa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/office) +"gEb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/storage/dice{ + pixel_x = -10; + pixel_y = 11 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "gEc" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -18205,23 +18438,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"gEy" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 10 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "gEG" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -18230,16 +18446,6 @@ "gEH" = ( /turf/closed/wall/r_wall, /area/station/security/evidence) -"gEJ" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron, -/area/station/cargo/office) "gEM" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -18261,6 +18467,25 @@ }, /turf/open/floor/iron/smooth, /area/station/command/bridge) +"gFi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = 24; + req_access = list("cargo") + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "gFm" = ( /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/tile/neutral, @@ -18354,12 +18579,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"gGw" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/newscaster/directional/west, -/obj/structure/chair, -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) "gGx" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -18369,6 +18588,21 @@ /obj/structure/cable, /turf/open/floor/wood/tile, /area/station/service/bar) +"gGy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"gGA" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/storage) "gGB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18379,6 +18613,10 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"gGO" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "gGQ" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -18410,6 +18648,12 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"gHm" = ( +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "gHD" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, @@ -18448,13 +18692,24 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) "gIr" = ( -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2"; + name = "Sort and Deliver"; + pixel_x = 8; + pixel_y = 12 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "gIs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -18486,23 +18741,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"gIz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "North Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "gIF" = ( /obj/effect/turf_decal/siding/green, /turf/open/floor/iron/dark/small, @@ -18518,20 +18756,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"gIM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 8 - }, -/obj/machinery/meter, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 8 +"gIR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "gIS" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/bottle/holywater, @@ -18545,6 +18783,26 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/security) +"gJb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "packageSort2" + }, +/obj/machinery/door/window/left/directional/west{ + name = "Crate Security Door"; + req_access = list("shipping") + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) "gJo" = ( /turf/open/floor/iron/stairs{ dir = 8 @@ -18556,23 +18814,18 @@ }, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) -"gJs" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/clothing/head/utility/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gJu" = ( /obj/structure/closet, /obj/effect/mapping_helpers/broken_floor, /obj/machinery/light/small/directional/north, /turf/open/floor/carpet/royalblue, /area/station/command/corporate_suite) +"gJw" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gJD" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -18616,32 +18869,12 @@ "gKs" = ( /turf/closed/wall, /area/station/maintenance/disposal/incinerator) -"gKz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "gKE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"gKF" = ( -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) -"gKK" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "gKL" = ( /turf/closed/wall/r_wall, /area/station/engineering/break_room) @@ -18680,14 +18913,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"gLr" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "gLs" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 8 @@ -18729,6 +18954,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"gLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "gLV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18824,6 +19058,13 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) +"gMV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gMX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18833,10 +19074,22 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"gNa" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gNb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"gNg" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "gNs" = ( /obj/machinery/duct, /turf/open/floor/iron/showroomfloor, @@ -18849,26 +19102,12 @@ }, /turf/open/floor/iron/small, /area/station/engineering/break_room) -"gNC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "gNH" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 6 }, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"gNI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos) "gNP" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -18880,21 +19119,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) -"gNS" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) -"gNV" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/cargo/office) "gNX" = ( /obj/machinery/light/floor, /turf/open/floor/iron/white/small, @@ -18933,6 +19157,13 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"gOS" = ( +/obj/machinery/rnd/production/techfab/department/cargo, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) "gOX" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -18955,10 +19186,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/small, /area/station/security/checkpoint/engineering) -"gPf" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/engine, -/area/station/engineering/atmos) "gPm" = ( /obj/machinery/computer/monitor{ dir = 1 @@ -18966,15 +19193,33 @@ /obj/machinery/computer/security/telescreen/minisat/directional/south, /turf/open/floor/iron/smooth, /area/station/ai_monitored/turret_protected/aisat/equipment) +"gPv" = ( +/obj/structure/cable, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "gPN" = ( /obj/structure/fermenting_barrel, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"gPT" = ( -/obj/effect/spawner/random/structure/grille, -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +"gPO" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Service Deliveries" + }, +/obj/structure/sign/departments/botany/directional/north, +/obj/effect/turf_decal/tile/green/fourcorners, +/obj/structure/plasticflaps{ + name = "Service Deliveries" + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "gPY" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -18989,47 +19234,13 @@ /obj/structure/sign/warning/chem_diamond, /turf/closed/wall, /area/station/medical/chemistry) -"gQm" = ( -/obj/structure/window/spawner/directional/east, -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/bot_white, -/obj/machinery/light/small/directional/north, -/obj/structure/sign/warning/no_smoking/circle/directional/north, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) -"gQG" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/closet/crate, -/obj/effect/turf_decal/bot_white, -/obj/item/stack/package_wrap{ - pixel_y = 5 - }, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/storage/box{ - desc = "It smells of monkey business..."; - name = "Empty Gorillacube Box" - }, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) -"gQI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/transit_tube/horizontal{ - dir = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) -"gQK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, +"gQy" = ( +/obj/effect/mapping_helpers/broken_floor, /obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "gRm" = ( /obj/structure/flora/bush/flowers_br, /obj/structure/flora/bush/flowers_pp/style_random, @@ -19076,20 +19287,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"gSh" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/item/clothing/head/utility/welding{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos) "gSi" = ( /obj/structure/chair{ dir = 4 @@ -19129,19 +19326,19 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"gSA" = ( +/obj/machinery/vending/wardrobe/cargo_wardrobe, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "gSD" = ( /obj/machinery/mass_driver/chapelgun{ dir = 8 }, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"gSX" = ( -/obj/machinery/computer/piratepad_control/civilian{ - dir = 1 - }, -/obj/structure/sign/departments/cargo/directional/west, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central/fore) "gTb" = ( /turf/open/floor/iron/dark/side{ dir = 8 @@ -19171,6 +19368,15 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) +"gTj" = ( +/obj/structure/cable, +/turf/closed/wall, +/area/station/maintenance/port/greater) +"gTw" = ( +/obj/machinery/light/small/dim/directional/north, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "gTH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19278,6 +19484,10 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/security/medical) +"gUM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "gUV" = ( /obj/structure/cable, /obj/structure/chair/stool/directional/south{ @@ -19342,19 +19552,6 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/command/corporate_suite) -"gWl" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "gWB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19363,13 +19560,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/processing) -"gWJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/wrench, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "gWN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19386,12 +19576,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) -"gXn" = ( -/obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/break_room) "gXs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19399,6 +19583,18 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"gXB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "gXL" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -19425,23 +19621,21 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/construction) +"gXT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "gYq" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) -"gYH" = ( -/obj/machinery/vending/wardrobe/robo_wardrobe, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) -"gZf" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/misc/asteroid, -/area/station/maintenance/hallway/abandoned_command) "gZh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/holopad, @@ -19487,6 +19681,16 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"gZR" = ( +/obj/structure/sign/poster/random/directional/south, +/obj/machinery/conveyor{ + id = "mining"; + dir = 10 + }, +/obj/machinery/bouldertech/refinery, +/obj/structure/sign/poster/random/directional/east, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "gZS" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -19516,13 +19720,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/dorms) -"had" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 +"hal" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"hao" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "haq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19967,16 +20176,13 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hfC" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +"hfm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "hfI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19986,28 +20192,6 @@ }, /turf/open/floor/wood/tile, /area/station/tcommsat/server) -"hfZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/commons/storage/tools) -"hgd" = ( -/obj/structure/table, -/obj/item/clothing/head/collectable/paper{ - pixel_x = -6; - pixel_y = -2 - }, -/obj/item/paper/crumpled{ - pixel_x = 5; - pixel_y = 8 - }, -/obj/item/trash/candle{ - pixel_x = 7; - pixel_y = 1 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hgf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/green{ @@ -20031,6 +20215,16 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/aft) +"hgp" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "hgu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20065,15 +20259,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"hgV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "hgY" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -20120,6 +20305,13 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hhy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hhL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20146,13 +20338,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/evidence) -"hir" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "his" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/mod/module/plasma_stabilizer{ @@ -20187,11 +20372,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/station/science/cytology) -"hjj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/transit_tube/curved, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "hjk" = ( /obj/structure/railing{ dir = 4 @@ -20218,6 +20398,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/medical/morgue) +"hjA" = ( +/obj/structure/table, +/obj/machinery/status_display/supply{ + pixel_x = 1; + pixel_y = 32 + }, +/obj/machinery/fax/auto_name{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "hjQ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -20225,6 +20420,25 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"hjS" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/table, +/obj/effect/turf_decal/delivery/white, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/sorting) +"hkd" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "hkk" = ( /obj/machinery/computer/records/medical{ dir = 4 @@ -20293,13 +20507,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"hkG" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "hkL" = ( /obj/structure/cable, /turf/open/floor/wood/large, @@ -20315,13 +20522,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/dark, /area/station/science/lab) -"hkT" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/structure/sink/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/break_room) "hkW" = ( /obj/structure/closet/crate/goldcrate, /obj/effect/turf_decal/bot_white/right, @@ -20329,6 +20529,13 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) +"hlC" = ( +/obj/effect/spawner/structure/window, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/engineering/main) "hlE" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 @@ -20346,19 +20553,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"hlM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +"hlP" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/wrapping_paper{ + pixel_x = -3; + pixel_y = 5 }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/smooth_corner{ +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/area/station/engineering/supermatter/room) +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "hlX" = ( /obj/machinery/door/airlock/public/glass{ name = "Old Command Hallway" @@ -20382,23 +20588,6 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/security/tram) -"hmh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/commons/storage/tools) -"hmj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/storage/toolbox/emergency/old, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "hmk" = ( /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, @@ -20421,12 +20610,6 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/iron, /area/station/security/prison/work) -"hmB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "hmC" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -20450,27 +20633,12 @@ dir = 1 }, /area/station/service/bar/backroom) -"hmQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/toolbox/mechanical/old{ - pixel_x = 15; - pixel_y = 15 - }, -/obj/item/crowbar/large{ - pixel_y = 18 - }, -/obj/item/clothing/head/costume/pirate{ - pixel_x = 17; - pixel_y = -10 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_x = -3; - pixel_y = -2 +"hmR" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) +/turf/open/floor/iron, +/area/station/cargo/storage) "hnf" = ( /obj/item/bikehorn/rubberducky{ pixel_x = -6; @@ -20489,17 +20657,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"hnG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "hnO" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -20566,12 +20723,6 @@ "hop" = ( /turf/closed/wall, /area/station/service/chapel/funeral) -"hox" = ( -/obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/main) "hoG" = ( /obj/structure/cable, /obj/effect/landmark/start/scientist, @@ -20589,29 +20740,17 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"hoV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/structure/railing/corner/end{ - dir = 4 +"hpb" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) +/obj/machinery/vending/cigarette, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hpe" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"hpi" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/disposal/incinerator) "hpj" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ @@ -20657,52 +20796,6 @@ dir = 8 }, /area/station/science/lobby) -"hqf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_x = -20; - pixel_y = -2 - }, -/obj/item/storage/box/lights/mixed{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 5; - pixel_y = 1 - }, -/turf/open/floor/iron/small, -/area/station/commons) -"hqm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"hqr" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"hqH" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/reagent_containers/cup/watering_can/wood, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "hqM" = ( /obj/structure/toiletbong{ dir = 1 @@ -20733,9 +20826,11 @@ /obj/machinery/door/window/right/directional/west, /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchenshutters"; - name = "Kitchen Shutters" + name = "Kitchen Shutters"; + dir = 8 }, -/turf/open/floor/iron, +/obj/effect/turf_decal/siding/end, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "hrx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20829,16 +20924,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) -"hsy" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "hsC" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -20863,13 +20948,6 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"hsL" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 6 - }, -/turf/open/space/basic, -/area/space/nearstation) "hsO" = ( /obj/structure/cable, /obj/effect/spawner/structure/window, @@ -20885,6 +20963,13 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/station/security/tram) +"htg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "htp" = ( /turf/closed/wall, /area/station/service/barber) @@ -20914,20 +20999,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"htQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "hua" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -20943,7 +21014,6 @@ /obj/item/pickaxe, /obj/item/wrench, /obj/item/radio/off, -/obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) "huj" = ( @@ -21007,12 +21077,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/ai_monitored/turret_protected/aisat/maint) -"hvo" = ( -/obj/structure/sign/warning/hot_temp/directional/east, -/turf/open/floor/iron/stairs/right{ - dir = 1 - }, -/area/station/engineering/atmos) "hvx" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/machinery/light/small/directional/north, @@ -21049,12 +21113,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"hvZ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "hwh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -21105,12 +21163,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"hwG" = ( -/obj/machinery/door/window/left/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/effect/turf_decal/stripes/white/full, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "hwJ" = ( /turf/closed/wall/rust, /area/space/nearstation) @@ -21155,18 +21207,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"hxG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "hxQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -21183,13 +21223,6 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"hyb" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "hyi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21206,20 +21239,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"hyx" = ( -/obj/effect/turf_decal/stripes/white/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/button/door/directional/west{ - id = "Secure Storage"; - name = "Engineering Secure Storage"; - pixel_y = -24; - req_access = list("engine_equip"); - pixel_x = 24 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "hyA" = ( /obj/machinery/light/dim/directional/south, /turf/open/floor/iron/dark/side, @@ -21227,12 +21246,25 @@ "hyE" = ( /turf/closed/wall, /area/station/maintenance/starboard/aft) -"hyO" = ( +"hyS" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "hyW" = ( /obj/effect/turf_decal/weather/dirt{ dir = 10 @@ -21258,9 +21290,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"hzm" = ( -/turf/closed/wall/rust, -/area/station/cargo/miningoffice) "hzp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/neutral/line, @@ -21274,10 +21303,24 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) +"hzr" = ( +/obj/structure/closet/secure_closet/detective, +/obj/machinery/requests_console/directional/north{ + department = "Detective's Office"; + name = "Detective Requests Console" + }, +/obj/machinery/light/small/directional/west, +/obj/structure/detectiveboard/directional/west, +/turf/open/floor/wood, +/area/station/security/detectives_office) "hzK" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"hzO" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "hzV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -21328,12 +21371,66 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"hAO" = ( +/obj/machinery/computer/piratepad_control/civilian{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "hAW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/execution/transfer) +"hBh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_x = -20; + pixel_y = -2 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 5; + pixel_y = 1 + }, +/turf/open/floor/iron/small, +/area/station/service/janitor) +"hBi" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1; + name = "Air to External Air Ports" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "hBq" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -21437,6 +21534,10 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/aft) +"hCT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "hCX" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -21452,6 +21553,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"hDd" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "hDg" = ( /obj/structure/chair/stool/directional/east, /obj/effect/decal/cleanable/dirt/dust, @@ -21478,6 +21586,13 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"hDu" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/power/emitter, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "hDz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash, @@ -21502,17 +21617,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) -"hEi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/cargo/sorting) "hEl" = ( /obj/structure/table/rolling, /obj/effect/turf_decal/siding/yellow, @@ -21528,23 +21632,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/command/storage/eva) -"hEt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "hEu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21560,7 +21647,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/hangover, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "hED" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -21579,6 +21666,24 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"hFd" = ( +/obj/structure/rack, +/obj/item/clothing/neck/petcollar, +/obj/item/flashlight/flare/candle{ + pixel_x = 10 + }, +/obj/item/flashlight/flare/candle{ + pixel_x = 8; + pixel_y = 1 + }, +/obj/item/screwdriver{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/engine/atmos) "hFp" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -21612,24 +21717,10 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"hFK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/computer/atmos_control/mix_tank{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"hFR" = ( -/obj/effect/turf_decal/siding/red{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output{ - dir = 1 - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) +"hFO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "hGb" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/storage) @@ -21655,6 +21746,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"hGA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron, +/area/station/cargo/sorting) "hGE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -21703,6 +21799,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"hHX" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/quartermaster, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "hIi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -21725,20 +21831,9 @@ /obj/item/hemostat, /turf/open/floor/iron/white, /area/station/science/robotics/augments) -"hIU" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) "hJp" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/ai) -"hJs" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "hJC" = ( /obj/structure/closet/crate/hydroponics, /obj/item/paper/guides/jobs/hydroponics, @@ -21798,6 +21893,12 @@ /obj/structure/sign/warning/no_smoking/circle/directional/east, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"hKf" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "hKs" = ( /obj/effect/turf_decal/box/corners, /obj/effect/turf_decal/stripes/white/line{ @@ -21828,14 +21929,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) -"hKV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "hKX" = ( /turf/closed/mineral/random/stationside, /area/station/hallway/primary/fore) @@ -21858,10 +21951,12 @@ "hLc" = ( /turf/open/floor/plating, /area/station/science/xenobiology) -"hLm" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/office) +"hLx" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hLD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/tank/air{ @@ -21913,14 +22008,6 @@ }, /turf/open/floor/plating, /area/station/security) -"hMb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "hMh" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/chair/stool/bamboo{ @@ -21951,6 +22038,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/glass, /area/station/hallway/primary/central/aft) +"hMQ" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) +"hMX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hNb" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -21974,6 +22075,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hNq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hNv" = ( /obj/machinery/netpod, /obj/machinery/light_switch/directional/north, @@ -22002,14 +22110,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"hNU" = ( -/obj/structure/table/reinforced, -/obj/structure/spider/stickyweb, -/obj/item/mod/module/plasma_stabilizer{ - pixel_y = 11 - }, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "hNY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -22067,13 +22167,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"hPd" = ( -/obj/structure/hedge, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/iron/dark/side, -/area/station/cargo/office) "hPi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22183,6 +22276,20 @@ /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hQG" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "hRc" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, @@ -22204,13 +22311,6 @@ /obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) -"hRF" = ( -/obj/structure/transit_tube/curved{ - dir = 1 - }, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating/airless, -/area/space/nearstation) "hRO" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -22231,20 +22331,17 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"hSG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/stack/cable_coil{ - pixel_x = 9; - pixel_y = -1 +"hSn" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 }, -/obj/item/analyzer{ - pixel_y = 9 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "hSK" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/white{ @@ -22278,16 +22375,11 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hTC" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +"hTz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "hTD" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 6 @@ -22316,11 +22408,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) -"hUh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "hUq" = ( /obj/structure/table/glass, /turf/open/floor/iron/smooth, @@ -22396,6 +22483,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"hVz" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage/gas) "hVJ" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, @@ -22501,6 +22593,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"hXc" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/main) "hXf" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Hull Breach Emergency Storage" @@ -22518,18 +22617,23 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) -"hXt" = ( -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"hXB" = ( -/obj/effect/turf_decal/siding/white{ - dir = 9 +"hXv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output{ +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"hXM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "hXU" = ( /turf/closed/wall, /area/station/security/execution/education) @@ -22588,6 +22692,21 @@ dir = 8 }, /area/station/science/lab) +"hYQ" = ( +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/obj/machinery/disposal/delivery_chute{ + name = "Security Deliveries" + }, +/obj/structure/sign/departments/security/directional/north, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/plasticflaps{ + name = "Security Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "hYS" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/structure/railing, @@ -22628,35 +22747,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) -"hZb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"hZe" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/sign/poster/random/directional/east, -/obj/machinery/conveyor{ - id = "mining" - }, -/obj/machinery/brm, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) -"hZf" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "hZP" = ( /obj/structure/cable, /obj/structure/sign/poster/official/random/directional/north, @@ -22708,6 +22798,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"iaB" = ( +/obj/machinery/computer/turbine_computer{ + mapping_id = "main_turbine" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "iaH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -22742,11 +22839,6 @@ dir = 8 }, /area/station/maintenance/starboard/greater) -"iaW" = ( -/obj/structure/grille/broken, -/obj/effect/decal/cleanable/glass/plasma, -/turf/open/floor/engine, -/area/station/engineering/atmos) "ibe" = ( /obj/effect/turf_decal/bot_white, /obj/structure/closet/crate/freezer, @@ -22762,11 +22854,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"ibB" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "ibD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -22785,7 +22872,7 @@ dir = 4 }, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "ibI" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -22796,6 +22883,20 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) +"ibP" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) +"ibX" = ( +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "icc" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -22820,6 +22921,11 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) +"icF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "icN" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22926,17 +23032,17 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"idB" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "idF" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 }, /turf/open/floor/sepia, /area/station/maintenance/aft) -"idH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine) "idJ" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/bin, @@ -22968,12 +23074,22 @@ /obj/machinery/telecomms/message_server/preset, /turf/open/floor/circuit, /area/station/tcommsat/server) -"ieM" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 +"iek" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/machinery/disposal/delivery_chute{ + name = "Engineering Deliveries" + }, +/obj/structure/sign/departments/engineering/directional/north, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/plasticflaps{ + name = "Engineering Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "ieY" = ( /obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/broken_floor, @@ -23110,16 +23226,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"ihj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Turbine to Wastes" - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "ihl" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -23166,13 +23272,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) -"ihA" = ( -/obj/structure/transit_tube/curved{ - dir = 1 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "ihC" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -23210,6 +23309,24 @@ }, /turf/open/space/basic, /area/space) +"iiE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "engine" + }, +/obj/effect/mapping_helpers/airalarm/engine_access, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/meter, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering Supermatter Port" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iiI" = ( /obj/structure/table/reinforced, /obj/structure/disposalpipe/segment, @@ -23219,6 +23336,24 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"iiR" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/conveyor_switch/oneway{ + pixel_x = 4; + pixel_y = 10; + id = "mining" + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 6 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iiW" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, @@ -23232,13 +23367,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ijn" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 5 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) "ijz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, @@ -23274,15 +23402,6 @@ /obj/machinery/photobooth, /turf/open/floor/iron/textured_large, /area/station/hallway/primary/central/fore) -"ijP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ijV" = ( /turf/open/misc/asteroid, /area/station/maintenance/department/engine) @@ -23301,15 +23420,6 @@ "ikc" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"ikf" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos) "ikl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -23327,6 +23437,14 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"ikC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ikH" = ( /obj/structure/table/bronze, /obj/machinery/computer/security/wooden_tv{ @@ -23357,16 +23475,6 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"ilb" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "ile" = ( /obj/structure/chair{ dir = 1 @@ -23426,13 +23534,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"ilB" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering - Engine Bay North" - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "ilD" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -23447,13 +23548,15 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"ilN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 +"ilT" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ilW" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -23482,15 +23585,14 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"ina" = ( -/obj/structure/table, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"ind" = ( -/obj/machinery/light/floor, -/obj/structure/flora/bush/flowers_br, -/turf/open/floor/grass, -/area/station/hallway/primary/central/fore) +"imO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "inh" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ @@ -23533,11 +23635,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron, /area/station/security/prison/rec) -"iok" = ( -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "ioo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23551,16 +23648,24 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/dorms) -"ioN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, -/obj/effect/turf_decal/tile/brown{ - dir = 4 +"ioJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"ioQ" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ dir = 1 }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - entrance" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "ioR" = ( /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/west, @@ -23577,20 +23682,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/security/execution/transfer) -"ioX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_corner{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "ipb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -23608,17 +23699,6 @@ /mob/living/basic/pet/dog/pug/mcgriff, /turf/open/floor/iron, /area/station/security/warden) -"ipd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = -24; - req_access = list("cargo") - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "ipf" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -23643,6 +23723,11 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ipq" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "ipr" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/closet/wardrobe/miner, @@ -23696,6 +23781,12 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"ipN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ipP" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/stripes/corner{ @@ -23725,20 +23816,6 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"iqj" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/maintenance/port/fore) -"iql" = ( -/obj/machinery/atmospherics/components/binary/pump/off{ - dir = 1; - name = "Air to Public Ports" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "iqp" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -23748,10 +23825,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth, /area/station/command/bridge) -"iqq" = ( -/obj/structure/closet, -/turf/open/floor/iron/smooth, -/area/station/cargo/office) "iqB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23783,23 +23856,14 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"iqY" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Outlet Pump" - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics - Distribution 2" +"iqM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 }, /turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/area/station/cargo/storage) "ira" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light/small/directional/south, @@ -23849,19 +23913,13 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/hop) -"irZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/engineering/supermatter/room) +"irR" = ( +/obj/machinery/power/energy_accumulator/grounding_rod/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "isi" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new{ @@ -23879,18 +23937,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"isv" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Aux Cooling to Gas" - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ +"isC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "isD" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -23941,12 +23997,14 @@ "itb" = ( /turf/closed/wall/r_wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) -"itv" = ( -/obj/structure/transit_tube/horizontal{ - dir = 2 +"itf" = ( +/obj/structure/disposalpipe/segment, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "itw" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -23996,6 +24054,13 @@ /obj/structure/table/wood, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) +"iua" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "iuc" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "AISat Maintenance" @@ -24073,6 +24138,16 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) +"ivs" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ivz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/line{ @@ -24099,32 +24174,22 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"ivT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ +"ivC" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, /turf/open/floor/iron, -/area/station/engineering/atmos) +/area/station/cargo/lobby) "ivY" = ( /obj/structure/table/reinforced, /obj/effect/spawner/random/techstorage/tcomms_all, /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"iwi" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "iwt" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -24135,6 +24200,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"iwR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "ixl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24190,17 +24262,6 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) -"iyl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "iyn" = ( /obj/structure/railing/corner{ dir = 4 @@ -24256,6 +24317,13 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"izf" = ( +/obj/structure/sign/warning/engine_safety/directional/north, +/obj/machinery/light/cold/dim/directional/north, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "izh" = ( /obj/item/shovel, /turf/open/floor/plating, @@ -24267,12 +24335,6 @@ }, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"izm" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 9 - }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "izo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24314,8 +24376,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/catwalk_floor, /area/station/engineering/atmos/storage/gas) +"izF" = ( +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "izP" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -24330,16 +24397,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"izT" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "iAk" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -24347,6 +24404,11 @@ /obj/machinery/field/generator, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) +"iAt" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "iAu" = ( /obj/structure/bed{ dir = 4 @@ -24405,6 +24467,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"iAL" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "iAM" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 1 @@ -24413,14 +24484,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/security/brig/entrance) -"iAS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/chair/stool/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) "iAZ" = ( /obj/structure/bed/medical/anchored{ dir = 4 @@ -24449,14 +24512,6 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) -"iBo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iBt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -24523,13 +24578,6 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"iCp" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "iCq" = ( /obj/effect/turf_decal/siding/thinplating/terracotta{ dir = 8 @@ -24539,12 +24587,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"iCr" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "iCw" = ( /obj/structure/hedge, /obj/effect/turf_decal/tile/yellow{ @@ -24558,6 +24600,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"iCx" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "iCF" = ( /obj/structure/railing, /obj/structure/sign/poster/official/random/directional/north, @@ -24565,20 +24614,32 @@ dir = 8 }, /area/station/engineering/main) -"iCL" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 +"iCJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room" }, -/obj/machinery/holopad, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/server) "iDk" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"iDm" = ( +/obj/structure/cable, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating_new, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iDt" = ( /obj/effect/mapping_helpers/airlock/access/any/security/general, /obj/machinery/door/airlock/security{ @@ -24627,10 +24688,28 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"iDP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"iEc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "iEk" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/command/bridge) +"iEo" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "iEA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, @@ -24685,6 +24764,12 @@ /obj/structure/window/spawner/directional/east, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) +"iFB" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "iFD" = ( /obj/effect/turf_decal/plaque{ icon_state = "L5"; @@ -24706,18 +24791,42 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"iFG" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "iFP" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/plating/rust, /area/station/maintenance/hallway/abandoned_command) -"iGc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"iGb" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/crate, +/obj/effect/turf_decal/bot_white, +/obj/item/clothing/gloves/color/fyellow, +/obj/item/stack/package_wrap{ + pixel_y = 5 }, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth_corner, -/area/station/engineering/supermatter/room) +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/storage/box{ + desc = "It smells of monkey business..."; + name = "Empty Gorillacube Box" + }, +/obj/item/weldingtool, +/obj/item/radio{ + pixel_y = 3; + pixel_x = -6 + }, +/obj/item/assembly/signaler, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "iGl" = ( /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) @@ -24792,6 +24901,24 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"iGW" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"iHa" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Gas to Cold Loop"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iHg" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance/external{ @@ -24825,6 +24952,17 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"iHE" = ( +/obj/structure/chair/office, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "iHM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24881,6 +25019,20 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/station/command/heads_quarters/hop) +"iIG" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = -3 + }, +/obj/item/clothing/gloves/cargo_gauntlet, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 3 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/cargo/storage) "iIK" = ( /obj/effect/turf_decal/bot, /obj/structure/rack, @@ -24971,12 +25123,18 @@ /mob/living/basic/pet/dog/corgi/ian, /turf/open/floor/iron/dark/textured_edge, /area/station/command/heads_quarters/hop) -"iJh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) +"iJp" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/start/bitrunner, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "iJq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25014,6 +25172,9 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"iJH" = ( +/turf/closed/wall, +/area/station/security/checkpoint/supply) "iJI" = ( /obj/structure/table/glass, /obj/item/folder/blue, @@ -25039,16 +25200,6 @@ /obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"iJO" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "iJS" = ( /obj/structure/railing/corner/end{ dir = 4 @@ -25080,6 +25231,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig/entrance) +"iKn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "iKo" = ( /obj/structure/broken_flooring/corner/directional/south, /obj/effect/spawner/random/trash/graffiti{ @@ -25089,12 +25248,6 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"iKK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, -/obj/machinery/meter, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "iLe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25141,16 +25294,6 @@ }, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) -"iLF" = ( -/obj/item/kirbyplants/organic/applebush, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/hallway/primary/central/fore) "iLH" = ( /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/machinery/door/airlock/maintenance{ @@ -25216,13 +25359,6 @@ /obj/machinery/flasher/portable, /turf/open/floor/plating, /area/station/security/tram) -"iME" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/mask/gas, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "iMI" = ( /obj/structure/cable, /obj/structure/sign/warning/no_smoking/circle/directional/north, @@ -25426,18 +25562,13 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"iPg" = ( -/obj/effect/turf_decal/stripes/line{ +"iPd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Waste to Exhaust" - }, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "iPj" = ( /obj/structure/cable, /turf/open/floor/circuit/green, @@ -25502,6 +25633,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) +"iQM" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "iQT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -25549,13 +25696,6 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"iRp" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) "iRz" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -25617,14 +25757,15 @@ "iSr" = ( /turf/open/floor/iron, /area/station/security/execution/transfer) +"iSt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "iSD" = ( /turf/open/misc/dirt/station, /area/station/service/chapel) -"iSE" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/cyan/visible, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "iSK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -25646,10 +25787,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/command/nuke_storage) -"iTv" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood/parquet, -/area/station/service/library) "iTy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -25702,16 +25839,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"iTZ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Waste" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "iUb" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt, @@ -25730,6 +25857,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"iUp" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/circuit, +/area/station/tcommsat/server) +"iUA" = ( +/obj/machinery/conveyor{ + id = "mining" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "iUH" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/camera/autoname/directional/south, @@ -25738,6 +25880,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"iUI" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "iUK" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -25856,16 +26006,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/aft) -"iWb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "iWe" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -25900,6 +26040,18 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"iWD" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "iWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25953,18 +26105,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"iXg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "iXi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25979,12 +26119,6 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/cmo_office, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"iXn" = ( -/obj/structure/table/reinforced, -/obj/item/mod/module/signlang_radio, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "iXu" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -25996,10 +26130,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) -"iXx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/electrical) "iXy" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 @@ -26035,14 +26165,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/stone, /area/station/service/bar/backroom) -"iXZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "iYh" = ( /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, @@ -26083,12 +26205,32 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/security/processing) +"iZs" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "iZu" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/item/kirbyplants/random, /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/maintenance/central/lesser) +"iZx" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "iZy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -26174,14 +26316,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"jad" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +"jab" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "jar" = ( /obj/machinery/drone_dispenser, /turf/open/misc/asteroid, @@ -26228,15 +26366,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"jaN" = ( -/obj/structure/hedge, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/status_display/supply{ - pixel_y = 32 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/cargo/storage) "jaP" = ( /obj/effect/mob_spawn/corpse/human/clown, /turf/open/floor/plating/airless, @@ -26253,12 +26382,6 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/rd) -"jbo" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 9 - }, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) "jbp" = ( /obj/structure/flora/bush/jungle, /obj/structure/flora/rock/pile/style_3, @@ -26395,20 +26518,21 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/station/service/library) -"jdU" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, +"jdR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Turbine to Chamber" - }, -/turf/open/floor/iron/smooth, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/atmospheric_technician, +/turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"jdX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jeh" = ( /turf/open/floor/noslip, /area/station/security/tram) @@ -26426,6 +26550,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"jeF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "jeG" = ( /obj/machinery/portable_atmospherics/canister/plasma, /obj/effect/turf_decal/stripes/white/line{ @@ -26434,19 +26564,20 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"jeV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage below"; + name = "Secure Storage" + }, +/turf/open/floor/plating/rust, +/area/station/engineering/main) "jeW" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/departments/medbay/alt/directional/west, /turf/open/floor/plating, /area/station/medical/medbay/lobby) -"jfa" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/obj/item/radio/intercom/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "jfs" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -26478,11 +26609,19 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"jfB" = ( +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "jfE" = ( /obj/structure/closet/secure_closet/evidence, /obj/machinery/light/dim/directional/north, /turf/open/floor/iron/smooth, /area/station/security/evidence) +"jfP" = ( +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "jfT" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 @@ -26499,6 +26638,20 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/service/greenroom) +"jgj" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + id = "qm_warehouse"; + name = "Warehouse Door Control"; + pixel_x = -24; + pixel_y = -24; + req_access = list("cargo") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "jgq" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -26527,46 +26680,32 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"jhk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/sign/warning/pods/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) +"jhj" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/computer/station_alert{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "jhm" = ( /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"jhs" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) -"jhz" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"jhB" = ( +/obj/structure/sign/warning/electric_shock, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "jhC" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"jhJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"jhF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/line, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jhY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -26585,16 +26724,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/aft) -"jia" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "jie" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -26732,13 +26861,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"jkS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "jkT" = ( /obj/structure/table/wood, /obj/machinery/fax/auto_name, @@ -26753,6 +26875,19 @@ /obj/structure/cable, /turf/open/floor/plating/rust, /area/station/engineering/supermatter/room) +"jln" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "jlt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26764,14 +26899,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"jlv" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "jlz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26856,6 +26983,13 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"jmC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/sign/departments/holy/directional/south, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "jmF" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/turf_decal/stripes/line{ @@ -26863,12 +26997,16 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) -"jmK" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +"jmN" = ( +/obj/structure/table, +/obj/item/stack/rods/fifty, +/obj/item/wrench, +/obj/item/storage/box/lights/mixed, +/obj/effect/turf_decal/bot{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/cargo/storage) +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jmV" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plating, @@ -26879,6 +27017,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"jmX" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "jmY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26921,16 +27070,29 @@ /turf/open/floor/iron, /area/station/cargo/sorting) "jnB" = ( -/obj/structure/chair/plastic{ - dir = 8 +/obj/structure/table/reinforced, +/obj/item/folder/yellow{ + pixel_x = 4 }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 +/obj/item/storage/pill_bottle/potassiodide{ + pixel_y = 12; + pixel_x = -6 }, -/obj/effect/landmark/start/atmospheric_technician, +/obj/item/pen/screwdriver, +/obj/item/radio/intercom/directional/west, +/obj/item/geiger_counter{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/small, /area/station/engineering/atmos/storage/gas) +"jnI" = ( +/obj/machinery/air_sensor/incinerator_tank, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) "jnN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -26980,19 +27142,6 @@ /obj/structure/alien/weeds, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"jph" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "jpm" = ( /obj/structure/chair{ dir = 4; @@ -27029,14 +27178,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/evidence) -"jpR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/rack, -/obj/effect/spawner/random/maintenance/three, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "jpW" = ( /obj/structure/cable, /obj/structure/table/wood, @@ -27057,48 +27198,11 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"jqh" = ( -/obj/item/stack/cable_coil/five, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "jqq" = ( /obj/structure/closet/crate/trashcart/filled, /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"jqu" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"jqA" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 1; - id = "packageSort2" - }, -/obj/machinery/door/window/left/directional/west{ - name = "Crate Security Door"; - req_access = list("shipping") - }, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/plating, -/area/station/cargo/sorting) "jqD" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/tile/yellow/diagonal_centre, @@ -27128,19 +27232,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/rec) -"jrb" = ( -/obj/item/radio/intercom/directional/west, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"jrj" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - name = "Refuse Exhaust" - }, -/turf/open/space/basic, -/area/space/nearstation) "jrk" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -27150,6 +27241,14 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"jro" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jrs" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -27157,6 +27256,28 @@ /obj/structure/cable, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) +"jrv" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"jry" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) +"jrD" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "jrG" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 @@ -27170,13 +27291,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) -"jrS" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "jrT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27191,11 +27305,6 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"jrX" = ( -/turf/open/floor/iron/stairs{ - dir = 1 - }, -/area/station/cargo/office) "jsa" = ( /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/side{ @@ -27254,13 +27363,6 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/aft) -"jtd" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/machinery/status_display/evac/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "jte" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -27281,10 +27383,20 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) +"jtB" = ( +/obj/effect/turf_decal/stripes/white/corner, +/turf/open/floor/iron/dark/corner, +/area/station/cargo/storage) "jtD" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"jtG" = ( +/obj/structure/table, +/obj/structure/railing/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "jtI" = ( /turf/open/floor/iron/white/side{ dir = 4 @@ -27303,52 +27415,11 @@ /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"jug" = ( -/obj/machinery/door/airlock/hatch{ - name = "Tool Supply Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/commons/storage/tools) -"jul" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 10 - }, -/turf/open/space/basic, -/area/space/nearstation) -"juF" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 6 - }, -/obj/machinery/holopad, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) -"juJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/table, +"juo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/decal/cleanable/dirt, -/obj/item/stack/package_wrap{ - pixel_y = 5 - }, -/obj/item/storage/box/matches, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"juP" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/stone, -/area/station/service/chapel) +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "juS" = ( /obj/structure/bed, /obj/item/bedsheet/hop, @@ -27356,6 +27427,14 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hop) +"juU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/west, +/obj/effect/landmark/event_spawn, +/obj/machinery/portable_atmospherics/pump/lil_pump, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "jvd" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -27469,29 +27548,6 @@ }, /turf/open/floor/iron, /area/station/security) -"jwC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) -"jwM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "jwU" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/sign/poster/random/directional/south, @@ -27507,13 +27563,6 @@ /obj/structure/frame/machine, /turf/open/floor/tram, /area/station/security/tram) -"jxh" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) "jxk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27540,14 +27589,6 @@ "jxD" = ( /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"jxJ" = ( -/obj/structure/hedge, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/cargo/storage) "jxU" = ( /obj/effect/turf_decal/siding/blue{ dir = 9 @@ -27578,6 +27619,10 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"jya" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "jyd" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, @@ -27598,22 +27643,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/breakroom) -"jyl" = ( -/obj/structure/table/greyscale, -/obj/item/folder/yellow{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/item/newspaper{ - pixel_y = 4; - pixel_x = -4 - }, -/obj/item/geiger_counter{ - pixel_x = 13; - pixel_y = 6 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "jyu" = ( /obj/structure/chair/bronze{ dir = 4 @@ -27637,6 +27666,16 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) +"jyF" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/shower/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/break_room) "jyG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27715,14 +27754,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"jzJ" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/closet/firecloset, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "jAb" = ( /obj/structure/cable, /turf/open/floor/iron/stairs{ @@ -27753,11 +27784,25 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/lobby) +"jAN" = ( +/obj/machinery/computer/cargo{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "jAR" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/security/tram) +"jBg" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "jBo" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 6 @@ -27795,6 +27840,42 @@ /obj/machinery/flasher/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"jBJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/west{ + name = "Cargo Desk"; + req_access = list("shipping") + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/obj/item/paper_bin{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/cargo/office) +"jBN" = ( +/obj/machinery/piratepad/civilian, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/cold/dim/directional/south, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "jBQ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27802,19 +27883,6 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"jBW" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"jCi" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "jCm" = ( /obj/effect/landmark/start/hangover, /turf/open/misc/dirt/station, @@ -27823,13 +27891,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"jCP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +"jCH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jCZ" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ id = "Cell 1"; @@ -27848,16 +27915,9 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"jDm" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/office) +"jDi" = ( +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "jDt" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -27976,27 +28036,6 @@ }, /turf/closed/wall, /area/station/hallway/secondary/entry) -"jEK" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/fax{ - fax_name = "Cargo Office"; - name = "Cargo Office Fax Machine"; - pixel_y = 4 - }, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "jEQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28013,17 +28052,23 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"jFg" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/paperplane{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/paperplane{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "jFh" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"jFk" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "jFm" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/spawner/random/vending/snackvend, @@ -28079,15 +28124,11 @@ }, /turf/open/floor/iron, /area/station/security) -"jGk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +"jGu" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "jGy" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/vending/wardrobe/bar_wardrobe, @@ -28108,6 +28149,15 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"jGC" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/cargo/storage) "jGK" = ( /obj/structure/chair/wood, /obj/structure/cable, @@ -28201,6 +28251,11 @@ /mob/living/basic/sloth/citrus, /turf/open/floor/iron, /area/station/cargo/storage) +"jHC" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "jHI" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 5 @@ -28208,6 +28263,32 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/security/tram) +"jHJ" = ( +/obj/structure/table, +/obj/item/stack/sheet/plasteel/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"jHM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"jHN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) +"jHS" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/engineering/main) "jHU" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -28215,22 +28296,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/science/lobby) -"jIa" = ( -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "atmos_airlock_1" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/hallway) "jIc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock{ @@ -28247,14 +28312,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"jIh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "jIj" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -28273,10 +28330,22 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"jIn" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/firealarm/directional/west, +/obj/machinery/vending/cytopro, +/turf/open/floor/iron/white, +/area/station/science/cytology) "jIy" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"jIA" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jIB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -28288,78 +28357,48 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/cmo, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"jIH" = ( +"jJg" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood, -/area/station/cargo/miningfoundry) -"jIN" = ( -/obj/structure/disposalpipe/segment{ +/area/station/engineering/main) +"jJw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/obj/effect/turf_decal/tile/brown{ +/turf/open/floor/iron/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron, -/area/station/cargo/office) -"jIY" = ( +/area/station/cargo/storage) +"jJB" = ( /obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/brown{ dir = 4 }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/office) -"jJc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown{ +/obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/office) -"jJd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/green/opposingcorners, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 8 - }, -/obj/machinery/hydroponics/constructable, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/service/hydroponics) -"jJg" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/area/station/cargo/sorting) +"jJO" = ( /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 5 }, +/obj/structure/chair/stool/directional/east, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/newscaster/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, -/area/station/engineering/main) -"jJu" = ( -/obj/structure/chair, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +/area/station/maintenance/hallway/abandoned_recreation) "jJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28399,6 +28438,14 @@ dir = 1 }, /area/station/science/xenobiology) +"jKl" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "jKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28409,21 +28456,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) -"jKu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/cargo/office) "jKJ" = ( /obj/machinery/door/window/right/directional/north, /turf/open/floor/iron, @@ -28450,20 +28482,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"jLr" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/line{ +"jLt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/science/cytology) +"jLv" = ( +/obj/effect/turf_decal/bot{ + dir = 1 }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jLB" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -28515,26 +28547,12 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"jMb" = ( -/obj/effect/turf_decal/bot_white, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) -"jMy" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Waste Outlet" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ +"jMp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 8 }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "jMC" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 8 @@ -28591,17 +28609,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"jNr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/hidden{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 9 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) +"jNu" = ( +/obj/machinery/air_sensor/air_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "jNw" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -28609,19 +28621,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"jNL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/trinary/filter/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "jNO" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/flora/bush/leavy/style_3{ @@ -28634,6 +28633,13 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) +"jNV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "jOb" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -28716,6 +28722,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"jPl" = ( +/obj/machinery/button/ignition/incinerator/atmos, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "jPo" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance{ @@ -28748,14 +28758,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"jQo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "jQv" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -28773,6 +28775,14 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/small, /area/station/commons/fitness/locker_room) +"jQG" = ( +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jQW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -28856,19 +28866,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"jRR" = ( -/obj/machinery/atmospherics/components/binary/crystallizer{ - dir = 4 - }, -/obj/machinery/light/cold/dim/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "jRU" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/light_switch/directional/north, /turf/open/floor/iron/stairs/old{ dir = 4 }, @@ -28878,6 +28880,19 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"jSm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "jSn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed, @@ -28898,6 +28913,13 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) +"jSE" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/kirbyplants/organic/plant22, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "jSJ" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -28934,6 +28956,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"jTf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "jTh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28981,7 +29009,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) +"jTD" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jTU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28998,6 +29032,14 @@ dir = 1 }, /area/station/hallway/primary/aft) +"jTW" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jUc" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/east, @@ -29028,12 +29070,6 @@ /turf/open/floor/iron, /area/station/security/prison/rec) "jUr" = ( -/obj/item/cigarette, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_y = 5; - pixel_x = 6 - }, -/obj/item/lighter, /obj/structure/sign/poster/official/random/directional/east, /obj/structure/table, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -29042,21 +29078,30 @@ /obj/effect/turf_decal/siding/thinplating_new{ dir = 6 }, +/obj/item/aquarium_kit, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "jUx" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"jUU" = ( +"jUy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jUA" = ( +/obj/item/kirbyplants/random, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/light_switch/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/commons) +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "jVe" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -29071,19 +29116,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"jVx" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron/dark/side, -/area/station/maintenance/central/greater) -"jVI" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "jVJ" = ( /obj/structure/table, /obj/item/bikehorn/rubberducky{ @@ -29132,15 +29164,6 @@ /obj/structure/flora/bush/large/style_3, /turf/open/floor/grass, /area/station/service/chapel) -"jWk" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos/office) "jWl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -29149,6 +29172,19 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"jWm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - upper" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"jWr" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "jWs" = ( /turf/open/floor/iron/dark, /area/station/security/processing) @@ -29173,6 +29209,11 @@ /obj/effect/landmark/start/bitrunner, /turf/open/floor/iron, /area/station/cargo/storage) +"jWC" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "jWO" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/camera/autoname/directional/south, @@ -29180,19 +29221,6 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"jWZ" = ( -/obj/machinery/mineral/ore_redemption{ - dir = 4; - input_dir = 8; - output_dir = 4 - }, -/obj/machinery/door/window/right/directional/east{ - name = "Ore Redemtion Window" - }, -/obj/effect/turf_decal/bot, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/textured_large, -/area/station/cargo/office) "jXc" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -29221,6 +29249,9 @@ name = "Telecommunications Server Room" }, /obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-north" + }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "jXA" = ( @@ -29252,10 +29283,15 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) -"jXJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white/side, -/area/station/hallway/primary/central/aft) +"jXH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "jXQ" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -18; @@ -29348,21 +29384,9 @@ /obj/effect/mapping_helpers/airlock/access/all/command/teleporter, /turf/open/floor/iron/dark/textured_half, /area/station/command/teleporter) -"jZc" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "jZl" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmospherics_engine) -"jZn" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/hallway/primary/central/fore) "jZJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -29491,6 +29515,12 @@ /obj/item/stock_parts/power_store/cell, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) +"kbL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kci" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29535,6 +29565,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"kdv" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "kdH" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -29560,16 +29595,6 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/white/small, /area/station/science/server) -"kee" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/item/food/grown/pineapple{ - pixel_x = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "kel" = ( /obj/machinery/light/cold/directional/south, /obj/machinery/modular_computer/preset/id{ @@ -29604,38 +29629,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/science/lower) -"keQ" = ( -/obj/effect/turf_decal/weather/dirt, -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/obj/structure/flora/bush/flowers_yw, -/turf/open/floor/grass, -/area/station/service/chapel) -"keS" = ( -/obj/effect/turf_decal/siding/white{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/air_input{ - dir = 1 - }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) -"keY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/power/energy_accumulator/tesla_coil, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"kft" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/iron/dark/side, -/area/station/cargo/office) "kfv" = ( /obj/effect/turf_decal/stripes/red/line, /obj/machinery/power/apc/auto_name/directional/east, @@ -29708,6 +29701,16 @@ dir = 1 }, /area/station/hallway/primary/aft) +"kgp" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "kgu" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/components/unary/passive_vent, @@ -29722,22 +29725,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"kgG" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "kgN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, @@ -29749,16 +29736,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/medical/paramedic) -"kgW" = ( -/obj/structure/table/reinforced, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/body/waste_output{ - pixel_x = 7; - pixel_y = -11 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "kgZ" = ( /obj/structure/cable, /obj/machinery/newscaster/directional/east, @@ -29786,16 +29763,24 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"khr" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 10 +"khw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 }, -/obj/structure/railing/corner{ - dir = 4 +/obj/effect/turf_decal/arrows{ + dir = 1 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "khD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/watertank, @@ -29835,18 +29820,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"khZ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/cargo/office) -"kia" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "kii" = ( /obj/structure/flora/bush/flowers_yw/style_3{ pixel_y = -3 @@ -29866,6 +29839,12 @@ }, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) +"kik" = ( +/obj/structure/chair/stool/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "kit" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -29905,6 +29884,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kiP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "kiQ" = ( /obj/structure/cable, /obj/machinery/power/smes/super/full, @@ -29916,10 +29901,24 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kiW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "kiY" = ( /obj/structure/flora/tree/jungle/style_6, /turf/open/floor/grass, /area/station/service/chapel) +"kjb" = ( +/obj/structure/hedge, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "kjg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29936,6 +29935,25 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"kjs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table, +/obj/item/clothing/glasses/meson{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 5; + pixel_y = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "kjw" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -29969,6 +29987,10 @@ /obj/structure/plasticflaps/opaque, /turf/open/floor/plating, /area/station/maintenance/department/bridge) +"kjW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/pumproom) "kkd" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Creature Pen"; @@ -30000,6 +30022,33 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"kkD" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/stack/package_wrap{ + pixel_y = 6; + pixel_x = -1 + }, +/obj/item/paper/crumpled{ + pixel_x = 5; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/lobby) "kkK" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -30049,6 +30098,19 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"klg" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/engineering/atmos) +"klA" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Plasma to Pure" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "klF" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -30061,29 +30123,18 @@ dir = 4 }, /area/station/science/xenobiology) +"klG" = ( +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "klH" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/processing) -"klL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 6 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "klN" = ( /obj/effect/turf_decal/weather/dirt{ dir = 10 @@ -30173,6 +30224,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"kmL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/structure/table, +/obj/item/radio/intercom/directional/south, +/obj/item/clothing/head/cone{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/item/clothing/head/cone{ + pixel_y = 7; + pixel_x = -6 + }, +/obj/item/pipe_dispenser{ + pixel_y = 9; + pixel_x = 14 + }, +/obj/item/cigarette{ + pixel_y = 2 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "kmP" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -30202,6 +30275,10 @@ "knv" = ( /turf/closed/wall, /area/station/maintenance/department/engine/atmos) +"knw" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "knB" = ( /obj/machinery/door/airlock{ id_tag = "Toilet2"; @@ -30219,12 +30296,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"knL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "knO" = ( /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/east, @@ -30233,6 +30304,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) +"knR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "knV" = ( /obj/structure/closet/l3closet, /obj/effect/turf_decal/stripes/line{ @@ -30267,53 +30343,6 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"koV" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"kpe" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"kph" = ( -/obj/structure/railing, -/obj/machinery/light/cold/directional/north, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos/office) -"kpq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/vacuum/external/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "kpF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/hangover, @@ -30322,19 +30351,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kpT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "kpU" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /turf/open/floor/iron/white, @@ -30390,16 +30406,6 @@ }, /turf/open/floor/plating, /area/station/medical/surgery/theatre) -"kqL" = ( -/obj/structure/disposalpipe/junction/flip{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/sorting) "kqM" = ( /obj/structure/cable, /obj/item/reagent_containers/cup/bucket, @@ -30426,38 +30432,11 @@ /obj/structure/cable, /turf/open/floor/iron/small, /area/station/medical/morgue) -"kqQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted, -/turf/open/floor/iron, -/area/station/cargo/sorting) "kqU" = ( /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/north, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"kqW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/mining/glass{ - name = "Delivery Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/sorting) "kqX" = ( /turf/closed/wall, /area/station/ai_monitored/aisat/exterior) @@ -30473,6 +30452,14 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"krb" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/door/airlock/atmos/glass{ + name = "Project Room" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/atmos) "krd" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/machinery/newscaster/directional/north, @@ -30565,15 +30552,12 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) -"kso" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) +"ksq" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/light/small/directional/north, +/obj/structure/mirror/directional/north, +/turf/open/floor/iron/grimy, +/area/station/cargo/boutique) "ksv" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -30581,33 +30565,6 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"ksx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Office" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) -"ksA" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "ksB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30619,6 +30576,10 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/engineering/gravity_generator) +"ksE" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "ksJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30629,6 +30590,19 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"ksM" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/hallway) "ksN" = ( /obj/structure/transit_tube/station/dispenser, /obj/effect/decal/cleanable/dirt, @@ -30642,6 +30616,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) +"kti" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1; + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "ktl" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -30670,41 +30654,12 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"ktL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ +"ktJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 9 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) -"ktM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/cargo/office) -"ktQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table, -/obj/item/storage/box/mousetraps{ - pixel_x = -5 - }, -/obj/item/storage/box/mousetraps{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/small, -/area/station/commons) +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "ktT" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -30721,36 +30676,18 @@ /obj/item/radio/intercom/prison/directional/west, /turf/open/floor/iron/cafeteria, /area/station/security/prison) -"kua" = ( -/obj/structure/table, -/obj/item/disk/cargo{ - pixel_x = 6 - }, -/obj/item/paper/crumpled{ - pixel_x = -7; - pixel_y = 8 - }, -/obj/item/pen{ - pixel_x = -5 - }, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_x = 7; - pixel_y = 15 +"kut" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" }, -/turf/open/floor/iron/dark, -/area/station/cargo/office) -"kuk" = ( -/obj/machinery/light/warm/dim, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) -"kuq" = ( -/obj/machinery/computer/cargo/request, -/turf/open/floor/plating, -/area/station/hallway/primary/central/fore) +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "kux" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -30794,9 +30731,6 @@ /obj/structure/chair, /turf/open/floor/iron, /area/station/commons/storage/tools) -"kvb" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/atmos) "kvl" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -30806,6 +30740,9 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kvz" = ( +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "kvD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -30845,11 +30782,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kwr" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/item/chair, -/turf/open/floor/iron, -/area/station/engineering/hallway) "kws" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/firealarm/directional/west, @@ -30878,13 +30810,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/robotics/augments) -"kwH" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "kwW" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth, @@ -30898,6 +30823,20 @@ /obj/structure/window/spawner/directional/north, /turf/open/space/basic, /area/space/nearstation) +"kxa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/mining{ + name = "Mining Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "kxb" = ( /obj/structure/table/reinforced/titaniumglass, /obj/effect/turf_decal/bot, @@ -30929,6 +30868,20 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"kxu" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) +"kxE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Genetics" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/genetics, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "kxF" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, @@ -30964,28 +30917,6 @@ }, /turf/open/floor/plating, /area/station/service/hydroponics) -"kya" = ( -/obj/structure/table/greyscale, -/obj/item/paper{ - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/mug/tea{ - pixel_y = 8; - pixel_x = -7 - }, -/obj/item/pen{ - pixel_x = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"kyg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "kym" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -31014,6 +30945,17 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"kzs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/security/glass{ + name = "Security Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/security/checkpoint/science) "kzv" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -31062,18 +31004,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/hallway/primary/fore) -"kAG" = ( -/obj/structure/lattice/catwalk, +"kAz" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/structure/cable, -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/railing/corner, -/obj/machinery/power/emitter{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/camera/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "kAJ" = ( /obj/structure/closet/wardrobe/mixed, /obj/effect/turf_decal/siding/wideplating/dark, @@ -31112,10 +31050,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/small, /area/station/engineering/main) -"kBD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "kBM" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -31137,6 +31071,19 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"kCq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "kCy" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -31202,24 +31149,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"kDj" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "kDs" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet/purple, /area/station/commons/dorms) -"kDY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/door/airlock/public/glass{ - name = "Atmospherics Project Bay" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "kEd" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -31228,6 +31161,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/dorms) +"kEo" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/engineering/main) "kEs" = ( /obj/machinery/door/airlock/external/glass{ name = "Supply Door Airlock" @@ -31264,15 +31201,15 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"kFg" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"kEW" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ dir = 1 }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) +/turf/open/floor/iron, +/area/station/engineering/atmos) "kFq" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -31293,6 +31230,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"kFA" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "kFD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/autolathe, @@ -31300,47 +31244,18 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/smooth, /area/station/cargo/sorting) -"kFH" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) -"kFI" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/delivery/white, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_x = -9; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/glass/waterbottle/large{ - pixel_x = 5; - pixel_y = 20 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "kFJ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/sorting) -"kFS" = ( -/turf/closed/mineral/random/stationside, +"kFK" = ( +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"kFU" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) "kFY" = ( /turf/closed/wall/r_wall, /area/station/medical/morgue) -"kGm" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/power/supermatter_crystal/engine, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "kGn" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -31390,6 +31305,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"kHd" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "kHi" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -31422,20 +31343,19 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"kHI" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 +"kHp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 6 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "kHL" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -31453,20 +31373,6 @@ }, /turf/open/floor/iron, /area/station/security) -"kHQ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 6 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "kHX" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, @@ -31509,32 +31415,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"kIO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/west{ - name = "Cargo Desk"; - req_access = list("shipping") - }, -/obj/structure/desk_bell{ - pixel_x = 7 - }, -/obj/item/paper_bin{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/item/pen{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark/textured_large, -/area/station/cargo/office) "kIQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31557,17 +31437,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"kJb" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/hallway/primary/central/fore) "kJj" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -31591,10 +31460,14 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/station/ai_monitored/security/armory) -"kJs" = ( -/obj/machinery/holopad, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) +"kJu" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "kJJ" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -31632,6 +31505,7 @@ cycle_id = "sci-entrance" }, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron/textured_half, /area/station/security/brig/entrance) "kKD" = ( @@ -31653,33 +31527,57 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"kLk" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) +"kKX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "kLo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/funeral) -"kLv" = ( -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/public/glass{ - name = "Supplies" - }, -/turf/open/floor/plating, +"kLr" = ( +/obj/structure/table, +/obj/item/hfr_box/body/waste_output, +/obj/item/hfr_box/body/moderator_input, +/obj/item/hfr_box/body/fuel_input, +/obj/item/hfr_box/body/interface, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "kLS" = ( /turf/open/floor/iron/stairs{ dir = 1 }, /area/station/medical/treatment_center) +"kMe" = ( +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) +"kMg" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "atmos_airlock_1" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/iron, +/area/station/engineering/atmos/office) "kMm" = ( /obj/structure/chair/sofa/right/brown{ dir = 1 @@ -31704,6 +31602,31 @@ /obj/machinery/holopad, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) +"kMY" = ( +/obj/effect/turf_decal/stripes{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/machinery/door/airlock/mining{ + name = "Bitrunning Den" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/supply/bit_den, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/cargo/bitrunning/den) "kNf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -31722,6 +31645,9 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"kNx" = ( +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "kNz" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/small, @@ -31732,22 +31658,6 @@ "kND" = ( /turf/closed/wall/r_wall, /area/station/security/prison) -"kNG" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "kNI" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -31778,10 +31688,28 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"kOh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Mech Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/mechbay) "kOm" = ( /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) +"kOA" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/conveyor{ + id = "mining" + }, +/obj/machinery/brm, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "kOG" = ( /obj/structure/cable, /obj/machinery/door/airlock/external{ @@ -31793,6 +31721,13 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/solars/starboard/fore) +"kOH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "kOR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31822,21 +31757,20 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/white/small, /area/station/security/warden) +"kPh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "kPk" = ( /obj/structure/chair/sofa/bench{ dir = 1 }, /turf/open/floor/iron/dark/side, /area/station/security/execution/transfer) -"kPo" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "kPv" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -31881,6 +31815,15 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"kQj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "kQk" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -31888,23 +31831,6 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"kQo" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"kQr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "kQt" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/aft) @@ -31912,6 +31838,17 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/cargo/storage) +"kRb" = ( +/turf/open/floor/iron, +/area/station/cargo/sorting) +"kRi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "kRt" = ( /obj/machinery/monkey_recycler, /obj/effect/turf_decal/siding/white{ @@ -31919,18 +31856,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"kRu" = ( -/obj/effect/turf_decal/siding/white{ - dir = 10 - }, -/obj/machinery/air_sensor/air_tank, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 5; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) "kRA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -31949,14 +31874,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"kRJ" = ( -/obj/structure/disposalpipe/segment, -/obj/item/banner/cargo, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/airalarm/directional/west, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "kRN" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/smooth_corner{ @@ -31967,13 +31884,16 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"kRW" = ( -/obj/machinery/computer/atmos_control/nitrogen_tank{ +"kRV" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "kSb" = ( /turf/open/floor/wood, /area/station/command/heads_quarters/qm) @@ -31989,31 +31909,12 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) -"kSf" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "kSj" = ( /obj/structure/chair/plastic{ dir = 8 }, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"kSr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/command/heads_quarters/rd) "kSv" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32035,14 +31936,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"kSO" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "kTm" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/siding/wood{ @@ -32070,12 +31963,6 @@ dir = 1 }, /area/station/command/heads_quarters/hop) -"kTu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "kTw" = ( /turf/closed/wall, /area/station/construction/mining/aux_base) @@ -32143,6 +32030,9 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"kUN" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/pumproom) "kVb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32160,37 +32050,17 @@ /obj/structure/chair/sofa/bench/left, /turf/open/floor/stone, /area/station/service/chapel) -"kVn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/machinery/recharger{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/item/radio/off{ - pixel_x = -6 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "kVx" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"kVK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ +"kVB" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 6 }, -/obj/structure/reflector/double/anchored, -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "kWd" = ( /obj/machinery/door/airlock{ name = "Room 2" @@ -32230,14 +32100,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) -"kWK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) "kWR" = ( /obj/machinery/door/airlock/public/glass{ name = "Docking Corridor" @@ -32247,15 +32109,13 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"kXf" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, +"kWY" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"kXj" = ( -/obj/machinery/suit_storage_unit/engine, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) +/area/station/engineering/atmos/office) "kXn" = ( /turf/closed/wall/r_wall, /area/station/engineering/gravity_generator) @@ -32292,30 +32152,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"kXR" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) "kXS" = ( /obj/structure/closet/emcloset, /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"kYa" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/fourcorners, -/obj/effect/landmark/navigate_destination/cargo, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"kYo" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "kYs" = ( /obj/machinery/mech_bay_recharge_port{ dir = 2 @@ -32331,10 +32172,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine, /area/station/science/explab) -"kYG" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) "kYI" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/chair/plastic{ @@ -32364,11 +32201,6 @@ }, /turf/open/floor/iron, /area/station/science/cytology) -"kYZ" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/window/spawner/directional/south, -/turf/open/floor/grass, -/area/station/cargo/storage) "kZh" = ( /obj/structure/table/glass, /obj/effect/turf_decal/siding/thinplating_new/light{ @@ -32384,6 +32216,18 @@ /obj/structure/flora/grass/jungle/b/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"kZr" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/machinery/shower/directional/east, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/main) "kZv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -32401,15 +32245,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"kZB" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/cargo/storage) "kZC" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -32452,17 +32287,6 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/aft) -"lae" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Cold Loop to Gas" - }, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) -"laD" = ( -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central/fore) "laF" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -32491,15 +32315,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"laL" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/loading_area/white, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/hallway/primary/central/fore) "laU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32516,35 +32331,10 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) -"lbi" = ( -/obj/structure/flora/bush/flowers_br, -/obj/structure/flora/bush/flowers_yw, -/obj/machinery/light/floor, -/turf/open/floor/grass, -/area/station/hallway/primary/central/fore) -"lbl" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/storage/fancy/candle_box, -/obj/structure/rack/skeletal, -/obj/machinery/camera/autoname/directional/west, +"lbe" = ( /obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"lbF" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/stripes, -/obj/effect/turf_decal/trimline/brown/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) +/turf/open/floor/iron/dark, +/area/station/cargo/lobby) "lbG" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -32634,11 +32424,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"lda" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/hallway) "ldb" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/disposalpipe/segment, @@ -32662,6 +32447,14 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) +"ldG" = ( +/obj/machinery/door/airlock/external/glass{ + name = "ATMOS PROJECT Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ldJ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -32792,6 +32585,15 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"lfq" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro Staging to Distro" + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "lfs" = ( /obj/effect/landmark/start/assistant, /turf/open/floor/iron/half, @@ -32821,44 +32623,12 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security/prison) -"lfI" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"lfQ" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/shower/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark/small, -/area/station/engineering/main) "lfU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"lgc" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Aux Cooling"; - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "lgf" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, @@ -32949,6 +32719,10 @@ dir = 1 }, /area/station/hallway/primary/aft) +"lgD" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "lgG" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -33045,12 +32819,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"lhZ" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "lir" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -33066,19 +32834,6 @@ /obj/effect/landmark/navigate_destination/kitchen, /turf/open/floor/wood, /area/station/hallway/primary/central/aft) -"lix" = ( -/obj/structure/table/reinforced, -/obj/item/grenade/chem_grenade/cleaner{ - pixel_x = 8; - pixel_y = 13 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -2; - pixel_y = 9 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "liG" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -33144,6 +32899,15 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/rust, /area/station/maintenance/department/engine/atmos) +"ljc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "ljg" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 1 @@ -33283,19 +33047,31 @@ /obj/item/pen, /turf/open/floor/iron, /area/station/security/prison/rec) -"lkI" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "lkJ" = ( /obj/structure/flora/rock/pile/jungle/style_4, /turf/open/floor/grass, /area/station/service/chapel) +"lkL" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"lkN" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "lkR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33307,10 +33083,6 @@ "lkV" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) -"llg" = ( -/obj/effect/turf_decal/stripes/white/line, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "llC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -33324,19 +33096,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"llN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "llP" = ( /obj/structure/cable, /obj/structure/bed/medical{ @@ -33378,10 +33137,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"lme" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet/donk, -/area/station/command/heads_quarters/qm) "lmm" = ( /mob/living/basic/frog, /obj/effect/turf_decal/weather/dirt{ @@ -33391,25 +33146,37 @@ /obj/structure/flora/bush/flowers_pp/style_2, /turf/open/floor/grass, /area/station/service/chapel) -"lmv" = ( -/obj/structure/disposalpipe/segment, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) -"lmz" = ( +"lmo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix Outlet Pump" + }, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"lmR" = ( -/obj/structure/dresser, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) -"lmS" = ( +/area/station/engineering/atmos) +"lmp" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/cargo/office) +/obj/structure/chair/stool/directional/west, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) +"lmz" = ( +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"lmJ" = ( +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"lmZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/navigate_destination/bar, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lnu" = ( /obj/machinery/holopad, /turf/open/floor/iron/dark, @@ -33460,6 +33227,17 @@ /obj/structure/ore_box, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"lnL" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4; + pixel_y = -2 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "lnM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/brigdoor/right/directional/north{ @@ -33513,16 +33291,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) -"loj" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/piratepad/civilian, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/hallway/primary/central/fore) "lom" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33563,6 +33331,15 @@ /obj/machinery/holopad, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"lps" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/computer/atmos_control/nocontrol/master{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "lpC" = ( /turf/open/floor/plating, /area/station/service/chapel/funeral) @@ -33583,22 +33360,6 @@ }, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) -"lpT" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/stack/sheet/iron/fifty{ - pixel_y = -9; - pixel_x = -4 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/cable_coil{ - pixel_x = -1; - pixel_y = -7 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "lpV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/green{ @@ -33654,14 +33415,6 @@ "lql" = ( /turf/open/floor/wood/parquet, /area/station/service/library) -"lqq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/landmark/navigate_destination/chapel, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "lqt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33692,15 +33445,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/aft) -"lrD" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "lrE" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -33713,23 +33457,11 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"lrL" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/multitool{ - pixel_x = 7; - pixel_y = 18 - }, -/obj/item/storage/bag/construction, -/obj/effect/turf_decal/bot, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - North" - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"lrN" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Mix" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, +/turf/open/floor/engine/vacuum, /area/station/engineering/atmos) "lrP" = ( /obj/machinery/computer/security{ @@ -33737,10 +33469,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"lsd" = ( -/obj/machinery/photocopier, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +"lrQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lsh" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 @@ -33750,11 +33483,24 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/service/barber) -"lsK" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, -/turf/open/space/basic, -/area/space/nearstation) +"lst" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"lsF" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) +"lsH" = ( +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "lsO" = ( /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/white/side{ @@ -33802,13 +33548,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"ltz" = ( -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) "ltE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33833,6 +33572,16 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"ltU" = ( +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "luc" = ( /obj/machinery/door/airlock{ id_tag = "ShowerToilet1"; @@ -33840,6 +33589,13 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"lud" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light_switch/directional/south, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "lun" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/command/general, @@ -33877,13 +33633,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/greenroom) -"luC" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "luG" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -33913,24 +33662,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"lvr" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/landmark/navigate_destination/bar, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"lvu" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/cargo/office) "lvv" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -33944,6 +33675,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"lvy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "lvA" = ( /obj/structure/table/wood/fancy/red, /obj/item/clothing/head/costume/witchwig{ @@ -33956,10 +33697,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/greenroom) -"lvG" = ( -/obj/machinery/atmospherics/components/trinary/filter/critical, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/supermatter/room) "lvJ" = ( /obj/structure/flora/bush/flowers_br, /turf/open/floor/grass, @@ -33972,6 +33709,13 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) +"lvN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "lvS" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -34020,15 +33764,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"lwC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/generic_maintenance_landmark, -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lwI" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/computer/security/mining{ @@ -34037,6 +33772,17 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"lwO" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Engine Room" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/turf/open/floor/catwalk_floor, +/area/station/engineering/supermatter/room) "lwW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -34056,6 +33802,10 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/explab) +"lxm" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "lxo" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -34072,17 +33822,10 @@ dir = 1 }, /area/station/commons/fitness/locker_room) -"lxy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/airlock/mining{ - name = "Mining Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) +"lxE" = ( +/obj/effect/spawner/random/structure/closet_empty/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lxI" = ( /obj/effect/turf_decal/siding/wood/end, /obj/effect/spawner/random/engineering/atmospherics_portable, @@ -34092,20 +33835,6 @@ /obj/structure/broken_flooring/pile/directional/east, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"lxO" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/power/emitter{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "lxP" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/girder, @@ -34163,12 +33892,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"lyX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "lyY" = ( /obj/structure/bed, /obj/item/bedsheet/red, @@ -34207,13 +33930,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) -"lzA" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/cargo/storage) "lzB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34244,51 +33960,10 @@ dir = 1 }, /area/station/command/bridge) -"lzU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/spawner/directional/west, -/obj/structure/window/spawner/directional/north, -/turf/open/floor/grass, -/area/station/cargo/storage) -"lzW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen/invisible{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/machinery/newscaster/directional/north, -/obj/item/storage/photo_album/library, -/turf/open/floor/iron/grimy, -/area/station/service/library) -"lAk" = ( -/obj/effect/turf_decal/siding/white{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/structure/railing{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/cargo/office) +"lAM" = ( +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "lAO" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -34345,31 +34020,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/lobby) -"lBn" = ( -/obj/effect/turf_decal/siding/white{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/item/radio, -/obj/structure/railing{ - dir = 5 - }, -/obj/item/stamp{ - pixel_x = -12; - pixel_y = 3 - }, -/obj/item/stamp/denied{ - pixel_x = -12; - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "lBp" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -34390,15 +34040,6 @@ }, /turf/open/floor/iron/small, /area/station/medical/medbay/lobby) -"lBw" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) "lBy" = ( /obj/structure/railing, /obj/structure/lattice, @@ -34431,14 +34072,15 @@ /obj/effect/mapping_helpers/airlock/access/all/security/detective, /turf/open/floor/iron/textured_half, /area/station/security/detectives_office) -"lCg" = ( -/obj/structure/chair{ - dir = 4 +"lCb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Supermatter Chamber" }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lCh" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green, @@ -34491,6 +34133,12 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/coroner, /turf/open/floor/plating, /area/station/medical/morgue) +"lCT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "lDc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34500,8 +34148,17 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, /obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) +"lDo" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/indigo, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "lDp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34545,16 +34202,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"lEm" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/office{ - dir = 1 - }, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "lEs" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/effect/turf_decal/tile/neutral/opposingcorners{ @@ -34563,10 +34210,7 @@ /obj/effect/turf_decal/siding/thinplating_new{ dir = 4 }, -/obj/machinery/computer/order_console/cook{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "lEJ" = ( @@ -34605,26 +34249,16 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/aft) -"lEO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/obj/structure/table/glass, -/obj/item/flashlight/lamp/green{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/taperecorder{ - pixel_x = -15; - pixel_y = 3 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/library) "lER" = ( /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"lFb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lFg" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34646,44 +34280,6 @@ /obj/machinery/exodrone_launcher, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"lFE" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) -"lFG" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/red, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) -"lFH" = ( -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/warning/engine_safety/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) -"lFT" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/storage/belt/utility, -/obj/item/pipe_dispenser, -/obj/item/clothing/head/utility/welding{ - pixel_y = 6 - }, -/obj/item/clothing/head/utility/welding{ - pixel_y = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "lGd" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -34696,10 +34292,6 @@ /obj/machinery/shower/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"lGk" = ( -/obj/machinery/pdapainter/supply, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "lGo" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/north, @@ -34708,13 +34300,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) -"lGq" = ( -/obj/structure/fluff/broken_canister_frame, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "lGr" = ( /obj/effect/turf_decal/siding/brown{ dir = 6 @@ -34729,13 +34314,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/smooth, /area/station/command/gateway) -"lGJ" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/book/manual/wiki/engineering_guide{ - pixel_y = 6 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "lGK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34751,17 +34329,6 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/science/lower) -"lGO" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink/directional/west, -/turf/open/floor/iron, -/area/station/security/prison/garden) -"lGT" = ( -/obj/structure/chair/stool/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/donk, -/area/station/command/heads_quarters/qm) "lHb" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/robotics, @@ -34773,16 +34340,19 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"lHe" = ( -/obj/structure/chair/stool/directional/south, -/turf/open/floor/carpet/donk, -/area/station/command/heads_quarters/qm) -"lHh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/warning/radiation/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +"lHd" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lHk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34855,12 +34425,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"lHZ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/closed/wall, -/area/station/hallway/primary/central/aft) "lIa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34885,13 +34449,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/medbay/lobby) -"lIf" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "lIh" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ @@ -34901,27 +34458,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"lIn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/directional/east, -/obj/effect/landmark/start/quartermaster, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) -"lIq" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/paperplane{ - pixel_x = 7; - pixel_y = 7 - }, -/obj/item/paperplane{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "lIt" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 6 @@ -34929,12 +34465,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) -"lIw" = ( -/obj/structure/chair/stool/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "lIL" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34961,6 +34491,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"lJq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "lJB" = ( /obj/item/radio/intercom/directional/north{ broadcasting = 1; @@ -34972,25 +34506,18 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"lJF" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 4 +"lKf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"lJV" = ( -/obj/structure/bed, -/obj/effect/decal/cleanable/dirt, -/obj/item/bedsheet/qm, -/obj/item/reagent_containers/cup/glass/bottle/tequila{ - pixel_x = -5; - pixel_y = 2 +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/camera/autoname/directional/west, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) +/turf/open/floor/iron, +/area/station/cargo/office) "lKg" = ( /obj/machinery/firealarm/directional/east, /turf/open/floor/wood, @@ -35001,6 +34528,16 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"lKs" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Recreation" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/iron/textured_half, +/area/station/commons/fitness/recreation/entertainment) "lKA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -35026,20 +34563,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"lKH" = ( -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line, -/obj/effect/turf_decal/stripes, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/landmark/start/bitrunner, -/turf/open/floor/iron/dark/smooth_half, -/area/station/cargo/bitrunning/den) "lKV" = ( /turf/open/floor/iron/smooth, /area/station/commons/storage/tools) @@ -35071,13 +34594,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/cargo/drone_bay) -"lLq" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/oil, -/obj/machinery/byteforge, -/obj/effect/turf_decal/box, -/turf/open/floor/iron/dark/smooth_large, -/area/station/cargo/bitrunning/den) "lLr" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -35095,16 +34611,6 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"lLE" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 10 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "lLH" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35121,19 +34627,6 @@ "lLX" = ( /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) -"lMg" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - South 2" - }, -/obj/machinery/portable_atmospherics/pump, -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "lMl" = ( /obj/structure/railing{ dir = 4 @@ -35176,14 +34669,6 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"lMH" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/library) "lNf" = ( /obj/effect/turf_decal/siding/blue, /turf/open/floor/iron/white/small, @@ -35227,20 +34712,6 @@ }, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"lNC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = 17 - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "lNF" = ( /obj/effect/spawner/random/entertainment/lighter, /obj/item/cigarette/rollie/mindbreaker{ @@ -35263,11 +34734,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"lNN" = ( -/obj/structure/table, -/obj/item/toy/foamblade, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) "lNQ" = ( /obj/effect/turf_decal/bot_white/right, /obj/machinery/firealarm/directional/north, @@ -35282,6 +34748,11 @@ /obj/effect/landmark/navigate_destination/court, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"lOg" = ( +/obj/effect/spawner/random/structure/grille, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lOi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35295,15 +34766,6 @@ "lOj" = ( /turf/closed/wall, /area/station/cargo/miningoffice) -"lOk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"lOC" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "lOG" = ( /obj/structure/table, /obj/item/stack/spacecash/c1{ @@ -35344,12 +34806,30 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"lPw" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 5 +"lPv" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/item/folder/red{ + pixel_y = 3 + }, +/obj/item/food/monkeycube/bee{ + name = "monkey cube"; + pixel_y = 17 + }, +/obj/item/food/monkeycube/chicken{ + pixel_y = 15; + pixel_x = 6; + name = "monkey cube"; + desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!" + }, +/obj/item/wirecutters{ + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "lPC" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -35366,12 +34846,6 @@ /obj/machinery/announcement_system, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) -"lPK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lPO" = ( /obj/structure/table, /obj/item/surgery_tray/full{ @@ -35382,21 +34856,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"lPW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Atmos to Loop" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "lQh" = ( /turf/open/floor/iron/small, /area/station/maintenance/port/aft) @@ -35428,6 +34887,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/terracotta/small, /area/station/security/checkpoint/escape) +"lQU" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lQZ" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -35444,12 +34908,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"lRc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/storage) "lRh" = ( /obj/effect/landmark/start/scientist, /obj/machinery/light/small/directional/north, @@ -35475,18 +34933,22 @@ dir = 8 }, /area/station/science/xenobiology) -"lRz" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste to Filter" +"lRy" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"lRK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/effect/turf_decal/tile/brown{ +/obj/effect/turf_decal/siding/wideplating{ dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "lRM" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -35541,12 +35003,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"lSF" = ( -/obj/effect/decal/cleanable/generic, -/obj/machinery/light/cold/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +"lSy" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) "lSI" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35589,14 +35049,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/execution/transfer) -"lTv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "lTy" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -35615,26 +35067,6 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/small, /area/station/maintenance/port/lesser) -"lTC" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 9 - }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Release" - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"lTN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "lTU" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -35657,26 +35089,6 @@ "lUo" = ( /turf/open/floor/iron, /area/station/science/lobby) -"lUu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) -"lUz" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "lUE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35720,14 +35132,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"lVv" = ( -/obj/structure/chair/stool/directional/south, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/wood, -/area/station/engineering/break_room) "lVy" = ( /obj/effect/turf_decal/tile/green/anticorner/contrasted{ dir = 8 @@ -35785,40 +35189,26 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"lWF" = ( -/obj/structure/disposalpipe/segment, +"lWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) -"lWR" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt, -/obj/item/stack/wrapping_paper{ - pixel_x = -3; - pixel_y = 5 - }, -/turf/open/floor/carpet/donk, -/area/station/command/heads_quarters/qm) -"lWU" = ( -/obj/structure/table/wood, +/obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/folder/yellow{ - pixel_x = 3; - pixel_y = 6 +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 }, -/obj/item/dest_tagger{ - pixel_x = -11; - pixel_y = 4 +/obj/item/gps{ + pixel_y = 5; + pixel_x = 13 }, -/turf/open/floor/carpet/donk, -/area/station/command/heads_quarters/qm) +/obj/item/storage/toolbox/emergency/old, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) +"lWV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "lWY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -35831,10 +35221,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/security/checkpoint/supply) -"lXf" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "lXg" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -35849,12 +35235,6 @@ dir = 4 }, /area/station/science/xenobiology) -"lXn" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/closet/secure_closet/quartermaster, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "lXw" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -35883,6 +35263,15 @@ }, /turf/open/floor/wood/tile, /area/station/science/lower) +"lXM" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "lXR" = ( /obj/structure/disposalpipe/junction, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35913,14 +35302,17 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/iron, /area/station/commons/dorms) -"lXY" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"lYe" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/stripes/end, +/obj/structure/disposaloutlet{ dir = 1 }, -/obj/item/banner/cargo, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) +/turf/open/floor/plating, +/area/station/cargo/sorting) "lYf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35945,28 +35337,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"lYt" = ( -/obj/structure/table/wood/fancy/green, -/obj/item/storage/wallet{ - pixel_x = -3; - pixel_y = 10 - }, -/obj/item/cigarette/cigar{ - pixel_x = -1; - pixel_y = -2 - }, -/obj/item/lighter{ - pixel_x = 11; - pixel_y = -7 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) -"lYw" = ( -/obj/structure/hedge, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "lYF" = ( /obj/effect/turf_decal/siding/yellow{ dir = 9 @@ -36027,6 +35397,26 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/service/hydroponics) +"lZr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) +"lZs" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/south, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchenshutters"; + name = "Kitchen Shutters" + }, +/obj/effect/turf_decal/siding/end{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/kitchen) "lZt" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -36087,17 +35477,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"lZP" = ( -/obj/structure/table, -/obj/item/clothing/head/fedora/det_hat/minor{ - pixel_x = 7; - pixel_y = 9 - }, -/obj/item/toy/eightball{ - pixel_x = -4 - }, -/turf/open/floor/iron/dark/small, -/area/station/commons/fitness/locker_room) "lZR" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/duct, @@ -36110,6 +35489,12 @@ }, /turf/open/floor/grass, /area/station/service/chapel) +"mac" = ( +/obj/structure/hedge, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "mae" = ( /obj/structure/cable, /turf/closed/wall, @@ -36126,7 +35511,7 @@ /obj/machinery/computer/communications{ dir = 1 }, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain) "mau" = ( @@ -36145,6 +35530,17 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"maK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/arrows{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "maL" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -36166,6 +35562,17 @@ /obj/structure/fluff/broken_canister_frame, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"mbP" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/requests_console/directional/north{ + name = "Atmospherics Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "mbV" = ( /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/eighties/red, @@ -36212,6 +35619,12 @@ /obj/machinery/holopad, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"mct" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "mcv" = ( /obj/effect/turf_decal/siding/brown, /obj/structure/table/reinforced/plastitaniumglass, @@ -36244,16 +35657,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mcT" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter) "mcV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -36269,6 +35672,10 @@ /obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) +"mdp" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/security/prison/garden) "mdr" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/tram, @@ -36284,14 +35691,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"mdX" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/conveyor_switch{ - id = "mining"; - pixel_x = -10 - }, -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) "meh" = ( /obj/structure/railing{ dir = 4 @@ -36303,6 +35702,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) +"mek" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/holopad, +/mob/living/basic/chick/permanent{ + name = "Morgan" + }, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "meu" = ( /turf/closed/wall, /area/station/command/heads_quarters/captain) @@ -36379,23 +35786,28 @@ /obj/machinery/recharger, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"mfU" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/electrical) "mgt" = ( /obj/machinery/vending/boozeomat, /obj/machinery/firealarm/directional/south, /turf/open/floor/wood/large, /area/station/command/heads_quarters/captain/private) -"mgz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"mgF" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Project Room" }, -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/engineering/atmos) +"mgR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mgW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36432,6 +35844,14 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) +"mib" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "mid" = ( /obj/effect/spawner/random/structure/crate_loot, /turf/open/floor/plating, @@ -36462,16 +35882,6 @@ "miF" = ( /turf/open/floor/stone, /area/station/service/chapel) -"miN" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Gas to Chamber" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "miP" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 10 @@ -36486,14 +35896,12 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"miR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/line, +"mjc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mjf" = ( /obj/structure/table/reinforced/rglass, /obj/machinery/door/window/left/directional/west{ @@ -36507,12 +35915,32 @@ /obj/item/clothing/under/costume/skeleton, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) +"mjh" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "mjr" = ( /obj/machinery/vending/dinnerware, /obj/machinery/requests_console/auto_name/directional/south, /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/kitchen/small, /area/station/service/kitchen) +"mjt" = ( +/obj/machinery/computer/atmos_control/nitrous_tank, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mjF" = ( /obj/structure/table/glass, /obj/item/clothing/suit/costume/cyborg_suit, @@ -36547,13 +35975,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"mjX" = ( -/obj/structure/closet/secure_closet/security/cargo, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "mka" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -36593,28 +36014,11 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/white/textured_large, /area/station/command/heads_quarters/cmo) -"mkF" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "mkN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/fore/greater) -"mkO" = ( -/obj/structure/filingcabinet, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "mkZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood{ @@ -36637,6 +36041,14 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"mln" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/machinery/light/small/directional/west, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = -20 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "mlp" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -36644,13 +36056,6 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"mlr" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/landmark/start/quartermaster, -/turf/open/floor/carpet/donk, -/area/station/command/heads_quarters/qm) "mls" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36748,6 +36153,10 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/department/electrical) +"mmZ" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "mnb" = ( /obj/effect/turf_decal/stripes/white/corner{ dir = 4 @@ -36793,22 +36202,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"mnx" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/machinery/button/ignition/incinerator/atmos{ - pixel_x = 6; - pixel_y = 7 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "mny" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36816,13 +36209,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"mnA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "mnC" = ( /obj/structure/table, /obj/item/phone{ @@ -36853,12 +36239,18 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) -"mnZ" = ( -/obj/machinery/computer/cargo{ - dir = 4 +"mnU" = ( +/obj/structure/hedge, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/plating, -/area/station/cargo/storage) +/obj/machinery/light_switch/directional/east, +/obj/machinery/light/warm/directional/east, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "mog" = ( /obj/machinery/oven/range, /obj/machinery/airalarm/directional/north, @@ -36882,16 +36274,31 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"mom" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Waste Hookup" +"mok" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" }, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) +"moq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "mos" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, @@ -36912,6 +36319,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"moN" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/binary/volume_pump, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "mpk" = ( /obj/machinery/airalarm/directional/south, /turf/open/floor/circuit/green, @@ -36929,14 +36344,26 @@ }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"mpE" = ( -/obj/machinery/light/cold/dim/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 10 +"mpL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/crowbar/large{ + pixel_y = 18 }, -/obj/structure/sign/poster/official/moth_piping/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) +/obj/item/clothing/head/costume/pirate{ + pixel_x = 15; + pixel_y = -3 + }, +/obj/item/clothing/suit/hazardvest{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/wrench{ + pixel_y = 15 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "mpQ" = ( /obj/structure/bed{ dir = 4 @@ -36965,19 +36392,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"mqr" = ( -/obj/structure/bed, -/obj/item/bedsheet/purple, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/grimy, -/area/station/commons) -"mqz" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/machinery/vending/wardrobe/curator_wardrobe, -/turf/open/floor/iron/grimy, -/area/station/service/library) "mqH" = ( /obj/structure/cable, /obj/effect/landmark/generic_maintenance_landmark, @@ -37004,50 +36418,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"mrn" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "mrt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"mrP" = ( -/obj/structure/disposalpipe/segment{ +"mrY" = ( +/obj/effect/turf_decal/siding/wood{ dir = 6 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, -/obj/item/folder/red, -/obj/item/food/monkeycube/bee{ - name = "monkey cube"; - pixel_y = 17 - }, -/obj/item/food/monkeycube/chicken{ - pixel_y = 15; - pixel_x = 6; - name = "monkey cube"; - desc = "A new Nanotrasen classic, the monkey cube. Tastes like everything!" - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) -"mrW" = ( -/obj/machinery/light/cold/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "msg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37067,23 +36451,24 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"msq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central/fore) -"msy" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay" +"mss" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Cooling Loop Bypass" }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "msJ" = ( /turf/open/floor/iron, /area/station/hallway/secondary/dock) +"mta" = ( +/obj/structure/dresser, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "mtc" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, @@ -37183,19 +36568,6 @@ /obj/machinery/holopad, /turf/open/floor/glass/reinforced, /area/station/command/bridge) -"mvj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/engineering/atmos) -"mvn" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/engineering/hallway) "mvo" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/telecomms/bus/preset_three, @@ -37283,14 +36655,6 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/glass/reinforced, /area/station/command/bridge) -"mxc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/engineering/atmos) "mxe" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta, /obj/effect/turf_decal/siding/blue/corner{ @@ -37306,6 +36670,24 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/warden) +"mxh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"mxp" = ( +/obj/structure/table, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos) "mxM" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/noslip, @@ -37327,11 +36709,6 @@ }, /turf/open/floor/iron/white, /area/station/hallway/primary/central/aft) -"mxX" = ( -/obj/structure/transit_tube/curved/flipped, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "mya" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37352,13 +36729,6 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"myi" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 6 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "myl" = ( /obj/machinery/shower/directional/east, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -37366,11 +36736,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) -"mys" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/diagonal, -/turf/open/space/basic, -/area/space/nearstation) "myt" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/item/kirbyplants/random/fullysynthetic, @@ -37454,6 +36819,16 @@ /obj/item/stock_parts/subspace/amplifier, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) +"mzs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"mzx" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage) "mzz" = ( /obj/structure/hedge, /obj/machinery/camera/directional/east, @@ -37488,12 +36863,6 @@ /obj/machinery/light/small/directional/east, /turf/open/misc/sandy_dirt, /area/station/hallway/primary/central/fore) -"mAK" = ( -/obj/structure/table/greyscale, -/obj/item/clothing/gloves/color/yellow, -/obj/item/wrench, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "mAL" = ( /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, @@ -37524,13 +36893,6 @@ /obj/item/instrument/eguitar, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"mBq" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "mBC" = ( /obj/structure/sign/poster/official/soft_cap_pop_art/directional/north, /turf/open/floor/iron/grimy, @@ -37564,13 +36926,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"mDb" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"mCV" = ( +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, -/area/station/maintenance/department/electrical) +/area/station/maintenance/port/greater) +"mCW" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/item/banner/cargo, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "mDf" = ( /obj/structure/chair/wood{ dir = 8 @@ -37586,6 +36956,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"mDk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mDl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37627,6 +37004,12 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/half, /area/station/hallway/primary/central/fore) +"mDS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "mDW" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37637,17 +37020,6 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/white/side, /area/station/science/lower) -"mDZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Robotics Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/lab) "mEq" = ( /obj/structure/closet/crate/wooden{ name = "Alms Box" @@ -37696,6 +37068,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"mFd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination/chapel, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "mFh" = ( /obj/effect/decal/cleanable/glass, /obj/structure/table/reinforced/rglass, @@ -37736,35 +37117,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"mFD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/tank_holder/extinguisher/advanced, -/turf/open/floor/iron, -/area/station/engineering/atmos) "mFG" = ( /obj/machinery/telecomms/processor/preset_four, /obj/effect/decal/cleanable/dirt, /turf/open/floor/circuit, /area/station/tcommsat/server) -"mFH" = ( -/obj/structure/table/greyscale, -/obj/item/screwdriver, -/obj/item/stack/cable_coil/cut{ - pixel_x = 11; - pixel_y = 7 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Office" - }, -/obj/item/stock_parts/power_store/cell/emproof{ - pixel_x = -6; - pixel_y = 9 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "mFL" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating_new/terracotta{ @@ -37777,12 +37134,13 @@ /obj/structure/cable, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"mFZ" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - Turbine Entrance" +"mFQ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/turf/open/floor/iron, +/area/station/cargo/office) "mGg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -37841,6 +37199,21 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"mGs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) +"mGI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/station/cargo/lobby) "mGM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/south, @@ -37872,10 +37245,29 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white/small, /area/station/medical/virology) +"mHf" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "mHh" = ( /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/maintenance/central/lesser) +"mHy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"mHG" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "mHZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37913,6 +37305,20 @@ dir = 1 }, /area/station/science/lower) +"mIp" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mIA" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -37943,13 +37349,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"mIE" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Public Shrine" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/stone, -/area/station/hallway/primary/port) "mIP" = ( /obj/structure/chair{ dir = 8 @@ -38072,6 +37471,10 @@ dir = 1 }, /area/station/hallway/primary/aft) +"mKh" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/engineering/atmos) "mKm" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line, @@ -38084,15 +37487,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) -"mKB" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "QM #1" - }, -/obj/effect/turf_decal/delivery, -/mob/living/simple_animal/bot/mulebot, -/turf/open/floor/iron, -/area/station/cargo/storage) "mKD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/red{ @@ -38100,21 +37494,14 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"mKK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"mKV" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ - dir = 1 - }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) +"mKR" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "mKY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -38143,6 +37530,11 @@ }, /turf/open/floor/iron, /area/station/security/processing) +"mLz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "mLA" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -38153,10 +37545,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) -"mLD" = ( -/obj/structure/cable, -/turf/closed/wall/r_wall, -/area/station/engineering/engine_smes) "mLH" = ( /obj/machinery/light/cold/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -38182,6 +37570,15 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"mLZ" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/main) "mMp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38213,13 +37610,6 @@ /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mMF" = ( -/obj/structure/sign/warning/pods/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) -"mMH" = ( -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "mMN" = ( /obj/structure/chair/office{ dir = 8 @@ -38274,6 +37664,14 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"mOc" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "mOk" = ( /obj/structure/table/glass, /obj/item/folder/blue{ @@ -38343,12 +37741,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mPe" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "mPq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38380,21 +37772,15 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"mPB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mPJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/smooth, /area/station/command/bridge) -"mQh" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/conveyor_switch/oneway{ - id = "QMLoad2"; - name = "Unloading Conveyor"; - pixel_x = -13; - pixel_y = 3 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "mQz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/office{ @@ -38423,9 +37809,8 @@ dir = 8 }, /area/station/command/heads_quarters/hos) -"mRA" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/stairs/left, +"mRl" = ( +/turf/open/floor/engine/co2, /area/station/engineering/atmos) "mRB" = ( /obj/structure/disposalpipe/segment, @@ -38447,32 +37832,22 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"mRY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 6 - }, +"mRQ" = ( /obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "mSa" = ( /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"mSc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 10 +"mSl" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "mSA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -38495,23 +37870,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/grass, /area/station/service/chapel) -"mSS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "mTc" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -38534,30 +37892,12 @@ /obj/item/clothing/head/costume/foilhat, /turf/open/floor/plating, /area/station/cargo/boutique) -"mTe" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool/directional/north, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"mTi" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas Port"; - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "mTl" = ( /turf/closed/wall, /area/station/cargo/sorting) "mTs" = ( /turf/closed/wall/r_wall, /area/station/security/prison/work) -"mTt" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/turf/open/floor/engine, -/area/station/engineering/atmos) "mTy" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/full, @@ -38579,17 +37919,6 @@ "mTB" = ( /turf/closed/wall, /area/station/command/gateway) -"mTC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "mTM" = ( /obj/structure/cable, /turf/open/floor/circuit, @@ -38632,6 +37961,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"mUe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mUg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38651,16 +37985,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"mUm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/west, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "mUn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -38671,24 +37995,6 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"mUt" = ( -/obj/structure/chair/stool/directional/south, -/obj/structure/mirror/directional/north, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/iron/grimy, -/area/station/cargo/boutique) -"mUI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - North Corridor" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "mUO" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -38699,6 +38005,13 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mUY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/engineering/atmos) "mVc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38766,12 +38079,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/lower) -"mWs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/small, -/area/station/maintenance/department/engine) +"mWB" = ( +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "mWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/heat_exchanging/simple, @@ -38796,6 +38106,17 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"mWU" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/chair{ + dir = 4; + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "mWY" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench/left{ @@ -38804,6 +38125,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/security/processing) +"mXb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/tree/jungle/style_2, +/turf/open/floor/grass, +/area/station/service/chapel) "mXk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/singular/directional/east, @@ -38813,26 +38141,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mXm" = ( -/obj/machinery/atmospherics/components/binary/pump/off/general/visible{ - dir = 4; - name = "CO2 to Pure" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "mXt" = ( /obj/machinery/rnd/production/techfab/department/medical, /obj/effect/turf_decal/stripes/box, /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/storage) -"mXx" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "N2O to Pure" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "mXD" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -38900,6 +38214,15 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"mYE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/south, +/obj/item/storage/belt/utility, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/tools) "mYP" = ( /obj/structure/table, /obj/item/storage/bag/tray/cafeteria{ @@ -38960,21 +38283,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"mZg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) -"mZj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "mZA" = ( /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/door/airlock/public/glass{ @@ -39010,6 +38318,9 @@ /obj/machinery/igniter/incinerator_ordmix, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) +"naB" = ( +/turf/closed/wall/rust, +/area/station/cargo/lobby) "naC" = ( /obj/structure/cable, /obj/structure/broken_flooring/singular/directional/south, @@ -39029,6 +38340,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"naK" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engineering Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/station/maintenance/department/engine/atmos) "naN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock{ @@ -39037,21 +38357,14 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"nbj" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Cooling Loop Bypass"; - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "nbF" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/science/robotics/augments) +"nbH" = ( +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "nbL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39138,6 +38451,11 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) +"ndm" = ( +/obj/structure/marker_beacon/fuchsia, +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "ndp" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -39189,27 +38507,6 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"neL" = ( -/obj/structure/closet/crate{ - name = "Materials Crate" - }, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/plasteel/fifty, -/obj/item/stack/sheet/plastic/five, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/sheet/titaniumglass/fifty, -/obj/item/stack/sheet/mineral/titanium/fifty, -/obj/item/stack/rods/fifty, -/obj/machinery/light/cold/dim/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/engineering/storage_shared) -"neM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "nfg" = ( /obj/machinery/holopad, /obj/effect/turf_decal/siding/thinplating{ @@ -39223,6 +38520,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) +"nfn" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "nfG" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -39232,10 +38541,6 @@ }, /turf/open/floor/iron, /area/station/security) -"ngd" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/turf/open/floor/iron, -/area/station/holodeck/rec_center) "ngq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39248,24 +38553,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) -"nhe" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 +"nhk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/obj/effect/landmark/navigate_destination, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "nhl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39309,12 +38602,6 @@ }, /turf/open/floor/catwalk_floor/iron, /area/station/science/xenobiology) -"nhE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "nhU" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39361,10 +38648,6 @@ /obj/machinery/vending/wardrobe/chem_wardrobe, /turf/open/floor/iron, /area/station/medical/chemistry) -"niv" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "niw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -39454,6 +38737,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"njv" = ( +/obj/structure/reagent_dispensers/wall/peppertank/directional/west, +/obj/machinery/computer/records/security{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "njA" = ( /obj/machinery/photocopier, /obj/structure/sign/poster/official/random/directional/north, @@ -39461,21 +38754,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/hop) -"njH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "njL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -39524,17 +38802,14 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"nkp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 +"nku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 }, -/obj/machinery/light/broken/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"nks" = ( -/turf/closed/wall/r_wall, -/area/station/engineering/atmos/space_catwalk) +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "nkw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -39573,6 +38848,11 @@ /obj/machinery/vending/wardrobe/sec_wardrobe, /turf/open/floor/iron/dark, /area/station/security/lockers) +"nlj" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nlk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -39592,18 +38872,18 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"nlt" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nlC" = ( /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/iron/white/corner{ dir = 4 }, /area/station/science/xenobiology) -"nlI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "nlQ" = ( /obj/machinery/holopad, /obj/effect/turf_decal/siding/thinplating{ @@ -39611,6 +38891,9 @@ }, /turf/open/floor/eighties, /area/station/hallway/primary/central/fore) +"nlR" = ( +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "nlS" = ( /turf/open/floor/iron/white/small, /area/station/medical/virology) @@ -39650,26 +38933,29 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) +"nmE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "nmH" = ( /obj/structure/railing, /obj/effect/turf_decal/siding/wideplating, /turf/open/floor/wood, /area/station/engineering/main) -"nmX" = ( -/obj/machinery/power/apc/auto_name/directional/north, +"nmV" = ( /obj/structure/cable, -/turf/open/floor/mineral/titanium, -/area/station/command/heads_quarters/ce) -"nnc" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"nmX" = ( +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) +/turf/open/floor/mineral/titanium, +/area/station/command/heads_quarters/ce) "nnd" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -39684,6 +38970,22 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) +"nnp" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "N2 to Airmix" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"nnz" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "noe" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -39757,15 +39059,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"noU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "Secure Storage" - }, -/turf/open/floor/plating/rust, -/area/station/engineering/main) "noV" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/shutters{ @@ -39798,13 +39091,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) -"npL" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Engine Coolant Bypass"; - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "npV" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39831,20 +39117,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"nqi" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/corner{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "nqx" = ( /obj/machinery/power/turbine/turbine_outlet{ dir = 8 @@ -39857,6 +39129,18 @@ /obj/structure/mirror/directional/north, /turf/open/floor/iron/freezer, /area/station/command/corporate_suite) +"nqN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "nqV" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -39891,6 +39175,10 @@ /obj/effect/landmark/start/botanist, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"nrn" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "nrp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/flashlight/lantern/on, @@ -39902,23 +39190,6 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"nry" = ( -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/reagent_dispensers/wall/peppertank/directional/west, -/obj/machinery/computer/records/security{ - dir = 4 - }, -/obj/machinery/requests_console/directional/south{ - department = "Security"; - name = "Security Requests Console" - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) -"nsa" = ( -/turf/closed/wall, -/area/station/engineering/atmospherics_engine) "nsc" = ( /obj/structure/cable, /obj/item/kirbyplants/organic/applebush, @@ -39948,9 +39219,6 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"nsy" = ( -/turf/closed/wall/r_wall/rust, -/area/station/engineering/hallway) "nsz" = ( /obj/effect/spawner/random/vending/snackvend, /obj/structure/cable, @@ -39973,17 +39241,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) -"nsL" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "nsO" = ( /obj/item/kirbyplants/random, /obj/machinery/firealarm/directional/south, @@ -39999,11 +39256,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"nsX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) "nte" = ( /obj/structure/table/glass, /obj/machinery/recharger, @@ -40049,10 +39301,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ntJ" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "ntK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40085,15 +39333,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/recreation/entertainment) -"nua" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "num" = ( /obj/effect/turf_decal/sand/plating, /turf/closed/wall, @@ -40127,19 +39366,21 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"nuu" = ( -/obj/machinery/incident_display/delam/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "nuC" = ( /obj/effect/turf_decal/siding, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/white/small, /area/station/science/lab) +"nuL" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "nuO" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40175,7 +39416,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "nuY" = ( /obj/structure/broken_flooring/pile/directional/east, /obj/structure/alien/weeds/node, @@ -40209,6 +39450,23 @@ }, /turf/open/floor/iron/recharge_floor, /area/station/maintenance/port/aft) +"nwb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"nwf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "nwj" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -40224,20 +39482,25 @@ /obj/effect/spawner/random/trash/bin, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"nwK" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "HFR Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "nwN" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"nxo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "nxD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40264,23 +39527,9 @@ /obj/machinery/modular_computer/preset/id{ dir = 1 }, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"nxO" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos) -"nxX" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "nyd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -40340,14 +39589,6 @@ dir = 4 }, /area/station/science/lower) -"nyE" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "nyH" = ( /turf/closed/wall, /area/station/hallway/primary/aft) @@ -40356,22 +39597,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"nyS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/command/glass{ - name = "Quartermaster's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/qm, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/command/heads_quarters/qm) "nyT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40392,6 +39617,18 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"nzd" = ( +/obj/structure/filingcabinet, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) +"nzy" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron, +/area/station/cargo/sorting) "nzA" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40408,6 +39645,44 @@ "nzL" = ( /turf/closed/wall, /area/station/science/ordnance/testlab) +"nzO" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/stamp/denied{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/stamp{ + pixel_x = -7; + pixel_y = 0 + }, +/obj/item/radio{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) +"nzS" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/layer2{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = 8; + pixel_y = 24 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = 8; + pixel_y = 36 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "nzU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40444,11 +39719,25 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) -"nBd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"nAJ" = ( +/obj/machinery/power/energy_accumulator/tesla_coil/anchored, +/obj/structure/window/reinforced/plasma/spawner/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"nAW" = ( +/obj/machinery/atmospherics/components/binary/crystallizer{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/engineering/atmos/project) "nBq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40486,13 +39775,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"nBM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 +"nBP" = ( +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" }, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) +/area/station/engineering/supermatter) "nCe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40578,17 +39868,16 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/service/chapel) +"nDJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "nDQ" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"nEa" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "nEh" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -40636,26 +39925,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/cytology) -"nEL" = ( -/obj/structure/transit_tube/station/dispenser/reverse/flipped{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) -"nEN" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ +"nEG" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ dir = 8 }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ +/obj/effect/turf_decal/siding/wideplating/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "nEY" = ( /obj/structure/closet/firecloset, /obj/effect/decal/cleanable/dirt, @@ -40690,6 +39972,10 @@ /obj/machinery/telecomms/server/presets/command, /turf/open/floor/circuit, /area/station/tcommsat/server) +"nFv" = ( +/obj/machinery/light/no_nightlight/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nFD" = ( /obj/structure/cable, /obj/effect/spawner/structure/window, @@ -40745,6 +40031,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"nGf" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nGi" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 4 @@ -40760,28 +40053,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/grass, /area/station/medical/virology) -"nGm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"nGt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/window/reinforced/plasma/spawner/directional/west, -/obj/structure/cable, -/obj/machinery/power/energy_accumulator/grounding_rod/anchored, -/turf/open/floor/engine, -/area/station/engineering/supermatter) -"nGu" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "nGA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -40805,6 +40076,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"nHb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/machinery/vending/wardrobe/curator_wardrobe, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "nHd" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -40813,40 +40093,22 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"nHp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; - pixel_x = -6; - pixel_y = 10 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/office) -"nHq" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow{ - pixel_x = 13; - pixel_y = 1 - }, -/obj/item/flashlight/lamp{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 15; - pixel_y = 7 - }, -/turf/open/floor/wood, -/area/station/engineering/break_room) "nHu" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"nHH" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nHI" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -40878,25 +40140,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/commons/storage/art) -"nHP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 6 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"nHR" = ( -/obj/machinery/atmospherics/components/tank/plasma, -/obj/machinery/camera/directional/north{ - c_tag = "Engineering Turbine" - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "nHU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -40933,13 +40176,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"nID" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "nIJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -40951,27 +40187,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/medical/virology) -"nIK" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) -"nIL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/item/clothing/head/cone{ - pixel_x = 24; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "nIT" = ( /obj/structure/railing{ dir = 6 @@ -41020,6 +40235,17 @@ }, /turf/open/floor/plating, /area/station/command/meeting_room) +"nJK" = ( +/obj/structure/reagent_dispensers/watertank/high, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 9 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/delivery/white{ + color = "#52B4E9" + }, +/turf/open/floor/iron/white/small, +/area/station/service/hydroponics) "nJU" = ( /obj/machinery/conveyor{ dir = 4; @@ -41053,19 +40279,38 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"nKO" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"nLH" = ( +"nLi" = ( /obj/structure/cable, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"nLk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Research Director's Office" + }, +/obj/machinery/door/poddoor/preopen{ + id = "rdoffice"; + name = "Research Director's Shutters" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/command/heads_quarters/rd) +"nLJ" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "nLM" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -41079,6 +40324,30 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"nLQ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/cell_charger{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/assembly/timer{ + pixel_x = 14; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) +"nMk" = ( +/obj/machinery/power/emitter/welded{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "nMn" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -41100,21 +40369,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"nMQ" = ( -/obj/machinery/computer/atmos_control/oxygen_tank{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) -"nMV" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "nMW" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -41178,6 +40432,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"nOD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/obj/machinery/power/apc/auto_name/directional/west{ + areastring = "/area/station/science/ordnance/freezerchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nOH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41203,15 +40465,17 @@ /obj/effect/turf_decal/tile/dark_red/fourcorners, /turf/open/floor/iron, /area/station/security/brig/entrance) -"nPt" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 +"nPg" = ( +/obj/effect/spawner/random/trash, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/storage) +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"nPl" = ( +/obj/machinery/power/supermatter_crystal/engine, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "nPu" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -41261,15 +40525,33 @@ }, /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchenshutters"; - name = "Kitchen Shutters" + name = "Kitchen Shutters"; + dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding{ + dir = 4 + }, +/obj/effect/turf_decal/siding{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "nQa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/lockers) +"nQc" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nQj" = ( /obj/structure/toilet/greyscale{ dir = 8 @@ -41278,13 +40560,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"nQk" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/door/airlock/maintenance{ - name = "Transit Tube Station" - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "nQo" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/purple/opposingcorners, @@ -41330,29 +40605,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"nQC" = ( -/obj/item/toy/plush/shark{ - name = "Sir Vesk"; - desc = "This radical looking plushie has some radical air-sufing fins. He loves to turn vents on and ride the pressure-wave. Duuuuuuuude. Way cool.." - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos/office) -"nQE" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/holopad, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/break_room) "nQH" = ( /obj/structure/closet{ name = "Paramedic Supplies" @@ -41422,10 +40674,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"nSo" = ( -/obj/machinery/igniter/incinerator_atmos, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "nSA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -41444,12 +40692,9 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"nSY" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/office) +"nST" = ( +/turf/open/floor/iron/small, +/area/station/maintenance/department/engine) "nTa" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41459,22 +40704,6 @@ }, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/central/fore) -"nTi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = 24; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "nTt" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/computer/shuttle/mining/common{ @@ -41507,16 +40736,26 @@ }, /turf/open/floor/iron/small, /area/station/medical/morgue) -"nTK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +"nTP" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "nUd" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"nUh" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "nUo" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -41531,34 +40770,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"nUx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) -"nUB" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "nUK" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/barricade/wooden/crude, @@ -41592,12 +40803,6 @@ }, /turf/open/floor/iron/white/small, /area/station/service/janitor) -"nVe" = ( -/obj/machinery/door/window/right/directional/north, -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "nVg" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -41625,6 +40830,9 @@ /obj/effect/turf_decal/siding/thinplating_new{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "nVx" = ( @@ -41651,6 +40859,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/tcommsat/server) +"nVU" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) +"nWa" = ( +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "nWh" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, @@ -41667,25 +40888,6 @@ /obj/structure/hedge, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"nWE" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 9 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "nWV" = ( /obj/effect/spawner/random/entertainment/arcade{ dir = 1 @@ -41707,6 +40909,15 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/pharmacy) +"nXv" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -1; + pixel_y = -3 + }, +/obj/item/stack/cable_coil, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "nXx" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -41744,17 +40955,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/cytology) -"nYg" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cubicle) "nYk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -41783,39 +40983,10 @@ }, /turf/open/misc/sandy_dirt, /area/station/commons/fitness/locker_room) -"nYD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "nYH" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/port/aft) -"nYP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"nYQ" = ( -/obj/machinery/vending/wardrobe/cargo_wardrobe, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "nZh" = ( /obj/structure/table, /obj/item/stock_parts/scanning_module{ @@ -41853,6 +41024,14 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) +"nZF" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nZG" = ( /obj/machinery/vending/wardrobe/chef_wardrobe, /turf/open/floor/iron/kitchen/small, @@ -41897,21 +41076,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"oaB" = ( -/obj/machinery/holopad, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) -"oaJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "oaK" = ( /obj/structure/window/spawner/directional/south, /obj/effect/decal/cleanable/dirt, @@ -41931,15 +41095,36 @@ /obj/item/stock_parts/power_store/cell/high, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"obd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +"oba" = ( +/obj/structure/table/reinforced, +/obj/item/folder/yellow{ + pixel_x = 13; + pixel_y = 1 + }, +/obj/item/flashlight/lamp{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 15; + pixel_y = 7 }, /obj/structure/cable, -/obj/machinery/firealarm/directional/north, -/obj/machinery/space_heater, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/turf/open/floor/wood, +/area/station/engineering/break_room) +"obb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "obe" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/disposalpipe/segment{ @@ -41947,6 +41132,10 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) +"obk" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "obq" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -41960,13 +41149,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"obH" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) "obN" = ( /obj/structure/cable, /obj/effect/spawner/random/maintenance, @@ -42024,16 +41206,6 @@ }, /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) -"odE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/power/emitter{ - dir = 1 - }, -/obj/effect/decal/cleanable/leaper_sludge, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter/room) "odH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment{ @@ -42051,17 +41223,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) -"oem" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +"oer" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "External Gas to Loop" }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) -"oet" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oev" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42119,6 +41288,10 @@ }, /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/medical/central) +"ofx" = ( +/obj/effect/turf_decal/sand/plating, +/turf/closed/wall/r_wall, +/area/space/nearstation) "ofU" = ( /obj/machinery/holopad, /obj/effect/landmark/start/hangover, @@ -42132,6 +41305,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/command/heads_quarters/captain/private) +"ogq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ogr" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -42200,22 +41382,13 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"ohb" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/reagent_containers/pill, -/obj/item/reagent_containers/pill/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"ohj" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 +"ohf" = ( +/obj/structure/reagent_dispensers/fueltank/large, +/obj/effect/turf_decal/bot{ + dir = 1 }, /turf/open/floor/iron/dark, -/area/station/cargo/storage) +/area/station/engineering/atmos/storage) "ohk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42285,12 +41458,6 @@ /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs) -"ohN" = ( -/obj/item/kirbyplants/random, -/obj/item/radio/intercom/directional/north, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/white, -/area/station/science/cytology) "oig" = ( /obj/effect/spawner/structure/window/reinforced, /obj/effect/turf_decal/stripes/corner{ @@ -42306,6 +41473,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"oim" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/sign/warning/no_smoking/directional/east, +/turf/open/floor/iron, +/area/station/cargo/lobby) "ois" = ( /obj/effect/turf_decal/siding/white{ dir = 6 @@ -42315,16 +41489,6 @@ /obj/item/storage/bag/xeno, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"oiw" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/sign/poster/official/random/directional/south, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "oix" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -42339,13 +41503,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"oiL" = ( -/obj/machinery/computer/cargo{ - dir = 1 - }, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/plating, -/area/station/cargo/office) "oiP" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -42404,48 +41561,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/security/lockers) -"ojK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) -"ojW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/frame/machine, -/obj/item/circuitboard/machine/mass_driver, -/obj/item/stock_parts/matter_bin{ - pixel_x = 9; - pixel_y = 8 - }, -/obj/item/stock_parts/micro_laser/high{ - pixel_x = -6; - pixel_y = -5 - }, -/obj/item/stock_parts/servo/femto{ - pixel_y = 8; - pixel_x = -11 - }, -/obj/effect/decal/cleanable/glass, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) -"okg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "okk" = ( /obj/structure/table, /obj/item/screwdriver, @@ -42455,23 +41570,22 @@ /obj/machinery/status_display/ai, /turf/closed/wall, /area/station/hallway/secondary/entry) -"okt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Control" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos) +"oks" = ( +/obj/structure/reflector/single/anchored, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "okB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/xenobiology) +"okD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage/gas) "okW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42534,6 +41648,20 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"oma" = ( +/obj/machinery/atmospherics/components/unary/passive_vent, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"omj" = ( +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/machinery/incident_display/bridge/directional/north, +/turf/open/floor/iron/smooth, +/area/station/command/bridge) "omq" = ( /obj/structure/cable, /turf/open/floor/wood/parquet, @@ -42545,30 +41673,11 @@ "ona" = ( /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"onb" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - name = "Engine Exhaust" - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "ong" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"onv" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "onw" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -42626,15 +41735,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"ooe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos) "oom" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -42646,6 +41746,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"ooo" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ooK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -42659,24 +41766,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"opc" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/light/floor, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "opn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/small, /area/station/command/teleporter) -"opo" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "opv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42747,6 +41841,16 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"oqq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/no_nightlight/directional/north, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "oqK" = ( /obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/random, @@ -42811,16 +41915,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"orY" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "osa" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -42846,6 +41940,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"osp" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "oss" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -42855,20 +41956,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"osu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing/corner{ +"osw" = ( +/obj/effect/turf_decal/arrows{ dir = 4 }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "osy" = ( /obj/effect/turf_decal/siding/white{ dir = 8 @@ -42903,13 +42000,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) -"otG" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "otJ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ @@ -42941,16 +42031,6 @@ dir = 1 }, /area/station/command/corporate_suite) -"oua" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/horizontal{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"ouj" = ( -/turf/closed/wall, -/area/station/engineering/engine_smes) "oul" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/flowers_yw/style_2, @@ -42984,6 +42064,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ouJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ouL" = ( /obj/item/clothing/head/cone{ pixel_x = 7 @@ -43011,6 +42098,10 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"ouS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "ouT" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -43021,27 +42112,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/port) -"ovj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cytology) -"ovt" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "ovB" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/alien/weeds, @@ -43063,18 +42133,6 @@ dir = 1 }, /area/station/command/gateway) -"owd" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/hallway) -"owl" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "owm" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43112,13 +42170,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"owM" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 5 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) "owP" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/delivery/white, @@ -43178,13 +42229,20 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"oxw" = ( +"oxt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/cargo/storage) +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "oyn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/public/glass{ @@ -43192,18 +42250,15 @@ }, /turf/open/floor/iron/textured_half, /area/station/maintenance/hallway/abandoned_command) -"oyp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "oyq" = ( /obj/machinery/light/warm/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"oyv" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "oyz" = ( /obj/structure/flora/grass/jungle/b/style_3, /obj/effect/turf_decal/weather/dirt{ @@ -43212,6 +42267,13 @@ /obj/structure/cable, /turf/open/floor/grass, /area/station/service/chapel) +"oyH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/storage) "oyQ" = ( /turf/closed/wall, /area/station/science/auxlab/firing_range) @@ -43231,10 +42293,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/circuit, /area/station/tcommsat/server) -"oyZ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "ozn" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -43253,22 +42311,6 @@ /obj/structure/reagent_dispensers/plumbed, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"ozz" = ( -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/air, -/area/station/engineering/atmos/space_catwalk) -"ozM" = ( -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/floor, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "ozO" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -43276,6 +42318,10 @@ /obj/structure/mannequin/plastic, /turf/open/floor/carpet/blue, /area/station/cargo/boutique) +"ozQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "ozV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -43316,12 +42362,6 @@ /obj/structure/alien/weeds/node, /turf/open/misc/asteroid, /area/station/maintenance/starboard/greater) -"oBk" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4, -/turf/open/space/basic, -/area/space/nearstation) "oBv" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -43346,6 +42386,33 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"oBF" = ( +/obj/effect/turf_decal/arrows/white{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"oBO" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/airlock_controller/incinerator_atmos{ + pixel_x = -40; + pixel_y = -8 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"oBP" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/engineering/atmos/project) "oBT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43376,6 +42443,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) +"oCb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oCg" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/medical_all, @@ -43412,9 +42484,6 @@ /obj/machinery/air_sensor/helium_tank, /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) -"oCG" = ( -/turf/closed/wall/rust, -/area/station/cargo/bitrunning/den) "oCM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, @@ -43434,25 +42503,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"oDa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "oDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"oDE" = ( -/obj/structure/lattice, -/obj/machinery/camera/directional/south{ - c_tag = "Atmospherics - North Exterior" - }, -/turf/open/space/basic, -/area/space/nearstation) +"oDS" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/turf/closed/wall/r_wall, +/area/station/engineering/atmos) "oDX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/wood{ @@ -43474,13 +42534,6 @@ /obj/structure/holosign/barrier/atmos/tram, /turf/open/floor/tram, /area/station/security/tram) -"oEb" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/reagent_containers/cup/beaker/oldstation{ - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "oEk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43526,6 +42579,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"oEL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "oFc" = ( /obj/effect/spawner/random/trash, /obj/machinery/light/small/directional/west, @@ -43541,23 +42603,6 @@ dir = 4 }, /area/station/maintenance/starboard/greater) -"oFi" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 1; - id = "packageSort2" - }, -/obj/structure/window/spawner/directional/west, -/turf/open/floor/plating, -/area/station/cargo/sorting) "oFu" = ( /turf/closed/wall, /area/station/security/office) @@ -43594,11 +42639,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/smooth_half, /area/station/cargo/storage) -"oGn" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/layer_manifold/visible, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "oGo" = ( /obj/structure/table/glass, /obj/item/stock_parts/power_store/cell/high{ @@ -43678,31 +42718,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"oHJ" = ( -/obj/structure/table/greyscale, -/obj/item/pen{ - pixel_x = 13; - pixel_y = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker; - pixel_x = -6; - pixel_y = 5 - }, -/obj/item/multitool{ - pixel_x = 7; - pixel_y = -2 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"oHO" = ( -/obj/structure/chair/plastic{ - dir = 1 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "oIf" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/modular_computer/preset/engineering{ @@ -43778,6 +42793,10 @@ /obj/machinery/smartfridge, /turf/open/floor/plating, /area/station/service/hydroponics) +"oJm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "oJn" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ @@ -43874,10 +42893,6 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"oJR" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "oKb" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -43912,6 +42927,12 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"oLc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "oLg" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -43940,23 +42961,21 @@ }, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"oLN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/tank_dispenser, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) +"oLE" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) +"oLV" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "oMy" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/station/solars/starboard/aft) -"oMF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/structure/sign/departments/holy/directional/south, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "oMI" = ( /obj/effect/decal/cleanable/dirt, /mob/living/basic/slime, @@ -44007,13 +43026,11 @@ dir = 8 }, /area/station/science/research) -"oNW" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) +"oNQ" = ( +/obj/item/kirbyplants/random, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/station/service/chapel/office) "oNX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44029,6 +43046,13 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"oOf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "oOg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/north, @@ -44051,6 +43075,14 @@ }, /turf/open/floor/plating, /area/station/construction/mining/aux_base) +"oOm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/chair/stool/directional/east, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "oOp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/east, @@ -44059,6 +43091,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"oOs" = ( +/obj/structure/closet/crate/solarpanel_small, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "oOv" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -44122,14 +43158,9 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"oPg" = ( -/obj/machinery/air_sensor/mix_tank, -/turf/open/floor/engine/airless, -/area/station/engineering/atmos) "oPh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, /obj/structure/window/reinforced/spawner/directional/north, /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -44138,33 +43169,14 @@ dir = 4 }, /obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/hallway/secondary/service) -"oPi" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse_aft"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = -23; - req_access = list("cargo") - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"oPo" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 9 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/turf/open/floor/iron/small, +/area/station/hallway/secondary/service) +"oPj" = ( +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "oPy" = ( /obj/structure/bookcase/random, /obj/structure/sign/painting/library{ @@ -44228,19 +43240,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/cargo/storage) -"oQs" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "oQF" = ( /turf/closed/wall/r_wall, /area/station/security/execution/transfer) @@ -44251,6 +43250,23 @@ }, /turf/open/floor/iron, /area/station/science/cytology) +"oQK" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + initialize_directions = 8 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) +"oQP" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "oRj" = ( /obj/effect/turf_decal/siding/yellow{ dir = 8 @@ -44340,6 +43356,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/greater) +"oRW" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/main) "oRZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -44356,16 +43379,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"oSg" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red/corner, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "oSv" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/rdconsole{ @@ -44373,24 +43386,18 @@ }, /turf/open/floor/iron/smooth, /area/station/command/bridge) -"oSw" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"oSx" = ( -/obj/effect/turf_decal/siding/red, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) -"oSF" = ( +"oSB" = ( +/obj/machinery/vending/wardrobe/chap_wardrobe, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) +"oTf" = ( /obj/effect/turf_decal/stripes/line{ - dir = 6 + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/structure/reagent_dispensers/watertank/high, -/turf/open/floor/plating, +/obj/structure/cable, +/turf/open/floor/engine, /area/station/engineering/supermatter/room) "oTg" = ( /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -44455,16 +43462,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"oTY" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ +"oTZ" = ( +/obj/structure/cable, +/obj/structure/reflector/single/anchored{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "oUb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44486,23 +43490,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"oUq" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"oUz" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/obj/structure/sign/warning/electric_shock/directional/west, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "oUB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44552,6 +43539,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/stone, /area/station/service/bar/backroom) +"oVm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "oVt" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/effect/turf_decal/tile/yellow, @@ -44640,12 +43633,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/small, /area/station/tcommsat/server) -"oWE" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/sign/warning/engine_safety/directional/east, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "oXa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -44699,6 +43686,12 @@ dir = 8 }, /area/station/engineering/main) +"oYF" = ( +/obj/structure/reflector/box/anchored{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "oYL" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -44707,14 +43700,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"oYN" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Mix to Filter" - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "oYS" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/computer/station_alert{ @@ -44772,14 +43757,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/dorms) -"oZQ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "oZY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44787,6 +43764,18 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"oZZ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "pan" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -44807,12 +43796,17 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"paW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 8 +"paT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/cubicle) "paX" = ( /obj/structure/chair/bronze{ dir = 8 @@ -44833,23 +43827,6 @@ }, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"pbj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/light/cold/directional/north, -/obj/effect/turf_decal/stripes/end{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/smooth_edge{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "pbk" = ( /obj/effect/turf_decal/siding/thinplating/terracotta, /turf/open/floor/iron, @@ -44917,14 +43894,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pbT" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +"pbV" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/cargo/lobby) "pca" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/red/line{ @@ -44942,12 +43917,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security/execution/transfer) -"pcm" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/vending/wardrobe/jani_wardrobe, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/small, -/area/station/commons) "pcv" = ( /obj/machinery/door/airlock/command{ name = "Head of Security's Bedroom" @@ -44957,6 +43926,16 @@ dir = 8 }, /area/station/command/heads_quarters/hos) +"pcE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Break Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "pcK" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/blue{ @@ -44986,14 +43965,6 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"pdh" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter) "pdl" = ( /obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment{ @@ -45026,6 +43997,10 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/science/cytology) +"pdA" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pdR" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -45064,17 +44039,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"pep" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-entrance" - }, -/obj/machinery/door/airlock/maintenance{ - name = "Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +"peE" = ( +/obj/structure/closet, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "peN" = ( /obj/structure/lattice, /obj/machinery/camera/motion/directional/north{ @@ -45091,17 +44059,6 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"peW" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 5 - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics Nitrous Chamber"; - dir = 9; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "pfd" = ( /obj/effect/turf_decal/stripes/white/corner{ dir = 1 @@ -45123,15 +44080,6 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"pft" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/engineering/hallway) "pfu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -45164,13 +44112,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pfx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "pfC" = ( /obj/effect/turf_decal/siding/thinplating_new/terracotta{ dir = 5 @@ -45182,24 +44123,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) -"pfD" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "pfT" = ( /obj/structure/training_machine, /turf/open/floor/iron/smooth_large, @@ -45234,15 +44157,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/small, /area/station/security/prison/shower) -"pgr" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "pgy" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -45252,11 +44166,6 @@ /obj/item/kirbyplants/fern, /turf/open/floor/iron/white, /area/station/science/cytology) -"pgU" = ( -/obj/structure/steam_vent, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "phd" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -45328,27 +44237,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/science/lower) +"pic" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 10 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "pie" = ( /obj/effect/spawner/random/decoration/showcase, /obj/structure/window/spawner/directional/south, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/command/corporate_showroom) -"pih" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/stripes/end, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/machinery/status_display/supply{ - pixel_x = 32 - }, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/plating, -/area/station/cargo/sorting) "pil" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock{ @@ -45362,6 +44263,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"pit" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "piG" = ( /obj/effect/turf_decal/siding/green{ dir = 8 @@ -45369,6 +44274,12 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) +"piJ" = ( +/obj/structure/bed, +/obj/item/bedsheet/purple, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "piL" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ @@ -45422,23 +44333,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pjG" = ( -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) -"pjL" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "pjT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45447,12 +44341,17 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"pkd" = ( -/obj/machinery/door/window/right/directional/south, -/obj/effect/turf_decal/stripes/white/full, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +"pjX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "Secure Storage top"; + name = "Secure engineering storage"; + req_access = list("engine_equip") + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "pke" = ( /obj/machinery/door/airlock/centcom{ name = "Disposals Access:" @@ -45472,6 +44371,15 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"pkt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "pkB" = ( /obj/item/kirbyplants/random, /obj/item/weldingtool, @@ -45575,11 +44483,12 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"pmA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) +"pmD" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "pmE" = ( /obj/effect/turf_decal/tile/yellow/diagonal_centre, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45631,6 +44540,10 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/service/hydroponics) +"pnH" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "pnK" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/weather/dirt{ @@ -45722,19 +44635,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/hallway/primary/fore) -"poM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "QMLoad"; - name = "Loading Conveyor"; - pixel_x = -13; - pixel_y = 19 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "poU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45745,14 +44645,6 @@ /obj/effect/turf_decal/siding/wideplating/dark/corner, /turf/open/floor/iron, /area/station/security) -"poV" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/machinery/camera/directional/west{ - dir = 10; - c_tag = "Atmospherics - Control" - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "ppk" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -45780,16 +44672,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/small, /area/station/command/heads_quarters/cmo) -"ppr" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/reflector/single{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "pps" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/window/spawner/directional/north, @@ -45814,6 +44696,16 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"ppP" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "ppQ" = ( /obj/effect/turf_decal/stripes/box, /obj/machinery/portable_atmospherics/canister/carbon_dioxide, @@ -45835,41 +44727,16 @@ "pqm" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage/tcomms) -"pqo" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/incident_display/delam/directional/north, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth_edge{ +"pqr" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ dir = 1 }, -/area/station/engineering/supermatter/room) -"pqv" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/camera/directional/west{ + c_tag = "atmospherics - storage" }, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"pqH" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/glasses/meson, -/obj/item/radio/intercom/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/break_room) +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pqK" = ( /obj/structure/cable, /obj/machinery/door/window/left/directional/south, @@ -45918,18 +44785,13 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark, /area/station/security/prison/safe) -"prI" = ( -/turf/closed/wall, -/area/station/engineering/hallway) -"prV" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 +"prP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 }, -/obj/effect/landmark/start/station_engineer, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "prW" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -45956,19 +44818,6 @@ dir = 1 }, /area/station/science/auxlab/firing_range) -"pss" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "psz" = ( /obj/machinery/door/window/left/directional/west{ name = "Fitness Ring" @@ -46054,12 +44903,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/stone, /area/station/command/corporate_suite) -"ptz" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) "ptC" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -46083,6 +44926,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"puk" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/cargo/lobby) "pus" = ( /obj/effect/turf_decal/box/red/corners, /obj/effect/turf_decal/stripes/white/line{ @@ -46097,21 +44944,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/diagonal, /area/station/command/heads_quarters/hop) -"puI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "North Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "pvi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46125,39 +44957,12 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation/entertainment) -"pvB" = ( -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) "pvC" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/wood, /area/station/service/chapel/office) -"pvE" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) -"pvP" = ( -/obj/structure/railing/corner, -/obj/effect/turf_decal/siding/thinplating_new/corner, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "pvY" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 1 @@ -46176,38 +44981,24 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"pwv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall, -/area/station/engineering/atmos) "pwA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/iron/white/side, /area/station/science/research) -"pwD" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) -"pwJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "pwN" = ( /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) +"pwO" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pxj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46228,6 +45019,9 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"pxz" = ( +/turf/closed/wall/r_wall/rust, +/area/station/maintenance/disposal/incinerator) "pxA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46256,27 +45050,14 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"pyl" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/item/clothing/head/cone{ - pixel_y = -13 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +"pys" = ( +/obj/structure/sign/warning/fire, +/turf/closed/wall/r_wall, +/area/station/engineering/supermatter) "pyt" = ( /obj/machinery/light/floor, /turf/open/floor/grass, /area/station/service/chapel) -"pyA" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "pyF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46294,10 +45075,13 @@ "pzd" = ( /turf/closed/wall, /area/station/commons/fitness/recreation/entertainment) -"pzi" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) +"pzk" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "pzy" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -46326,11 +45110,6 @@ /obj/item/stack/sheet/mineral/titanium, /turf/open/floor/tram, /area/station/maintenance/department/medical/central) -"pAa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/barricade, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "pAl" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46414,6 +45193,22 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"pBo" = ( +/obj/structure/table/wood, +/obj/item/folder/white{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "pBu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -46458,26 +45253,9 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"pCo" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"pCn" = ( +/turf/closed/wall/r_wall, +/area/station/engineering/atmos/project) "pCv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46500,12 +45278,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) -"pCQ" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) "pCU" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -46547,19 +45319,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/lawoffice) -"pDH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos/glass{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "pDK" = ( /obj/effect/decal/cleanable/generic, /obj/effect/spawner/random/structure/tank_holder, @@ -46589,16 +45348,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"pEa" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/fireaxecabinet/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/engineering/atmos) "pEo" = ( /obj/item/radio/intercom/directional/west, /obj/structure/disposalpipe/segment, @@ -46607,6 +45356,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"pEp" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Unfiltered" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pEq" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/flip{ @@ -46675,6 +45432,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"pET" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "pEU" = ( /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/machinery/door/airlock/freezer{ @@ -46721,27 +45487,6 @@ /obj/machinery/door/window/brigdoor/right/directional/west, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"pFS" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/item/stack/cable_coil/five, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) -"pGi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "pGp" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -46752,13 +45497,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"pGt" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Waste" - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "pGD" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -46825,28 +45563,11 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"pHo" = ( -/obj/structure/rack, -/obj/item/storage/medkit/regular, -/turf/open/floor/plating, -/area/station/cargo/storage) "pHq" = ( /obj/machinery/camera/autoname/directional/south, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"pHs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/red{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "pHw" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -46925,30 +45646,16 @@ }, /turf/open/floor/iron/dark/small, /area/station/commons/fitness/locker_room) -"pIi" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/rack, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -8; - pixel_y = 11 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/item/pickaxe, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 8 +"pIg" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/cargo/miningfoundry) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "pIn" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -46958,6 +45665,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) +"pIo" = ( +/obj/machinery/computer/order_console/bitrunning{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/cargo/bitrunning/den) "pIp" = ( /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -46969,12 +45682,6 @@ /obj/structure/bodycontainer/morgue, /turf/open/floor/iron/dark/small, /area/station/service/chapel/storage) -"pIB" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "pIC" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -47010,12 +45717,6 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron, /area/station/cargo/storage) -"pJn" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/stairs{ - dir = 8 - }, -/area/station/cargo/storage) "pJr" = ( /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, @@ -47050,28 +45751,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"pJQ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"pJT" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/turf/open/space/basic, -/area/space/nearstation) -"pKg" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/carbon_output, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "pKi" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -47128,6 +45807,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"pKW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "pLf" = ( /obj/machinery/griddle, /obj/effect/turf_decal/siding{ @@ -47135,16 +45820,6 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) -"pLg" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Gun Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/auxlab/firing_range) "pLj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47204,6 +45879,21 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/north, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"pMq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "pMs" = ( /obj/structure/transit_tube/horizontal, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47213,26 +45903,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"pMD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Genetics" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/genetics, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) -"pML" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 - }, -/obj/structure/railing/corner{ +"pMM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/engine, +/area/station/engineering/supermatter) "pMS" = ( /obj/structure/table, /obj/machinery/light/small/directional/south, @@ -47246,6 +45922,26 @@ }, /turf/open/floor/plating, /area/station/engineering/gravity_generator) +"pMX" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/station/service/chapel/office) +"pNa" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "pNh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47293,18 +45989,6 @@ }, /turf/closed/wall, /area/station/commons/fitness/locker_room) -"pOg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/holopad, -/turf/open/floor/iron, -/area/station/cargo/office) "pOi" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -47386,9 +46070,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"pOT" = ( -/turf/closed/wall, -/area/station/holodeck/rec_center) "pOX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -47425,12 +46106,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/engine, /area/station/science/xenobiology) -"pPH" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Atmospherics Project Bay" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "pPK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47484,6 +46159,11 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) +"pQP" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/unary/bluespace_sender, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "pQY" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -47538,6 +46218,10 @@ /obj/effect/mapping_helpers/airlock/access/any/security/general, /turf/open/floor/iron/textured_half, /area/station/security/checkpoint/customs/auxiliary) +"pRO" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "pRQ" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, @@ -47585,15 +46269,6 @@ }, /turf/open/floor/plating, /area/station/science/ordnance/testlab) -"pSI" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access = list("library") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/central/greater) "pSN" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/holopad, @@ -47608,10 +46283,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"pSQ" = ( -/obj/structure/cable, -/turf/closed/wall, -/area/station/engineering/supermatter/room) "pST" = ( /obj/structure/table, /obj/item/plant_analyzer, @@ -47629,18 +46300,10 @@ name = "Maintenance" }, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, -/area/station/holodeck/rec_center) -"pTp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood, -/area/station/engineering/atmos) +/area/station/commons/fitness/recreation/entertainment) "pTq" = ( /obj/machinery/door/airlock/maintenance{ name = "Crematorium Maintenance" @@ -47656,15 +46319,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/service/lawoffice) -"pTt" = ( -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/door/airlock/engineering{ - name = "Suit Lockers" - }, -/turf/open/floor/iron/textured_half{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "pTz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47675,7 +46329,13 @@ /obj/effect/spawner/random/entertainment/arcade, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) +"pTK" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engine/atmos) "pTZ" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 @@ -47687,13 +46347,6 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"pUe" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) "pUs" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, @@ -47705,6 +46358,7 @@ /obj/machinery/door/airlock/engineering/glass{ name = "Engineering Foyer" }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) "pUx" = ( @@ -47719,6 +46373,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/wood/tile, /area/station/command/meeting_room) +"pUA" = ( +/obj/machinery/space_heater, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "pUC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/doppler_array{ @@ -47727,19 +46385,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) -"pUK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Turbine" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "pUL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table/reinforced/plastitaniumglass, @@ -47750,10 +46395,15 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"pUR" = ( -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) +"pUM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"pUQ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pUS" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -47824,6 +46474,12 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"pVV" = ( +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/stairs{ + dir = 1 + }, +/area/station/cargo/lobby) "pWl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47926,11 +46582,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"pXc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "pXh" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -47955,15 +46606,13 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"pXu" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +"pXv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "pXz" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted, /obj/machinery/firealarm/directional/south, @@ -48013,7 +46662,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, @@ -48032,20 +46680,24 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"pYw" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/engineering/atmos) "pYx" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 }, /turf/open/floor/engine, /area/station/science/explab) -"pYP" = ( -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "pYY" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -48058,10 +46710,17 @@ dir = 4 }, /area/station/science/lower) -"pZu" = ( -/obj/structure/hedge, -/turf/open/floor/plating, -/area/station/cargo/storage) +"pZp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"pZt" = ( +/obj/structure/chair/stool/directional/west, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "pZv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -48072,18 +46731,22 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"pZz" = ( -/obj/structure/rack, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = -3 +"pZC" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = 1; + pixel_y = 4 }, -/obj/item/clothing/gloves/cargo_gauntlet, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 3 +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, -/area/station/cargo/storage) +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/sign/poster/official/tactical_game_cards/directional/north, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) "pZK" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48105,18 +46768,49 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai) +"qav" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Unfiltered & Air to Mix"; + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qaF" = ( /obj/structure/sink/directional/south, /obj/structure/mirror/directional/north, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"qaV" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +"qaU" = ( +/obj/effect/turf_decal/arrows/white, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/herringbone, -/area/station/commons/dorms) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"qaX" = ( +/obj/structure/table, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = -7 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/item/electronics/firealarm{ + pixel_x = 5 + }, +/obj/item/electronics/airalarm{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/electronics/airalarm{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/structure/sign/poster/official/build/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "qbj" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/closet/secure_closet/security/sec, @@ -48143,13 +46837,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/checker, /area/station/security/breakroom) -"qbv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qby" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -48192,17 +46879,9 @@ pixel_x = -6; pixel_y = 6 }, +/obj/machinery/light_switch/directional/north, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"qbR" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "qcf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48223,11 +46902,6 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/station/maintenance/central/greater) -"qcC" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation/entertainment) "qcF" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -48258,19 +46932,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/prison) -"qdJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/structure/sign/warning/radiation/directional/south, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "qdM" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -48316,6 +46977,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"qdU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 1 + }, +/obj/machinery/meter/monitored/distro_loop, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "qdZ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -48332,10 +47000,6 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron, /area/station/security/prison/workout) -"qeq" = ( -/obj/structure/fluff/broken_canister_frame, -/turf/open/misc/asteroid, -/area/station/maintenance/department/engine/atmos) "qeP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48362,18 +47026,6 @@ }, /turf/open/floor/iron/diagonal, /area/station/engineering/lobby) -"qfn" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 9 - }, -/obj/machinery/air_sensor/plasma_tank, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 9; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) "qfo" = ( /obj/structure/disposalpipe/segment, /obj/structure/sign/departments/lawyer/directional/east, @@ -48404,6 +47056,13 @@ /obj/effect/mapping_helpers/airlock/access/any/service/lawyer, /turf/open/floor/iron/dark/textured_half, /area/station/service/lawoffice) +"qfK" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Waste" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qfV" = ( /obj/machinery/vending/tool, /obj/structure/sign/poster/official/random/directional/south, @@ -48463,14 +47122,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"qgK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"qgX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/kirbyplants/random, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/smooth, -/area/station/commons/storage/tools) +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"qgZ" = ( +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "qhh" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -48518,6 +47180,15 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/service/bar) +"qhU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "qhV" = ( /obj/structure/table, /obj/machinery/fax{ @@ -48539,12 +47210,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/wood, /area/station/commons/fitness/recreation) -"qid" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "qie" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -48574,14 +47239,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"qiy" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cytology Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "qiz" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -48631,11 +47288,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"qjn" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/table, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "qjp" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -48643,12 +47295,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"qjq" = ( -/obj/machinery/door/window/left/directional/north, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/obj/effect/turf_decal/stripes/white/full, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "qjt" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/neutral/line, @@ -48669,15 +47315,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/meeting_room) -"qjx" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "qjy" = ( /obj/structure/hedge, /turf/open/floor/iron/smooth, @@ -48721,6 +47358,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"qko" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "qkp" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -48729,13 +47372,18 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"qkI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ +"qkq" = ( +/obj/structure/cable, +/obj/machinery/power/terminal, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) +"qkC" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) +/turf/open/floor/iron, +/area/station/cargo/office) "qkK" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -48760,13 +47408,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"qlk" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/horizontal{ - dir = 2 - }, -/turf/open/space/basic, -/area/space/nearstation) "qlr" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, @@ -48808,31 +47449,43 @@ /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"qmo" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 +"qme" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qmv" = ( /obj/machinery/door/airlock/maintenance{ name = "Atmospherics Maintenance" }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "qmz" = ( /obj/structure/table/wood, /turf/open/floor/wood, /area/station/cargo/boutique) +"qmD" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix Outlet Pump" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qmM" = ( /obj/structure/sign/painting/library{ pixel_y = 32 }, /turf/open/floor/iron/smooth, /area/station/service/library) +"qmT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qmZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48881,6 +47534,16 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) +"qnU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "qoj" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/window/right/directional/west{ @@ -48890,13 +47553,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/plating, /area/station/medical/morgue) -"qol" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/engineering/atmos) "qop" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -48932,6 +47588,16 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron/white/small, /area/station/service/janitor) +"qpp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "qpu" = ( /obj/effect/turf_decal/siding/brown{ dir = 9 @@ -48962,13 +47628,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"qqr" = ( -/obj/machinery/atmospherics/components/binary/pump/off/general/visible{ - dir = 4; - name = "O2 to pure" +"qqB" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "QM #2" }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "qqC" = ( /obj/structure/chair/comfy/carp{ dir = 1 @@ -48986,38 +47658,10 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"qqJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/smooth_corner{ - dir = 1 - }, -/area/station/engineering/supermatter/room) "qrb" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall/r_wall, /area/station/science/xenobiology) -"qrc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/railing/corner, -/obj/structure/reflector/box{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "qrg" = ( /obj/structure/cable, /obj/structure/displaycase/captain{ @@ -49035,16 +47679,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) -"qsa" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/camera/directional/south{ - c_tag = "Engineering - Airlock" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +"qrJ" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) +"qrW" = ( +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "qsg" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/terminal, @@ -49061,6 +47704,17 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"qsr" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/reagent_dispensers/fueltank/large, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - storage" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "qsR" = ( /obj/structure/table/reinforced, /obj/effect/mapping_helpers/broken_floor, @@ -49089,26 +47743,6 @@ "qtd" = ( /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) -"qto" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"qtv" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 10 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "qtE" = ( /obj/structure/bed{ dir = 4 @@ -49129,42 +47763,20 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"qtP" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics - Central" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qtQ" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"qul" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch/directional/east, -/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/corner{ - dir = 4 +"qtW" = ( +/obj/machinery/door/morgue{ + name = "Private Study"; + req_access = list("library") }, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/central/greater) "quq" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/closet/crate/cardboard, @@ -49203,23 +47815,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/engineering) -"quP" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/gloves/color/black, -/obj/item/electronics/airalarm{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/machinery/light/cold/dim/directional/west, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "quU" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain) @@ -49258,17 +47853,6 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"qwc" = ( -/obj/structure/tank_holder/emergency_oxygen, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) -"qwo" = ( -/obj/structure/lattice, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - South Exterior" - }, -/turf/open/space/basic, -/area/space/nearstation) "qwq" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/computer/prisoner/management{ @@ -49312,9 +47896,16 @@ /obj/effect/turf_decal/siding/wideplating/dark, /turf/open/floor/iron, /area/station/security) -"qwK" = ( -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) +"qwF" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - lower"; + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qwU" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/table/glass, @@ -49345,27 +47936,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"qxz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qxB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/server) -"qxF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/break_room) "qxN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49389,31 +47965,13 @@ /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/misc/sandy_dirt, /area/station/science/research) -"qyb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 5 - }, -/obj/structure/table, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 10 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ - dir = 4 - }, -/obj/machinery/light_switch/directional/south, -/obj/effect/spawner/random/entertainment/lighter{ - pixel_x = -7 - }, -/obj/item/flashlight{ - pixel_y = 8; - pixel_x = 3 - }, -/obj/item/flashlight{ - pixel_y = 3; - pixel_x = 10 +"qyr" = ( +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 8 }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) +/obj/effect/turf_decal/siding/wideplating/corner, +/turf/open/floor/wood, +/area/station/engineering/main) "qyx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/chair{ @@ -49514,16 +48072,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) -"qzD" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Break Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "qzL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -49621,13 +48169,6 @@ }, /turf/open/floor/engine/n2o, /area/station/ai_monitored/turret_protected/ai) -"qAR" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "qBc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -49642,17 +48183,6 @@ dir = 1 }, /area/station/security/execution/transfer) -"qBd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light/small/directional/north, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "qBi" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -49682,6 +48212,19 @@ /obj/effect/turf_decal/stripes/red/line, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"qBK" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) +"qBM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "qBN" = ( /obj/effect/turf_decal/tile/dark_red{ dir = 8 @@ -49728,6 +48271,34 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/science/xenobiology) +"qCG" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/structure/table, +/obj/structure/railing{ + dir = 9 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/item/radio{ + desc = "An old handheld radio. You could use it, if you really wanted to."; + icon_state = "radio"; + name = "old radio"; + pixel_x = -4; + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 15; + pixel_y = 8 + }, +/obj/effect/spawner/random/food_or_drink/donuts{ + pixel_x = 8; + pixel_y = 0 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/lobby) "qCJ" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -49815,50 +48386,11 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, /turf/open/floor/wood/tile, /area/station/tcommsat/server) -"qDq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"qDv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 8 - }, -/turf/open/floor/iron/smooth_corner, -/area/station/engineering/supermatter/room) "qDx" = ( /obj/structure/toilet, /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron/white/small, /area/station/maintenance/port/aft) -"qDA" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_1" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/main) "qDC" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -49889,9 +48421,6 @@ /turf/open/floor/wood/parquet, /area/station/medical/psychology) "qDL" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -49902,7 +48431,10 @@ /obj/effect/turf_decal/siding/thinplating_new{ dir = 4 }, -/obj/effect/landmark/start/botanist, +/obj/machinery/computer/order_console/cook{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "qDN" = ( @@ -49919,11 +48451,6 @@ }, /turf/open/misc/sandy_dirt, /area/station/security/tram) -"qDP" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/cargo/sorting) "qEe" = ( /turf/open/floor/iron/white/side{ dir = 8 @@ -49936,6 +48463,13 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"qEy" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 1 + }, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "qEz" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Holding Cell"; @@ -50012,16 +48546,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"qFw" = ( -/obj/structure/fluff/broken_canister_frame, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "qGc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -50051,10 +48575,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/grass/Airless, /area/station/hallway/primary/central/aft) -"qGk" = ( -/obj/structure/chair/stool/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "qGu" = ( /obj/effect/turf_decal/siding/dark_red, /obj/item/radio/intercom/directional/south, @@ -50129,6 +48649,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"qIe" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "qIf" = ( /turf/closed/wall, /area/station/medical/cryo) @@ -50207,34 +48733,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"qJN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/suit/hazardvest{ - pixel_y = 8 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_y = 5 - }, -/obj/item/clothing/suit/hazardvest{ - pixel_y = 2 - }, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_y = 4 - }, -/obj/item/tank/internals/emergency_oxygen/engi{ - pixel_y = 4 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -12; - pixel_y = 10 - }, -/obj/item/grenade/chem_grenade/smart_metal_foam{ - pixel_x = -15; - pixel_y = 5 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +"qJL" = ( +/obj/machinery/space_heater, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "qKe" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green, @@ -50257,12 +48760,27 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/commons/dorms) +"qKA" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/green{ + dir = 4 + }, +/obj/structure/lattice, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/space/basic, +/area/space/nearstation) "qKD" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 6 }, /turf/open/floor/iron/showroomfloor, /area/station/commons/dorms) +"qKH" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) "qKI" = ( /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron/small, @@ -50349,6 +48867,10 @@ }, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) +"qMj" = ( +/obj/effect/turf_decal/bot/right, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "qMp" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -50356,34 +48878,32 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron, /area/station/security/courtroom) -"qMu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) -"qME" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 5 - }, -/turf/open/space/basic, -/area/space/nearstation) "qMG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, /turf/open/floor/iron/small, /area/station/maintenance/department/electrical) +"qMI" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/cargo/storage) "qMK" = ( /turf/closed/wall, /area/station/command/bridge) +"qMM" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "qMP" = ( /obj/structure/closet/firecloset, /obj/structure/sign/poster/official/random/directional/north, @@ -50413,12 +48933,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"qNN" = ( -/obj/machinery/atmospherics/components/binary/valve{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "qNO" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/central) @@ -50438,6 +48952,12 @@ }, /turf/open/floor/plating, /area/station/commons/storage/tools) +"qOr" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "qOG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -50476,6 +48996,11 @@ }, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"qOQ" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation/entertainment) "qPc" = ( /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 @@ -50483,13 +49008,10 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"qPg" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 1 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"qPk" = ( +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/atmos/office) "qPJ" = ( /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron, @@ -50497,13 +49019,6 @@ "qPN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/safe) -"qPO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 6 - }, -/obj/machinery/meter/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "qQi" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/yellow{ @@ -50559,13 +49074,6 @@ dir = 1 }, /area/station/science/lower) -"qQP" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qQR" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/south, @@ -50577,6 +49085,11 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) +"qRb" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing, +/turf/open/floor/iron, +/area/station/engineering/atmos) "qRh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -50592,9 +49105,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"qRq" = ( -/turf/closed/wall/rust, -/area/station/security/checkpoint/supply) "qRs" = ( /obj/structure/chair/stool/directional/north, /obj/machinery/light/small/directional/south, @@ -50675,27 +49185,17 @@ /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"qSF" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "qSH" = ( /obj/effect/turf_decal/bot_white, /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"qSS" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/radio/intercom/directional/east, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/smooth, -/area/station/security/checkpoint/supply) "qSZ" = ( /obj/structure/hedge, /obj/machinery/light/cold/directional/west, @@ -50767,19 +49267,16 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/cargo/boutique) +"qTS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "qUa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"qUd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "qUe" = ( /obj/structure/cable, /obj/machinery/door/airlock/glass, @@ -50831,6 +49328,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"qUJ" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/kirbyplants/organic/plant24, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "qUL" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -50840,12 +49344,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"qUN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/iron/stairs/medium{ - dir = 1 +"qUR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/area/station/engineering/atmos) +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "qUS" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -51036,16 +49542,6 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/plating, /area/station/command/heads_quarters/hop) -"qXd" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/closet/emcloset, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "qXe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -51142,17 +49638,19 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/small, /area/station/security/tram) -"qYp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 +"qYq" = ( +/obj/machinery/door/airlock/wood{ + desc = "Sessions held every Friday."; + name = "The Sunfinder Society" }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "qYr" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, @@ -51163,6 +49661,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "qYv" = ( @@ -51197,6 +49696,12 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"qYG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "qYK" = ( /obj/structure/disposalpipe/trunk, /obj/structure/window/reinforced/spawner/directional/west, @@ -51266,13 +49771,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/small, /area/station/medical/medbay/lobby) -"qZE" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering Office" - }, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/iron/textured_half, -/area/station/maintenance/department/engine/atmos) "qZG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/corner/directional/south, @@ -51296,6 +49794,26 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/ordnance/storage) +"qZX" = ( +/obj/effect/decal/cleanable/molten_object, +/obj/effect/landmark/event_spawn, +/obj/structure/table, +/obj/item/reagent_containers/cup/bottle/welding_fuel{ + pixel_y = -3; + pixel_x = 13 + }, +/obj/item/stack/sheet/iron/ten{ + pixel_y = -6; + pixel_x = -2 + }, +/obj/item/hand_labeler{ + pixel_y = -15 + }, +/obj/item/reagent_containers/cup/watering_can{ + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/station/commons/storage/tools) "raf" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -51311,13 +49829,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"rao" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "rax" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 8 @@ -51342,11 +49853,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"raP" = ( -/obj/item/kirbyplants/random, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "raR" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -51370,9 +49876,6 @@ }, /turf/open/floor/tram, /area/station/security/tram) -"rbg" = ( -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "rbj" = ( /obj/item/radio/intercom/directional/east, /obj/structure/disposalpipe/trunk{ @@ -51381,23 +49884,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/wood/parquet, /area/station/service/library) -"rbl" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light/cold/dim/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"rbp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor{ - id = "Secure Storage"; - name = "Secure Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating/rust, -/area/station/engineering/main) "rbs" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -51418,12 +49904,28 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/engineering/storage/tech) +"rbI" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/engineering/main) "rbO" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"rbT" = ( +/obj/effect/landmark/navigate_destination/cargo, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "rbW" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -51462,29 +49964,16 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"rci" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "rcl" = ( /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/engine, /area/station/science/xenobiology) -"rco" = ( -/obj/machinery/shieldgen, -/obj/item/clothing/gloves/color/black{ - pixel_y = -3; - pixel_x = -2 - }, -/obj/item/cigarette{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/clothing/mask/gas{ - pixel_y = 5 - }, -/obj/item/clothing/head/cone{ - pixel_x = 1; - pixel_y = 15 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "rcE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51520,6 +50009,12 @@ }, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) +"rdt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rdw" = ( /turf/open/floor/eighties/red, /area/station/service/abandoned_gambling_den/gaming) @@ -51534,7 +50029,7 @@ /turf/open/floor/wood/tile, /area/station/maintenance/central/lesser) "rdH" = ( -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/mineral/titanium, /area/station/command/heads_quarters/ce) "rdM" = ( @@ -51590,6 +50085,24 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"rev" = ( +/obj/machinery/requests_console/directional/south{ + department = "Security"; + name = "Security Requests Console" + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/radio/off{ + pixel_x = -6 + }, +/obj/machinery/recharger{ + pixel_x = 5; + pixel_y = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "rex" = ( /obj/effect/turf_decal/tile/neutral/full, /obj/effect/decal/cleanable/dirt, @@ -51631,19 +50144,6 @@ }, /turf/open/floor/wood, /area/station/hallway/secondary/entry) -"reL" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/requests_console/directional/west{ - department = "Atmospherics"; - name = "Atmospherics Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "reM" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/escape) @@ -51702,6 +50202,17 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/glass, /area/station/command/heads_quarters/rd) +"rfP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) +"rfT" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rfW" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/neutral/line{ @@ -51747,13 +50258,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"rhg" = ( -/obj/machinery/air_sensor/engine_chamber, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "rhj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51794,17 +50298,6 @@ /obj/item/toy/figure/detective, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"rhu" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 5 - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 9; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) "rhy" = ( /obj/structure/chair{ dir = 1 @@ -51817,6 +50310,12 @@ /obj/structure/chair/office, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"rhF" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "rhH" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -51832,15 +50331,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"rie" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) -"rif" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "rig" = ( /obj/machinery/door/poddoor/massdriver_chapel, /turf/open/floor/plating, @@ -51899,14 +50389,6 @@ dir = 1 }, /area/station/maintenance/department/electrical) -"rjr" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/door/poddoor/shutters/radiation/preopen{ - id = "engsm"; - name = "Radiation Chamber Shutters" - }, -/turf/open/floor/plating/rust, -/area/station/engineering/supermatter) "rjv" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -51916,10 +50398,17 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/dark/small, /area/station/hallway/primary/fore) -"rjE" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +"rjw" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 4; + name = "Air to Distro" + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "rjN" = ( /obj/structure/cable, /obj/structure/chair{ @@ -51927,15 +50416,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"rkk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rko" = ( /obj/structure/sign/directions/evac/directional/west, /obj/structure/sign/directions/science/directional/west{ @@ -51962,13 +50442,13 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/medical/morgue) -"rkS" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 8 +"rkM" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 }, -/obj/machinery/air_sensor/nitrous_tank, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "rlb" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -51995,14 +50475,6 @@ dir = 1 }, /area/station/commons/dorms) -"rlk" = ( -/obj/machinery/light/broken/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/corner, -/obj/structure/sign/warning/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "rlq" = ( /obj/structure/bed{ dir = 4 @@ -52039,6 +50511,14 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"rmc" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) "rmk" = ( /obj/effect/turf_decal/weather/dirt, /obj/structure/flora/bush/jungle/c/style_3{ @@ -52046,16 +50526,6 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"rmD" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/door/airlock/engineering/glass{ - name = "Locker Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/engineering/engine_smes) "rmM" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/edge{ @@ -52111,31 +50581,6 @@ /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"roc" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) -"roe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/structure/sign/warning/radiation/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"roi" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "roq" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/wood/tile, @@ -52214,15 +50659,12 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) -"rpE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/landmark/navigate_destination/chapel, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) +"rpQ" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/turf/open/space/basic, +/area/space/nearstation) "rpV" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -52245,9 +50687,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"rqq" = ( -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/office) "rqt" = ( /obj/machinery/airalarm/directional/north, /obj/effect/decal/cleanable/dirt, @@ -52272,22 +50711,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rqV" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "rrb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_dark, @@ -52309,23 +50732,25 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"rrq" = ( -/obj/structure/closet, -/turf/open/floor/plating, -/area/station/cargo/office) "rrt" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/science/robotics/augments) -"rrG" = ( -/obj/effect/turf_decal/stripes/line{ +"rry" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/smooth_edge{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) +"rrJ" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "rrQ" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/effect/turf_decal/tile/dark_red/half/contrasted, @@ -52436,6 +50861,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) +"rtH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/cargo/storage) "rtI" = ( /turf/open/floor/iron/white/corner{ dir = 8 @@ -52444,6 +50880,15 @@ "rtQ" = ( /turf/closed/wall/r_wall, /area/station/security/tram) +"rtX" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "rtZ" = ( /obj/structure/sign/directions/dorms{ dir = 1 @@ -52478,6 +50923,15 @@ dir = 4 }, /area/station/science/ordnance/testlab) +"ruh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "atmospherics - lower" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rui" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52546,6 +51000,16 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) +"rvI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rvX" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/south{ @@ -52572,26 +51036,6 @@ dir = 6 }, /area/station/science/research) -"rwk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Genetics" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/genetics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) -"rwl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 9 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "rwo" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/machinery/camera/directional/west, @@ -52646,13 +51090,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"rxs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rxu" = ( /obj/structure/table, /obj/machinery/airalarm/directional/south, @@ -52672,6 +51109,13 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) +"rxJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rxP" = ( /obj/structure/table, /obj/item/assembly/signaler{ @@ -52751,6 +51195,12 @@ dir = 1 }, /area/station/science/research) +"ryr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "ryt" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/tile/neutral{ @@ -52775,6 +51225,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"ryX" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "QM #1" + }, +/obj/effect/turf_decal/delivery, +/mob/living/simple_animal/bot/mulebot, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron, +/area/station/cargo/storage) "rza" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -52783,6 +51243,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"rzb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Engineering Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rzd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52795,13 +51264,15 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"rzy" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9"; - pixel_y = -15 +"rzm" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Engineering - Decontamination B" }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/aft) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "rzJ" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -52813,15 +51284,17 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"rzL" = ( -/obj/structure/sign/poster/random/directional/south, -/obj/machinery/conveyor{ - id = "mining"; - dir = 10 +"rzX" = ( +/obj/structure/hedge, +/obj/machinery/status_display/supply{ + pixel_y = -32 }, -/obj/machinery/bouldertech/refinery, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) "rzZ" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -52870,18 +51343,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/plating, /area/station/engineering/gravity_generator) -"rAH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/status_display/evac/directional/east, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/structure/reflector/box/anchored{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "rAR" = ( /obj/structure/cable, /obj/machinery/door/airlock/security/glass{ @@ -52904,10 +51365,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/ordnance/testlab) -"rBh" = ( -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "rBq" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -52917,20 +51374,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"rBr" = ( -/obj/machinery/door/airlock/grunge{ - name = "Janitorial Closet" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/textured_half{ - dir = 8 - }, -/area/station/commons) "rBy" = ( /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, @@ -52991,6 +51434,12 @@ dir = 1 }, /area/station/security/execution/transfer) +"rCk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "rCv" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -53000,32 +51449,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/lone, /area/station/service/abandoned_gambling_den) -"rCU" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 10 - }, -/obj/structure/sink/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/turf/open/floor/iron/dark/small, -/area/station/engineering/main) -"rCX" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input, -/turf/open/floor/engine/plasma, -/area/station/engineering/atmos/space_catwalk) -"rDc" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/yellow{ - dir = 4 - }, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_y = 6 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/station/engineering/break_room) "rDj" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -53036,6 +51459,14 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"rDs" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Filing Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "rDv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/cold/directional/west, @@ -53071,6 +51502,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) +"rDU" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "rDV" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) @@ -53102,17 +51538,6 @@ }, /turf/open/floor/wood/parquet, /area/station/service/library) -"rEH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/atmos{ - name = "Locker Room" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/catwalk_floor, -/area/station/engineering/atmos) "rEJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/camera/directional/east, @@ -53121,6 +51546,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rEV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/prison/garden) "rEW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -53141,25 +51571,6 @@ dir = 1 }, /area/station/command/heads_quarters/hop) -"rFa" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Service Deliveries" - }, -/obj/structure/sign/departments/botany/directional/north, -/obj/effect/turf_decal/tile/green/fourcorners, -/obj/structure/plasticflaps{ - name = "Service Deliveries" - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/delivery/white, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rFb" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, /obj/effect/turf_decal/tile/yellow, @@ -53172,6 +51583,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"rFm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rFn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral, @@ -53189,6 +51606,17 @@ dir = 4 }, /area/station/science/ordnance/testlab) +"rFv" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing, +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "rFy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -53220,41 +51648,16 @@ dir = 6 }, /area/station/science/research) -"rFP" = ( -/obj/structure/disposalpipe/trunk{ - dir = 2 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Security Deliveries" - }, -/obj/structure/sign/departments/security/directional/north, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/plasticflaps{ - name = "Security Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron, -/area/station/cargo/sorting) +"rFU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet/lone, +/area/station/service/chapel/office) "rFV" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"rFW" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/delivery_chute{ - name = "Engineering Deliveries" - }, -/obj/structure/sign/departments/engineering/directional/north, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/structure/plasticflaps{ - name = "Engineering Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rGp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53265,19 +51668,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/small, /area/station/science/ordnance/storage) -"rGq" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/delivery_chute{ - name = "Science Deliveries" - }, -/obj/structure/sign/departments/science/directional/north, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/structure/plasticflaps{ - name = "Science Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rGB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -53294,10 +51684,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"rGN" = ( -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "rGO" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -53392,10 +51778,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/herringbone, /area/station/service/abandoned_gambling_den/gaming) +"rIH" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrogen_input, +/turf/open/floor/engine/n2, +/area/station/engineering/atmos) "rIJ" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/station/engineering/gravity_generator) +"rIW" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/white/side, +/area/station/hallway/primary/central/aft) "rIY" = ( /turf/closed/wall/r_wall, /area/station/construction/mining/aux_base) @@ -53416,6 +51811,30 @@ }, /turf/open/floor/grass, /area/station/science/xenobiology) +"rJB" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/photocopier, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) +"rJL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"rJQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "rJW" = ( /obj/machinery/suit_storage_unit/hos, /obj/effect/decal/cleanable/dirt, @@ -53429,6 +51848,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"rKn" = ( +/obj/structure/cable, +/obj/item/banner/cargo, +/turf/open/floor/iron/smooth, +/area/station/command/heads_quarters/qm) "rKv" = ( /obj/structure/broken_flooring/singular/directional/east, /turf/open/floor/iron, @@ -53474,6 +51898,13 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"rLp" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "rLr" = ( /obj/machinery/door/poddoor/incinerator_ordmix, /turf/open/floor/engine/vacuum, @@ -53557,17 +51988,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"rMs" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "rMt" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/rock/pile/style_random, @@ -53617,6 +52037,11 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"rNG" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/closet/toolcloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "rNI" = ( /obj/effect/turf_decal/siding/thinplating_new/corner{ dir = 4 @@ -53676,6 +52101,11 @@ "rPf" = ( /turf/closed/wall/rust, /area/station/ai_monitored/turret_protected/aisat/maint) +"rPg" = ( +/obj/machinery/air_sensor/plasma_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "rPm" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/thinplating_new/light{ @@ -53730,6 +52160,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"rPM" = ( +/obj/effect/landmark/start/cargo_technician, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/cargo/storage) "rPT" = ( /obj/structure/chair/stool/bar/directional/east, /obj/effect/turf_decal/siding/red/corner{ @@ -53767,10 +52206,6 @@ "rQi" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) -"rQm" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "rQw" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/engine, @@ -53796,23 +52231,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy, /turf/open/floor/iron/dark/small, /area/station/medical/pharmacy) -"rQH" = ( -/obj/structure/rack, -/obj/item/clothing/neck/petcollar, -/obj/item/flashlight/flare/candle{ - pixel_x = 10 - }, -/obj/item/flashlight/flare/candle{ - pixel_x = 8; - pixel_y = 1 - }, -/obj/item/screwdriver{ - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/maintenance/department/engine/atmos) "rQN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -53848,6 +52266,17 @@ dir = 1 }, /area/station/security/courtroom) +"rRl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/quartermaster, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "rRq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -53926,6 +52355,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/command/corporate_showroom) +"rSM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "rST" = ( /turf/closed/wall, /area/station/cargo/storage) @@ -53968,20 +52406,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"rTD" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rTJ" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 4 @@ -53993,26 +52417,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"rTU" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"rUa" = ( -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos) "rUb" = ( /obj/structure/hedge, /obj/machinery/status_display/evac/directional/east, @@ -54036,42 +52440,6 @@ /obj/item/assembly/mousetrap/armed, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"rUs" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Decontamination B" - }, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) -"rUt" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/arrows{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"rUD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "rUI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54119,12 +52487,19 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/effect/spawner/random/food_or_drink/condiment, /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchenshutters"; - name = "Kitchen Shutters" + name = "Kitchen Shutters"; + dir = 4 }, -/obj/effect/spawner/random/food_or_drink/condiment, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding{ + dir = 4 + }, +/obj/effect/turf_decal/siding{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "rVy" = ( /obj/effect/turf_decal/stripes/red/line{ @@ -54135,15 +52510,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/auxlab/firing_range) -"rVA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "rVH" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/table/glass, @@ -54163,15 +52529,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"rVQ" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/stripes/end{ - dir = 1 +"rVI" = ( +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ + dir = 8 }, -/obj/machinery/disposal/delivery_chute, -/turf/open/floor/plating, -/area/station/cargo/sorting) +/turf/open/floor/iron, +/area/station/engineering/atmos) "rVT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -54179,6 +52542,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"rWa" = ( +/obj/structure/closet, +/obj/machinery/camera/autoname/directional/east, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "rWm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54226,6 +52594,13 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/ce) +"rWK" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red/corner, +/turf/open/floor/iron, +/area/station/cargo/storage) "rWM" = ( /obj/structure/table, /obj/item/exodrone{ @@ -54260,22 +52635,31 @@ dir = 1 }, /area/station/cargo/bitrunning/den) -"rWQ" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" +"rWR" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/delivery_chute{ + name = "Science Deliveries" }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" +/obj/structure/sign/departments/science/directional/north, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/plasticflaps{ + name = "Science Deliveries" }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "rWU" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"rXm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rXv" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -54337,12 +52721,6 @@ /obj/structure/flora/bush/flowers_yw/style_3, /turf/open/floor/grass, /area/station/service/chapel) -"rYt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/cytology) "rYx" = ( /obj/effect/turf_decal/siding/wideplating/dark, /obj/structure/cable, @@ -54350,6 +52728,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/small, /area/station/service/barber) +"rYD" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/air_input, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "rYG" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -54378,10 +52760,6 @@ }, /turf/open/floor/iron, /area/station/medical/chemistry) -"rZe" = ( -/obj/structure/railing/corner/end/flip, -/turf/open/floor/plating, -/area/station/cargo/miningfoundry) "rZi" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -54390,14 +52768,13 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/aft) -"rZj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"rZo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "rZq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/status_display/ai/directional/west, @@ -54441,36 +52818,30 @@ /obj/structure/alien/weeds, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"rZJ" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "rZM" = ( /obj/structure/table/wood, /obj/item/clothing/glasses/eyepatch/medical, /turf/open/floor/carpet/orange, /area/station/commons/dorms) -"sar" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +"saq" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Toxins" }, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output{ + dir = 1 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "sas" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/carpet/blue, /area/station/cargo/boutique) -"sav" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "saz" = ( /obj/machinery/status_display/ai/directional/west, /obj/effect/turf_decal/tile/neutral{ @@ -54488,18 +52859,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/science/robotics/augments) -"sbf" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "sbq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -54515,15 +52874,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"sbG" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/door/airlock/engineering/glass{ - name = "Freezer Room" - }, -/turf/open/floor/iron/textured_half, -/area/station/engineering/supermatter/room) "sbN" = ( /obj/machinery/rnd/server, /turf/open/floor/circuit, @@ -54600,6 +52950,22 @@ /obj/machinery/light/small/broken/directional/south, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"scP" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) +"scU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "scY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54613,27 +52979,27 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"sdF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"sdZ" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark/fourcorners, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/engineering/atmos) "sea" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/white/corner, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"sed" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +"seq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "ser" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54669,24 +53035,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/space/basic, /area/space/nearstation) -"sfd" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 10 - }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) "sfk" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"sfl" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "sfq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54700,6 +53053,26 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/entrance) +"sfy" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"sfB" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sfF" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Office" @@ -54721,6 +53094,14 @@ dir = 8 }, /area/station/engineering/main) +"sfL" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/station/cargo/sorting) "sge" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/item/clothing/head/costume/festive, @@ -54738,42 +53119,12 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) -"sgC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) -"sgL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/storage) "sgO" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/smooth_edge{ dir = 1 }, /area/station/maintenance/starboard/greater) -"sgR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "sgY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -54796,14 +53147,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) -"shK" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/spawner/random/vending/snackvend, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "shL" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod One"; @@ -54827,19 +53170,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/construction) -"sio" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "sip" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/item/robot_suit, @@ -54864,12 +53194,24 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/structure/chair/stool/bar/directional/north, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "sjl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/science/xenobiology) +"sjn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/comfy/brown{ + buildstackamount = 0; + color = "#c45c57"; + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "sjp" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -54880,6 +53222,21 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"sjw" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) +"sjG" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sjK" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -54900,14 +53257,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"sjZ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ +"sjX" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) +"sjY" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/purple/visible{ dir = 4 }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +/turf/open/floor/iron, +/area/station/engineering/atmos) "skc" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -54983,13 +53343,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/genetics) -"skW" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "slp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55006,14 +53359,6 @@ "slw" = ( /turf/closed/wall, /area/station/cargo/drone_bay) -"slC" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/structure/spider/stickyweb, -/obj/item/hfr_box/corner, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "slG" = ( /obj/docking_port/stationary{ dir = 2; @@ -55051,29 +53396,6 @@ "slY" = ( /turf/closed/wall, /area/station/maintenance/port/fore) -"slZ" = ( -/obj/structure/closet/secure_closet/detective, -/obj/machinery/requests_console/directional/north{ - department = "Detective's Office"; - name = "Detective Requests Console" - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/station/security/detectives_office) -"smd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_cw{ - dir = 6 - }, -/obj/effect/landmark/navigate_destination/incinerator, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "smf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -55125,15 +53447,6 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) -"snm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/red/end{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "snn" = ( /obj/machinery/rnd/experimentor, /turf/open/floor/engine, @@ -55168,15 +53481,6 @@ /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/tram) -"snX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/reflector/single/anchored{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "snZ" = ( /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) @@ -55195,28 +53499,6 @@ dir = 1 }, /area/station/hallway/secondary/dock) -"son" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Gas to Filter" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) -"soo" = ( -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "sor" = ( /obj/machinery/computer/exoscanner_control{ dir = 1 @@ -55249,18 +53531,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"soB" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) -"soC" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "soD" = ( /obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 8 @@ -55276,14 +53546,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) +"soU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "soV" = ( /obj/effect/spawner/random/engineering/canister, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"spa" = ( -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "spg" = ( /obj/effect/mapping_helpers/airlock/access/any/security/general, /obj/machinery/door/airlock/security{ @@ -55310,14 +53582,6 @@ }, /turf/open/floor/grass, /area/station/service/chapel) -"spo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "spx" = ( /obj/machinery/portable_atmospherics/canister/anesthetic_mix, /obj/machinery/atmospherics/components/unary/portables_connector/visible, @@ -55325,6 +53589,23 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/white/small, /area/station/medical/cryo) +"spA" = ( +/obj/structure/table, +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/effect/spawner/random/food_or_drink/snack/lizard{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/effect/spawner/random/food_or_drink/refreshing_beverage{ + pixel_x = -5; + pixel_y = 7 + }, +/obj/structure/sign/poster/official/random/directional/south, +/turf/open/floor/iron, +/area/station/cargo/office) "spH" = ( /obj/machinery/door/firedoor, /turf/open/floor/iron/small, @@ -55352,10 +53633,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sqg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "sqh" = ( /obj/item/kirbyplants/random, /obj/machinery/light/cold/directional/west, @@ -55401,14 +53678,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"sqB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "sqV" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/sofa/bench/left{ @@ -55447,6 +53716,13 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/maintenance/port/greater) +"srx" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "sry" = ( /obj/structure/flora/bush/jungle/c/style_3{ pixel_x = 6; @@ -55471,6 +53747,9 @@ name = "Telecommunications Server Room" }, /obj/machinery/atmospherics/pipe/smart/simple/dark/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-south" + }, /turf/open/floor/catwalk_floor/iron_dark, /area/station/tcommsat/server) "srH" = ( @@ -55497,12 +53776,6 @@ }, /turf/open/floor/wood/tile, /area/station/command/meeting_room) -"ssj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "sso" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -55527,10 +53800,6 @@ "ssz" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/science/xenobiology) -"ssP" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/station/engineering/hallway) "ssY" = ( /obj/structure/kitchenspike, /obj/effect/turf_decal/weather/snow/corner{ @@ -55566,13 +53835,6 @@ dir = 1 }, /area/station/maintenance/department/science/xenobiology) -"stm" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/break_room) "stH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/half, @@ -55627,7 +53889,7 @@ }, /obj/effect/landmark/start/hangover, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "sul" = ( /obj/effect/turf_decal/siding{ dir = 1 @@ -55649,6 +53911,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"svd" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "svh" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -55673,18 +53941,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"svr" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) "svs" = ( /turf/closed/wall, /area/station/hallway/secondary/dock) @@ -55707,11 +53963,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/science/xenobiology) -"svB" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space/basic, -/area/space/nearstation) "svD" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/flora/bush/flowers_yw, @@ -55818,6 +54069,12 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"swK" = ( +/obj/structure/sign/poster/official/moth_piping/directional/north, +/obj/machinery/light/cold/dim/directional/north, +/obj/structure/closet/firecloset, +/turf/open/floor/iron/small, +/area/station/engineering/break_room) "swM" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -55825,17 +54082,6 @@ /obj/machinery/camera/directional/north, /turf/open/floor/grass, /area/station/service/chapel) -"swO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/spawner/directional/east, -/obj/structure/window/spawner/directional/north, -/mob/living/basic/chick/permanent{ - name = "Morgan" - }, -/turf/open/floor/grass, -/area/station/cargo/storage) "swT" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Engineering Maintenance" @@ -55850,21 +54096,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"swV" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/table/wood, -/obj/item/hand_labeler_refill{ - pixel_x = -4; - pixel_y = 26 - }, -/obj/structure/sign/poster/official/random/directional/south, -/obj/machinery/fax{ - fax_name = "Quartermaster's Office"; - name = "Quartermaster's Fax Machine"; - pixel_y = 7 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "swW" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ @@ -55901,13 +54132,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"sxD" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "sxF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -55918,6 +54142,21 @@ dir = 8 }, /area/station/science/research) +"sxH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"sxQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "sxT" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -55938,13 +54177,6 @@ }, /turf/open/space/basic, /area/space) -"syc" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input, -/turf/open/floor/engine/n2o, -/area/station/engineering/atmos/space_catwalk) "sye" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/window/reinforced/spawner/directional/east, @@ -55975,15 +54207,6 @@ "syk" = ( /turf/closed/wall, /area/station/security/warden) -"syx" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "syA" = ( /obj/machinery/door/airlock/public/glass{ name = "Dorms" @@ -56011,6 +54234,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"szg" = ( +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "engsm"; + name = "Radiation Chamber Shutters" + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter) "szC" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -56020,62 +54250,45 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"sAb" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, -/turf/open/space/basic, -/area/space/nearstation) -"sAM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch/directional/south, -/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"sAW" = ( -/obj/structure/lattice/catwalk, +"sAy" = ( /obj/structure/railing{ dir = 1 }, /obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ +/obj/structure/hedge, +/obj/effect/turf_decal/siding/thinplating{ dir = 8 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"sBf" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating_new/end{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/turf/open/floor/iron/dark, +/area/station/cargo/storage) "sBm" = ( /obj/structure/transport/linear/tram, /obj/structure/fluff/tram_rail/floor, /obj/structure/thermoplastic/light, /turf/open/floor/tram, /area/station/maintenance/port/aft) +"sBn" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) +"sBq" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/closet/l3closet/janitor, +/obj/item/clothing/gloves/color/orange, +/obj/item/clothing/shoes/galoshes, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/small, +/area/station/service/janitor) "sBL" = ( /obj/structure/sign/directions/science{ dir = 4; @@ -56096,6 +54309,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"sBV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "sCc" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -56168,6 +54387,16 @@ }, /turf/open/floor/iron/textured_half, /area/station/commons/fitness/recreation) +"sCC" = ( +/obj/machinery/door/airlock/external/glass{ + name = "ATMOS PROJECT Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sCH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, @@ -56181,40 +54410,9 @@ /obj/effect/turf_decal/siding/purple, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"sDh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering - Engine Bay East" - }, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/smooth_edge{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "sDj" = ( /turf/closed/wall/r_wall, /area/station/science/cytology) -"sDl" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) -"sDo" = ( -/obj/effect/decal/cleanable/molten_object, -/obj/item/storage/box/gloves{ - pixel_y = -7; - pixel_x = -15 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "sDp" = ( /obj/structure/cable, /obj/structure/table, @@ -56269,12 +54467,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"sEj" = ( +"sEd" = ( +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) "sEn" = ( /obj/item/clothing/head/cone, /obj/item/clothing/head/cone{ @@ -56389,6 +54587,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/fore/greater) +"sHg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/small, +/area/station/engineering/supermatter/room) "sHk" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/table, @@ -56401,6 +54605,16 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) +"sHI" = ( +/obj/machinery/computer/atmos_control/air_tank{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sHM" = ( /obj/structure/railing, /obj/structure/disposalpipe/segment{ @@ -56424,6 +54638,9 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"sHW" = ( +/turf/closed/wall, +/area/station/maintenance/hallway/abandoned_recreation) "sHX" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 6 @@ -56446,11 +54663,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"sID" = ( -/obj/effect/turf_decal/arrows/white, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) +"sIB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "sIO" = ( /obj/structure/grille/broken, /obj/item/shard/titanium, @@ -56464,6 +54680,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"sJg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/server) "sJi" = ( /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/smooth, @@ -56531,6 +54755,18 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"sKh" = ( +/obj/effect/landmark/start/librarian, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) +"sKj" = ( +/obj/machinery/light/warm/directional/east, +/obj/effect/turf_decal/tile/brown/anticorner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "sKk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56584,6 +54820,24 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/small, /area/station/security/warden) +"sKO" = ( +/obj/structure/table, +/obj/item/disk/cargo{ + pixel_x = 6 + }, +/obj/item/storage/fancy/cigarettes/cigpack_robust{ + pixel_x = -3; + pixel_y = 11 + }, +/obj/item/pen{ + pixel_x = -9; + pixel_y = 0 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "sKS" = ( /obj/structure/sign/poster/official/pda_ad/directional/north, /obj/structure/tank_holder/extinguisher, @@ -56591,25 +54845,6 @@ /obj/effect/gibspawner, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"sLu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/weldingtool/mini/empty{ - pixel_x = 5; - pixel_y = -1 - }, -/obj/item/storage/box/masks{ - pixel_x = 10; - pixel_y = 13 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -4; - pixel_y = 7 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "sLB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -56695,6 +54930,23 @@ /obj/structure/railing, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) +"sMB" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/structure/rack, +/obj/item/circuitboard/machine/thermomachine{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/circuitboard/machine/thermomachine{ + pixel_x = 2; + pixel_y = -3 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "sMD" = ( /turf/closed/wall, /area/station/science/server) @@ -56730,17 +54982,6 @@ dir = 8 }, /area/station/hallway/secondary/dock) -"sNc" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating{ - dir = 1 - }, -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmos) "sNg" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -56830,15 +55071,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) -"sOP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "sOR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public/glass{ @@ -56884,17 +55116,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"sQa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "sQb" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -56916,21 +55137,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"sQt" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/reflector/single{ - dir = 9 - }, -/turf/open/space/basic, -/area/space/nearstation) "sQv" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -57032,6 +55238,10 @@ dir = 8 }, /area/station/science/lobby) +"sRs" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "sRD" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -57051,15 +55261,6 @@ "sRL" = ( /turf/closed/wall, /area/station/service/janitor) -"sRR" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "sRT" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/siding/thinplating{ @@ -57075,6 +55276,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) +"sRW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "sSj" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 8 @@ -57090,39 +55295,9 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"sSx" = ( -/obj/structure/table, -/obj/item/restraints/handcuffs/cable{ - pixel_x = -1 - }, -/obj/item/paper/crumpled{ - pixel_x = 9; - pixel_y = -5 - }, -/obj/item/dest_tagger{ - pixel_x = 19; - pixel_y = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"sSA" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/turf/open/floor/iron, -/area/station/cargo/sorting) "sSB" = ( /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) -"sSM" = ( -/obj/effect/turf_decal/siding/yellow, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/textured_half, -/area/station/engineering/atmos) "sSN" = ( /obj/structure/flora/bush/flowers_pp/style_2, /turf/open/floor/grass, @@ -57134,24 +55309,6 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron, /area/station/hallway/secondary/construction) -"sSU" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/conveyor_switch/oneway{ - id = "packageSort2"; - name = "Sort and Deliver"; - pixel_x = 8; - pixel_y = 12 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "sSW" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -57193,10 +55350,28 @@ }, /turf/open/space/basic, /area/space/nearstation) +"sTJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "sTK" = ( /obj/machinery/telecomms/bus/preset_one, /turf/open/floor/circuit, /area/station/tcommsat/server) +"sTN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/west, +/obj/structure/destructible/cult/item_dispenser/archives/library, +/obj/item/book/codex_gigas, +/obj/machinery/light/small/dim/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/library/private) "sTR" = ( /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/medical/general, @@ -57207,13 +55382,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/small, /area/station/medical/coldroom) -"sTW" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "sUe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, @@ -57224,12 +55392,11 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"sUk" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Fuel Pipe to Incinerator" +"sUr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/station/engineering/atmos) "sUy" = ( /turf/closed/wall/r_wall, @@ -57257,6 +55424,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, /area/station/security/breakroom) +"sUM" = ( +/obj/machinery/power/emitter/welded, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "sUN" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -57317,16 +55489,30 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"sVG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/recreation) "sVN" = ( /turf/closed/wall/r_wall, /area/station/security/prison/workout) -"sVO" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/plating, -/area/station/hallway/primary/central/fore) +"sVQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/cargo/storage) "sWc" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/chem_master, @@ -57351,10 +55537,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/maintenance/starboard/greater) -"sWE" = ( -/obj/machinery/light/broken/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "sWQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57365,6 +55547,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/cytology) +"sXj" = ( +/obj/machinery/air_sensor/mix_tank, +/turf/open/floor/engine/vacuum, +/area/station/engineering/atmos) "sXm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -57452,6 +55638,9 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"sXY" = ( +/turf/closed/wall/r_wall/rust, +/area/station/engineering/supermatter/room) "sXZ" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -57526,12 +55715,19 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/effect/spawner/random/food_or_drink/donuts, /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchenshutters"; - name = "Kitchen Shutters" + name = "Kitchen Shutters"; + dir = 4 }, -/obj/effect/spawner/random/food_or_drink/donuts, -/turf/open/floor/plating, +/obj/effect/turf_decal/siding{ + dir = 4 + }, +/obj/effect/turf_decal/siding{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_large, /area/station/service/kitchen) "sZo" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ @@ -57584,6 +55780,18 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/robotics/lab) +"sZP" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tab" = ( /obj/structure/rack, /obj/item/restraints/handcuffs, @@ -57629,22 +55837,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/checkpoint/customs/auxiliary) -"taK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/meter, -/turf/open/floor/iron/smooth_corner{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "taL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57655,6 +55847,13 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"taT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "taZ" = ( /obj/structure/flora/bush/large/style_random{ pixel_y = -3 @@ -57740,27 +55939,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"tbX" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, -/turf/open/space/basic, -/area/space/nearstation) -"tca" = ( -/turf/open/floor/carpet/donk, -/area/station/command/heads_quarters/qm) "tcz" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"tcA" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/stock_parts/power_store/cell/emproof{ - pixel_y = 9 - }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "tcC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57769,17 +55952,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/security/processing) -"tcZ" = ( -/obj/effect/turf_decal/siding/red{ - dir = 6 - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 5; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) +"tdb" = ( +/turf/open/floor/wood, +/area/station/engineering/main) "tdh" = ( /obj/structure/chair/sofa/corp/right{ dir = 4 @@ -57787,6 +55962,10 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/wood/large, /area/station/command/corporate_suite) +"tdm" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "tdu" = ( /obj/structure/lattice, /obj/structure/railing{ @@ -57813,16 +55992,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/lockers) -"tdD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/white/corner, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "tdE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -57876,6 +56045,23 @@ /obj/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"teo" = ( +/obj/machinery/door/airlock/atmos/glass{ + name = "Distro Access" + }, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "tes" = ( /obj/machinery/computer/security/telescreen/entertainment/directional/north, /obj/effect/turf_decal/siding/wood{ @@ -57928,6 +56114,13 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"teV" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "tfc" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/effect/decal/cleanable/dirt, @@ -57951,13 +56144,12 @@ /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) "tfj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/door/airlock/command{ - name = "Research Division Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/server) +/obj/effect/turf_decal/bot_white, +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "tfy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/red{ @@ -57965,6 +56157,19 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) +"tfD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tfE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -57980,13 +56185,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"tfX" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/iron/dark/side, -/area/station/cargo/office) "tgl" = ( /turf/closed/wall, /area/station/service/greenroom) @@ -58023,14 +56221,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tgD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/decal/cleanable/ash, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "tgJ" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -58055,38 +56245,23 @@ dir = 1 }, /area/station/science/research) +"thw" = ( +/obj/machinery/atmospherics/components/binary/pump/layer4{ + dir = 8; + name = "mix to engine" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "thx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) -"thI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 - }, -/obj/machinery/meter, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "thM" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/structure/closet/secure_closet/miner, /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"tic" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "tii" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58140,29 +56315,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/science/lab) -"tiS" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"tiU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 5 - }, -/obj/machinery/meter, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "tiW" = ( /obj/structure/chair{ pixel_y = -2 @@ -58200,6 +56352,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"tjg" = ( +/obj/machinery/atmospherics/components/binary/pump/off{ + name = "O2 To Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tjj" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload) @@ -58214,14 +56375,6 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) -"tjH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/airalarm/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "tjT" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/turf_decal/siding/wood{ @@ -58238,6 +56391,12 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"tki" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "tkm" = ( /obj/structure/window/spawner/directional/west, /obj/structure/flora/bush/large/style_random{ @@ -58270,17 +56429,18 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/auxiliary) +"tkU" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "tlh" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/warning/cold_temp/directional/north, /turf/open/floor/plating, /area/station/medical/coldroom) -"tll" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/landmark/start/quartermaster, -/turf/open/floor/iron, -/area/station/cargo/storage) "tlt" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58288,10 +56448,9 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"tlC" = ( -/obj/structure/cable, -/turf/closed/wall/r_wall, -/area/station/maintenance/department/electrical) +"tlG" = ( +/turf/closed/wall, +/area/station/cargo/lobby) "tlI" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/flora/rock/pile/jungle/style_random, @@ -58304,11 +56463,9 @@ "tlJ" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/item/kirbyplants/random, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "tlX" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -58337,19 +56494,27 @@ /obj/machinery/light/floor, /turf/open/floor/grass, /area/station/service/hydroponics) -"tmL" = ( -/obj/structure/lattice, -/obj/structure/transit_tube/curved/flipped{ - dir = 4 +"tmK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "tmM" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/stairs/left{ dir = 8 }, /area/station/commons/fitness/locker_room) +"tmO" = ( +/obj/machinery/computer/atmos_control/mix_tank{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tmQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58375,6 +56540,18 @@ "tnb" = ( /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"tnh" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "tns" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -58384,16 +56561,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/science/explab) -"tnu" = ( -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/pen, -/obj/item/reagent_containers/cup/glass/mug/coco{ - pixel_x = 10; - pixel_y = 14 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "tnx" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58426,13 +56593,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) -"tnH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/effect/landmark/start/atmospheric_technician, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "tnZ" = ( /obj/structure/bookcase/random, /obj/structure/sign/poster/official/random/directional/west, @@ -58465,13 +56625,6 @@ }, /turf/open/floor/tram, /area/station/maintenance/port/aft) -"tov" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "toC" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -58523,13 +56676,6 @@ }, /turf/open/floor/plating/airless, /area/station/hallway/secondary/dock) -"toK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/plating, -/area/station/engineering/atmos/office) "toT" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -58544,6 +56690,11 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"toX" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "tpk" = ( /obj/machinery/vending/wardrobe/law_wardrobe, /obj/effect/turf_decal/siding/wood{ @@ -58605,6 +56756,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"tpW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "tqh" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 8 @@ -58662,10 +56819,12 @@ dir = 1 }, /area/station/hallway/secondary/dock) -"tro" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) +"tri" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "trp" = ( /turf/closed/wall, /area/station/maintenance/port/aft) @@ -58678,16 +56837,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"trA" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "trB" = ( /turf/open/floor/glass, /area/station/hallway/primary/central/aft) @@ -58698,20 +56847,49 @@ /obj/structure/sign/warning/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"trX" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - CO2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/carbon_output{ + dir = 1 + }, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"trY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/computer/atmos_control/plasma_tank, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tsb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line, /obj/structure/sign/departments/aiupload/directional/south, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"tsk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) "tsl" = ( -/obj/effect/landmark/atmospheric_sanity/ignore_area, -/obj/structure/chair/plastic{ - dir = 8 +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/effect/turf_decal/siding/wood, +/obj/machinery/door/airlock/public/glass{ + name = "Chapel Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/textured_half, +/area/station/service/chapel/office) "tst" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 4 @@ -58744,21 +56922,10 @@ "tsF" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/central/fore) -"tsR" = ( -/obj/machinery/electrolyzer, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/disposal/incinerator) "ttb" = ( /obj/structure/flora/grass/jungle/b/style_random, /turf/open/floor/grass, /area/station/service/chapel) -"ttg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "tts" = ( /obj/structure/altar_of_gods, /obj/item/book/bible, @@ -58778,6 +56945,10 @@ }, /turf/open/floor/engine, /area/station/science/cytology) +"ttL" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmospherics_engine) "ttV" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -58800,6 +56971,12 @@ }, /turf/open/floor/iron/small, /area/station/hallway/secondary/exit/departure_lounge) +"tua" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tug" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -58814,6 +56991,19 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, /area/station/security/processing) +"tuu" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) +"tuw" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tux" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58952,6 +57142,10 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/small, /area/station/security/tram) +"twA" = ( +/obj/machinery/portable_atmospherics/scrubber/huge, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "twE" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -59012,13 +57206,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"txd" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 8 - }, -/obj/machinery/air_sensor/carbon_tank, -/turf/open/floor/engine/co2, -/area/station/engineering/atmos/space_catwalk) "txh" = ( /turf/closed/wall/r_wall, /area/station/command/corporate_suite) @@ -59036,18 +57223,6 @@ "txN" = ( /turf/closed/wall, /area/station/security/prison/workout) -"txS" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "txV" = ( /obj/machinery/button/door/directional/east{ id = "AuxToilet3"; @@ -59065,6 +57240,13 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) +"tyc" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - O2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/oxygen_output, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "tyh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59095,22 +57277,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/captain, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"tyu" = ( -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "tyA" = ( /obj/machinery/vending/modularpc, /obj/structure/sign/departments/science/alt/directional/east, @@ -59127,19 +57293,6 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/birdshot/prison, /turf/open/floor/tram, /area/station/security/tram) -"tzh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "tzo" = ( /obj/structure/alien/egg/burst, /obj/structure/alien/weeds, @@ -59222,6 +57375,16 @@ }, /turf/open/floor/iron, /area/station/engineering/hallway) +"tAp" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 10 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tAq" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -59245,15 +57408,6 @@ }, /turf/open/floor/iron, /area/station/security) -"tAu" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "tAw" = ( /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /obj/machinery/door/airlock{ @@ -59284,19 +57438,6 @@ /obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/medical/central) -"tAF" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/door/airlock/public/glass{ - name = "Chapel Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/textured_half, -/area/station/service/chapel/office) "tAH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -59364,17 +57505,15 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"tCc" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/obj/structure/railing/corner/end/flip{ +"tBE" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tCh" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/siding/red, @@ -59437,23 +57576,21 @@ /obj/machinery/shower/directional/west, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) -"tDl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 5 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "tDn" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/prison) +"tDu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage top"; + name = "Secure Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/storage_shared) "tDz" = ( /obj/structure/window/spawner/directional/west, /obj/structure/chair/sofa/corp/left{ @@ -59521,6 +57658,17 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/security/tram) +"tEC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Robotics Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/lab) "tEL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -59542,13 +57690,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"tFB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron, -/area/station/engineering/atmos) "tFH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59595,6 +57736,10 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/smooth, /area/station/maintenance/solars/starboard/fore) +"tGF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/break_room) "tGI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59630,6 +57775,13 @@ /mob/living/carbon/human/species/monkey/punpun, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) +"tHo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "tHp" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -59645,14 +57797,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/hallway/secondary/entry) -"tHY" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "tIa" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair{ @@ -59696,6 +57840,9 @@ }, /turf/open/floor/wood, /area/station/engineering/break_room) +"tIR" = ( +/turf/open/floor/engine, +/area/station/engineering/supermatter) "tJe" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 1 @@ -59749,6 +57896,20 @@ "tJX" = ( /turf/open/floor/plating, /area/station/maintenance/aft) +"tJY" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/status_display/supply{ + pixel_x = 0; + pixel_y = 32 + }, +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/cargo/lobby) "tKa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -59757,10 +57918,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"tKf" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "tKl" = ( /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/tile/neutral{ @@ -59768,6 +57925,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"tKn" = ( +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) +"tKD" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tKG" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/mapping_helpers/broken_floor, @@ -59824,6 +57992,19 @@ }, /turf/open/floor/iron/white/small, /area/station/science/lab) +"tLp" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "tLt" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -59842,16 +58023,6 @@ dir = 1 }, /area/station/command/bridge) -"tMm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/machinery/meter, -/turf/open/floor/iron/smooth_edge{ - dir = 8 - }, -/area/station/engineering/supermatter/room) "tMs" = ( /obj/structure/cable, /obj/machinery/telecomms/server/presets/service, @@ -59860,13 +58031,6 @@ }, /turf/open/floor/circuit, /area/station/tcommsat/server) -"tMJ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "tMS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59888,6 +58052,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"tNm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "tNn" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -59920,6 +58089,16 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/engine, /area/station/science/xenobiology) +"tNy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Gun Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/auxlab/firing_range) "tNz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59947,26 +58126,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/aft) -"tNH" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/table/reinforced/titaniumglass, -/obj/item/clothing/gloves/color/red/insulated, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/belt/utility, -/obj/item/clothing/glasses/meson{ - pixel_y = -1; - pixel_x = -14 - }, -/obj/item/clothing/glasses/meson{ - pixel_y = 3; - pixel_x = -14 - }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "tNR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60021,6 +58180,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"tOu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "tOw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -60029,6 +58194,12 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) +"tOJ" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 4 + }, +/turf/open/misc/asteroid/airless, +/area/space/nearstation) "tOO" = ( /obj/structure/flora/bush/large/style_random{ pixel_x = -20; @@ -60045,27 +58216,10 @@ }, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"tPa" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/cargo/miningfoundry) "tPf" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"tPg" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/sorting) "tPm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/sign/poster/official/random/directional/north, @@ -60133,6 +58287,11 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) +"tQn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/official/no_erp/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "tQr" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/siding/green{ @@ -60166,15 +58325,18 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"tQZ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +"tQR" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Airlock" }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/warning/fire/directional/east, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "engine_airlock_2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/engineering/break_room) "tRc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60194,14 +58356,16 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, /area/station/security/courtroom) -"tRj" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) +"tRm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Plasma to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "tRw" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -60226,24 +58390,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/smooth, /area/station/maintenance/department/medical/central) -"tSg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/light_switch/directional/east, -/obj/item/clothing/head/cone{ - pixel_x = -7; - pixel_y = 11 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"tSi" = ( -/obj/machinery/light/cold/directional/west, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "tSp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60270,14 +58416,6 @@ /obj/machinery/light/small/broken/directional/west, /turf/open/floor/eighties, /area/station/service/abandoned_gambling_den/gaming) -"tSA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/sign/departments/cargo/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "tSB" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -60287,25 +58425,6 @@ }, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) -"tSN" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/engineering/supermatter) -"tSV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 5 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/smooth_corner{ - dir = 4 - }, -/area/station/engineering/supermatter/room) "tTg" = ( /obj/structure/table, /obj/item/trash/cheesie{ @@ -60353,12 +58472,6 @@ /obj/machinery/light/very_dim/directional/east, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"tTK" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "tTT" = ( /turf/open/floor/iron/white/corner{ dir = 1 @@ -60458,12 +58571,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"tUI" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/circuit, -/area/station/tcommsat/server) "tUZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -60504,19 +58611,6 @@ }, /turf/open/floor/plating, /area/station/science/robotics/lab) -"tVN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 6 - }, -/obj/machinery/meter, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) -"tVR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "tWm" = ( /obj/structure/flora/bush/jungle/c/style_3, /obj/effect/turf_decal/weather/dirt, @@ -60586,6 +58680,17 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/grass, /area/station/service/chapel) +"tXF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "tXG" = ( /obj/structure/chair{ dir = 8 @@ -60609,29 +58714,11 @@ }, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"tXS" = ( -/obj/structure/closet/secure_closet/engineering_personal, -/obj/structure/cable, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/west, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) "tYj" = ( /obj/item/exodrone, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"tYn" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "tYq" = ( /turf/closed/wall, /area/station/security/execution/transfer) @@ -60716,6 +58803,18 @@ }, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) +"tZE" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/engine/atmos) "tZI" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60759,14 +58858,6 @@ /obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/iron/white, /area/station/medical/virology) -"uah" = ( -/obj/item/mop, -/obj/item/reagent_containers/cup/bucket/wooden{ - pixel_x = 9; - pixel_y = -6 - }, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) "uax" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60787,14 +58878,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"uaK" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/engineering/atmos) "uaT" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -60836,22 +58919,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"ubh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/lead_pipe, -/obj/item/pipe_dispenser, -/obj/item/stack/pipe_cleaner_coil, -/obj/item/pipe, -/obj/item/pipe, -/obj/item/pipe, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "ubl" = ( /obj/structure/easel, /obj/item/canvas/twentythree_twentythree, @@ -60859,11 +58926,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/commons/storage/art) -"ubs" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/space/basic, -/area/space/nearstation) "uby" = ( /turf/closed/wall, /area/station/security/prison/garden) @@ -60906,6 +58968,20 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"ucm" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ucy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/red{ @@ -60930,6 +59006,13 @@ }, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"ucO" = ( +/obj/machinery/light/floor, +/obj/structure/flora/bush/flowers_br/style_3, +/obj/structure/flora/bush/flowers_yw, +/obj/structure/flora/bush/flowers_pp, +/turf/open/floor/grass, +/area/station/hallway/primary/central/fore) "ucR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock{ @@ -60937,6 +59020,16 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"ucS" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4; + initialize_directions = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ucY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60997,6 +59090,12 @@ }, /turf/open/floor/iron/textured_large, /area/station/security/brig/entrance) +"udH" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "udK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61015,12 +59114,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"udP" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) +"udO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "udW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61090,6 +59187,27 @@ }, /turf/open/floor/iron/textured_large, /area/station/command/heads_quarters/hop) +"ueL" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/landmark/start/bitrunner, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) +"ueP" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - Air" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "ueX" = ( /turf/closed/wall/rust, /area/station/maintenance/port/fore) @@ -61099,6 +59217,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_half, /area/station/hallway/primary/central/fore) +"ufe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "uff" = ( /obj/machinery/holopad, /turf/open/floor/wood/large, @@ -61135,15 +59261,6 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ufR" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/door/airlock/engineering/glass{ - name = "Freezer Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor, -/area/station/engineering/supermatter/room) "ugb" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "outerbrig"; @@ -61237,18 +59354,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"ugX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Augment Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "uhe" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/conveyor{ @@ -61260,12 +59365,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"uhh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/iron/stairs/left{ - dir = 1 - }, -/area/station/engineering/atmos) "uhj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61332,14 +59431,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/small, /area/station/medical/chemistry) -"uic" = ( -/obj/machinery/computer/atmos_alert{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "uid" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61382,6 +59473,31 @@ }, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"uiK" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engine/atmos) +"uiO" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 10 + }, +/obj/structure/sign/poster/official/the_owl/directional/west, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "uiS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61390,6 +59506,13 @@ dir = 1 }, /area/station/science/research) +"uiU" = ( +/obj/effect/spawner/structure/window, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/cargo/office) "uiY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -61413,6 +59536,13 @@ /obj/item/stack/sheet/cardboard, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"uju" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) "ujA" = ( /turf/closed/wall/r_wall, /area/station/security/warden) @@ -61463,6 +59593,10 @@ }, /turf/open/floor/iron/grimy, /area/station/tcommsat/server) +"ukf" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uki" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall, @@ -61503,6 +59637,10 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"ukP" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, +/area/station/engineering/atmos) "ukQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61519,6 +59657,12 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"ukY" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/turf/open/floor/engine/plasma, +/area/station/engineering/atmos) "ulb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -61529,13 +59673,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/cryo) -"ulf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos) "ull" = ( /obj/machinery/light/cold/directional/west, /turf/open/floor/iron, @@ -61555,6 +59692,13 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/command/meeting_room) +"ulC" = ( +/obj/structure/closet/secure_closet/atmospherics, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "ulE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61586,19 +59730,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"umn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "South Ports to Wastes" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "umr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -61627,6 +59758,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"umL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "unc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61643,12 +59782,11 @@ /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) "unG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/miningfoundry) "unK" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -61702,14 +59840,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"upf" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/light/cold/dim/directional/south, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "upg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -61745,6 +59875,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/primary/starboard) +"upF" = ( +/obj/structure/table, +/obj/item/toy/eightball{ + pixel_x = -4 + }, +/obj/item/wirecutters{ + pixel_y = 17; + pixel_x = 4 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "upG" = ( /obj/structure/railing, /obj/structure/cable, @@ -61754,6 +59895,12 @@ dir = 4 }, /area/station/command/heads_quarters/ce) +"upM" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "upP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61781,6 +59928,16 @@ }, /turf/open/space/basic, /area/space/nearstation) +"uqg" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro Staging to Waste" + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "uql" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -61796,28 +59953,6 @@ "uqw" = ( /turf/closed/wall/r_wall, /area/station/commons/fitness/recreation) -"uqA" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix Outlet Pump" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/light/cold/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) -"uqE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "uqF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -61825,13 +59960,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"uqG" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "uqH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61873,12 +60001,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"ura" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/light/small/directional/east, -/obj/effect/landmark/start/janitor, -/turf/open/floor/iron/grimy, -/area/station/commons) "urd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61919,6 +60041,12 @@ dir = 8 }, /area/station/engineering/main) +"urh" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "urk" = ( /obj/structure/disposalpipe/junction{ dir = 1 @@ -61992,11 +60120,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark/small, /area/station/hallway/secondary/dock) -"urE" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light/cold/dim/directional/west, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "urF" = ( /obj/machinery/computer/cargo{ dir = 1 @@ -62019,6 +60142,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/execution/transfer) +"urP" = ( +/obj/structure/closet/secure_closet/atmospherics, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "urQ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -62027,15 +60154,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"usg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "usF" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/easel, @@ -62060,16 +60178,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"utf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{ - dir = 8; - initialize_directions = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "utm" = ( /turf/closed/wall/r_wall, /area/station/science/auxlab/firing_range) @@ -62078,13 +60186,6 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"utv" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "utD" = ( /obj/machinery/light_switch/directional/west, /obj/effect/turf_decal/stripes/corner{ @@ -62106,23 +60207,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/meeting_room) -"utH" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/command/glass{ - name = "Quartermaster's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/qm, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/command/heads_quarters/qm) "utP" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/paper_bin/carbon{ @@ -62141,16 +60225,25 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uus" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 +"uur" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/storage/wallet{ + pixel_x = -3; + pixel_y = 10 }, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Lockers" +/obj/item/cigarette/cigar{ + pixel_x = -1; + pixel_y = -2 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) +/obj/item/lighter{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/machinery/light/directional/south, +/obj/structure/sign/poster/official/random/directional/south, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "uuz" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -62161,25 +60254,15 @@ /obj/machinery/camera/directional/west, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"uuN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"uuA" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, +/obj/effect/landmark/start/atmospheric_technician, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/cargo/sorting) -"uuR" = ( -/obj/machinery/door/airlock/wood{ - desc = "Sessions held every Friday."; - name = "The Sunfinder Society" - }, -/obj/effect/mapping_helpers/airlock/abandoned, -/turf/open/floor/plating, -/area/station/cargo/miningfoundry) +/turf/open/floor/wood, +/area/station/engineering/break_room) "uuS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/blue{ @@ -62187,6 +60270,20 @@ }, /turf/open/floor/iron/white/small, /area/station/medical/storage) +"uuY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research/glass{ + name = "Gun Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/auxlab/firing_range) "uvb" = ( /obj/structure/dresser, /turf/open/floor/wood, @@ -62200,19 +60297,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"uvo" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Pure to Mix Chamber" - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new/dark{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "uvx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62230,25 +60314,11 @@ "uvA" = ( /turf/closed/wall/r_wall, /area/station/command/gateway) -"uvB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "uvG" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/spawner/random/entertainment/arcade, /turf/open/floor/iron, -/area/station/holodeck/rec_center) +/area/station/commons/fitness/recreation/entertainment) "uwB" = ( /obj/effect/turf_decal/tile/dark_red/half/contrasted{ dir = 4 @@ -62265,15 +60335,14 @@ /obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uxd" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"uwO" = ( +/obj/machinery/door/airlock/hatch{ + name = "Tool Supply Corridor" }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/commons/storage/tools) "uxJ" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/machinery/door/firedoor, @@ -62300,28 +60369,11 @@ /obj/structure/broken_flooring/singular/directional/south, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"uyB" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Atmospherics Project Bay" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/engineering/atmos) "uyH" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/small, /area/station/security/warden) -"uyS" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Mix to Engine" - }, -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "uzj" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -62340,13 +60392,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/aft) -"uzI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "uzJ" = ( /turf/open/floor/iron, /area/station/cargo/storage) @@ -62409,12 +60454,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood/tile, /area/station/command/bridge) -"uAT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 9 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "uAY" = ( /turf/open/floor/plating, /area/station/maintenance/department/bridge) @@ -62464,6 +60503,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/stairs, /area/station/engineering/storage/tech) +"uBE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/light/no_nightlight/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "uBI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -62494,6 +60538,10 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/service/bar/backroom) +"uBP" = ( +/obj/effect/turf_decal/bot/left, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uBQ" = ( /obj/structure/table/bronze, /obj/machinery/microwave{ @@ -62506,27 +60554,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) -"uCa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ - dir = 4; - piping_layer = 2 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "uCe" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -62550,13 +60577,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white/side, /area/station/hallway/primary/starboard) -"uCE" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 5 - }, -/obj/structure/railing, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) "uCH" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/stripes/line{ @@ -62566,16 +60586,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"uCL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "uDg" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -62672,16 +60682,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/stone, /area/station/command/corporate_suite) -"uEw" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "uEC" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/box/red/corners{ @@ -62692,6 +60692,13 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"uEH" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "uEI" = ( /obj/structure/flora/bush/lavendergrass/style_random, /obj/structure/window/reinforced/spawner/directional/west, @@ -62725,12 +60732,29 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/brig) +"uEZ" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/engineering/atmospherics_engine) "uFc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"uFe" = ( +/obj/effect/turf_decal/arrows/red{ + dir = 4; + pixel_x = -15 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uFk" = ( /obj/structure/flora/rock/pile/jungle/style_random, /obj/structure/window/reinforced/spawner/directional/east, @@ -62772,17 +60796,6 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/security/lockers) -"uFy" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/space/basic, -/area/space/nearstation) "uFA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62799,15 +60812,17 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/plating, /area/station/service/chapel/funeral) -"uFT" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron/stairs{ - dir = 4 - }, -/area/station/engineering/atmos/office) +"uFS" = ( +/obj/machinery/igniter/incinerator_atmos, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/turf/open/floor/engine/vacuum, +/area/station/maintenance/disposal/incinerator) +"uFZ" = ( +/obj/effect/turf_decal/siding/wood, +/obj/machinery/vending/wardrobe/jani_wardrobe, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/small, +/area/station/service/janitor) "uGj" = ( /obj/effect/turf_decal/tile/green/half/contrasted, /obj/structure/table/glass, @@ -62818,10 +60833,6 @@ /obj/effect/mapping_helpers/requests_console/ore_update, /turf/open/floor/iron/white, /area/station/medical/virology) -"uGy" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "uGA" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62843,16 +60854,11 @@ dir = 1 }, /area/station/hallway/primary/starboard) -"uGB" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) +"uGF" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "uGH" = ( /obj/machinery/rnd/production/circuit_imprinter, /obj/effect/turf_decal/bot, @@ -62891,13 +60897,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/small, /area/station/security/brig) -"uGS" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics - PROJECT" - }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "uGT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62960,21 +60959,29 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"uHq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/space/basic, -/area/space/nearstation) "uHv" = ( /obj/structure/rack, /obj/item/pipe_dispenser, /obj/item/assault_pod/mining, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"uHE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/mining/glass{ + name = "Delivery Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron/small, +/area/station/cargo/sorting) "uHF" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /obj/machinery/door/airlock{ @@ -63020,17 +61027,13 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/station/medical/treatment_center) -"uIv" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +"uIu" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "uIy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -63041,6 +61044,16 @@ }, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) +"uIG" = ( +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "uIP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63067,11 +61080,6 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) -"uJd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "uJi" = ( /obj/effect/turf_decal/tile/green/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -63085,10 +61093,6 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/maintenance/fore/greater) -"uJC" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/engineering/atmos) "uJD" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -63103,19 +61107,27 @@ /obj/machinery/shieldgen, /turf/open/floor/iron/dark/small, /area/station/engineering/storage_shared) -"uJU" = ( -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil{ - pixel_x = -1; - pixel_y = 8 +"uJI" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/landmark/start/quartermaster, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 5; - pixel_y = 1 +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) +"uJV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, -/obj/effect/landmark/event_spawn, /turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/area/station/cargo/office) "uKh" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/bot, @@ -63167,30 +61179,29 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uKO" = ( -/obj/structure/table/greyscale, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = -10; - pixel_y = 6 - }, -/obj/item/stack/sheet/iron/fifty{ - pixel_y = 10; - pixel_x = 2 - }, -/obj/item/clothing/glasses/welding, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) -"uKP" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/wood, -/area/station/command/heads_quarters/qm) "uLj" = ( /turf/closed/wall, /area/station/commons/toilet/auxiliary) +"uLk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor{ + id = "Secure Storage below"; + name = "Secure Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating/rust, +/area/station/engineering/main) +"uLz" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "uLD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63235,13 +61246,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/secondary/service) -"uMh" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) "uMl" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -63266,6 +61270,14 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white/diagonal, /area/station/maintenance/department/science/xenobiology) +"uMF" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Gas to Filter" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "uMH" = ( /turf/open/floor/iron/white/side, /area/station/science/research) @@ -63292,18 +61304,6 @@ "uMU" = ( /turf/closed/wall, /area/station/science/robotics/mechbay) -"uMV" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/railing/corner, -/obj/structure/cable, -/obj/structure/railing/corner{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "uNa" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -63320,13 +61320,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs) -"uNk" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 - }, -/obj/machinery/shower/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/break_room) "uNz" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/dark_red{ @@ -63335,11 +61328,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/stone, /area/station/command/heads_quarters/hos) -"uNO" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "uNR" = ( /obj/structure/cable, /obj/structure/chair{ @@ -63367,6 +61355,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) +"uOt" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "uOw" = ( /turf/open/floor/iron, /area/station/maintenance/department/medical/central) @@ -63381,22 +61378,23 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"uOL" = ( -/obj/structure/table/reinforced/titaniumglass, -/obj/item/hfr_box/body/fuel_input, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "uOP" = ( /obj/structure/cable, /obj/machinery/airalarm/directional/north, /turf/open/floor/wood/tile, /area/station/command/meeting_room) "uPf" = ( -/obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, -/area/station/maintenance/department/electrical) +/area/station/maintenance/port/fore) "uPr" = ( /obj/structure/weightmachine/weightlifter, /obj/effect/turf_decal/bot, @@ -63428,11 +61426,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/small, /area/station/commons/toilet/restrooms) -"uPN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall, -/area/station/engineering/supermatter/room) "uPW" = ( /obj/structure/flora/bush/flowers_pp/style_2, /obj/structure/flora/bush/large/style_3, @@ -63471,6 +61464,20 @@ /obj/effect/turf_decal/stripes/red/line, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"uQo" = ( +/turf/open/floor/engine/air, +/area/station/engineering/atmos) +"uQt" = ( +/obj/machinery/door/airlock/command/glass{ + name = "Quartermaster's Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/qm, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/command/heads_quarters/qm) "uQu" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/status_display/door_timer{ @@ -63484,6 +61491,12 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/commons/fitness/locker_room) +"uQI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "uQK" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -63494,6 +61507,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"uQT" = ( +/obj/machinery/air_sensor/carbon_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/co2, +/area/station/engineering/atmos) +"uQY" = ( +/obj/machinery/door/airlock/external{ + name = "Atmospherics External Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "uRe" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/turf_decal/tile/red{ @@ -63535,23 +61562,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/security/execution/education) -"uRO" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "uRR" = ( /obj/structure/table, /obj/item/plant_analyzer, @@ -63572,6 +61582,11 @@ "uSa" = ( /turf/open/floor/iron, /area/station/maintenance/department/engine/atmos) +"uSc" = ( +/obj/machinery/air_sensor/nitrous_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "uSh" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -63596,14 +61611,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) -"uSt" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) "uSB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63613,17 +61620,14 @@ /obj/effect/landmark/navigate_destination/tcomms, /turf/open/floor/iron, /area/station/science/lower) -"uSG" = ( -/obj/structure/cable, +"uSM" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/smooth, -/area/station/command/heads_quarters/qm) -"uSI" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood, -/area/station/cargo/boutique) +/obj/effect/spawner/random/structure/closet_empty/crate, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "uSN" = ( /obj/effect/spawner/random/vending/snackvend, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -63678,6 +61682,15 @@ }, /turf/open/floor/iron/textured_large, /area/station/security/checkpoint/escape) +"uTN" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics Tank - N2O" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ + dir = 1 + }, +/turf/open/floor/engine/n2o, +/area/station/engineering/atmos) "uTO" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -63692,19 +61705,6 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/xenobiology) -"uUb" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/obj/structure/table, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/microwave{ - pixel_y = 6 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) "uUe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -63722,15 +61722,36 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"uUp" = ( -/obj/effect/turf_decal/stripes/line{ +"uUq" = ( +/obj/structure/table/wood, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/dest_tagger{ + pixel_x = -11; + pixel_y = 4 + }, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) +"uUz" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/light_switch/directional/east, +/obj/effect/mapping_helpers/turn_off_lights_with_lightswitch, +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +/obj/effect/turf_decal/stripes/white/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) "uUA" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -63743,12 +61764,25 @@ }, /turf/open/floor/stone, /area/station/service/bar) -"uUG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +"uUS" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Cubicle" }, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) +"uUU" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/engineering/atmos) "uVo" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -63761,6 +61795,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"uVB" = ( +/obj/item/kirbyplants/organic/plant17, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/calendar{ + pixel_x = 0; + pixel_y = -26 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/station/maintenance/hallway/abandoned_recreation) "uVD" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/airalarm/directional/east, @@ -63869,18 +61914,6 @@ "uXC" = ( /turf/closed/wall, /area/station/science/lower) -"uXI" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) -"uXS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/holopad, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "uXU" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -64060,14 +62093,13 @@ "vbK" = ( /turf/closed/wall, /area/station/science/research) -"vbL" = ( +"vbM" = ( /obj/structure/lattice/catwalk, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 }, /turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/area/space/nearstation) "vbO" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -64107,10 +62139,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"vcm" = ( -/obj/item/pickaxe, -/turf/open/misc/asteroid, -/area/station/maintenance/department/electrical) "vcB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64132,11 +62160,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vcR" = ( -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/engineering/atmos) "vcW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64166,26 +62189,6 @@ /obj/structure/railing/corner, /turf/open/space/basic, /area/space/nearstation) -"vdi" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer1{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer4{ - dir = 8 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "vdj" = ( /obj/effect/turf_decal/tile/blue, /obj/structure/filingcabinet/chestdrawer{ @@ -64196,21 +62199,6 @@ dir = 1 }, /area/station/command/heads_quarters/hop) -"vdl" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/button/door/directional/east{ - id = "qm_warehouse_aft"; - name = "Warehouse Door Control"; - pixel_x = -24; - pixel_y = -23; - req_access = list("cargo") - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "vdt" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/stripes/line{ @@ -64236,13 +62224,6 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/small, /area/station/maintenance/department/engine/atmos) -"vdB" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) "vdH" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue{ @@ -64250,20 +62231,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vdL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"vdS" = ( -/obj/structure/closet/firecloset, -/obj/item/clothing/glasses/meson, -/obj/item/radio/intercom/directional/east, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/engineering/main) "vdX" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -64309,18 +62276,6 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"vey" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Augment Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/augments) "veA" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /obj/machinery/door/poddoor/shutters/preopen{ @@ -64339,6 +62294,14 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"veR" = ( +/obj/machinery/computer/atmos_control/nocontrol/incinerator{ + dir = 8 + }, +/obj/machinery/firealarm/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "vfc" = ( /obj/structure/table, /obj/item/flashlight/lamp, @@ -64381,10 +62344,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"vfG" = ( -/obj/structure/hedge, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "vfI" = ( /obj/machinery/microwave{ pixel_y = 5 @@ -64434,6 +62393,19 @@ /obj/item/toy/crayon/purple, /turf/open/floor/iron/white, /area/station/science/research) +"vgf" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vgh" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -64482,6 +62454,15 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"vgL" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/components/binary/volume_pump, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/office) "vgN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -64509,10 +62490,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"vhe" = ( -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/iron/smooth, -/area/station/cargo/office) "vhr" = ( /obj/structure/sink/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -64571,11 +62548,6 @@ dir = 8 }, /area/station/science/research) -"viw" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "viy" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64641,15 +62613,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"vja" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/item/kirbyplants/random, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "vjb" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -64663,6 +62626,15 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"vjs" = ( +/obj/structure/disposalpipe/segment, +/obj/item/food/grown/pineapple{ + pixel_x = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "vjI" = ( /obj/machinery/door/airlock{ name = "Bathrooms" @@ -64670,39 +62642,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_half, /area/station/commons/toilet/restrooms) -"vjK" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) -"vjZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "vkh" = ( /turf/closed/wall, /area/station/service/bar) -"vkn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research{ - name = "Research and Development Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/research, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "vkr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64768,6 +62710,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/command/heads_quarters/qm) +"vkR" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "vkS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64837,13 +62790,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"vlC" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/grille/broken, -/obj/item/stack/rods/two, -/obj/effect/decal/cleanable/molten_object, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "vlV" = ( /turf/closed/wall, /area/station/maintenance/aft) @@ -64963,6 +62909,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side, /area/station/science/lower) +"vni" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vnj" = ( /obj/structure/table, /obj/item/clothing/under/rank/prisoner/skirt{ @@ -64988,21 +62945,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) -"vnp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "vnq" = ( /obj/structure/cable, /obj/structure/bed/medical/anchored{ @@ -65016,10 +62958,6 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) -"vnr" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/wood, -/area/station/service/chapel/office) "vnu" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/table, @@ -65030,16 +62968,6 @@ /obj/machinery/door/airlock/glass, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"vnz" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "vnC" = ( /obj/structure/closet{ name = "Evidence Closet 2" @@ -65072,6 +63000,11 @@ "vnI" = ( /turf/closed/mineral/random/stationside, /area/station/maintenance/department/engine) +"vnL" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space/basic, +/area/space/nearstation) "vnN" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ @@ -65083,6 +63016,13 @@ /obj/machinery/medical_kiosk, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"vnZ" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 6 + }, +/turf/open/space/basic, +/area/space/nearstation) "voe" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -65127,29 +63067,6 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall/r_wall, /area/station/command/teleporter) -"voO" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"vpb" = ( -/obj/machinery/door/airlock/hatch{ - name = "Tool Supply Corridor" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/cargo/office) -"vpg" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "vpk" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -65163,6 +63080,15 @@ /obj/item/radio/intercom/prison/directional/north, /turf/open/floor/iron, /area/station/security/prison/work) +"vpz" = ( +/obj/machinery/light/small/directional/south{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/engine/air, +/area/station/engineering/atmos) "vpF" = ( /obj/structure/table, /obj/item/dyespray, @@ -65188,20 +63114,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/carpet, /area/station/commons/dorms) -"vpS" = ( -/obj/machinery/atmospherics/pipe/smart/simple/supply/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold/supply/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "vpT" = ( /obj/structure/chair/sofa/bench{ dir = 1 @@ -65314,15 +63226,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/herringbone, /area/station/commons/dorms) -"vrK" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/space/basic, -/area/space/nearstation) "vrO" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ @@ -65364,6 +63267,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) +"vse" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"vsf" = ( +/obj/structure/closet/crate{ + name = "Materials Crate" + }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light/cold/dim/directional/west, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark/small, +/area/station/engineering/storage_shared) "vsi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -65385,6 +63304,16 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"vsJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "vsQ" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -65407,16 +63336,6 @@ /obj/machinery/light/floor, /turf/open/floor/wood/parquet, /area/station/service/library) -"vtw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "vtA" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -65451,19 +63370,21 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"vud" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/smooth, +/area/station/engineering/main) "vuj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/fuel_pellet, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"vuk" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/space/basic, -/area/space/nearstation) "vum" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/north, @@ -65524,25 +63445,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"vuH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) -"vuJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "vuR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65560,6 +63462,14 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/paramedic) +"vuV" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Distro to Waste" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "vva" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/airlock/public/glass{ @@ -65596,23 +63506,18 @@ /obj/structure/cable, /turf/open/floor/iron/textured_half, /area/station/hallway/primary/aft) -"vvg" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste to Port Filter" - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "vvs" = ( /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"vvw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "vvz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -65622,13 +63527,14 @@ /turf/open/floor/iron, /area/station/hallway/secondary/construction) "vvC" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/any/engineering/construction, /obj/structure/cable, /obj/effect/landmark/navigate_destination, +/obj/machinery/door/airlock/engineering{ + name = "Main Engineering" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/catwalk_floor, /area/station/engineering/break_room) "vvK" = ( @@ -65786,19 +63692,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, +/obj/effect/landmark/start/botanist, /turf/open/floor/iron/small, /area/station/hallway/secondary/service) "vxM" = ( /turf/open/floor/iron, /area/station/commons/storage/art) -"vxR" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - piping_layer = 2 - }, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vxX" = ( /obj/effect/spawner/random/structure/steam_vent, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65836,13 +63735,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/corporate_dock) -"vyM" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "vyP" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 1 @@ -65905,6 +63797,10 @@ /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"vzD" = ( +/obj/effect/turf_decal/stripes/white/line, +/turf/open/floor/iron/dark/side, +/area/station/cargo/storage) "vzE" = ( /obj/structure/window/spawner/directional/east, /obj/structure/window/spawner/directional/west, @@ -65924,6 +63820,14 @@ }, /turf/open/floor/engine/helium, /area/station/ai_monitored/turret_protected/ai) +"vzN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research/glass{ + name = "Cytology Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/research, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/research) "vzV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65951,21 +63855,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/tram) -"vAb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/structure/cable, -/obj/item/clothing/head/cone{ - pixel_x = 6; - pixel_y = 9 - }, -/obj/item/clothing/head/cone{ - pixel_x = 11; - pixel_y = -9 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "vAl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/table/wood, @@ -66088,6 +63977,15 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"vCp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/engineering/atmos/office) "vCq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/stone, @@ -66127,13 +64025,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"vDg" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) "vDB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66149,10 +64040,13 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"vDD" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) +"vDG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "vDQ" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -66212,20 +64106,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"vEL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "vEP" = ( /turf/closed/wall/r_wall, /area/station/security/brig) -"vEQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/cold/directional/east, -/obj/item/radio/intercom/directional/east, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/smooth, -/area/station/engineering/engine_smes) "vET" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral{ @@ -66239,33 +64131,6 @@ "vEW" = ( /turf/closed/wall/r_wall, /area/station/security/prison/shower) -"vEZ" = ( -/obj/structure/railing, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "atmos"; - name = "Atmospherics Blast Door" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) -"vFf" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/meter, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "vFh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/blobstart, @@ -66346,12 +64211,6 @@ /obj/item/storage/lockbox/loyalty, /turf/open/floor/iron, /area/station/security/tram) -"vFW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ - dir = 1 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) "vGe" = ( /obj/effect/turf_decal/tile/red/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -66383,6 +64242,16 @@ dir = 10 }, /area/station/hallway/secondary/construction) +"vGS" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/camera/directional/south{ + c_tag = "Atmospherics - Central Aft" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "vGU" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -66437,27 +64306,22 @@ }, /turf/open/floor/wood, /area/station/service/chapel/office) +"vHX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/office) "vId" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/science/lower) -"vIp" = ( -/obj/structure/table, -/obj/item/folder/yellow{ - pixel_x = 4 - }, -/obj/item/stack/sheet/mineral/plasma/thirty, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/phone{ - pixel_x = -6; - pixel_y = 7 - }, -/turf/open/floor/iron/small, -/area/station/engineering/engine_smes) "vIt" = ( /obj/machinery/door/airlock{ name = "Maintenance" @@ -66481,9 +64345,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"vIF" = ( -/turf/closed/wall, -/area/station/engineering/atmos/pumproom) "vIJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/firedoor, @@ -66516,12 +64377,6 @@ }, /turf/open/floor/iron/dark/herringbone, /area/station/security/courtroom) -"vJe" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/south, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "vJn" = ( /obj/structure/closet/crate/coffin, /obj/structure/window/spawner/directional/west, @@ -66545,6 +64400,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"vJE" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Public Shrine" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured_half, +/area/station/hallway/primary/port) "vJG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -66635,13 +64497,6 @@ /obj/effect/landmark/start/chief_engineer, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) -"vKs" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "vKG" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -66722,20 +64577,24 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) -"vLD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "vLF" = ( /obj/structure/closet/secure_closet/courtroom, /obj/item/gavelblock, /obj/item/gavelhammer, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"vLP" = ( -/turf/closed/wall/rust, -/area/station/command/heads_quarters/qm) +"vLH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Augment Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "vLQ" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -66751,15 +64610,10 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/pharmacy) -"vMo" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/tank{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/pumproom) +"vLX" = ( +/obj/effect/turf_decal/box/white, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "vMr" = ( /obj/effect/turf_decal/sand/plating, /obj/structure/alien/weeds, @@ -66791,6 +64645,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"vMI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "vMJ" = ( /obj/structure/disposalpipe/sorting/mail, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66825,11 +64685,6 @@ /obj/structure/tram, /turf/open/floor/tram, /area/station/security/tram) -"vNn" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/hallway/secondary/recreation) "vNq" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -66853,14 +64708,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"vNv" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "vNM" = ( /obj/machinery/door/airlock{ name = "Hydroponics Maintenance" @@ -66875,6 +64722,14 @@ dir = 8 }, /area/station/service/hydroponics) +"vNO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "vOf" = ( /obj/structure/cable, /obj/structure/chair{ @@ -66884,6 +64739,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/science/lower) +"vOg" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/turf/closed/wall/r_wall, +/area/station/maintenance/disposal/incinerator) "vOm" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -66935,16 +64794,6 @@ /obj/structure/sign/departments/medbay/alt/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"vPt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/commons) "vPw" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66975,13 +64824,6 @@ /obj/effect/spawner/random/trash, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"vPY" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "vQk" = ( /obj/effect/spawner/random/structure/crate, /obj/machinery/computer/security/telescreen/entertainment/directional/east, @@ -67023,6 +64865,10 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/eighties/red, /area/station/hallway/primary/central/fore) +"vRc" = ( +/obj/effect/turf_decal/loading_area/white, +/turf/open/floor/iron, +/area/station/cargo/lobby) "vRd" = ( /obj/structure/table, /obj/effect/turf_decal/tile/dark_red, @@ -67043,11 +64889,6 @@ dir = 1 }, /area/station/science/research) -"vRn" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/station/maintenance/port/greater) "vRt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67059,20 +64900,9 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"vRH" = ( -/obj/structure/reagent_dispensers/beerkeg, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "vSg" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/aft) -"vSh" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "vSi" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood/end, @@ -67089,6 +64919,24 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vSn" = ( +/obj/structure/hedge, +/obj/machinery/status_display/supply{ + pixel_y = 32 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/cargo/storage) +"vSt" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/wood, +/area/station/engineering/atmos/pumproom) "vSw" = ( /obj/effect/landmark/start/hangover, /obj/structure/cable, @@ -67119,6 +64967,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vSM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/command{ + name = "Telecomms Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-north" + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "vSW" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -67141,22 +65003,16 @@ /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) "vTg" = ( -/obj/structure/table/reinforced, -/obj/item/folder/yellow{ - pixel_x = 4 - }, -/obj/item/storage/pill_bottle/potassiodide{ - pixel_y = 12; - pixel_x = -6 +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/machinery/door/airlock/command/glass{ + name = "Telecommunications Server Room" }, -/obj/item/pen/screwdriver, -/obj/item/radio/intercom/directional/west, -/obj/item/geiger_counter{ - pixel_x = 7; - pixel_y = 14 +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "comms-entrance-north" }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/storage/gas) +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/tcommsat/server) "vTj" = ( /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt/dust, @@ -67253,16 +65109,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"vUh" = ( -/obj/machinery/atmospherics/components/binary/pump/off/general/visible/layer1{ - dir = 4; - name = "Plasma to Pure"; - color = "#BF40BF"; - piping_layer = 3; - icon_state = "pump_map-3" - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "vUz" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -67432,6 +65278,14 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"vWy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/departments/cargo/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "vWA" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/firealarm/directional/south, @@ -67512,6 +65366,15 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron, /area/station/security/prison/rec) +"vXv" = ( +/obj/structure/table, +/obj/item/toy/foamblade, +/obj/item/analyzer{ + pixel_y = 8; + pixel_x = -9 + }, +/turf/open/floor/iron/dark/small, +/area/station/commons/fitness/locker_room) "vXy" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/white/corner{ @@ -67627,10 +65490,24 @@ }, /turf/open/floor/iron, /area/station/security/prison/garden) +"vZd" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "vZm" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, /area/station/security/processing) +"vZu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/mapping_helpers/apc/cell_10k, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "vZD" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red/fourcorners, @@ -67649,18 +65526,11 @@ }, /turf/open/floor/stone, /area/station/service/abandoned_gambling_den) -"vZM" = ( -/obj/item/clothing/head/cone{ - pixel_x = -17; - pixel_y = -7 - }, -/obj/structure/grille, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/obj/effect/decal/cleanable/glass/plasma, -/turf/open/floor/engine, -/area/station/engineering/atmos) +"vZS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "vZW" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -67695,13 +65565,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"way" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/smooth, -/area/station/engineering/main) "waD" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -67777,14 +65640,15 @@ dir = 1 }, /area/station/science/lower) -"wby" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 4 +"wbt" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/closet/secure_closet/quartermaster, +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 10 }, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) +/turf/open/floor/carpet/red, +/area/station/command/heads_quarters/qm) "wbH" = ( /obj/machinery/holopad, /obj/effect/decal/cleanable/dirt, @@ -67836,11 +65700,11 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) -"wcz" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/iron, -/area/station/cargo/sorting) +"wcF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "wcG" = ( /obj/effect/turf_decal/tile/red/opposingcorners{ dir = 1 @@ -67875,6 +65739,20 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/kitchen/small, /area/station/security/prison/mess) +"wcY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/button/door/directional/west{ + id = "engsm"; + name = "Radiation Shutters Control"; + req_access = list("engineering") + }, +/obj/structure/cable, +/obj/machinery/meter, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wdd" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67900,11 +65778,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"wdJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible/layer5, -/turf/open/space/basic, -/area/space/nearstation) "wdS" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 4 @@ -67925,6 +65798,18 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) +"wed" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/research{ + name = "Augment Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/robotics, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) "wen" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -67940,15 +65825,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/small, /area/station/engineering/lobby) -"weU" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 4; - name = "Air" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos/office) +"weY" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wfa" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -67975,40 +65855,16 @@ "wfr" = ( /turf/closed/wall/r_wall, /area/station/medical/pharmacy) -"wfD" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) -"wfE" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/machinery/vending/tool, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos) "wfG" = ( /obj/structure/disposalpipe/segment, /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wgl" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +"wgj" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wgn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, @@ -68087,6 +65943,13 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"whg" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central/aft) "whl" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/stripes/line{ @@ -68094,6 +65957,24 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"whm" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Pure to Fuel Pipe" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"whn" = ( +/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Engineering Supermatter Emitters" + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "whu" = ( /obj/structure/cable, /obj/machinery/blackbox_recorder, @@ -68129,6 +66010,12 @@ }, /turf/open/floor/plating, /area/station/science/ordnance) +"whK" = ( +/obj/structure/closet/radiation, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/break_room) "whL" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -68147,6 +66034,22 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"whZ" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped/critical, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"wie" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/effect/spawner/random/vending/colavend, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/cargo/lobby) "win" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -68177,10 +66080,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/space/nearstation) -"wiR" = ( -/obj/structure/cable, -/turf/closed/wall, -/area/station/engineering/engine_smes) "wja" = ( /turf/closed/wall/r_wall, /area/station/commons/toilet/auxiliary) @@ -68198,6 +66097,13 @@ /obj/structure/filingcabinet, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) +"wjR" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wjZ" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -68218,6 +66124,16 @@ }, /turf/open/floor/wood/tile, /area/station/command/bridge) +"wkj" = ( +/obj/structure/table, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - HFR" + }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wkF" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, @@ -68232,24 +66148,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"wkK" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"wkU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/turf/open/space/basic, -/area/space/nearstation) "wla" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68261,39 +66159,15 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"wlS" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"wlU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 10 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Release" - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"wmd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ - dir = 10 - }, -/obj/effect/landmark/blobstart, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "wme" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/aft) +"wmq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wmu" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -68342,6 +66216,10 @@ /obj/machinery/holopad, /turf/open/floor/iron/showroomfloor, /area/station/medical/surgery/theatre) +"wmL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wmS" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/red/corner{ @@ -68377,6 +66255,15 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/office) +"wnf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/elevatorshaft, +/area/station/engineering/break_room) "wnw" = ( /obj/machinery/pdapainter/engineering, /obj/effect/turf_decal/bot, @@ -68500,6 +66387,15 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"woY" = ( +/obj/structure/chair/stool/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "wpa" = ( /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -68527,17 +66423,6 @@ "wpO" = ( /turf/closed/wall/r_wall, /area/station/security/processing) -"wpY" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "wqb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68554,34 +66439,30 @@ "wqj" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) +"wqx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"wqz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wqD" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"wqI" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/office) "wqM" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating/rust, /area/station/maintenance/fore/lesser) -"wqP" = ( -/turf/closed/wall/r_wall/rust, -/area/station/maintenance/department/electrical) "wqW" = ( /obj/effect/turf_decal/siding/wideplating{ dir = 1 @@ -68753,6 +66634,14 @@ }, /turf/open/floor/iron/dark/side, /area/station/science/xenobiology) +"wtd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "qm_warehouse_aft"; + name = "Warehouse Shutters" + }, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "wte" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -68798,6 +66687,9 @@ name = "AI Upload" }, /obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /turf/open/floor/iron/dark/textured_half, /area/station/ai_monitored/turret_protected/ai_upload) "wtv" = ( @@ -68838,6 +66730,20 @@ /obj/machinery/light/small/red/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/electrical) +"wtJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wtT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68881,6 +66787,15 @@ dir = 8 }, /area/station/science/lobby) +"wup" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible/layer4{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wuq" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/rnd_secure_all, @@ -68946,18 +66861,25 @@ /obj/structure/hedge, /turf/open/floor/iron/grimy, /area/station/science/cubicle) +"wvF" = ( +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "wvM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/floor, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"wvT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 10 +"wvZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "wwk" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 8 @@ -68973,6 +66895,18 @@ dir = 1 }, /area/station/security/execution/transfer) +"wwv" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wwz" = ( /obj/structure/cable, /obj/machinery/computer/mech_bay_power_console{ @@ -68991,16 +66925,6 @@ dir = 1 }, /area/station/science/lower) -"wwJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wwQ" = ( /obj/structure/chair/office{ dir = 4 @@ -69012,20 +66936,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"wwX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office" - }, -/obj/machinery/door/poddoor/preopen{ - id = "rdoffice"; - name = "Research Director's Shutters" - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/research) "wwY" = ( /obj/effect/spawner/random/trash/mess, /obj/effect/decal/cleanable/dirt, @@ -69040,14 +66950,6 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/iron/cafeteria, /area/station/maintenance/starboard/fore) -"wxp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) "wxu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, @@ -69057,6 +66959,17 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine/atmos) +"wxJ" = ( +/obj/machinery/door/airlock/engineering/glass/critical{ + heat_proof = 1; + name = "Supermatter Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "wxR" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance, @@ -69143,6 +67056,12 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/iron/dark, /area/station/science/genetics) +"wyG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/carpet/orange, +/area/station/command/heads_quarters/qm) "wyH" = ( /obj/machinery/door/airlock/maintenance{ name = "Maintenance" @@ -69172,38 +67091,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/chapel/office) -"wyU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 +"wyM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 8 }, -/obj/machinery/light/cold/directional/north, -/obj/machinery/meter, -/turf/open/floor/iron/dark, +/turf/open/floor/engine/air, /area/station/engineering/atmos) -"wyZ" = ( -/obj/effect/turf_decal/siding/wideplating{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) -"wzo" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron/smooth, -/area/station/cargo/office) "wzv" = ( /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"wzB" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) +"wzz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/cargo/sorting) "wzF" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -69248,6 +67148,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"wAh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/status_display/supply{ + pixel_x = -2; + pixel_y = 32 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/cargo/storage) "wAj" = ( /obj/structure/table/wood, /obj/machinery/computer/records/medical/laptop{ @@ -69262,13 +67172,6 @@ }, /turf/open/floor/wood, /area/station/security/detectives_office) -"wAM" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "wAS" = ( /obj/structure/table/wood, /obj/item/hand_labeler, @@ -69322,6 +67225,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"wBy" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wBI" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -69421,6 +67331,13 @@ "wCY" = ( /turf/closed/wall, /area/station/command/heads_quarters/cmo) +"wDn" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/dark/small, +/area/station/engineering/break_room) "wDo" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -69432,13 +67349,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"wDF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "wDM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69446,19 +67356,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"wEc" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 9 +"wDQ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/iron/twenty, -/obj/item/stack/sheet/mineral/plasma/five, -/obj/item/stack/sheet/mineral/titanium, -/obj/item/stack/sheet/mineral/uranium/five, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) +/obj/effect/spawner/random/structure/steam_vent, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "wEf" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ @@ -69509,12 +67415,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"wEU" = ( -/obj/structure/transit_tube/horizontal{ - dir = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "wEW" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /obj/structure/barricade/wooden/crude, @@ -69552,6 +67452,12 @@ /obj/structure/alien/weeds, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"wFK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wFQ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -69570,19 +67476,14 @@ /obj/structure/flora/bush/jungle/c/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"wFZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "wGh" = ( /obj/structure/broken_flooring/corner/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/dock) -"wGo" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, -/obj/machinery/status_display/evac/directional/south, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/engineering/hallway) "wGq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69599,6 +67500,12 @@ }, /turf/open/floor/iron/dark/textured_half, /area/station/security/courtroom) +"wGx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wGz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -69625,6 +67532,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"wGT" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "N2 to Pure" + }, +/obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wGU" = ( /obj/structure/table, /obj/effect/spawner/random/techstorage/ai_all, @@ -69635,23 +67551,6 @@ /obj/structure/filingcabinet/filingcabinet, /turf/open/floor/iron/grimy, /area/station/science/cubicle) -"wHH" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner/end{ - dir = 8 - }, -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) -"wHL" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/transit_tube/station/dispenser/reverse/flipped{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "wHN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -69700,40 +67599,21 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/space/basic, /area/space/nearstation) -"wIu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/greyscale, -/obj/item/pen{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/book/manual/wiki/engineering_construction{ - pixel_y = 3; - pixel_x = -6 +"wIG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance" }, -/turf/open/floor/iron/grimy, -/area/station/engineering/main) +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "wIY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/robotics/lab) -"wJa" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/obj/structure/railing{ - dir = 10 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/power/emitter{ - dir = 4 - }, -/turf/open/space/basic, -/area/space/nearstation) "wJd" = ( /turf/closed/wall, /area/station/hallway/secondary/construction) @@ -69742,10 +67622,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) -"wJn" = ( -/obj/machinery/holopad, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) "wJo" = ( /obj/structure/cable, /turf/closed/wall/r_wall, @@ -69858,15 +67734,6 @@ /obj/structure/bookcase/random, /turf/open/floor/wood/parquet, /area/station/service/library) -"wKy" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/wood, -/area/station/engineering/atmos/office) "wKz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69895,15 +67762,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"wKT" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/brown{ - dir = 1 - }, -/obj/machinery/incident_display/dual/directional/north, -/turf/open/floor/iron/smooth, -/area/station/command/bridge) "wLd" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) @@ -69921,6 +67779,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"wLw" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "wLM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -69932,6 +67797,12 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) +"wLU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wLZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/decal/cleanable/dirt, @@ -70041,17 +67912,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/science/robotics/mechbay) -"wNi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "wNs" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -70076,16 +67936,6 @@ }, /turf/open/floor/iron/smooth, /area/station/hallway/secondary/command) -"wNA" = ( -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/dark/small, -/area/station/engineering/supermatter/room) "wND" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner, /obj/effect/decal/cleanable/dirt, @@ -70224,14 +68074,6 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/customs/auxiliary) -"wOM" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "wOS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70241,12 +68083,6 @@ /obj/effect/landmark/navigate_destination/disposals, /turf/open/floor/iron, /area/station/maintenance/hallway/abandoned_command) -"wOZ" = ( -/obj/effect/decal/cleanable/molten_object, -/obj/effect/landmark/event_spawn, -/obj/structure/table, -/turf/open/floor/iron/dark, -/area/station/commons/storage/tools) "wPd" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/lesser) @@ -70270,14 +68106,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/small, /area/station/security/detectives_office) -"wPt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "wPu" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, @@ -70344,15 +68172,6 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) -"wQa" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/glass, -/obj/machinery/light/dim/directional/north, -/obj/structure/sign/warning/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "wQc" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/turf_decal/siding/wood, @@ -70425,6 +68244,7 @@ name = "Secure Network Access" }, /obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/textured_half, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "wQT" = ( @@ -70470,6 +68290,14 @@ /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_freezer_chamber_input, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) +"wRy" = ( +/obj/machinery/power/smes/engineering, +/obj/structure/cable, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/engineering/supermatter/room) "wRN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -70522,11 +68350,6 @@ /obj/machinery/smartfridge/organ, /turf/open/floor/plating, /area/station/medical/morgue) -"wSf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/command/heads_quarters/qm) "wSg" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -70536,12 +68359,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/primary/aft) -"wSi" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/office) "wSF" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 8 @@ -70680,7 +68497,7 @@ pixel_x = 6; req_access = list("medical") }, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/cmo) "wTX" = ( @@ -70728,17 +68545,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/ordnance/testlab) -"wVh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/small, -/area/station/engineering/atmos) +"wVr" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/smooth, +/area/station/cargo/lobby) "wVI" = ( /obj/machinery/biogenerator, /obj/machinery/light/small/dim/directional/north, @@ -70755,14 +68567,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"wWb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/meter, -/turf/open/floor/iron/small, -/area/station/engineering/supermatter/room) +"wWm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "wWs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70787,14 +68595,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"wWP" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 10 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron, -/area/station/engineering/atmos) "wWR" = ( /obj/structure/table, /obj/item/clothing/gloves/color/orange, @@ -70875,12 +68675,15 @@ }, /turf/open/floor/iron/small, /area/station/security/brig) -"wXV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 +"wXL" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Cold Loop to Gas" }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wYa" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -70940,18 +68743,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/hallway/secondary/exit/departure_lounge) -"wZk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/structure/table/rolling, -/obj/item/mod/module/thermal_regulator, -/obj/effect/decal/cleanable/ash/large, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) -"wZl" = ( -/turf/closed/wall, -/area/station/commons) "wZp" = ( /obj/effect/turf_decal/arrows{ dir = 8 @@ -70967,6 +68758,13 @@ }, /turf/open/floor/iron/dark/small, /area/station/maintenance/department/engine/atmos) +"wZs" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/smart/simple/orange{ + dir = 4 + }, +/turf/open/space/basic, +/area/space/nearstation) "wZx" = ( /obj/machinery/door/airlock/vault{ name = "Vault" @@ -70987,14 +68785,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"wZD" = ( -/obj/effect/turf_decal/weather/dirt, -/obj/structure/flora/bush/large/style_random{ - pixel_x = -20; - pixel_y = 3 - }, -/turf/open/floor/grass, -/area/station/service/chapel) "wZF" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -71016,10 +68806,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xae" = ( -/obj/structure/grille, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/atmos) "xam" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71067,14 +68853,6 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"xaK" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "xaN" = ( /turf/closed/wall, /area/station/maintenance/starboard/central) @@ -71092,15 +68870,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"xaZ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) "xba" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -71124,6 +68893,14 @@ "xbl" = ( /turf/open/floor/catwalk_floor/iron_smooth, /area/station/command/gateway) +"xbo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xbs" = ( /obj/machinery/light_switch/directional/north, /obj/effect/decal/cleanable/dirt, @@ -71165,6 +68942,13 @@ "xck" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/office) +"xco" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xcq" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -71187,6 +68971,22 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/grass, /area/station/service/hydroponics) +"xcA" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/autoname/directional/south, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/turf/open/floor/iron/smooth, +/area/station/security/checkpoint/supply) "xcF" = ( /turf/open/floor/iron, /area/station/commons/dorms) @@ -71201,13 +69001,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall, /area/station/hallway/primary/central/aft) -"xcS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"xcW" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 4 }, -/obj/machinery/portable_atmospherics/canister/plasma, -/turf/open/floor/plating, -/area/station/engineering/atmos/storage/gas) +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "xda" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -71222,14 +69021,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) -"xdl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/spawner/random/trash, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "xdo" = ( /obj/machinery/firealarm/directional/north, /obj/item/kirbyplants/random/fullysynthetic, @@ -71265,19 +69056,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"xdJ" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engine Airlock" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/engineering/general, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/catwalk_floor, -/area/station/engineering/break_room) "xdR" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -71304,15 +69082,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/engineering/storage_shared) -"xef" = ( -/obj/item/stack/rods/two, -/obj/item/book/manual/wiki/atmospherics{ - pixel_x = 5; - pixel_y = 5; - desc = "Glass shards are embedded in the cover. Hopefully you'll learn sometthing from this." - }, -/turf/open/floor/engine, -/area/station/engineering/atmos) "xeo" = ( /obj/structure/window/spawner/directional/south, /obj/structure/lattice, @@ -71405,6 +69174,18 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured_large, /area/station/science/research) +"xeZ" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/cargo/storage) "xfa" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -71424,16 +69205,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"xff" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/command{ - name = "Research Division Server Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/server) "xfm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71513,6 +69284,10 @@ }, /turf/open/floor/iron/small, /area/station/hallway/primary/central/fore) +"xgd" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/engineering/main) "xgg" = ( /obj/structure/chair{ pixel_y = -2 @@ -71562,6 +69337,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"xgK" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/cargo/sorting) "xhk" = ( /obj/machinery/door/airlock/public/glass{ name = "Public Shrine" @@ -71572,6 +69362,15 @@ dir = 8 }, /area/station/hallway/primary/central/fore) +"xhC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xhD" = ( /obj/structure/table, /obj/item/clothing/shoes/ducky_shoes{ @@ -71609,13 +69408,6 @@ "xia" = ( /turf/closed/wall, /area/station/science/cubicle) -"xih" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "xik" = ( /turf/closed/wall, /area/station/security/prison/rec) @@ -71698,14 +69490,19 @@ }, /area/station/science/lower) "xjc" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 4 +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office" }, -/obj/structure/transit_tube/curved{ +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ dir = 8 }, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/obj/structure/cable, +/turf/open/floor/iron/small, +/area/station/cargo/office) "xjg" = ( /turf/open/floor/iron/dark, /area/station/security/interrogation) @@ -71757,12 +69554,6 @@ }, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"xjU" = ( -/obj/machinery/vending/wardrobe/chap_wardrobe, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/carpet/lone, -/area/station/service/chapel/office) "xjX" = ( /obj/effect/turf_decal/siding/wideplating/dark/corner{ dir = 4 @@ -71803,14 +69594,6 @@ "xkt" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) -"xkv" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/closet/l3closet/janitor, -/obj/item/clothing/gloves/color/orange, -/obj/item/clothing/shoes/galoshes, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/small, -/area/station/commons) "xkK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71905,10 +69688,6 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/misc/sandy_dirt, /area/station/medical/medbay/lobby) -"xme" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/engine, -/area/station/engineering/atmos) "xmg" = ( /obj/structure/broken_flooring/singular/directional/south, /obj/machinery/light/small/directional/east, @@ -71930,10 +69709,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"xmI" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xmL" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/landmark/start/security_officer, @@ -71951,20 +69726,6 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/iron/white/small, /area/station/service/hydroponics) -"xng" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/delivery_chute{ - name = "Medical Deliveries" - }, -/obj/structure/sign/departments/exam_room/directional/north, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/plasticflaps{ - name = "Medical Deliveries" - }, -/obj/effect/turf_decal/delivery/white, -/turf/open/floor/iron, -/area/station/cargo/sorting) "xnk" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood, @@ -71980,11 +69741,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/station/service/greenroom) -"xnA" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/open/floor/plating, -/area/station/engineering/supermatter/room) "xnB" = ( /obj/effect/turf_decal/stripes/white/corner, /obj/effect/turf_decal/stripes/white/line, @@ -72044,13 +69800,6 @@ "xol" = ( /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"xoz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xoJ" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/tank_holder/extinguisher, @@ -72063,25 +69812,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/small, /area/station/ai_monitored/command/storage/eva) -"xoV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 9 - }, -/obj/structure/table, -/obj/effect/turf_decal/siding/thinplating_new/dark/end{ - dir = 4 - }, -/obj/item/geiger_counter{ - pixel_x = 7; - pixel_y = 14 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/item/radio/off{ - pixel_x = 1; - pixel_y = 3 - }, -/turf/open/floor/iron/small, -/area/station/engineering/atmos/pumproom) "xoW" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -72096,9 +69826,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"xpf" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/maintenance/disposal/incinerator) "xpl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -72234,6 +69961,11 @@ "xqC" = ( /turf/closed/wall, /area/station/maintenance/hallway/abandoned_command) +"xqL" = ( +/obj/structure/cable, +/obj/machinery/power/emitter/welded, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "xqN" = ( /turf/closed/wall, /area/station/medical/chemistry) @@ -72257,27 +69989,28 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"xri" = ( -/obj/effect/turf_decal/stripes/corner{ +"xre" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 10 - }, /obj/structure/cable, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) -"xrm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/light/small/directional/north, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/robotics/augments) +"xrt" = ( +/obj/structure/chair/sofa/bench/left{ dir = 1 }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/obj/effect/turf_decal/tile/blue, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side, +/area/station/hallway/primary/central/fore) "xru" = ( /obj/item/kirbyplants/random/fullysynthetic, /obj/machinery/airalarm/directional/east, @@ -72416,6 +70149,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/processing) +"xsI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/light/small/directional/east, +/obj/effect/landmark/start/janitor, +/turf/open/floor/iron/grimy, +/area/station/service/janitor) "xsJ" = ( /obj/effect/turf_decal/siding{ dir = 4 @@ -72447,6 +70186,20 @@ dir = 4 }, /area/station/science/lobby) +"xsP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "xsT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -72535,15 +70288,6 @@ "xtW" = ( /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"xug" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/tile/yellow/opposingcorners{ - dir = 8 - }, -/obj/structure/sign/warning/cold_temp/directional/east, -/turf/open/floor/iron, -/area/station/engineering/supermatter/room) "xuh" = ( /obj/structure/chair/pew/left, /obj/item/bouquet/sunflower, @@ -72624,10 +70368,6 @@ dir = 1 }, /area/station/science/research) -"xuX" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "xva" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72636,16 +70376,6 @@ dir = 1 }, /area/station/science/research) -"xvb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/fuel_pool, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "xvf" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72683,12 +70413,6 @@ "xvF" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/science/xenobiology) -"xvJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/cargo/miningfoundry) "xvK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72705,9 +70429,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"xvR" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/stripes, +/obj/effect/turf_decal/trimline/brown/line, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark/smooth_half, +/area/station/cargo/bitrunning/den) "xvT" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/maint) +"xvU" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "xvV" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -72741,10 +70482,6 @@ /obj/structure/bed/maint, /turf/open/floor/light/colour_cycle/dancefloor_b, /area/station/maintenance/starboard/central) -"xwn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "xwr" = ( /obj/effect/turf_decal/siding/thinplating_new/light, /obj/machinery/recharge_station, @@ -72859,14 +70596,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) -"xxT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"xyb" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/disposal/delivery_chute, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, /turf/open/floor/plating, -/area/station/maintenance/port/greater) +/area/station/cargo/sorting) "xyh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72972,11 +70712,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating/elevatorshaft, /area/station/commons/dorms) -"xzm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall, -/area/station/engineering/atmos) "xzo" = ( /obj/machinery/door/airlock/external{ name = "Departure Lounge Airlock" @@ -73019,20 +70754,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"xAh" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "xAm" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -73067,46 +70788,21 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"xAO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/sorting) "xAR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"xAV" = ( -/obj/structure/chair/sofa/bench/left{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/central/fore) -"xAW" = ( -/obj/effect/turf_decal/stripes/white/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, -/turf/open/floor/engine, -/area/station/engineering/supermatter) -"xBa" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "South Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "xBd" = ( /obj/effect/turf_decal/plaque{ icon_state = "L7"; @@ -73160,11 +70856,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"xBH" = ( -/obj/item/radio/intercom/directional/east, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "xBV" = ( /obj/effect/spawner/random/structure/chair_flipped, /turf/open/floor/plating, @@ -73195,18 +70886,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"xCR" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "engine_airlock_2" - }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "xCS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73250,6 +70929,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"xDl" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/dirt, +/obj/item/bedsheet/qm, +/obj/item/reagent_containers/cup/glass/bottle/tequila{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/qm) "xDs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, @@ -73268,16 +70962,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"xDW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/robotics, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/robotics/mechbay) "xEd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73289,21 +70973,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/starboard/central) -"xEl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/twelve_percent_spirit_board, -/turf/open/floor/wood, -/area/station/service/chapel/office) -"xEm" = ( -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/photocopier, -/turf/open/floor/iron, -/area/station/cargo/office) "xEn" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ dir = 4 @@ -73331,6 +71000,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"xEx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) "xEM" = ( /obj/structure/window/spawner/directional/north, /obj/structure/flora/bush/large/style_random{ @@ -73386,20 +71061,20 @@ "xFe" = ( /turf/closed/wall, /area/station/security/lockers) -"xFj" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ +"xFf" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ dir = 1 }, -/obj/structure/railing, -/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ - dir = 8 +/obj/machinery/button/door/directional/west{ + id = "Secure Storage below"; + name = "Secure engineering storage"; + pixel_y = 24; + req_access = list("engine_equip") }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 4 +/turf/open/floor/iron/corner{ + dir = 8 }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) +/area/station/engineering/main) "xFw" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/chair/sofa/bench{ @@ -73566,21 +71241,14 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/tram) -"xHT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 +"xIf" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"xHV" = ( -/obj/effect/turf_decal/siding/wideplating, -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/herringbone, +/area/station/commons/dorms) "xIj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73595,13 +71263,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor/iron, /area/station/science/lobby) -"xIr" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/holopad, -/obj/effect/landmark/atmospheric_sanity/ignore_area, +"xIl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/hangover, /turf/open/floor/iron, -/area/station/engineering/atmos/space_catwalk) +/area/station/cargo/lobby) "xIu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -73665,6 +71333,25 @@ "xJB" = ( /turf/closed/wall, /area/station/security/courtroom) +"xJT" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 12 + }, +/obj/item/multitool{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/machinery/light/no_nightlight/directional/east, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/engineering/atmos/storage) "xJZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73678,6 +71365,14 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/white/small, /area/station/medical/medbay/central) +"xKe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/camera/directional/south{ + c_tag = "Engineering Supermatter Chamber" + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xKg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -73706,6 +71401,16 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/cafeteria, /area/station/science/circuits) +"xKn" = ( +/obj/machinery/door/airlock/hatch{ + name = "Tool Supply Corridor" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/cargo/lobby) "xKq" = ( /obj/machinery/rnd/production/circuit_imprinter/department/science, /obj/effect/turf_decal/bot, @@ -73717,18 +71422,15 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/processing) -"xKz" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/turf_decal/siding/wideplating, -/obj/structure/closet/secure_closet/atmospherics, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/airalarm/directional/north, -/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, -/turf/open/floor/iron, -/area/station/engineering/atmos) "xKG" = ( /turf/open/floor/iron, /area/station/hallway/primary/port) +"xKI" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xKQ" = ( /obj/effect/turf_decal/tile/dark_red/fourcorners, /obj/machinery/firealarm/directional/north, @@ -73738,9 +71440,6 @@ }, /turf/open/floor/iron/smooth, /area/station/security/checkpoint/escape) -"xKS" = ( -/turf/closed/wall, -/area/station/engineering/atmos/space_catwalk) "xKX" = ( /turf/open/floor/iron/white/side{ dir = 4 @@ -73783,13 +71482,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"xLp" = ( -/obj/machinery/computer/atmos_control/air_tank{ - dir = 1 +"xLw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos/office) +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "xLy" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/dirt/dust, @@ -73799,6 +71500,26 @@ /obj/structure/barricade/wooden/crude, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"xLF" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Engine Coolant Bypass"; + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"xLS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, +/obj/machinery/meter/monitored/distro_loop, +/obj/structure/cable, +/obj/machinery/camera/directional/east{ + c_tag = "atmospherics - distro" + }, +/turf/open/floor/iron/small, +/area/station/engineering/atmos/pumproom) "xLY" = ( /obj/item/reagent_containers/cup/glass/bottle/beer{ pixel_y = 11 @@ -73854,10 +71575,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"xMu" = ( -/obj/effect/turf_decal/siding/wood, -/turf/closed/wall, -/area/station/service/library) "xMv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73908,40 +71625,15 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/plating, /area/station/hallway/primary/central/fore) -"xNE" = ( -/obj/structure/steam_vent, -/obj/structure/closet/crate, -/obj/structure/spider/stickyweb, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/body/moderator_input, -/obj/item/grenade/chem_grenade/cleaner, -/obj/structure/sign/poster/official/random/directional/north, -/obj/item/pipe_dispenser, -/obj/item/clothing/gloves/color/red/insulated, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) -"xNV" = ( -/obj/structure/disposalpipe/segment{ +"xNX" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/research/glass{ - name = "Gun Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/auxlab/firing_range) -"xOm" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters{ - id = "qm_warehouse_aft"; - name = "Warehouse Shutters" +/obj/structure/railing/corner{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/turf/open/floor/iron, +/area/station/engineering/atmos) "xOq" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron, @@ -73970,28 +71662,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/textured_half, /area/station/security/breakroom) -"xOJ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 10 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) -"xOO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 10 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) -"xOR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ - dir = 8 - }, -/turf/open/floor/engine/airless, -/area/station/engineering/atmos) "xOS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral, @@ -74036,6 +71706,13 @@ /obj/structure/flora/tree/jungle/style_3, /turf/open/floor/grass, /area/station/service/chapel) +"xPq" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos) "xPs" = ( /obj/effect/turf_decal/weather/dirt{ dir = 5 @@ -74056,6 +71733,10 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/recreation) +"xPH" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "xPJ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -74082,9 +71763,6 @@ /obj/item/kirbyplants/random/fullysynthetic, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"xPX" = ( -/turf/closed/wall/rust, -/area/station/cargo/office) "xPY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74118,17 +71796,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/dock) -"xQr" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/station/engineering/supermatter) -"xQt" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "xQv" = ( /obj/structure/cable, /obj/structure/closet/secure_closet/hop, @@ -74159,28 +71826,12 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/command/heads_quarters/captain/private) -"xQG" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) "xQI" = ( /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) "xQJ" = ( /turf/closed/wall, /area/station/service/abandoned_gambling_den/gaming) -"xQS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/pumproom) "xQW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74190,25 +71841,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/diagonal, /area/station/science/auxlab/firing_range) -"xQZ" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) -"xRa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/elevatorshaft, -/area/station/engineering/atmos) "xRd" = ( /obj/machinery/holopad, /obj/machinery/button/door/directional/north{ @@ -74251,11 +71883,6 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"xRv" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent/layer2, -/turf/open/space/basic, -/area/space/nearstation) "xRA" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -74275,6 +71902,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/station/hallway/primary/starboard) +"xRC" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/obj/machinery/door/airlock{ + name = "Cargo Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "xRH" = ( /turf/closed/wall, /area/station/maintenance/fore/lesser) @@ -74323,14 +71958,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/white, /area/station/science/cytology) -"xSi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "xSt" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/stripes/white/line{ @@ -74376,6 +72003,20 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) +"xSY" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/delivery_chute{ + name = "Medical Deliveries" + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/plasticflaps{ + name = "Medical Deliveries" + }, +/obj/effect/turf_decal/delivery/white, +/obj/structure/sign/departments/med/directional/north, +/turf/open/floor/iron/dark/side, +/area/station/cargo/sorting) "xSZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74397,6 +72038,13 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"xTr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xTB" = ( /obj/structure/chair/sofa/left{ dir = 4 @@ -74415,12 +72063,6 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"xTM" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/atmos) "xTO" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -74438,14 +72080,6 @@ dir = 9 }, /area/station/science/xenobiology) -"xTT" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Cubicle" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/cubicle) "xTV" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -74501,6 +72135,12 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"xUK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "xUL" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -74819,17 +72459,9 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"xYm" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/iron/stairs/old{ - dir = 4 - }, -/area/station/engineering/supermatter/room) +"xYo" = ( +/turf/open/floor/iron, +/area/station/cargo/lobby) "xYu" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -74868,23 +72500,6 @@ "xYO" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/bridge) -"xYX" = ( -/obj/effect/turf_decal/siding/red{ - dir = 8 - }, -/obj/machinery/air_sensor/nitrogen_tank, -/turf/open/floor/engine/n2, -/area/station/engineering/atmos/space_catwalk) -"xZb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/hidden, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/smooth_large, -/area/station/engineering/main) -"xZd" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "xZe" = ( /obj/effect/landmark/start/chaplain, /obj/effect/turf_decal/siding/wood/end{ @@ -74898,12 +72513,6 @@ /obj/effect/landmark/navigate_destination/det, /turf/open/floor/iron, /area/station/hallway/primary/port) -"xZh" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/maintenance/port/fore) "xZs" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -74961,10 +72570,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"yac" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/turf/open/floor/iron/stairs/medium, -/area/station/engineering/atmos) "yag" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -74982,19 +72587,6 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/iron, /area/station/security/tram) -"yaq" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer5{ - dir = 1 - }, -/turf/open/space/basic, -/area/station/engineering/atmos/space_catwalk) "yaB" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, @@ -75019,6 +72611,10 @@ "yaL" = ( /turf/closed/wall, /area/station/commons/vacant_room/commissary) +"yaT" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "yaU" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -75051,6 +72647,11 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/textured_half, /area/station/security/interrogation) +"ybp" = ( +/obj/machinery/air_sensor/oxygen_tank, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/engine/o2, +/area/station/engineering/atmos) "ybs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -75058,16 +72659,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"ybC" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Break Room" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/hallway) "ybD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75175,10 +72766,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) -"ycW" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/smooth_edge, -/area/station/engineering/supermatter/room) "ycX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -75196,23 +72783,6 @@ }, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"ydi" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 1 - }, -/obj/machinery/door/airlock/external/glass{ - name = "South Tanks Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos/space_catwalk) "ydj" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -75233,30 +72803,11 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark/side, /area/station/hallway/primary/central/fore) -"ydI" = ( -/obj/machinery/light/cold/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "ydL" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"ydV" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/hallway) "yea" = ( /turf/closed/wall, /area/station/service/chapel/office) @@ -75289,6 +72840,29 @@ /obj/structure/sign/warning/test_chamber/directional/east, /turf/open/floor/iron/white, /area/station/science/robotics/augments) +"yew" = ( +/obj/effect/turf_decal/box/white{ + color = "#9FED58" + }, +/turf/open/floor/engine, +/area/station/engineering/atmospherics_engine) +"yey" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ + dir = 10 + }, +/obj/machinery/shower/directional/west, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/structure/fireaxecabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/office) "yeD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -75369,13 +72943,6 @@ "yfD" = ( /turf/closed/wall, /area/station/medical/surgery/theatre) -"yfF" = ( -/obj/machinery/vending/autodrobe/all_access, -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 8 - }, -/turf/open/floor/iron/small, -/area/station/commons/fitness/locker_room) "yfJ" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/decal/cleanable/dirt, @@ -75499,10 +73066,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"yhS" = ( -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/iron, -/area/station/engineering/atmospherics_engine) "yhW" = ( /obj/structure/cable, /turf/open/floor/iron/smooth, @@ -75515,17 +73078,6 @@ }, /turf/open/floor/wood, /area/station/service/chapel) -"yhY" = ( -/obj/effect/turf_decal/siding/blue{ - dir = 6 - }, -/obj/machinery/camera/emp_proof{ - c_tag = "Engineering - Atmospherics CO2 Chamber"; - dir = 5; - network = list("ss13","engineering") - }, -/turf/open/floor/engine/o2, -/area/station/engineering/atmos/space_catwalk) "yig" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/east, @@ -75539,13 +73091,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) -"yii" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/binary/pump{ - name = "North Ports to Wastes" - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) "yij" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -75632,12 +73177,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"yjc" = ( -/obj/machinery/rnd/production/techfab/department/cargo, -/obj/effect/turf_decal/delivery/white, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron/smooth, -/area/station/cargo/sorting) +"yiZ" = ( +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/no_nightlight/directional/south, +/turf/open/floor/iron, +/area/station/engineering/atmos) "yjd" = ( /turf/open/floor/iron/dark, /area/station/security/lockers) @@ -75648,22 +73196,38 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/white/small, /area/station/science/cubicle) -"yjE" = ( -/turf/closed/wall/r_wall, -/area/station/maintenance/department/engine) -"yjN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"yjy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/arrow_ccw{ - dir = 6 +/obj/structure/table/wood, +/obj/item/folder/red{ + pixel_x = -4; + pixel_y = -1 }, -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = -30 + }, +/obj/effect/spawner/random/entertainment/toy_figure{ + pixel_x = 4; + pixel_y = 11 + }, +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/structure/cable, -/turf/open/floor/iron/smooth, -/area/station/engineering/supermatter/room) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/item/pen{ + pixel_x = -2; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/station/maintenance/hallway/abandoned_recreation) +"yjE" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/department/engine) "yjP" = ( /obj/structure/flora/tree/jungle/style_2, /turf/open/floor/grass, @@ -75711,6 +73275,13 @@ }, /turf/open/floor/stone, /area/station/command/corporate_suite) +"ykk" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/engineering/atmos/project) "ykn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75772,13 +73343,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/bitrunning/den) -"ylK" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/smooth, -/area/station/maintenance/disposal/incinerator) "ylR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75802,13 +73366,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"ymj" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/engineering/atmospherics_engine) (1,1,1) = {" dDB @@ -76066,221 +73623,8 @@ dDB dDB dDB dDB -"} -(2,1,1) = {" -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB +"} +(2,1,1) = {" dDB dDB dDB @@ -76323,8 +73667,6 @@ dDB dDB dDB dDB -"} -(3,1,1) = {" dDB dDB dDB @@ -76538,6 +73880,8 @@ dDB dDB dDB dDB +"} +(3,1,1) = {" dDB dDB dDB @@ -76580,8 +73924,6 @@ dDB dDB dDB dDB -"} -(4,1,1) = {" dDB dDB dDB @@ -76795,6 +74137,8 @@ dDB dDB dDB dDB +"} +(4,1,1) = {" dDB dDB dDB @@ -76837,8 +74181,6 @@ dDB dDB dDB dDB -"} -(5,1,1) = {" dDB dDB dDB @@ -77052,6 +74394,8 @@ dDB dDB dDB dDB +"} +(5,1,1) = {" dDB dDB dDB @@ -77094,8 +74438,6 @@ dDB dDB dDB dDB -"} -(6,1,1) = {" dDB dDB dDB @@ -77309,6 +74651,8 @@ dDB dDB dDB dDB +"} +(6,1,1) = {" dDB dDB dDB @@ -77351,8 +74695,6 @@ dDB dDB dDB dDB -"} -(7,1,1) = {" dDB dDB dDB @@ -77566,6 +74908,8 @@ dDB dDB dDB dDB +"} +(7,1,1) = {" dDB dDB dDB @@ -77608,8 +74952,6 @@ dDB dDB dDB dDB -"} -(8,1,1) = {" dDB dDB dDB @@ -77645,7 +74987,6 @@ dDB dDB dDB dDB -aan dDB dDB dDB @@ -77824,6 +75165,8 @@ dDB dDB dDB dDB +"} +(8,1,1) = {" dDB dDB dDB @@ -77859,14 +75202,13 @@ dDB dDB dDB dDB +aan dDB dDB dDB dDB dDB dDB -"} -(9,1,1) = {" dDB dDB dDB @@ -77910,8 +75252,6 @@ dDB dDB dDB dDB -aJq -aJq dDB dDB dDB @@ -78082,6 +75422,8 @@ dDB dDB dDB dDB +"} +(9,1,1) = {" dDB dDB dDB @@ -78122,11 +75464,11 @@ dDB dDB dDB dDB -"} -(10,1,1) = {" dDB dDB dDB +aJq +aJq dDB dDB dDB @@ -78166,9 +75508,6 @@ dDB dDB dDB dDB -tYT -aJq -aJq dDB dDB dDB @@ -78340,6 +75679,8 @@ dDB dDB dDB dDB +"} +(10,1,1) = {" dDB dDB dDB @@ -78379,11 +75720,12 @@ dDB dDB dDB dDB -"} -(11,1,1) = {" dDB dDB dDB +tYT +aJq +aJq dDB dDB dDB @@ -78423,8 +75765,6 @@ dDB dDB dDB dDB -tYT -tYT dDB dDB dDB @@ -78596,6 +75936,8 @@ dDB dDB dDB dDB +"} +(11,1,1) = {" dDB dDB dDB @@ -78636,10 +75978,10 @@ dDB dDB dDB dDB -"} -(12,1,1) = {" dDB dDB +tYT +tYT dDB dDB dDB @@ -78670,8 +76012,6 @@ dDB dDB dDB dDB -aJq -aJq dDB dDB dDB @@ -78679,8 +76019,6 @@ dDB dDB dDB dDB -aJq -aJq dDB dDB dDB @@ -78855,6 +76193,8 @@ dDB dDB dDB dDB +"} +(12,1,1) = {" dDB dDB dDB @@ -78887,15 +76227,17 @@ dDB dDB dDB dDB +aJq +aJq dDB dDB dDB dDB dDB dDB -"} -(13,1,1) = {" dDB +aJq +aJq dDB dDB dDB @@ -78926,17 +76268,12 @@ dDB dDB dDB dDB -aJq -aJq -aJq -aJq dDB dDB dDB dDB dDB dDB -aJq dDB dDB dDB @@ -79113,6 +76450,8 @@ dDB dDB dDB dDB +"} +(13,1,1) = {" dDB dDB dDB @@ -79144,14 +76483,18 @@ dDB dDB dDB dDB +aJq +aJq +aJq +aJq dDB dDB dDB dDB dDB dDB -"} -(14,1,1) = {" +aJq +dDB dDB dDB dDB @@ -79183,10 +76526,6 @@ dDB dDB dDB dDB -aJq -aJq -aJq -tYT dDB dDB dDB @@ -79202,7 +76541,6 @@ dDB dDB dDB dDB -xZx dDB dDB dDB @@ -79220,7 +76558,6 @@ dDB dDB dDB dDB -bjQ dDB dDB dDB @@ -79370,6 +76707,173 @@ dDB dDB dDB dDB +"} +(14,1,1) = {" +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +aJq +aJq +aJq +tYT +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -79407,8 +76911,6 @@ dDB dDB dDB dDB -"} -(15,1,1) = {" dDB dDB dDB @@ -79440,11 +76942,6 @@ dDB dDB dDB dDB -tYT -aJq -aJq -tYT -tYT dDB dDB dDB @@ -79456,10 +76953,8 @@ dDB dDB dDB dDB -xZx dDB dDB -blb dDB dDB dDB @@ -79469,6 +76964,8 @@ dDB dDB dDB dDB +"} +(15,1,1) = {" dDB dDB dDB @@ -79477,10 +76974,8 @@ dDB dDB dDB dDB -blb dDB dDB -bjQ dDB dDB dDB @@ -79502,6 +76997,11 @@ dDB dDB dDB dDB +tYT +aJq +aJq +tYT +tYT dDB dDB dDB @@ -79664,8 +77164,6 @@ dDB dDB dDB dDB -"} -(16,1,1) = {" dDB dDB dDB @@ -79696,13 +77194,6 @@ dDB dDB dDB dDB -tYT -tYT -aJq -aJq -aJq -aJq -aJq dDB dDB dDB @@ -79713,31 +77204,27 @@ dDB dDB dDB dDB -blb dDB dDB -blb dDB dDB dDB dDB dDB dDB -xxo dDB dDB dDB -xxo dDB dDB dDB dDB dDB dDB -blb +"} +(16,1,1) = {" dDB dDB -blb dDB dDB dDB @@ -79766,6 +77253,13 @@ dDB dDB dDB dDB +tYT +tYT +aJq +aJq +aJq +aJq +aJq dDB dDB dDB @@ -79785,7 +77279,13 @@ dDB dDB dDB dDB +vdg +wdB +sxv dDB +vdg +wdB +sxv dDB dDB dDB @@ -79921,8 +77421,6 @@ dDB dDB dDB dDB -"} -(17,1,1) = {" dDB dDB dDB @@ -79953,13 +77451,6 @@ dDB dDB dDB dDB -tYT -aJq -aJq -aJq -aJq -aJq -aJq dDB dDB dDB @@ -79970,31 +77461,27 @@ dDB dDB dDB dDB -blb dDB dDB -blb dDB dDB dDB dDB dDB dDB -blb dDB dDB dDB -blb dDB dDB dDB dDB dDB dDB -blb +"} +(17,1,1) = {" dDB dDB -blb dDB dDB dDB @@ -80023,6 +77510,13 @@ dDB dDB dDB dDB +tYT +aJq +aJq +aJq +aJq +aJq +aJq dDB dDB dDB @@ -80038,12 +77532,21 @@ dDB dDB dDB dDB +bjQ dDB dDB dDB +qyN +xZx +rpi +rpi +rpi +xZx +wgv dDB dDB dDB +bjQ dDB dDB dDB @@ -80178,8 +77681,6 @@ dDB dDB dDB dDB -"} -(18,1,1) = {" dDB dDB dDB @@ -80210,14 +77711,6 @@ dDB dDB dDB dDB -tYT -aJq -aJq -aJq -aJq -aJq -aJq -aJq dDB dDB dDB @@ -80227,31 +77720,27 @@ dDB dDB dDB dDB -blb dDB dDB -jrj dDB dDB dDB dDB dDB dDB -blb dDB dDB dDB -blb dDB dDB dDB dDB +"} +(18,1,1) = {" dDB dDB -jrj dDB dDB -blb dDB dDB dDB @@ -80278,6 +77767,14 @@ dDB dDB dDB dDB +tYT +aJq +aJq +aJq +aJq +aJq +aJq +aJq dDB dDB dDB @@ -80288,19 +77785,30 @@ dDB dDB dDB dDB +bjQ dDB dDB dDB +blb dDB dDB dDB +rMm +uPX +pSs +rpi +rMm +uPX +pSs dDB dDB dDB +blb dDB dDB dDB dDB +bjQ dDB dDB dDB @@ -80435,8 +77943,6 @@ dDB dDB dDB dDB -"} -(19,1,1) = {" dDB dDB dDB @@ -80468,13 +77974,6 @@ dDB dDB dDB dDB -aJq -aJq -aJq -aJq -tYT -tYT -aJq dDB dDB dDB @@ -80484,31 +77983,20 @@ dDB dDB dDB dDB -blb -fNQ -xQZ -wlU dDB dDB dDB dDB dDB dDB -xck -blb -jFk -blb -xck dDB dDB dDB +"} +(19,1,1) = {" dDB dDB dDB -lTC -xQZ -khr -blb dDB dDB dDB @@ -80537,6 +78025,13 @@ dDB dDB dDB dDB +aJq +aJq +aJq +aJq +tYT +tYT +aJq dDB dDB dDB @@ -80547,23 +78042,30 @@ dDB dDB dDB dDB +blb dDB dDB dDB +blb dDB dDB dDB dDB dDB +blb +rpi +blb dDB dDB dDB dDB dDB +blb dDB dDB dDB dDB +blb dDB dDB dDB @@ -80692,8 +78194,6 @@ dDB dDB dDB dDB -"} -(20,1,1) = {" dDB dDB dDB @@ -80726,55 +78226,31 @@ dDB dDB dDB dDB -aJq -tYT -tYT dDB dDB -gcs dDB dDB dDB dDB dDB -chj -chj -chj -chj -blb -aky -blb -wpY dDB dDB dDB dDB dDB dDB -xck -kFH -iRp -kFH -xck dDB dDB dDB dDB dDB dDB -wpY -blb -aky -blb -chj -chj -chj -chj dDB dDB dDB -xxo dDB +"} +(20,1,1) = {" dDB dDB dDB @@ -80807,31 +78283,46 @@ dDB dDB dDB dDB +aJq +tYT +tYT dDB dDB +gcs dDB dDB dDB dDB dDB +tYT dDB dDB dDB dDB +blb dDB dDB dDB +blb dDB dDB dDB dDB +blb +hYC +uQY +hYC +tYT dDB dDB dDB dDB +blb +tYT dDB dDB dDB +blb dDB dDB dDB @@ -80949,8 +78440,6 @@ dDB dDB dDB dDB -"} -(21,1,1) = {" dDB dDB dDB @@ -80983,54 +78472,27 @@ dDB dDB dDB dDB -gcs dDB dDB dDB dDB -blb dDB dDB dDB dDB dDB -chj -qfn -gbE -kYo -eAI -eVk -blb -ekf dDB dDB dDB dDB dDB dDB -xck -uic -fMP -bbF -xck dDB dDB dDB dDB dDB dDB -ekf -blb -kHQ -oBk -oGn -hXB -kRu -chj -blb -blb -blb -svB dDB dDB dDB @@ -81044,6 +78506,8 @@ dDB dDB dDB dDB +"} +(21,1,1) = {" dDB dDB dDB @@ -81076,17 +78540,46 @@ dDB dDB dDB dDB +gcs dDB dDB dDB dDB +vnZ +sxH +sxH +sxH +sxH +kdv +kdv +sxH +sxH +sxH +sxH +ipq +aFH +blb +blb +blb dDB dDB dDB dDB +blb +hYC +mKh +hYC +aJq +tYT dDB dDB dDB +blb +aJq +liQ +blb +blb +blb dDB dDB dDB @@ -81206,8 +78699,6 @@ dDB dDB dDB dDB -"} -(22,1,1) = {" dDB dDB dDB @@ -81240,55 +78731,18 @@ dDB dDB dDB dDB -kaP dDB dDB dDB dDB -blb dDB dDB dDB dDB dDB -chj -ijn -rCX -dzA -lsK -diL -lsK -xFj -blb -blb -blb -xck -xck -xck -xck -wyZ -pvE -aKU -xck -xck -xck -xck -blb -blb -blb -ekf -blb -mSS -sfl -oGn -keS -ozz -chj dDB dDB dDB -kaP -blb dDB dDB dDB @@ -81309,6 +78763,8 @@ dDB dDB dDB dDB +"} +(22,1,1) = {" dDB dDB dDB @@ -81341,15 +78797,50 @@ dDB dDB dDB dDB +kaP dDB dDB dDB dDB +wZs dDB dDB +aJq +aJq +liQ +liQ +liQ +blb +blb +blb +ybO +evQ +cwf +cwf +ybO +aJq dDB dDB +blb +cwf +ybO +ilT +ybO +cwf +aJq +tYT dDB +blb +ybO +cwf +cwf +cwf +cwf +ybO +blb +blb +blb +bjQ dDB dDB dDB @@ -81463,8 +78954,6 @@ dDB dDB dDB dDB -"} -(23,1,1) = {" dDB dDB dDB @@ -81497,56 +78986,27 @@ dDB dDB dDB dDB -svB dDB dDB dDB dDB -blb dDB dDB dDB dDB dDB -chj -chj -chj -chj -blb -iwi -blb -xAh dDB dDB dDB dDB -kFH -aKo -poV -clX -qtv -hsy -reL -xLp -kFH dDB dDB dDB dDB -ekf -blb -uRO -blb -chj -chj -chj -chj dDB dDB dDB -kaP dDB -xxo dDB dDB dDB @@ -81555,7 +79015,15 @@ dDB dDB dDB dDB -aan +dDB +dDB +dDB +dDB +dDB +"} +(23,1,1) = {" +dDB +dDB dDB dDB dDB @@ -81585,7 +79053,48 @@ dDB dDB dDB dDB +vnZ +rpQ +sxH +sxH +sxH +sxH +qKH dDB +aJq +aJq +pCn +pCn +oBP +oBP +oBP +oBP +pCn +ybO +thw +wup +atZ +dhG +hfm +hfm +bta +bta +bhE +cXg +aao +aao +bhE +sBV +sBV +sBV +bta +dhG +blt +nGf +dxv +pjk +cwf +tYT dDB dDB dDB @@ -81603,6 +79112,7 @@ dDB dDB dDB dDB +aan dDB dDB dDB @@ -81720,8 +79230,6 @@ dDB dDB dDB dDB -"} -(24,1,1) = {" dDB dDB dDB @@ -81749,17 +79257,14 @@ dDB dDB dDB dDB -aan dDB dDB dDB dDB -kaP dDB dDB dDB dDB -blb dDB dDB dDB @@ -81770,29 +79275,17 @@ dDB dDB dDB dDB -iwi -blb -xAh dDB dDB +"} +(24,1,1) = {" +dDB dDB dDB -kFH -fiq -xHV -duY -cVY -wKy -pXu -kRW -kFH dDB dDB dDB dDB -ekf -blb -uRO dDB dDB dDB @@ -81801,12 +79294,64 @@ dDB dDB dDB dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +aan +dDB +dDB +dDB +gGy kaP dDB -svB dDB dDB dDB +blb +dDB +dDB +blb +pCn +afm +afa +afa +afa +afa +aNO +cwf +mzs +cZj +gJw +ybO +ybO +ybO +ybO +ybO +cwf +lRy +lRy +lRy +cwf +ybO +ybO +ybO +ybO +ybO +qwF +fAD +sjY +pjk +cwf +tYT dDB dDB dDB @@ -81977,8 +79522,6 @@ dDB dDB dDB dDB -"} -(25,1,1) = {" dDB dDB dDB @@ -81991,6 +79534,8 @@ dDB dDB dDB dDB +"} +(25,1,1) = {" dDB dDB dDB @@ -82011,56 +79556,63 @@ dDB dDB dDB dDB -kaP dDB dDB dDB dDB -gcs -tYT dDB dDB dDB -chj -chj -chj -chj -chj -blb -iwi -blb -xAh dDB dDB dDB dDB -kFH -ehw -gBG -hir -weU -iCp -aXy -nMQ -kFH +gGy +kaP +tYT dDB dDB dDB +gcs +tYT dDB -ekf -blb -uRO blb -chj -chj -chj -chj -chj +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +cwf +sjY +fAD +rZJ +oDS +lSy +dEy +mRl +ybO +sdZ +lRy +lRy +lRy +cax +ybO +kNx +jya +gUM +oDS +jTD +fAD +urh +pZp +ybO +tYT +tYT dDB dDB -xxo dDB -kaP dDB dDB dDB @@ -82234,13 +79786,13 @@ dDB dDB dDB dDB -"} -(26,1,1) = {" dDB dDB dDB dDB dDB +"} +(26,1,1) = {" dDB dDB dDB @@ -82268,56 +79820,61 @@ dDB dDB dDB dDB -gcs dDB dDB dDB +dDB +gGy +gcs +tYT +tYT +dDB aJq aJq tYT +tYT +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +cwf +gbh +fAD +jWm +ybO +cbh +gNg +uQT +nrn +frn +lRy +lRy +lRy +bdU +nrn +ybp +qBK +jMp +cor +bDi +wLw +udH +gbh +ybO +tYT +tYT +tYT dDB dDB dDB -chj -jbo -rkS -hIU -kYo -ubs -tDl -blb -xAh -blb -blb -oDE -xck -xck -xck -xck -kph -nQC -uFT -xck -xck -xck -xck -qwo -blb -blb -ekf -blb -uCa -tbX -oGn -hFR -xYX -cPv -chj dDB dDB dDB dDB -kaP dDB dDB dDB @@ -82524,57 +80081,57 @@ dDB dDB dDB dDB -dDB +gGy aJq aJq tYT tYT +tYT +tYT +tYT aJq -aJq -aJq -dDB -dDB -dDB -chj -rhu -soB -syc -dzA -lsK -bWg -lsK -wgl +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +rDU +hYC +bLp +wGx +cdp +nrn +lCT +trX +hKf +ybO +pwO +lRy +lRy +lRy +vGS +ybO +kNx +tyc +dJn +nrn +tjg +wmL +civ +gbh +cwf +tYT dDB dDB dDB dDB -blb -xck -oLN -uMh -pwD -pyl -ojW -xck -blb -dDB -dDB -dDB dDB -gcR -lsK -nUB -lsK -dzA -cpC -ltz -tcZ -chj dDB dDB dDB dDB -kaP dDB dDB dDB @@ -82781,58 +80338,58 @@ dDB dDB dDB dDB -dDB +gGy aJq aJq aJq tYT +aJq +tYT tYT aJq aJq +pCn +bDQ +lmJ +lmJ +lmJ +lmJ +yaT +cwf +gbh +fAD +mUY +ybO +ybO +ukP +ybO +ybO +fwr +lRy +lRy +lRy +pYw +ybO +ybO +ukP +ybO +ybO +ivs +fAD +civ +gbh +cwf tYT dDB dDB -chj -chj -chj -chj -chj -blb -kHI -blb -xAh dDB dDB dDB dDB -blb -xck -toK -cTS -raP -aOS -akS -xck -blb dDB dDB dDB dDB -xAh -blb -sAW -blb -chj -chj -chj -chj -chj -dDB -dDB -xxo -dDB -svB -dDB dDB dDB dDB @@ -83038,46 +80595,58 @@ dDB dDB dDB dDB -dDB -aJq +gGy aJq aJq aJq tYT aJq -aJq +tYT +tYT +tYT +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +krb +gbh +fAD +gAQ +cwf +dEw +dEw +dEw +cwf +xPq +lRy +lRy +lRy +qRb +cwf +dEw +dEw +dEw +cwf +gXT +fAD +civ +gbh +cwf aJq dDB dDB dDB -vmL -blb dDB dDB dDB -kHI -blb -xAh dDB dDB -blb -xck -xck -xck -gnd -jWk -gnd -cxQ -gnd -xck -xck -xck -blb dDB dDB -xAh -blb -sAW dDB dDB dDB @@ -83086,9 +80655,7 @@ dDB dDB dDB dDB -kaP dDB -kaP dDB dDB dDB @@ -83252,6 +80819,8 @@ dDB dDB dDB dDB +"} +(30,1,1) = {" dDB dDB dDB @@ -83262,8 +80831,6 @@ dDB dDB dDB dDB -"} -(30,1,1) = {" dDB dDB dDB @@ -83285,7 +80852,49 @@ dDB dDB dDB dDB +gGy dDB +aJq +tYT +tYT +tYT +tYT +tYT +tYT +liQ +oBP +mHG +lmJ +lmJ +lmJ +lmJ +yaT +cwf +gbh +fAD +hLx +klg +lRy +lRy +lRy +klg +lRy +lRy +lRy +lRy +lRy +klg +lRy +lRy +lRy +klg +hLx +fAD +civ +gbh +ybO +aJq +aJq dDB dDB dDB @@ -83296,56 +80905,10 @@ dDB dDB dDB dDB -aJq -aJq -aJq -aJq -aJq -tYT -aJq -aJq -tYT dDB -chj -chj -chj -chj -chj -blb -kgG -ttg -gEy -dmb -dmb -cnU -ilb -nks -cbJ -xKS -ptz -cBR -udP -xKS -cbJ -nks -tYn -bsn -yaq -yaq -nWE -ttg -fRm -blb -chj -chj -chj -chj -chj dDB dDB -kaP dDB -xxo dDB dDB dDB @@ -83513,14 +81076,17 @@ dDB dDB dDB dDB +"} +(31,1,1) = {" +dDB +dDB +dDB dDB dDB dDB dDB dDB dDB -"} -(31,1,1) = {" dDB dDB dDB @@ -83543,6 +81109,67 @@ dDB dDB dDB dDB +gGy +dDB +dDB +tYT +tYT +tOJ +gKs +sjw +gKs +aJq +oBP +mHG +ucS +gxo +lmJ +lmJ +toX +hYC +jhF +fAD +gAQ +cwf +cnC +cnC +cnC +cwf +xPq +lRy +lRy +lRy +qRb +cwf +cnC +cnC +cnC +cwf +gXT +fAD +civ +fOK +ybO +aJq +aJq +aJq +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -83553,71 +81180,6 @@ dDB dDB dDB dDB -tYT -aJq -aJq -aJq -aJq -aJq -aJq -aJq -tYT -tYT -chj -izm -txd -pKg -kYo -wdJ -tiS -myi -dHU -rQm -rQm -cJb -qPg -puI -qkI -gIz -gNS -xIr -sDl -xBa -utv -ydi -nEa -fiI -blb -blb -ccu -bTJ -pCo -sAb -oGn -ckI -exr -sfd -chj -dDB -dDB -svB -blb -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB dDB dDB dDB @@ -83771,13 +81333,13 @@ dDB dDB dDB dDB +"} +(32,1,1) = {" dDB dDB dDB dDB dDB -"} -(32,1,1) = {" dDB dDB dDB @@ -83804,60 +81366,55 @@ dDB dDB dDB dDB +gGy dDB dDB dDB +tYT +sIB +gKs +xPH +gKs +aJq +pCn +kCq +vEL +xvU +lmJ +lmJ +yaT +cwf +gbh +fAD +lvy +ybO +ybO +ukP +ybO +ybO +iZs +lRy +lRy +lRy +enF +ybO +ybO +ukP +ybO +ybO +rvI +fAD +civ +gbh +cwf +tYT +tYT dDB dDB dDB dDB -tYT -aJq -aJq -aJq -aJq -aJq -aJq -aJq -blb -chj -peW -aqn -sxD -dzA -lsK -qDq -hZb -nEN -fFe -fFe -cgh -rwl -nks -epr -xKS -fcI -dvv -cBV -xKS -epr -nks -vbL -vvg -fFe -fFe -cmu -mSc -dXa -lsK -dzA -mKV -pUe -yhY -chj dDB dDB -kaP dDB dDB dDB @@ -84066,55 +81623,55 @@ dDB dDB dDB dDB -dDB -dDB +gGy +wBo +tdm +wBo +wBo +evj +wBo +lst +wBo +giq +pCn +nAW +gnB +bDg +uOt +lmJ +yaT +cwf +gbh +fAD +tua +oDS +hzO +iFB +oPj +ybO +dEc +lRy +lRy +lRy +yiZ +ybO +nbH +rIH +ouS +oDS +fIP +fAD +civ +gbh +cwf +tYT tYT -aJq -aJq -aJq -aJq -aJq -aJq -aJq -blb -chj -chj -chj -chj -chj -blb -nYD -blb -aky -blb dDB dDB -ybO -ybO -ybO -hYC -okt -hYC -rEH -hYC -ybO -ybO -ybO dDB dDB -blb -aky -blb -vdi -blb -chj -chj -chj -chj -chj dDB dDB -xxo dDB dDB dDB @@ -84323,55 +81880,55 @@ dDB dDB dDB dDB -dDB -dDB -tYT +gGy +wBo +nqx +wBo +qko +mjc +hMX +ful +aem +gbf +pCn +ucm +pkt +mGs +uOt +lmJ +yaT +cwf +gbh +fAD +jWm +ybO +kVB +qrW +rPg +nrn +trY +lRy +lRy +lRy +azW +nrn +eok +gip +avP +cor +nnp +wLw +rVI +gbh +cwf tYT -aJq -aJq -aJq -aJq -aJq -aJq tYT tYT -blb -vmL -blb -dDB -dDB -rUD -orY -pML -dDB dDB dDB -tYT -kFS -hYC -wfE -gNI -lBw -coO -ftc -hYC -kFS -tYT dDB dDB dDB -jhz -xQZ -kpe -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -blb dDB dDB dDB @@ -84579,56 +82136,56 @@ dDB dDB dDB dDB -dDB -dDB -tYT -tYT -aJq -aJq -aJq -aJq -aJq -aJq -tYT -tYT -dDB -blb +vnZ +evw +giq +lVW +eEn +cCP +wWm +mPB +pit +wWm +idB +pCn +teV +dix +fEs +hXv +eMa +ykk +hYC +egC +nlt +tRm +nrn +ktJ +saq +ukY +ybO +sfy +lRy +lRy +lRy +uUU +ybO +nbH +aal +fos +nrn +wGT +wmL +civ +tKD +ybO tYT tYT -dDB -dDB -jul -oTY -qME -dDB -dDB tYT tYT -kFS -hYC -xKz -aAb -svr -coO -gSh -hYC -kFS tYT tYT dDB dDB -hsL -pJT -rqV -dDB -dDB -dDB -aJq -aJq -aJq -tYT -aJq -blb dDB dDB dDB @@ -84836,50 +82393,50 @@ dDB dDB dDB dDB -dDB -dDB -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -tYT -vmL +gGy wBo -giq wBo -giq +sRf wBo -vmL -hZf -kwH -nID -vmL +hFO +jPl +mPB +wWm +nlR +gQy ybO -tYT -aJq -kFS hYC hYC -pEa -iCL -pTp +cwf +mgF +cwf hYC hYC -kFS -aJq -tYT +bLp +fAD +cGG ybO -vmL -hZf -kwH -lLE -dqV ybO -aJq +ukP +ybO +ybO +mxp +nUh +bud +lRy +jtG +ybO +ybO +ukP +ybO +ybO +xNX +fAD +civ +ruh +ybO +tYT +tYT aJq aJq aJq @@ -85093,49 +82650,49 @@ dDB dDB dDB dDB -dDB -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq -tYT -tYT -tYT -fPb -hSG -drw -gvB +gGy wBo +fgX +uFS +wBo +mln +wBo +nzS +dOP +pit +dHx ybO -brC -brC -brC -ybO -ybO -aJq -aJq -kFS -hYC -gJs -uaK -sSM -mvj -sAM -hYC -kFS -aJq -aJq -ybO -ybO -brC -brC -brC -pfx +eUY +pjk +pjk +fRM +pjk +pjk +nFv +gbh +fAD +gAQ +cwf +dEw +dEw +dEw +cwf +xPq +lRy +bud +lRy +qRb +cwf +dEw +dEw +dEw +cwf +amb +fAD +civ +gbh ybO +tYT aJq aJq aJq @@ -85350,53 +82907,53 @@ dDB dDB dDB dDB -dDB -tYT -aJq -aJq -aJq -aJq +gGy +cMG +bTI +jnI +gya +qBM +oBO +wcF +eqr +mUe +vvw +cwf +pjk +rdt +pjk +fRM +pjk +pjk +pjk +qfK +klA +hLx +klg +lRy +lRy +lRy +klg +lRy +lRy +uju +osp +lRy +klg +lRy +lRy +lRy +klg +gjU +eyY +civ +gbh +ybO +ybO +bNq aJq aJq aJq -tYT -blb -vmL -wBo -mnx -ylK -aRS -gKs -hXt -mXm -mXx -vUh -bJN -hYC -pwv -pwv -xzm -xzm -glJ -ooe -bdb -mxc -sNc -xzm -xzm -pwv -pwv -hYC -jrb -dZX -bDO -qqr -bkI -ybO -gBh -gBh -gBh -gBh aJq aJq aJq @@ -85607,53 +83164,53 @@ dDB dDB dDB dDB -tYT -aJq -aJq -aJq -aJq +gGy +wBo +wBo +wBo +wBo +hTz +vOg +iaB +jHM +jdR +kKX +fDf +cjD +gMV +whm +iDP +pUQ +pZp +pjk +gbh +fAD +gAQ +cwf +cnC +cnC +cnC +cwf +xPq +lRy +uju +lRy +qRb +cwf +cnC +cnC +cnC +cwf +amb +fAD +civ +urh +pUQ +pZp +bNq aJq aJq aJq -tYT -tYT -vmL -xRv -roc -qUd -jwC -vDD -gKs -ydI -ijP -ivT -gCP -sWE -hYC -gjP -quP -lrL -hYC -hYC -pDH -cwf -fXe -hYC -hYC -lMg -tSi -vnz -hYC -dYY -ijP -ulf -gCP -nkp -kvb -gBh -gBh -gBh -gBh aJq aJq tYT @@ -85671,7 +83228,7 @@ gZi gZi gZi hrV -hzm +lOj dDB dDB dDB @@ -85863,55 +83420,55 @@ dDB dDB dDB dDB -dDB -aJq -aJq -aJq -aJq -aJq -aJq -aJq -aJq +vnZ +evw blb -vmL -aJq -vmL -wBo -nHR -fYo -jVI -bBd -sUk -apd -fJt -chb -hqm -uhh -gCR -lOk -cVS -kDY -kyg -xSi -tic -neM -bRc -kDY -cVS -bSm -qxz -mRA -hvZ -xHT -fJt -vPY -wPt -bNq -cmf +blb +blb +blb +blb +giq +pit +nlR +seq +hNq +cwf +sUr +oVm +fjf +fjf +qmD +bPU +kbL +dkv +fAD +jXH +ybO +ybO +ukP +ybO +ybO +wtJ +lRy +uju +lRy +hQG +ybO +ybO +ukP +ybO +ybO +tAp +jUy +eOY +aiI +rfT +iPd +ecq fYU -gBh -knv -knv +aJq +gcs +gcs vmL dDB dDB @@ -85930,7 +83487,7 @@ iVK jhC lOj hLT -hzm +lOj hLT lOj dDB @@ -86120,51 +83677,51 @@ dDB dDB dDB dDB -dDB +gGy aJq aJq pWm pWm -bvt -bvt -bvt -aJq -aJq -tYT -xpf -nqx -fPb -uNO -klL -vtw -gKs -mFZ -exE +pWm +pWm +wBo +jGu +wWm +wWm +mHy +ybO +jTW +hLx +pjk +pjk +pjk +wBy +kEW +wBy +fAD +vZd +oDS +iEo +ejO +kvz +ybO +sfB +lRy +uju +lRy +avd +ybO +uQo +rYD +lJq +brG +uBE +wLw +mgR pjk -wWP -dlk -qUN -paW -eOh -paW -nxO -pXc -nlI -iTZ -xTM -pXc -nxO -paW -qbv -paW -yac -tHY -efl -xoz -gro -mnA +jIA +kRi bNq -qeq xLy cvJ ueX @@ -86179,7 +83736,7 @@ haO slY kwY kPW -ueX +slY ikr iVK iVK @@ -86191,7 +83748,7 @@ kkV ipr lOj lOj -hzm +lOj lOj kdH kdH @@ -86373,55 +83930,55 @@ dDB dDB dDB dDB -aGa dDB dDB dDB dDB +gGy aJq tYT -hjj -itv -wHL +kGn +wzv +byt lOM -bvt -aJq -pnl -vmL -xpf -lVW -cdW -smd -jdU -ihj -gKs -pIB -wNi -tFB -mKK -tnH -vcR -fxV -wJn -pGt -uJC -rbg -qYp -tzh -rao -rbg -uJC -qNN -eOP -qNN -fFu -oDa -umn -bPU -wlS -akU -bNq -vlC +wBo +cTY +veR +pit +ggz +ybO +ajg +hLx +pjk +oVm +fjf +sRW +fjf +cHD +hhy +wFK +ybO +qOr +kFK +uSc +nrn +mjt +lRy +uju +lRy +sHI +nrn +jNu +uGF +wyM +cor +bfU +wLw +weY +udH +jIA +gbh +taT nHd lyR qDJ @@ -86450,7 +84007,7 @@ lOj dTW lwI lOj -jaN +vSn kdH kmo ouN @@ -86458,8 +84015,8 @@ rST ouN oQr kdH -pZu -jxJ +eEG +rzX slw dDd vuj @@ -86630,55 +84187,55 @@ dDB dDB dDB dDB -blb dDB dDB -eNm -bTd -qlk -hRF +dDB +dDB +pic +aFH +vmL kGn pFK cXu kYI -pWm -pWm -pnl -fuC -xpf -sRf -fPb -tQZ -jNL -fEr -pUK -vjK -rVA -bPU -yii -kXf -hvo -kQr -bNg -kQr -pPH -cTu -pvP -nhe -nqi -aEy -uyB -wAM -eEX -kQr -etX -wXV -xHT -lGq -sqB -fJP -eDe -viw +wBo +wBo +wBo +ulC +hNq +ybO +pjk +lmo +tmO +qav +epm +gNa +pEp +fPK +dJB +asf +nrn +dKY +uTN +kvz +ybO +wwv +lRy +uju +lRy +nQc +ybO +uQo +ueP +vpz +nrn +bqc +soU +fwV +wjR +jIA +htg +bNq aIk eiU slY @@ -86707,7 +84264,7 @@ bTE cob vWA lOj -mnZ +aNE kdH nJU kEA @@ -86715,8 +84272,8 @@ kQe ouR oRr kdH -pHo -pZz +dfM +iIG slw qtJ qdu @@ -86887,12 +84444,12 @@ dDB dDB dDB dDB -blb dDB -mys -blb dDB dDB +dDB +dDB +wZs tYT pWm pWm @@ -86901,41 +84458,41 @@ pWm pWm pRw pnl -nSo -cPB -mPe -wBo -gKs -fpF -gKs -gKs -aOb -utf -eMb -mFD -mrW -hYC -wVh -hFK -ubh -hYC -fuB -soo -qFw -sbf -pfD -hYC -uUp -nIL -lNC -hYC -wyU -rkk -blZ -rxs -upf +pxz +enI +ybO +ybO +qKA +cnC +qKA +jZl +jZl +ttL +nwK +ttL +jZl +jZl +jZl +jZl +jZl +jZl +qPk +qPk +eEj +qPk +qPk +cGV +cGV +cGV +cGV +cGV +kUN +kjW +kjW +fcE +ceN +cDV bNq -gBh ybs knv knv @@ -87144,59 +84701,59 @@ dDB dDB dDB dDB -blb -mys -blb dDB dDB dDB dDB +dDB +wZs +dDB vmL pWm jUx jUx wzv jUx +wzv +wzv +fjh +dfd pnl -xuX -bOb -uzI -hpi -dwP -jNr -tsR -gKs -obd -exA -vAb -tSg -nYP -xae -qol -mTt -qol -xae -qwc -ikf -fLj -rUa -csB -xae -uXI -iaW -vZM -xae -wvT -jBW -okg -vKs -ffE +ooo +ukP +ooo +jZl +wmq +wmq +wmq +wmq +vMI +pKW +kiP +dIw +dYv +jZl +feu +nfn +dAu +bGX +jhj +cGV +tkU +bst +pqr +tkU +kUN +cSc +tKn +eWr +xcW +prP bNq -gBh ybs knv -gBh -gBh +aJq +aJq aJq tYT dDB @@ -87222,16 +84779,16 @@ jvR jir lPi uzJ -mQh -nJU +eib +knk ppk uzJ ovQ -oRr -poM +oSb +edA uzJ -mKB -aLm +ryX +slw slw lLi slw @@ -87400,13 +84957,13 @@ dDB dDB dDB dDB -dDB -tmL -blb -blb -blb -cLg -blb +ndm +vnZ +ipq +ipq +ipq +lDo +qKH blb blb tGK @@ -87414,46 +84971,46 @@ pWm pWm pWm aap +wzv +wzv +fjh +wzv pnl -pnl -wqP -pnl -pnl -iXx -pnl -wqP -pnl -bBy -nsa -cgz -nsa -bBy -xae -xOR -oPg -aiL -xae -csB -opc -xRa -ozM -spa -xae -gPf -xef -xme -xae -vIF -bYY -nBM -bpv -vIF +dpH +sXj +gAy +jZl +bKK +pET +pET +lRK +pET +pET +tfD +gyj +gyj +cRo +tnh +vHX +fIe +kHp +cCV +gBK +jSm +nEG +scP +bYV +teo +nqN +hBi +bzF +gzM +svd bNq -cmf liX jqd lxP -gBh +aJq aJq aJq dDB @@ -87467,27 +85024,27 @@ ohl slY slY slY -ueX slY -ueX +slY +slY nFo -oCG nFo nFo nFo nFo -lxy -hzm +nFo +kxa +lOj jTA -ovQ -knk -ppk +qYG +pZK +xKI kQM -owl -oSb -ppk +kQj +pZK +xKI mjQ -fLF +qqB ahr nFX nFX @@ -87658,7 +85215,7 @@ dDB dDB dDB dDB -oua +wZs dDB dDB dDB @@ -87671,46 +85228,46 @@ aWx oFc qcF jUx -fbs -gKF -uPf pWm -dzD -pAa pWm -pRw +uEH +dfd pnl -xNE -soC -mom -cWQ -pgU -xae -xae -xae -xae -xae -pYP -dyt -qtP -vEZ -gIr -xae -xae -xae -xae -xae -eWj -jMy -uvo -dJU -cla -qyb +bjt +bjt +bjt +jZl +bEG +rCk +uQI +oBF +uQI +xEx +uEZ +jDi +dYv +jZl +mbP +din +pMq +iHE +lps +cGV +pUA +bPk +mSl +qJL +kUN +rkM +isC +bPd +vDG +rry bNq olj cmf gBh -gBh +aJq aJq aJq dDB @@ -87725,31 +85282,31 @@ slY gOK slY hfc -kPW +bEv iNE nFo ach -lKH +ueL ylH nEl ejq tvN -lRc moz -kee -nua -nPt +moz +vjs +odX +odX +odX +odX odX -lkI -oSg -lWF +rWK mjV -pHs +sVQ mhk ihb ozt -dEQ sqz +bHw mhk iSD pbw @@ -87915,7 +85472,7 @@ dDB dDB dDB dDB -oua +wZs dDB dDB dDB @@ -87928,46 +85485,46 @@ qQF lgr fFO wzv -pWm -pWm -yil -dbo -yil -kNn +wzv +wzv yil -kNn +wzv pnl -rlk -wby -juF -chf -lSF -nsa -lpT -uOL -iME -nsy -beg -adV -beg -jIa -beg -beg -dIZ -lRz -xQS -fKA -fKA -oUq -sav -gIM -amH -ccO -bNq +bjt +lrN +bjt +jZl +oqq +tmK +qMj +eLF +uBP +gGO +uEZ +jDi +nXv +ttL +pnH +dPW +cAv +iCx +pQP +mzx +dcK +cwj +izF +pdA +kjW +fap +uqg +cjS +gqS +kmL +ecq olj gBh gBh -gBh +aJq gcs blb blb @@ -87983,30 +85540,30 @@ gPN gZk iNE kPW -kPW +lxE nFo tPZ rPx cvP rWP -bCh +kMY jWA -lTv -oem -oem -nxo -oem -oem -owM -oSx +uzJ +jtB +jJw +fxO +rPM +fxO +qMI +rfP +fiE qby qby qby +iJH +iJH mhk -mhk -mhk -xxT -mhk +bHw mhk pGS sUN @@ -88172,7 +85729,7 @@ dDB dDB dDB dDB -oua +wZs dDB dDB dDB @@ -88184,42 +85741,42 @@ dDB aWx tdY qcF -wzv +kNn yil xnL yil -pWm -pWm -pWm -mMF -mDb +jHN pnl -cSP -kgW -uJU -hNU -mBq -bBy -yhS -gCp -uah -beg -glO -lda -ybC -uGB -vja -ssP -ioN -qPO -oYN -dNM -lPw -wDF -qid -bkO -nHP -xoV +pnl +pnl +pnl +emz +tXF +qaU +yew +ukf +vLX +fvv +uEZ +jDi +gxA +ttL +fkr +dPW +vCp +moN +kWY +mzx +dcK +cwj +izF +twA +kjW +xcW +hMQ +tNm +nWa +iua bNq bJK dez @@ -88238,32 +85795,32 @@ xpl slY gPN slY -jCo -kPW +kwY +bEv hfc nFo hNv -lbF -lLq +iJp +ggn nyf ejq -jkS -lTN -mRD +oEL +uzJ +vzD +amq mRD -knL kEH mRD -llg -oSx +gGA +rfP +fiE qby -mjX +frY mLh -nry -qRq -mhk -vdL +njv +rev mhk +bHw mhk cXb sry @@ -88401,84 +85958,84 @@ dDB dDB dDB dDB -dDB -"} -(50,1,1) = {" -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -dDB -bre -blb -blb -blb -cLg -blb +dDB +"} +(50,1,1) = {" +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +dDB +ndm +aKm +ipq +ipq +ipq +lDo +aFH blb blb pWm pWm pWm pWm -pWm rjo pWm pWm pWm -bvt -bvt -bXb +jHN +jHN +jHN +jHN yil -dfz -ymj -wzB -xvb -pbT -nBd -kLv -nBd -ibB -ibB -beg -fKR -owd -dYw -oQs -wGo -gKz -sio -hqr -uqG -iql -wmd -iSE -lJF -sTW -mTC +fTJ +qpp +tmK +uBP +dBT +qMj +gGO +uEZ +jDi +jBg +ttL +glo +dPW +vCp +vgL +kWY +mzx +dcK +cwj +izF +eyW +kjW +fap +kti +iwR +oQK +dFG bNq -bNq -cmf +cvJ olj knv aJq @@ -88492,34 +86049,34 @@ dDB mEB gDH mFA -ueX slY slY -jCo +slY +bEv slY slY nFo nFo +xvR +pIo nFo nFo -nFo -nFo -kZB -lUz -ohj -ohj -nxX -ohj -ohj -oxw -lFG +boG +hmR +jGC +rtH +eti +eti +eti +dvP +odX +oyH lWY -mkF +oZZ mLk -nsL -kVn +hXM +pmD srn -iHT pRc mhk pbw @@ -88686,56 +86243,56 @@ dDB dDB dDB dDB -oua -dDB -dDB +blb dDB dDB +wCc dDB +wZs dDB dDB tYT aJq -aJq -pWm +gcs ako mmT vtJ acg pWm -bvt -bvt -vcm +eZd +wzv +wzv +wzv oii pnl -uGS -aIE -dOY -wZk -bWk -bBy -sdF -eAC -aHb -beg -xQt -xih -fLy -kNG -jzJ -sqg -gub -uyS -iKK -uqA -vMo -vdB -kDj -thI -hnG -cmf -gBh -knv +sZP +wvZ +mDS +uFe +mDS +hal +uEZ +jDi +jHJ +ttL +fkr +aJP +dFA +cOI +uIu +mzx +dcK +cwj +izF +ohf +kjW +xcW +lkN +rjw +vSt +kOH +bNq +cvJ aIk knv aJq @@ -88751,32 +86308,32 @@ gEc gIx sjq sjq -hyO -roi -jCi +guq +jCo +tki nPX ouT -jMb -kzI -kzI +jjq +jjq +jjq rST iUN -jlv -sRR -odX -fts -nyE +pIg +rLp +moz +iqM uzJ -axj uzJ -azK +sjX +uzJ +mLz +cNw qby -mkO +nzd mMt dVW -qSS +xcA mhk -tKf kwy mhk bBh @@ -88790,7 +86347,7 @@ iSD rnr aCz wAW -spo +wXk xiF gEx yea @@ -88943,18 +86500,17 @@ dDB dDB dDB dDB -oua -dDB -dDB +wCc dDB dDB +wCc dDB +wZs dDB dDB tYT aJq -aJq -pWm +gcs arN wOz viE @@ -88962,37 +86518,38 @@ bOa pWm bvt bvt -bvt +lAM +fgo oii pnl -opo -sID -dxr -dpk -xdl -nsa -niv -jRR -niv -beg -qXd -pft -kwr -ydV -shK -pzi -vpS -iqY -vnp -vIF -jrS -qAR -eIv -eKU +gmv +jrD +jrD +jrD +jrD +ggJ +ibP +lxm +wgj +ttL +foh +exF +yey +aZp +ioQ +mzx +qaX +xJT +sMB +gbT +kjW +qdU +vuV +xLS +lfq +cHt bNq -bNq -gBh -knv +xxt liX knv aJq @@ -89005,35 +86562,35 @@ dDB dDB slY slY -slY hTr slY slY -iBo -slY +qgX +mmZ +jjq jiu -jCP -kia -kia -kia +obk +tfj +kzI +gus oGl iVx lzp jFB -tll +mRQ +uJI wuM -nyS pBD wuM pBD +uQt +wuM wuM -vLP wuM -vLP mhk mhk mhk -xmI +mhk ivh mhk fme @@ -89053,7 +86610,7 @@ uAk yea vmX vij -xEl +oNQ wyl fEC fEC @@ -89141,7 +86698,7 @@ xjz xjz xjz xjz -dDB +xjz dDB blb blb @@ -89200,18 +86757,17 @@ dDB dDB dDB dDB -oua -dDB -dDB +wCc dDB dDB +blb dDB +wZs dDB dDB tYT aJq -aJq -pWm +gcs pWm hDg qMG @@ -89220,37 +86776,38 @@ bvt bvt bvt bvt +bvt yil pnl -wQa -tgD -vyM -hmB -slC +wFZ +oLc +jDi +jDi +jDi pnl -wqP +emz pnl pnl -beg -prI -cVM -mvn -jwM -prI -beg +jZl +xck +hyS +xck +kMg +xck +cGV bNq bNq +ecq bNq bNq +pTK bNq +uiK bNq bNq bNq -gBh -gBh -gBh knv -aIk +tZE knv aJq hwJ @@ -89260,37 +86817,37 @@ blb blb blb blb -blb slY hLD hTD oOK slY -hfC +lFb slY jjq -hyb +jjq +dcu jNc qSH -vNv +mKR rST iVI -jmK +fma jHB -gxL +sRs +qMM wuM -bKz -kFg -kRJ -bvV -lGk -uKP +rKn +bdi +lsH +nmE +dFn wCI -swV +eJi mhk nFY mhk -mhk +mCV mze iLH oyz @@ -89397,7 +86954,7 @@ hJC aHJ wmy tBm -xjz +tBm xjz blb blb @@ -89457,57 +87014,57 @@ dDB dDB dDB dDB -oua -dDB -dDB +wCc dDB dDB +blb dDB +wZs dDB dDB dDB tYT aJq bvt -bvt fiw oIf pWm bvt bvt bvt +bvt pWm oii pnl -bFr -aFU -mgz -vSh -bbp +jDi +jDi +jDi +jDi +jDi pnl oCE oCE lYH fGU bYl -onv -gcM +ksM +cKy tAm iQr kfv vgp -jhk +hrx hrx hrx lLe -mid +emg knv -rQH +hFd wdo tkN gBh -knv -ovt +cvJ +ybs knv knv knv @@ -89517,32 +87074,32 @@ dDB blb dDB dDB -dDB slY tjY siG nEA slY -oPi -xOm +tBE +ehu +wtd pAU -nLH -nUx -rie -ipd +fxc +nku +jKl +jgj rTA -nTi -lzA +gFi +xco lUI -tVR -pBD -nnc -jZc +rJQ +iKn +gBs +ggK +mek kSb -tca -lGT -lWR -mlr +cjc +hlP +hHX nxJ mhk xYJ @@ -89654,7 +87211,7 @@ aWt sis sis sis -tBm +mdp xjz blb dDB @@ -89714,12 +87271,12 @@ dDB dDB dDB dDB -cBX -dDB -dDB +blb dDB dDB +wCc dDB +wZs dDB dDB tYT @@ -89736,11 +87293,11 @@ bvt pWm yil pnl -jZl -iXn -lix -aaA -jZl +urP +kLr +wkj +tuu +kHd pnl oCE pWm @@ -89756,7 +87313,7 @@ bNq bNq knv knv -hgV +lZr wDM uaZ fTf @@ -89774,35 +87331,35 @@ dDB blb dDB dDB -dDB slY rhm cis slY slY -oPo -xOm -tdD +lFb +qTS +wtd +eQI vrW -qul -rif -tro +uUz +uSM +sEd rTA -sgC +csj eDy uzJ -uzJ +sRs +lzp pBD -usg -uSt -kSf -lme -lHe -lWU -tca +rJB +cUV +ksE +woY +uUq +wyG urF mhk -xZd +cEp mhk sNW mze @@ -89820,14 +87377,14 @@ cdB wAW rpB jzr -rpE -tAF -vnr -caD +gLS +tsl +pMX +cDQ buc -alg -qwK -xjU +rFU +qgZ +oSB fEC kJJ qVP @@ -89906,7 +87463,7 @@ eua izh xAG jWd -lGO +rEV cZA hyX tBm @@ -89971,14 +87528,14 @@ dDB dDB dDB dDB -eNn -blb -blb -blb -blb -blb -blb blb +dDB +dDB +wCc +dDB +wZs +dDB +bSo aJq aJq aJq @@ -89996,7 +87553,7 @@ kNn pnl pnl pnl -wqP +emz pnl tOc oCE @@ -90031,37 +87588,37 @@ dDB tYT aJq dDB -dDB -ueX +slY +slY mEB slY +vse +mFA slY -nMV -dRD -xwz -xwz -gxr -fSe +jjq +jjq +fCK +jjq ibe ipP rST eeb -lzU -dfN -pJn +fHX +sAy +jfP +xeZ wuM -pwJ -uSG -kSO -gNC +cbq +eCO +bIu lHk -lXf +nhk lKg efS mhk -qTJ mhk -rGN +mhk +mhk mze mhk feL @@ -90084,7 +87641,7 @@ pvC aLS wzS wzS -tAu +lXM fEC rui qVP @@ -90227,28 +87784,28 @@ dDB dDB dDB dDB -dDB -eNn -kAG -kQo -kQo -kQo -wJa +aGa blb -vmL +blb +blb +wCc +blb +wZs +blb +ofx aJq aJq aJq bvt -pWm -pWm -pWm -bvt -bvt -bvt -pnl -pnl -wqP +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +sXY kNn oCE vxX @@ -90291,33 +87848,33 @@ dDB dDB dDB blb -dDB slY -ohb +bUq xwz -fSe -pIi -tPa xwz +cyQ +cuZ +eNa xwz mTl +mTl rST -sgL -swO -kYZ -msy -vLP -utH -pBD +wAh +jry +rFv +dwy +bbV +wuM +wuM wuM vkN lHT vkN -mhk -mhk -mhk -mhk -mhk +wuM +wuM +sHW +rrJ +uiO mhk mze mhk @@ -90331,10 +87888,10 @@ lFm kzV uaa eYB -mIE +vJE wXk glM -oMF +jmC yea vrf von @@ -90485,29 +88042,29 @@ dDB dDB dDB dDB -eNn -uHq -blb -blb -blb -vrK blb +dDB +dDB +wCc +dDB +wZs +dDB vmL aJq ayK urz -pSQ -pSQ -mfU -wiR -wiR -wiR -mLD -tlC -mfU -pnl -pUR -jUx +urz +urz +sUM +gPv +oTZ +whn +avT +cYt +nMk +ayK +wIG +ayK pnl pnl pnl @@ -90548,33 +88105,33 @@ dDB dDB dDB blb -dDB -ueX -ohl +slY +vse xwz -gGw -nsX -hoV -vuH +cky +juo +iDm +biV xwz -rFa -rTD -iWb +gPO +moq +jro +jnn jnn bDN bDN -qto -kpT +ebM +sfL kFD kTp -lmv -lIf -lXn -srn -ntJ -nGu -xYJ -ina +itf +qnU +wbt +kTp +oOm +jJO +kik +uVB mhk gLV mhk @@ -90587,11 +88144,11 @@ tBk miF miF miF -juP +etJ wAW -lqq +mFd ckP -cQI +amX yea yea vJn @@ -90742,31 +88299,31 @@ dDB dDB dDB dDB -eNn -ojK -sQa -lxO -sQa -osu -vuk +blb +dDB +dDB +blb +dDB +wZs +dDB ayK ayK ayK -lhZ -kXj -xYG -wiR -ouj -pCQ -oUz -cMZ -pnl -tlC -pnl -xaK -pnl -pnl -neL +gxd +oks +dlj +cYt +kMe +kMe +kMe +kMe +oJm +jeF +vZu +jeF +mWB +rDV +vsf fHD agR dgV @@ -90778,13 +88335,13 @@ uOk nmH sHO ojz -sLu -urE -ess -mFH -vfG -oSw -jyl +hlC +srx +oOs +ehd +djX +jmN +qUJ bNq pkB sCm @@ -90805,36 +88362,36 @@ dDB dDB dDB blb -dDB slY -mFA +vse xwz -mdX -fCd -iJh +unG +qrJ +iUI jwU xwz -rFP -rTU -sgR -obH -sSx -tnu -tPg -uuN +hYQ +pNa +wzz +dXu +ahI +lkL +hGA +tsk +nzy btG pBD -vLD -lIn -lXY -mhk -ina -pyA -ina -xYJ -xYJ +qhU +rRl +mCW +wuM +pZC +yjy +jmX +tri +qYq xsD -srn +mhk xxj cSb nDj @@ -90845,11 +88402,11 @@ cxz cZs cZs eYB -mIE +vJE wXk uQK -iXZ -vpg +bfS +fMf yea vJA vKa @@ -90999,49 +88556,49 @@ dDB dDB dDB dDB -eNn -uHq -blb -blb -blb -luC -lOC +wCc +dDB +dDB +rpi +rpi +vbM +rpi jkV cYt gyt -gQK -tjH -xYG -dEA -kWK -bhb -hEt -qMu -ouj -tXS -uus -wNA -ceA -rDV +cYt +cYt +cYt +cYt +kMe +kMe +kMe +kMe +kMe +lWV +mWB +iSt +iSt +ltU ugF eTj -gtU +hDu uJH tHa -noU -bxu +jeV +xFf xta cbj bKl cqM dgm -wIu -oHO -sDo -fhX -lsd -jJu -kya +kEo +hkd +hkd +hkd +hkd +eue +dfT bNq muy hAN @@ -91062,33 +88619,33 @@ dDB dDB dDB blb -dDB slY -ohl -uuR -rZe -jIH -bbK +vse +and +nLi +cNl +iiR ePn uki -rFW -bCZ -uqE -fkd -sSA +iek +xgK +upM +jQG +abv wcP -qDP -wwJ -yjc -vLP -oyZ -lIq -lYt -mhk -xYJ -lwC -tYL -mhk +kRb +rJL +nzy +gOS +wuM +giA +jFg +uur +wuM +pBo +gEb +dgy +lud mhk fpN mhk @@ -91256,50 +88813,50 @@ dDB dDB dDB dDB -eNn -sQt -sQa -sQa -sQa -uMV -qmo +wCc +dDB +dDB +blb +dDB +wZs +dDB ayK ayK ayK -kpq -qsa -uPN -vIp -iAS -vEQ -jph -kTu -bnq -tRj -pgr -cUa -hyx -cDE -fCW +evW +mWB +mWB +cYt +kMe +kMe +kMe +kMe +nDJ +lWV +cYt +tHo +gAV +tDu +ccA oPa sXE qKx xed -rbp +uLk vrh eat oYv jJg bsG wqW -jad -hUh -hUh -uXS -nTK -uGy -mMH -qZE +jHS +tdb +tdb +tdb +tdb +qyr +mLZ +naK lER hRO knv @@ -91319,36 +88876,36 @@ blb blb slY mEB -ueX slY -ohl +iZx +xwz xwz -pjG -hZe -bOY -rzL +kOA +iUA +gZR xwz -rGq -rUt -sgR -wcz -eIF -juJ -mTe -kqL -kFI +rWR +iQM +lvN +kJu +fvX +cOs +kiW +xAO +rmc +hjS pBD -wSf -lIw -lYw -mhk -qjn -uiw -ina +lsH +pZt +mac +wuM +oLE +lmp +iAt +tQn mhk -ozt -mrn -vRn +mSA +gTj ani bKv jCm @@ -91513,49 +89070,49 @@ dDB dDB dDB dDB -eNn -uHq -blb -blb -blb -lUu -blb +wCc +dDB +dDB +wCc +dDB +wZs +dDB aJq ayK -aKb -uUG -aEq -xYG -ouj -ouj -ouj -iyl -fZL -ouj -gxK -aWG -trA -wEc -rDV +oks +gxd +gxd +mWB +xqL +kMe +kMe +oYF +kMe +kMe +cYt +mWB +sHg +pjX +ffL tmk wzF gom gzs ilz -noU +jeV hFA gkW rmM btV lMl ayR -erJ -vDg -euP -all -eWf -eIx -oHJ +kEo +aQX +aQX +aQX +aQX +oRW +qsr bNq wxG uIX @@ -91578,32 +89135,32 @@ ueX hNo wZF wZF -had -xwz -xwz -xvJ -xwz -fSe -xwz -xng -pjL -llN -jqu -sSU -vuJ -hEi -kqQ -uUb +tuw +slY +slY +fAn +slY +slY +xSY +khw +xsP +oxt +gIr +jJB +sBn +ePr +eCV +bjf wuM -lmR -lJV -cYT -mhk -mhk -dDi -mhk +mta +xDl +kjb +wuM +dLl +twm +dLl +dLl mhk -sNW jQv mhk oOC @@ -91622,7 +89179,7 @@ beN oRw xle xle -slZ +hzr iIU wAj xle @@ -91770,29 +89327,29 @@ dDB dDB dDB dDB -eNn -rMs -qrc -uFy -uFy -kVK -blb +wCc +dDB +dDB +wCc +dDB +wZs +dDB aJq ayK -xYG -pTt -xYG -xYG -ccL -unG -ouj -rmD -eZt -ouj -xYG -ufR -xYG -xYG +ayK +ayK +lQU +mOc +lQU +ayK +lQU +lQU +lQU +ayK +lQU +mOc +lQU +ayK rDV mOx dwC @@ -91806,13 +89363,13 @@ nra hGp sHO drI -cRq -rbl -tcA -uKO -vfG -lGJ -mAK +kEo +eAE +klG +cHh +klG +jLv +jSE bNq hOX fEU @@ -91834,28 +89391,28 @@ mEB gDH mFA gKi -gPT -qQP -pJQ -wZF -pqv -wZF -vdl +lOg +ohl slY -ueX -rVQ -oFi -jqA +gTw +nPg +gDH +slY +slY +slY +xyb +gJb lUT -pih +lYe mTl -kqW kFJ -slY -slY -mhk -mhk -mhk +uHE +kFJ +wuM +wuM +wuM +wuM +wuM rZb jXc xYJ @@ -92027,29 +89584,29 @@ dDB dDB dDB dDB -eNn -blb -wkU -blb -blb -blb -blb -vmL -aSV -hMb -fuT -lgc -sbG -qDv -eVm -lPW -htQ -tMm -fWe -hxG -iXg -tSV -xYG +wCc +dDB +dDB +wCc +dDB +wZs +dDB +oma +sjG +pXv +ouJ +bzc +bzc +bzc +jdX +ikC +bhN +aRx +jdX +bzc +bzc +bzc +jrv rDV rDV rDV @@ -92092,30 +89649,30 @@ gEc mFA slY slY +oOf +qSF +rFm +fQv +wZF +wZF +wDQ slY slY -slY -xZh -slY -qQP -roi -slY -slY -slY -xZh -xZh -slY -slY -uxd -kFU -kXR -slY -rXw +uiU +bLG +diN +xat +gSA +nwb +qkC +wvF +mhk +qTJ lYT mhk uiw mhk -mhk +sNW mhk mhk ete @@ -92284,38 +89841,38 @@ dDB dDB dDB dDB -fJX -blb -tCc -blb -bSo -bSo -blb blb +dDB +dDB +wCc +dDB +aKm +dHW +aFH ayK -iJO -bdd -prV -hdT -ktL -eLZ -uCL -pss -sed -drF -fZV -bcZ -kLk +rzb +aNd +aNd +aNd +aNd +aNd +lrQ +osw +dYE +aNd +aNd +aNd +cay +nlj ejN -xZb -rCU -lfQ -eld +rbI +kZr +ftT ejN ejL feo oVt -mUI +aQx rFb rSW wPM @@ -92348,25 +89905,25 @@ slY slY mFA slY -aus -voz -sRg -hmb -huh slY slY -qQP -iqj -sjq -sjq -syx -jIh -csA -jhs -kso -kYG -kYG -pep +slY +slY +bmO +slY +slY +qgX +kAn +slY +fWj +hgp +hgp +lKf +cCC +aBQ +mFQ +mFQ +xRC nJo avY oHk @@ -92378,7 +89935,7 @@ vMP eRy mhk iSD -keQ +bqA cxz vUS miF @@ -92541,38 +90098,38 @@ dDB dDB dDB dDB -eNn blb -wkU +blb +blb blb uqe uLW blb -blb -aSV -xug -dxu -isv -sbG -njH -uJd -xQr -xQr -xQr -xQr -xQr -bYe -aPB -qDA -bIi -oet -cYU -bIi -qDA -bLu -hkG -hkG -way +aKm +eXl +jNV +guh +cBl +fJe +aJb +cay +fMB +maK +iWD +cay +aJb +cay +oCb +mct +ffK +gjE +aTB +hXc +aUb +vud +efi +efi +nGP vuq faQ uaT @@ -92603,27 +90160,27 @@ blb blb blb ueX -gIx -gKK -vOm -tOw -hVk -gpP -iJq -ivm +nmV slY -kPW -slY -slY -skW -wOM -jpR -ueX -aae -uxd -xaZ -dZm +aus +voz +sRg +hmb +huh +ivm slY +brO +wZF +dTj +umL +uJV +uJV +gnO +gqw +gEa +iAL +spA +mhk ilo tYL mhk @@ -92635,7 +90192,7 @@ mhk oTH mhk lji -wZD +qzP nDj sRF miF @@ -92798,33 +90355,33 @@ dDB dDB dDB dDB -eNn -blb -wkU +wCc +dDB +dDB bSv sQm sQm wNU aci ayK -ayK -ayK -ayK -ayK -aUR -qdJ -xQr -snm -izT -emC -xQr -roe -xri -xYG -xYG -vdS -hox -orb +gBB +rZo +icF +xUK +dTo +dTo +sTJ +imO +qmT +dTo +dTo +dTo +gwf +lCb +rQi +jWC +eUx +xgd wfn eDo ecY @@ -92860,27 +90417,27 @@ dDB dDB dDB slY -atx -ueX -gQm -hbw -hfZ -hmh -pGE +aBt +uPf +vOm +tOw +hVk +gpP +iJq qfV slY -kPW -kAn -slY -xZh +apP +jHC slY -xZh -slY -slY -ksx -mEB -slY -ueX +hjA +mnU +nzO +jln +jAN +gEa +bzW +sKO +mhk jQv sNW mhk @@ -93055,32 +90612,32 @@ dDB dDB dDB dDB -eNn -blb -wkU +wCc +dDB +dDB osa vrT vrT blb osa blb -vmL -hdT -bsJ -iGc -lfI -xYm -xQr -gzL -aGc -gzL -xQr -ezG -pGi -fEi -xYG -xYG -xYG +ayK +tpW +scU +dyI +dyI +dyI +jhB +bbB +pys +dyI +dyI +dyI +tpW +pUM +ayK +ayK +urz xYG tNV hss @@ -93088,7 +90645,7 @@ lYF uBj nRA wnR -dLj +eVC gKL jOi rNI @@ -93121,22 +90678,22 @@ slY slY eVc hbw -wOZ -hmj +qZX +lWE arL sRg slY slY slY slY -nHp -jrX -jIN -xEm -xPX -ksA -oJR -oiw +wnd +xat +fIq +jBJ +wnd +xjc +aMI +xat mhk jQv sqz @@ -93146,7 +90703,7 @@ qBz qTR kym rHD -qVR +dTe wCR jRz qzP @@ -93312,35 +90869,35 @@ dDB dDB aan dDB -eNn blb -jia -gBe +blb +blb +bWl sQm sQm aci bWl wNU -wNU gfA -lFT -eUR -hTC -wWb -qjq -xAW -npL -czf -hwG -uCE -jhJ -tTK -aZu -fBZ -abR -xYG -wfn -lFH +wXL +ipN +szg +tIR +dFY +pMM +tIR +hCT +kAz +cKm +szg +tpW +pUM +kMe +knw +fGf +ayK +izf +aWA ugA tIN hEl @@ -93376,24 +90933,24 @@ sRg cJT eEq sRg -gQG +iGb hbw -aGI -hmQ +nLQ +mpL pGE -jug -rqq -rqq -rqq -vpb -lmS -lAk -jIY -jDm -tfX -khZ -nSY -nYQ +uwO +bRA +bRA +bRA +xKn +dmO +pVV +axP +ivC +kgp +ftI +hao +uIG mhk ifl mhk @@ -93569,35 +91126,35 @@ dDB dDB dDB dDB -eNn -blb -luC -amV -vrT +wCc +dDB +dDB +bSo +osa lBp sYg +rpi blb -blb -blb -hdT -qJN -oaB -oZQ -nbj -nVe -son -ieM -miN -pkd -egR -jhJ -kJs -lyX -rjE -pFS -keY -wfn -nuu +ayK +tpW +mss +nBP +ibX +irR +hDd +nPl +hCT +cLw +ibX +nBP +oTf +pUM +kMe +qkq +wRy +ayK +goS +aWA thb oxc rwJ @@ -93635,25 +91192,25 @@ mGY hXf xGf jLb -hgd -mrP +cOa +lPv xrZ sRg -xat -xat -xat -xat -tov -jEK -jJc -pOg -kft -ktM -sOP -otG +tlG +tlG +tlG +tlG +lbe +qCG +pbV +sxQ +day +mxh +vRc +jBN mhk oEn -lPK +tOu mhk mTN wTO @@ -93664,7 +91221,7 @@ oUJ wCR oOC iRE -rya +mXb kZI oUb yhX @@ -93826,37 +91383,37 @@ dDB dDB dDB dDB -eNn -blb -luC -amV -vrT +wCc +dDB +dDB +bSo +osa uqe uLW -bSv -wNU -wNU -gfA -tNH -lae -xrm -bxs -tVN -uAT -aLu -xOJ -tiU -egR -wxp -ycW -snX -aSc -fqQ -odE -wfn -aWA -lVv -nHq +rpi +blb +ayK +rxJ +wLU +szg +jWr +dFY +pMM +bSk +hCT +nAJ +jWr +szg +oTf +awH +gAV +qkq +wRy +urz +dkD +iEc +uuA +oba exQ fib cca @@ -93896,21 +91453,21 @@ hgn jEQ gRL hcl -xat -vhe -vhe -wnd -lmS -lBn -jJc -lvu -hPd -kua -lEm -oiL +tlG +pRO +wVr +puk +dmO +kkD +iGW +xhC +ioJ +xIl +xYo +hAO mhk -kPo -wkK +uLz +pRc mhk wCR wCR @@ -94083,37 +91640,37 @@ dDB dDB dDB dDB -fJX +wCc +blb blb -wHH -nIK +bSv sQm sQm qZm -osa -blb -onb -xnA -oSF -iPg -dbN -ayx -vFW -qbR -rhg -ilN -kBD -dvO -miR -nhE -gWJ -jqh -vJe -xYG -wfn -mpE +bSv +vnL +qEy +iHa +rXm +dyI +dyI +ozQ +ozQ +wxJ +brA +brA +dyI +dyI +oTf +pUM +kMe +qkq +wRy +ayK +swK +jTf nCC -rDc +bwW qQi sVu wfn @@ -94152,26 +91709,26 @@ hgZ hgZ kaz eOk -qgK -xPX -wzo -hLm -bGU -wSi -gNV -wqI -gEJ -xat -wnd -kIO -wnd -mhk +mYE +naB +oyv +vZS +rDs +dAZ +eTL +sKj +gXB +rhF +xLw +oim +wie mhk -sBf +jab +rSM mhk -mUt +ksq wTO -uSI +qVR scY rJo bHU @@ -94340,37 +91897,37 @@ dDB dDB dDB dDB -eNn -blb -ppr +wCc +dDB +dDB osa vrT vrT blb osa blb -blb -hdT -ilB -koV -sjZ -dkR -tSN -lrD -kGm -oaJ -caB -tyu -cjP -oWE -tMJ -rAH -aZf -xYG +ayK +tpW +wLU +nLJ +nLJ +dyI +eHS +tIR +uMF +dyI +kRV +kRV +oTf +pUM +kMe +lgD +gHm +ayK nXC nmi cED -nQE +mjh rLj gNt iIK @@ -94410,21 +91967,21 @@ qiz fgt pHC qiz -xat -rrq -iqq -xPX -wnd -wnd -jKu -jWZ -xRV -kuq -msq -laD -gSX +tlG +rWa +peE +tlG +puk +puk +tlG +tJY +kxu +cjf +mGI +tlG mhk -jQv +rXw +rSM mhk wCR wCR @@ -94597,37 +92154,37 @@ dDB dDB dDB dDB -eNn -eoU -aNc -gBe +wCc +dDB +dDB +bWl hHV sQm wNU qZm -yjE -yjE -yjE -yjE +dDB +ayK +tpW +wLU +cBd +cBd +dyI +ozQ +vkR +brA +dyI +oer +oer +oTf +eFi +ayK +ayK +ayK ayK -pbj -cKv -xQr -eqB -nGt -eqB -xQr -gDe -eIX -xYG -xYG -xYG -xYG -xYG wfn wfn osT -qxF +wnf wap wfn gKL @@ -94671,15 +92228,15 @@ xRV xRV xRV xRV -lCg -lCg -kYa -rBh -xRV -iLF -kJb -laL -loj +ccO +mWU +lnL +dOH +rbT +ppP +hSn +hpb +mhk mhk jby mhk @@ -94854,33 +92411,33 @@ dDB dDB dDB dDB -eNn -luC +wCc +blb blb -amV +wCc lBp sYg -eNm -bTd -gQI -wEU -nEL -fBy -yjE -pqo -auQ -xQr -pdh -mcT -rjr -xQr -txS -lFE -gWl -ezQ -hkT -uNk -rUs +blb +blb +dDB +hdT +tpW +vNO +whZ +qUR +qUR +wcY +xLF +iiE +mib +mib +mib +xbo +jCH +kut +wDn +jyF +rzm gBA sSB sHM @@ -94926,20 +92483,20 @@ nxI sxZ qGc pfw -sar -tSA +dEp +vWy frI +aJD +aJD +wqx +aJD +knR +mDk frI -uIv -frI -aDJ -hKV -mZg -frI -frI -oyp +dBn +nwf mXZ -mUm +ogq mAR qWG fkS @@ -95111,36 +92668,36 @@ dDB dDB dDB dDB -eNn -jxh -voO -ccx blb -mys dDB -blb -xQG -xBH -yfa -tsl -yjE -taK -chr -uvB -mRY -yjN -jGk -dOU -vFf -ioX -xdJ -iCr -pmA -pmA -stm -xdJ -sEj -qjx +dDB +wCc +dDB +dDB +dDB +ayK +ayK +ayK +tpW +udO +aNd +aNd +aNd +aNd +aNd +aNd +abc +aNd +aNd +aNd +doc +tQR +tGF +fJn +nnz +tLp +boB +cOJ iqB phY jmZ @@ -95187,8 +92744,8 @@ uAo iIv uAo jsG -jLr -aHS +oQP +mIp fHN jpu pWM @@ -95368,35 +92925,35 @@ dDB dDB dDB dDB -xjc blb dDB -blb -mys +dDB +wCc dDB dDB dDB -vxt -vxt -nQk -vxt -yjE ayK -xOO -cEH -lvG -lvG -lvG -nGm -mTi +lsF ayK +rzb +qme +aNd +aNd +aNd +aNd +aNd +aNd +wqz +wqz +wqz +wqz +xKe yjE -yjE -pqH -gXn -wfn -jKU -jKU +rNG +whK +cTK +fai +dGV jRU iqB ahW @@ -95442,9 +92999,9 @@ nTa tlt eIM yjZ -yjZ -yjZ -jtd +pzk +pzk +eII xSw kfw yeD @@ -95624,35 +93181,35 @@ dDB dDB dDB dDB -dDB -dDB -mxX -bTd -ihA -dDB -dDB -dDB -dDB -dDB -vxt -yfa -qGk -oEb -yjE -hlM -irZ -sDh -rrG -rrG -gDq -qqJ -yjE -rco +aGa +blb +blb +blb +blb +rpi +rpi +rpi +ldG +mWB +sCC +ryr +vgf +aeG +dzh +cvc +buI +kjs +xUK +vni +nHH +lHd +nHH +xTr yjE -dGV -fDO jKU -vTg +jKU +jKU +jKU jKU nQB pVM @@ -95703,7 +93260,7 @@ xZS xZS xRV xRV -vIJ +eyx kux wGz yaL @@ -95884,27 +93441,27 @@ dDB dDB dDB dDB -blb -dDB dDB dDB dDB dDB dDB -vxt -uUA -iok -dsE -yjE -fXo -yjE -yjE -evm -yjE -yjE -yjE -yjE -yjE +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +ayK +lwO +ayK +ayK +ayK +ayK +ayK yjE eIT whl @@ -96141,7 +93698,13 @@ dDB dDB dDB dDB -aGa +dDB +dDB +dDB +dDB +dDB +dDB +dDB dDB dDB dDB @@ -96149,19 +93712,13 @@ dDB dDB dDB vxt -yfa -uUA -uUA -yfa -afB -rWQ -idH +nST evM -mWs -xCR -lHh +aOa +rtX hVq hVq +bUF yjE oIF tit @@ -96230,9 +93787,9 @@ cKt jVM hIm azq -iTv +api wMg -wKr +lql vtr mcV iGq @@ -96245,7 +93802,7 @@ wFd nEq qie oCV -kuk +emF iuR iuR dDB @@ -96405,23 +93962,23 @@ dDB dDB dDB dDB +dDB +dDB +dDB +dDB +dDB +dDB +vxt +nST +nST +nST vxt -vRH -vRH -hJs yfa -bwY -yjE -cYL -aEP -auc -yjE -vnI -vnI +yfa hVq yjE -xcS -bAU +okD +hVz gwl pPm jKU @@ -96495,7 +94052,7 @@ mmL qDC btY mUi -xMu +xeO qmM vSi hEJ @@ -96662,19 +94219,19 @@ dDB dDB dDB dDB +dDB +dDB +dDB +dDB +dDB +dDB vxt -xQG -vxt -xQG +cYL +aEP +auc vxt -xQG -yjE -yjE -yjE -yjE -yjE -vnI -vnI +yfa +yfa hVq yjE uCH @@ -96919,19 +94476,19 @@ dDB dDB dDB dDB -vxt +dDB dDB dDB dDB dDB dDB vxt -aJq -aJq -aJq -vnI -vnI -vnI +gcs +gcs +gcs +vxt +vxt +vxt hVq yjE yjE @@ -96991,11 +94548,11 @@ xZS vET ncL qwz -jVM -jVM -jVM -jVM -jVM +yaL +yaL +yaL +yaL +yaL jVM eAm jVM @@ -97183,12 +94740,12 @@ dDB dDB dDB dDB -tYT -aJq -aJq -aJq +bSo +bSo +bSo +bSo aJq -vnI +vxt hVq hVq ayO @@ -97248,7 +94805,7 @@ uVT vET ncL wQB -jVx +ebn jVM rXy bFO @@ -97772,7 +95329,7 @@ ptX hsH srg jVM -ayT +nJK sZo yfC lnN @@ -98025,7 +95582,7 @@ jVM jVM jVM jVM -pSI +qtW jVM xlU jRK @@ -98278,11 +95835,11 @@ kvT wQB cZi jVM -lbl -bwy -mqz +dgt +sTN +nHb jVM -gls +cMH jVM lzB jVM @@ -98535,11 +96092,11 @@ kyO wQB drC jVM -lzW -dbJ -lMH +dqF +sKh +iFG jVM -gls +cMH jVM uZY jVM @@ -98792,11 +96349,11 @@ ncL wQB ydz jVM -lEO -eHv -bes -pSI -gls +bgl +sjn +mrY +qtW +cMH jVM joR jVM @@ -99319,7 +96876,7 @@ mgW yfC edG wBc -jJd +qiC qiC ghj qiC @@ -100312,7 +97869,7 @@ dDB dDB dDB ycC -wKT +omj mPJ mPJ ipD @@ -100331,7 +97888,7 @@ opn jYY ndJ rJZ -eBC +egW xRV xRV xRV @@ -100353,8 +97910,8 @@ xmt hrl xmt xmt -lHZ -rzy +xli +eNP qFc cEo tYX @@ -100590,8 +98147,8 @@ dCu eXR wQB rHl -sVO -lbi +dMC +ucO jVM jTn xXe @@ -100846,7 +98403,7 @@ psc dCu rJZ wQB -xAV +xrt txW nCX jVM @@ -101362,7 +98919,7 @@ rJZ wQB eIO xND -ind +czh jVM oZy jVM @@ -101380,7 +98937,7 @@ sJL sne aTg aTg -aIr +lZs bIN nUd bmY @@ -103181,7 +100738,7 @@ xkV ecC cvV spH -elN +whg dPp sFs fZZ @@ -103695,7 +101252,7 @@ gyy xkV swW vkh -oNW +kPh cSy bpY sMt @@ -104716,7 +102273,7 @@ rZq ycX pBu khY -lvr +lmZ aGq khY khY @@ -104726,7 +102283,7 @@ rko diP vip gaj -jXJ +rIW mxS jeW pvY @@ -105211,7 +102768,7 @@ cCD gcz jyM uoB -jZn +eSA baJ rji vAw @@ -108047,7 +105604,7 @@ sRL bCP dqB pIf -lZP +upF jgF wqj rEa @@ -108282,7 +105839,7 @@ aJq aJq aJq rvp -gZf +fRI iFP iGl hqW @@ -108559,7 +106116,7 @@ nVa fuD xVV eWP -lNN +vXv lWp xhD heN @@ -109592,7 +107149,7 @@ jvQ eul eeJ egJ -yfF +egA gMq duT gtk @@ -109837,12 +107394,12 @@ nju iGt vtL sBP -wZl -pcm -gla -vPt -gla -ktQ +sRL +uFZ +jfB +afZ +jfB +fPZ eeJ wjq dtv @@ -110094,12 +107651,12 @@ wNd nFW tDB unK -wZl -xkv -ura -jUU -mqr -hqf +sRL +sBq +xsI +gnK +piJ +hBh eeJ mSa dtv @@ -110351,12 +107908,12 @@ rqw rqw qow rqw -wZl -wZl -wZl -rBr -wZl -wZl +sRL +sRL +sRL +ceD +sRL +sRL eeJ lxp syA @@ -110864,7 +108421,7 @@ rqw pfo ebK ctH -pvB +oLV rqw pdl pEv @@ -111121,7 +108678,7 @@ rqw wJX fYH fYH -gLr +nuL djY rBO gdF @@ -111378,7 +108935,7 @@ jsU xFM wYH bnX -bJA +jUA pzd pzd rnD @@ -111635,12 +109192,12 @@ gpA fYH wYH ctH -qaV -dDW -bTO -bTO -jfa -qcC +xIf +lKs +fex +fex +byR +qIe dBj luG evA @@ -111658,7 +109215,7 @@ pCv unc sWQ raZ -qUa +sVG qUa qUa qUa @@ -111897,7 +109454,7 @@ ntZ jpp jpp dxw -jpp +qOQ jpp jpp jpp @@ -111915,8 +109472,8 @@ qfo jRs jRs xhG -vNn -ssj +mHf +kFA gdx qSh twE @@ -112154,7 +109711,7 @@ pzd tpG pvk pzd -iCj +nVU qMa uhy iCj @@ -115238,13 +112795,13 @@ cvk nFW uvG siN -ngd +jpp nuV sue -ngd +jpp cUB baO -pOT +pzd gMz rem rQA @@ -115497,11 +113054,11 @@ pTA hEw bWp gjn -ngd +jpp ibF diG baO -pOT +pzd ycQ rem nvB @@ -115750,13 +113307,13 @@ eav eav nFW nFW -pOT -pOT +pzd +pzd tlJ cYp jTC eOX -pOT +pzd xQJ xQJ xQJ @@ -116008,12 +113565,12 @@ tLj wOp fsq iRl -pOT -pOT +pzd +pzd pTk -pOT -pOT -pOT +pzd +pzd +pzd xqs xMO xQJ @@ -116267,7 +113824,7 @@ fLg tHi tfc wOp -mTc +ljc xQJ ejn vJx @@ -116524,7 +114081,7 @@ pot rUq lyq wOp -mTc +ljc xQJ mbV vJx @@ -117044,7 +114601,7 @@ xQJ bfE rIo xQJ -ohN +jIn oUC oPM sDj @@ -117571,7 +115128,7 @@ vso fHT veK dDF -vkn +obb vMC xFA sMh @@ -117817,7 +115374,7 @@ noB xQJ avN oPM -rYt +jLt wBI sEr dQQ @@ -118073,7 +115630,7 @@ mFP qrm qNn wBI -ovj +fEM wBI sDj sES @@ -118349,22 +115906,22 @@ vbK xuW xam vhJ -gan +kOh wec gGK aPX smk -xDW +elc wIY wIY nAF srK srK -mDZ +tEC vnf wML rOX -gYH +aUB sYa yfs hPU @@ -118593,7 +116150,7 @@ rKC pnU xlL xlL -qiy +mok vRh uMH vbK @@ -118620,8 +116177,8 @@ udw uHd lhm wEC -vey -uEw +wed +vsJ sYa cqn xTR @@ -118878,7 +116435,7 @@ sZK vnf cVQ rOX -qBd +xre sYa rtI dXU @@ -119107,7 +116664,7 @@ pdU qka voh eWD -jQo +vzN vRh pwA rvX @@ -119135,7 +116692,7 @@ uHd vnf dav rOX -rZj +ufe sYa xlM qrB @@ -119392,7 +116949,7 @@ sZK vnf lsO rOX -ugX +vLH sYa sYa sYa @@ -119881,13 +117438,13 @@ hiV vbK upy qWJ -rwk +flx oBX mzl aOz fRl skV -pMD +kxE gto fqG sQb @@ -120147,7 +117704,7 @@ dss vbK sfq uGX -vjZ +frZ xqn xqn wvM @@ -120157,7 +117714,7 @@ xEd bBr yjt eTT -nYg +paT jxk vKX vnf @@ -120393,7 +117950,7 @@ prh sYb ttD vbK -qzD +pcE xfc vbK bWi @@ -120404,7 +117961,7 @@ tzH vbK the fqG -wfD +uUS ocb mau ocb @@ -120414,7 +117971,7 @@ xVv ocb ocb mau -xTT +nTP dNz erE vnf @@ -121181,7 +118738,7 @@ xia xia xia cxO -bNX +egL cxO xia xia @@ -121427,7 +118984,7 @@ xok xok xok sMD -tfj +sJg sMD wMO ukQ @@ -121435,14 +118992,14 @@ qTe sxF qTb vYL -wwX +gIR wNT xnC xnC xnC rfO aGv -kSr +nLk vId icT bxI @@ -121600,7 +119157,7 @@ dDB dDB dDB dDB -dDB +dRz dDB dDB dDB @@ -121686,7 +119243,7 @@ xok wcq pED kea -xff +iCJ ede hoG vkt @@ -121963,7 +119520,7 @@ vnf wML pwn eXo -tUI +iUp wdS eXo wos @@ -121982,7 +119539,7 @@ eXo eXo eXo jat -tUI +iUp nVF msJ xQj @@ -122201,7 +119758,7 @@ bgg tfE vFG wMO -eqk +kzs uTO uTO xok @@ -122449,7 +120006,7 @@ psn oyQ oyQ oyQ -xNV +uuY tCD xok vhC @@ -122476,7 +120033,7 @@ xok qID iHM uSB -lDc +vSM qxB nKj jXr @@ -122736,7 +120293,7 @@ gDB ccF gMe nRr -pJu +vTg rqm vwx rYp @@ -122751,7 +120308,7 @@ woD qCY toh tAT -pJu +fDO ldx gMe ccF @@ -122960,7 +120517,7 @@ rsL quq xQX ptj -pLg +tNy jGW vkU ogT @@ -124267,7 +121824,7 @@ xok xok xok xok -vxR +dTi tbI xok qNO @@ -124783,7 +122340,7 @@ xFI gfu ckt ckt -ckt +nOD lwu lkV whF @@ -125040,9 +122597,9 @@ sbq aFj lkV iJL -mZj +rci vTv -dpz +juU boY agI kQt @@ -125297,7 +122854,7 @@ reN hRA reN xUX -nKO +nZF kpX lnu enG @@ -125813,7 +123370,7 @@ nWh xnR aLC wLZ -xwn +eKV cns vwJ kQt @@ -131998,10 +129555,10 @@ uxL lhl jxD ylD -hqH +cWC vzv brz -cgM +egg ylD wyj dYR diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 2c422633acc07..4200fe13d159d 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2842,6 +2842,9 @@ /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/landmark/event_spawn, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/service/library/printer) "aII" = ( @@ -3233,15 +3236,15 @@ /area/station/ai_monitored/command/storage/eva) "aNM" = ( /obj/structure/cable, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /obj/machinery/duct, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron, /area/station/maintenance/department/chapel) "aNP" = ( @@ -4050,6 +4053,29 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) +"aYN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Brig" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark, +/area/station/security/brig) "aYO" = ( /obj/structure/chair/pew/right, /turf/open/floor/iron/chapel{ @@ -10367,14 +10393,12 @@ /area/station/command/corporate_showroom) "czg" = ( /obj/machinery/hydroponics/soil, -/obj/effect/decal/cleanable/dirt, /obj/item/plant_analyzer, /obj/machinery/camera/directional/east{ c_tag = "Permabrig - Garden"; network = list("ss13","prison") }, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, +/turf/open/misc/sandy_dirt, /area/station/security/prison/garden) "czi" = ( /obj/effect/decal/cleanable/dirt, @@ -12188,9 +12212,6 @@ "cXb" = ( /obj/structure/cable, /obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/duct, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -12632,6 +12653,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron/dark, /area/station/hallway/secondary/service) "ddg" = ( @@ -16232,7 +16254,7 @@ /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/incident_display/delam/directional/south, +/obj/machinery/incident_display/bridge/directional/south, /turf/open/floor/iron/dark, /area/station/command/bridge) "dXO" = ( @@ -16904,9 +16926,6 @@ /turf/open/floor/plating, /area/station/cargo/storage) "ehg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/newscaster/directional/west, /obj/structure/table/wood, /obj/item/clipboard, @@ -18863,7 +18882,7 @@ /obj/structure/sign/nanotrasen{ pixel_x = 32 }, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -19590,10 +19609,8 @@ /area/station/engineering/atmos) "eQx" = ( /obj/machinery/hydroponics/soil, -/obj/effect/decal/cleanable/dirt, /obj/item/shovel/spade, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, +/turf/open/misc/sandy_dirt, /area/station/security/prison/garden) "eQB" = ( /obj/machinery/door/airlock/public/glass{ @@ -22260,7 +22277,7 @@ /turf/open/floor/iron, /area/station/service/kitchen) "fyH" = ( -/obj/machinery/keycard_auth/directional/south{ +/obj/machinery/keycard_auth/wall_mounted/directional/south{ pixel_x = 6 }, /obj/machinery/light_switch/directional/south{ @@ -22838,12 +22855,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/medical/medsci) -"fGn" = ( -/obj/machinery/deepfryer, -/obj/effect/turf_decal/bot, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "fGt" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, @@ -24893,6 +24904,7 @@ /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 1 }, +/obj/machinery/vending/cytopro, /turf/open/floor/iron, /area/station/science/xenobiology) "gfR" = ( @@ -25546,7 +25558,7 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "goc" = ( -/obj/machinery/keycard_auth/directional/south{ +/obj/machinery/keycard_auth/wall_mounted/directional/south{ pixel_y = -38 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -27275,7 +27287,7 @@ pixel_y = -6; req_access = list("hos") }, -/obj/machinery/keycard_auth/directional/east{ +/obj/machinery/keycard_auth/wall_mounted/directional/east{ pixel_x = 38; pixel_y = 6 }, @@ -27544,10 +27556,8 @@ "gLT" = ( /obj/machinery/hydroponics/soil, /obj/item/cultivator, -/obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/electric_shock/directional/west, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, +/turf/open/misc/sandy_dirt, /area/station/security/prison/garden) "gMd" = ( /obj/structure/window/reinforced/spawner/directional/west, @@ -30860,26 +30870,12 @@ /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) "hHi" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/paper/guides/jobs/hydroponics, -/obj/item/seeds/onion, -/obj/item/seeds/garlic, -/obj/item/seeds/potato, -/obj/item/seeds/tomato, -/obj/item/seeds/carrot, -/obj/item/seeds/grass, -/obj/item/seeds/ambrosia, -/obj/item/seeds/wheat, -/obj/item/seeds/pumpkin, -/obj/effect/spawner/random/contraband/prison, /obj/structure/window/spawner/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/item/seeds/tower, /obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, +/obj/structure/water_source/puddle, +/turf/open/misc/sandy_dirt, /area/station/security/prison/garden) "hHo" = ( -/obj/structure/disposalpipe/trunk, /obj/machinery/chem_heater/withbuffer, /obj/effect/turf_decal/bot_red, /obj/effect/turf_decal/stripes/line{ @@ -32151,7 +32147,7 @@ /area/station/science/research/abandoned) "hXQ" = ( /obj/machinery/door/window/left/directional/east{ - name = "'Monkey Pen"; + name = "Monkey Pen"; req_access = list("genetics") }, /obj/structure/flora/bush/lavendergrass, @@ -32869,9 +32865,6 @@ "ifr" = ( /obj/structure/cable, /obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/duct, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -33705,9 +33698,6 @@ /area/station/hallway/primary/central/fore) "irx" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /obj/machinery/duct, @@ -39807,7 +39797,7 @@ /area/station/tcommsat/server) "jQx" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /turf/open/floor/plating, /area/station/maintenance/fore) "jQB" = ( @@ -42744,6 +42734,24 @@ /obj/item/storage/crayons, /turf/open/floor/wood, /area/station/service/library/abandoned) +"kEp" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Brig" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark, +/area/station/security/brig) "kEw" = ( /obj/structure/cable, /obj/structure/reagent_dispensers/plumbed{ @@ -42957,6 +42965,9 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/service/library/printer) "kHp" = ( @@ -44568,13 +44579,13 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "ldl" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 6 }, /obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/structure/disposalpipe/trunk, /turf/open/floor/iron/dark, /area/station/medical/pharmacy) "ldm" = ( @@ -45370,9 +45381,6 @@ /area/station/engineering/atmos/storage/gas) "lni" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/landmark/generic_maintenance_landmark, @@ -46647,6 +46655,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/service/library/printer) "lDV" = ( @@ -47485,7 +47496,7 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) "lMF" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /obj/effect/turf_decal/siding/dark_blue{ dir = 8 }, @@ -49217,15 +49228,19 @@ "mna" = ( /obj/machinery/firealarm/directional/south, /obj/structure/table/reinforced, -/obj/item/storage/box/monkeycubes{ - pixel_y = 3 - }, -/obj/item/storage/box/monkeycubes, /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/item/storage/box/monkeycubes{ + pixel_y = 10; + pixel_x = 1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_y = 3; + pixel_x = -13 + }, /turf/open/floor/iron, /area/station/science/xenobiology) "mnl" = ( @@ -50640,28 +50655,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"mEB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Brig" - }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/security/brig) "mEH" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, @@ -52932,9 +52925,6 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, @@ -53146,6 +53136,10 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 1 }, +/obj/item/seeds/soya{ + pixel_x = 11; + pixel_y = -2 + }, /turf/open/floor/iron, /area/station/science/xenobiology) "nnv" = ( @@ -56030,9 +56024,6 @@ /obj/structure/sign/painting/library_private{ pixel_y = -32 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/modular_computer/preset/curator{ dir = 1 }, @@ -59511,13 +59502,23 @@ /area/station/service/chapel) "oWp" = ( /obj/structure/window/spawner/directional/south, -/obj/structure/sink/directional/south, -/obj/structure/reagent_dispensers/watertank, -/obj/item/reagent_containers/cup/watering_can, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/closet/crate/hydroponics, +/obj/item/seeds/tower, +/obj/effect/spawner/random/contraband/prison, +/obj/item/seeds/pumpkin, +/obj/item/seeds/wheat, +/obj/item/seeds/ambrosia, +/obj/item/seeds/grass, +/obj/item/seeds/carrot, +/obj/item/seeds/tomato, +/obj/item/seeds/potato, +/obj/item/seeds/garlic, +/obj/item/seeds/onion, +/obj/item/paper/guides/jobs/hydroponics, /turf/open/floor/iron, /area/station/security/prison/garden) "oWt" = ( @@ -64185,6 +64186,9 @@ dir = 8 }, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/service/library/printer) "qaF" = ( @@ -66374,9 +66378,6 @@ /turf/open/floor/iron/white, /area/station/medical/medbay) "qEj" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/light/small/directional/south, /obj/structure/table/wood, /obj/item/paper_bin{ @@ -67676,7 +67677,7 @@ "qVn" = ( /obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /obj/structure/sign/poster/contraband/random/directional/south, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) @@ -72140,13 +72141,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/theater/abandoned) -"rZL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/grille, -/turf/closed/wall/r_wall, -/area/station/engineering/atmos) "rZU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -72696,6 +72690,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/main) +"shc" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/smartfridge/drying, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "shm" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/machinery/airalarm/directional/north, @@ -74128,7 +74127,7 @@ pixel_x = 38; pixel_y = 3 }, -/obj/machinery/keycard_auth/directional/east{ +/obj/machinery/keycard_auth/wall_mounted/directional/east{ pixel_x = 40; pixel_y = -8 }, @@ -76953,7 +76952,7 @@ /area/station/command/bridge) "tns" = ( /obj/structure/table/wood, -/obj/machinery/keycard_auth/directional/west, +/obj/machinery/keycard_auth/wall_mounted/directional/west, /obj/item/flashlight/lamp, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -78583,11 +78582,9 @@ /area/station/command/corporate_showroom) "tGW" = ( /obj/machinery/hydroponics/soil, -/obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/east, -/obj/effect/mapping_helpers/burnt_floor, /obj/machinery/light/small/directional/east, -/turf/open/floor/plating, +/turf/open/misc/sandy_dirt, /area/station/security/prison/garden) "tHc" = ( /obj/structure/table/wood/fancy, @@ -79848,10 +79845,8 @@ dir = 1 }, /obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/iron, +/obj/structure/water_source/puddle, +/turf/open/misc/sandy_dirt, /area/station/service/hydroponics/garden) "tXe" = ( /obj/effect/turf_decal/loading_area/red{ @@ -80342,23 +80337,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/security/checkpoint/escape) -"ucz" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/machinery/door/airlock/security/glass{ - name = "Brig" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/security/brig) "ucA" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -80585,9 +80563,6 @@ /area/station/commons/toilet/locker) "ufz" = ( /obj/machinery/firealarm/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /obj/effect/turf_decal/bot_white, /obj/structure/filingcabinet, /turf/open/floor/iron/dark, @@ -84669,6 +84644,7 @@ /obj/machinery/hydroponics/constructable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/green, +/obj/item/reagent_containers/cup/watering_can, /turf/open/floor/iron, /area/station/security/prison/garden) "veD" = ( @@ -89973,8 +89949,10 @@ "wwN" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, /turf/open/floor/iron/dark, /area/station/service/library/printer) "wwP" = ( @@ -90292,10 +90270,8 @@ "wAt" = ( /obj/machinery/hydroponics/soil, /obj/item/cultivator, -/obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/east, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, +/turf/open/misc/sandy_dirt, /area/station/security/prison/garden) "wAz" = ( /obj/structure/table/wood, @@ -90333,9 +90309,6 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "wAZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/table/wood, /obj/item/taperecorder, /obj/item/camera, @@ -90433,9 +90406,8 @@ /turf/open/misc/grass, /area/station/hallway/primary/fore) "wCh" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 }, /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/siding/thinplating/dark, @@ -90604,7 +90576,7 @@ /obj/machinery/modular_computer/preset/id{ dir = 1 }, -/obj/machinery/keycard_auth/directional/south{ +/obj/machinery/keycard_auth/wall_mounted/directional/south{ pixel_x = -5 }, /obj/machinery/button/door/directional/south{ @@ -91820,11 +91792,9 @@ /area/space) "wVy" = ( /obj/machinery/hydroponics/soil, -/obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/west, -/obj/effect/mapping_helpers/burnt_floor, /obj/structure/sign/poster/contraband/ambrosia_vulgaris/directional/west, -/turf/open/floor/plating, +/turf/open/misc/sandy_dirt, /area/station/security/prison/garden) "wVJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -96097,9 +96067,6 @@ dir = 4 }, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/duct, @@ -117154,7 +117121,7 @@ pxN yfC pxN pxN -rZL +pxN pxN pxN qYo @@ -127680,7 +127647,7 @@ spq nyp vmh rEJ -fGn +shc xtp hBF jUU @@ -146982,9 +146949,9 @@ hOz hOz hOz dzw -mEB +aYN hOz -ucz +kEp mTA mTA tNZ diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index a44ae2c0a601b..6cbcb15e08eed 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -1,4 +1,13 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aab" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) +"aao" = ( +/obj/structure/sign/warning/radiation/rad_area/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "aap" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, @@ -14,10 +23,6 @@ /obj/item/taperecorder, /turf/open/floor/iron/dark, /area/station/security/interrogation) -"aaD" = ( -/obj/structure/sign/warning, -/turf/closed/wall/r_wall, -/area/mine/storage) "aaI" = ( /obj/structure/closet/wardrobe/white, /obj/item/clothing/shoes/jackboots, @@ -36,11 +41,6 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron, /area/station/hallway/primary/port) -"aaX" = ( -/obj/structure/chair/sofa/bench/right, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "abb" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 5 @@ -50,13 +50,6 @@ "abe" = ( /turf/open/floor/engine, /area/station/science/xenobiology) -"abm" = ( -/obj/structure/table, -/obj/item/trash/can/food/beans, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) "abv" = ( /obj/effect/turf_decal/loading_area{ dir = 1 @@ -74,6 +67,22 @@ /obj/item/clothing/head/helmet/skull, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"abJ" = ( +/obj/machinery/camera{ + c_tag = "Service - Botany"; + dir = 9 + }, +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light/warm/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "abL" = ( /obj/machinery/light/directional/north, /obj/structure/sign/warning/secure_area/directional/north, @@ -90,6 +99,24 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) +"abQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal) +"abT" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/explab) "abU" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment{ @@ -102,53 +129,32 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"abZ" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/service/bar) "ace" = ( /obj/structure/table/wood, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"acg" = ( -/obj/effect/mapping_helpers/burnt_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/fore) -"acm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"acl" = ( +/mob/living/carbon/human/species/monkey, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/grass, +/area/station/medical/virology) "acE" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) -"acG" = ( -/obj/effect/spawner/random/trash/moisture_trap, -/obj/item/reagent_containers/cup/bucket, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"ade" = ( -/obj/structure/table/glass, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/item/reagent_containers/cup/bottle/epinephrine, -/obj/item/reagent_containers/cup/bottle/multiver{ - pixel_x = 6 - }, -/obj/item/reagent_containers/syringe, -/obj/effect/turf_decal/tile/blue/full, -/turf/open/floor/iron/large, -/area/station/medical/treatment_center) -"adm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/conveyor{ - id = "mining_internal" - }, -/obj/machinery/bouldertech/refinery, +"acN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, -/area/mine/production) +/area/station/commons/fitness) "adq" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -157,12 +163,42 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"adv" = ( +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"adA" = ( +/turf/closed/wall/r_wall, +/area/icemoon/surface/outdoors/labor_camp) "adD" = ( /obj/structure/railing/corner{ dir = 8 }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) +"adP" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) +"adS" = ( +/obj/structure/statue/snow/snowman{ + name = "Steve" + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "adY" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -203,14 +239,6 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"aes" = ( -/obj/machinery/computer/cargo, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "aey" = ( /obj/machinery/camera/directional/east{ c_tag = "Xenobiology Pens - Starboard Fore"; @@ -223,15 +251,6 @@ /obj/item/clothing/mask/gas, /turf/open/floor/iron/smooth, /area/mine/living_quarters) -"aeF" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "aeQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -242,45 +261,24 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"aeV" = ( -/obj/structure/sign/warning, -/turf/closed/wall, -/area/station/maintenance/port/fore) +"aeS" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"afb" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/commons/lounge) "afp" = ( /obj/machinery/air_sensor/nitrogen_tank, /turf/open/floor/engine/n2, /area/station/engineering/atmos) -"afs" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "mining-aux-mechbay-external" - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining Mech Bay External Airlock"; - opacity = 0 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/turf/open/floor/iron/large, -/area/mine/mechbay) -"aft" = ( -/obj/machinery/vending/boozeomat, -/turf/open/floor/iron, -/area/station/service/bar) "afz" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"afK" = ( -/obj/structure/cable, -/turf/open/floor/iron/stairs/left{ - dir = 4 - }, -/area/station/engineering/lobby) "afR" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer1{ @@ -296,6 +294,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) +"agd" = ( +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/science/explab) "agk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -332,10 +340,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) -"agG" = ( -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/grimy, -/area/station/hallway/secondary/entry) "agI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -366,12 +370,6 @@ /obj/machinery/door/firedoor/heavy, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) -"ahh" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/service/bar) "ahm" = ( /obj/machinery/newscaster/directional/west, /obj/machinery/firealarm/directional/south, @@ -390,6 +388,12 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"ahG" = ( +/obj/structure/fence/post{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "ahK" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, @@ -411,6 +415,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/service/chapel) +"aiu" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "aiA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -431,10 +439,14 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) -"aiT" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/maintenance/port/fore) +"aiQ" = ( +/obj/machinery/modular_computer/preset/id, +/obj/machinery/computer/security/telescreen/vault/directional/north, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "aiX" = ( /turf/open/floor/iron, /area/station/security/courtroom) @@ -496,27 +508,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, /area/station/security/prison/workout) -"akb" = ( -/obj/structure/closet/crate, -/obj/item/food/canned/beans, -/obj/item/food/canned/beans, -/obj/item/food/canned/beans, -/obj/item/reagent_containers/cup/glass/waterbottle{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/waterbottle{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/waterbottle{ - pixel_x = 7; - pixel_y = 6 - }, -/mob/living/basic/mouse/white, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) +"akd" = ( +/obj/structure/rack, +/obj/item/poster/random_contraband, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "akk" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/junction/layer2{ dir = 4 @@ -527,6 +524,10 @@ /obj/effect/mapping_helpers/airlock/access/all/science/ordnance, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance/freezerchamber) +"akn" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) "ako" = ( /turf/closed/wall/r_wall, /area/station/medical/morgue) @@ -577,6 +578,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) +"akN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/filled/warning{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "akQ" = ( /obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/glass/reinforced/icemoon, @@ -600,6 +609,22 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/transit_tube) +"ale" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/camera/directional/north{ + network = list("ss13","medbay"); + c_tag = "Morgue North" + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/trimline/neutral/filled/end{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "alq" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/iron/grimy, @@ -678,17 +703,14 @@ dir = 8 }, /area/station/engineering/lobby) -"amq" = ( -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" +"amn" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = -6 }, -/area/icemoon/underground/explored/graveyard) -"amt" = ( /obj/structure/cable, -/turf/open/floor/iron/chapel{ - dir = 4 - }, -/area/station/service/chapel) +/turf/open/floor/iron/showroomfloor, +/area/station/security/warden) "amv" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box/white{ @@ -700,6 +722,11 @@ /obj/structure/curtain, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) +"amz" = ( +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "amE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -709,21 +736,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"amJ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark, -/area/station/medical/treatment_center) -"amK" = ( -/obj/item/cigbutt, -/obj/structure/sign/warning/cold_temp/directional/south, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) "amN" = ( /obj/structure/disposalpipe/segment, /obj/item/radio/intercom/directional/west, @@ -732,6 +744,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"amW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "anb" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -768,22 +787,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) -"any" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"anI" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "botany_chasm_and_wolf_shutters" - }, -/turf/open/floor/plating, -/area/station/service/hydroponics) +"anz" = ( +/obj/machinery/telecomms/server/presets/engineering, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "anK" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -807,23 +815,44 @@ dir = 1 }, /area/station/command/heads_quarters/rd) +"anQ" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/latex, +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/turf/open/floor/plating, +/area/station/security/prison/safe) "anZ" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 }, /turf/open/floor/plating, /area/station/engineering/lobby) +"aoc" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/item/radio/intercom/directional/west, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "aog" = ( /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/command/bridge) -"aoi" = ( -/obj/structure/closet/emcloset, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/light/cold/directional/west, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) +"aom" = ( +/obj/machinery/pdapainter/engineering, +/obj/effect/turf_decal/tile/neutral/full, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/ce) +"aon" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "aoo" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -834,24 +863,95 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/ordnance/office) -"aop" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "aos" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/dorms) +"aov" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/structure/closet/secure_closet/medical1, +/obj/machinery/light/small/directional/east, +/obj/machinery/light_switch/directional/north, +/obj/machinery/door_buttons/access_button{ + pixel_y = 37; + idDoor = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + req_access = list("virology") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"aow" = ( +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing/corner/end{ + dir = 2 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"aoM" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) +"aoO" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/spawner/random/trash/crushed_can{ + pixel_y = 10 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"aoP" = ( +/obj/machinery/door/airlock/external{ + name = "Lower Medical External Access"; + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "chem-morgue-airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/medical/morgue) +"aoW" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door"; + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "apb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -885,6 +985,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/service) +"apo" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + dir = 8 + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron, +/area/station/command/bridge) "apq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -894,33 +1008,12 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/commons/locker) -"apt" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) "apB" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"apC" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/machinery/light/small/directional/south, -/obj/structure/sign/calendar/directional/south, -/turf/open/floor/iron, -/area/station/commons/dorms) "apD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -935,14 +1028,6 @@ }, /turf/open/floor/iron, /area/station/command/gateway) -"apL" = ( -/obj/machinery/modular_computer/preset/engineering, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/small/directional/north, -/obj/machinery/computer/security/telescreen/engine/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "apS" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -991,15 +1076,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"aqq" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "botany_chasm_and_wolf_shutters" +"aqr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/smooth_half, /area/station/service/hydroponics) "aqB" = ( /obj/structure/cable, @@ -1023,6 +1107,16 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"aqV" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Bar Maintenance" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/service/bar/backroom) "arb" = ( /obj/structure/table, /obj/item/folder/red, @@ -1080,33 +1174,19 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) -"arW" = ( -/obj/effect/turf_decal/tile/neutral/diagonal_edge, -/obj/effect/landmark/start/cook, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/turf/open/floor/iron/kitchen/diagonal, -/area/station/service/kitchen) "arZ" = ( -/obj/effect/turf_decal/tile/blue, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "asa" = ( /obj/structure/table/wood, /obj/item/storage/crayons, /turf/open/floor/iron, /area/station/commons/dorms) -"asb" = ( -/obj/structure/sink/directional/west, -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - id = "xenobio10"; - name = "Xenobio Pen 10 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "asg" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/two, @@ -1122,6 +1202,15 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) +"asv" = ( +/obj/effect/spawner/random/entertainment/arcade{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/secondary/exit/departure_lounge) "asy" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -1144,6 +1233,33 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) +"asN" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/sink/kitchen/directional/west, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/service/bar) +"asU" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Escape"; + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "asZ" = ( /obj/machinery/door/airlock/research{ name = "Robotics Lab" @@ -1171,15 +1287,6 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/storage) -"atc" = ( -/obj/structure/fence{ - dir = 1 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "ate" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1211,6 +1318,26 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/freezer, /area/station/commons/toilet) +"atB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"atI" = ( +/obj/structure/table/glass, +/obj/item/shovel/spade, +/obj/item/cultivator{ + pixel_x = 1; + pixel_y = 6 + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "atN" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -1218,6 +1345,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"atS" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "atW" = ( /obj/structure/flora/grass/green/style_random, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -1239,6 +1378,9 @@ "aud" = ( /obj/structure/closet/secure_closet/miner, /obj/machinery/light/directional/east, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) "aui" = ( @@ -1289,47 +1431,37 @@ /area/station/security/prison/work) "auK" = ( /obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) "avb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"avd" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) -"ave" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 +"avc" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 +/obj/machinery/camera/directional/west{ + c_tag = "Departure Lounge West" }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ +/turf/open/floor/iron/white/corner{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/area/station/hallway/secondary/exit/departure_lounge) "avh" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/eva) +"avi" = ( +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/smooth, +/area/mine/eva) "avk" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/yellow{ @@ -1339,13 +1471,15 @@ dir = 1 }, /area/station/engineering/atmos) -"avo" = ( -/obj/structure/stairs/east, +"avs" = ( /obj/structure/railing{ - dir = 1 + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "avP" = ( /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -1355,18 +1489,46 @@ /area/mine/laborcamp) "awa" = ( /turf/open/openspace, -/area/station/science/ordnance) +/area/station/science/ordnance/office) "awd" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/ai_monitored/security/armory/upper) +"awe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "awn" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/closed/wall, /area/station/maintenance/fore/lesser) +"awt" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/condiment/sugar, +/obj/structure/light_construct/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"awu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/service/bar/backroom) "awx" = ( /turf/open/floor/iron, /area/station/commons/locker) @@ -1391,11 +1553,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"awF" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +"awE" = ( +/obj/structure/closet/crate/freezer/food{ + name = "cooler" + }, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/cup/glass/ice, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "awK" = ( /obj/structure/table, /obj/item/hemostat, @@ -1424,6 +1592,12 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"awO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/trash/raisins, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "awR" = ( /obj/machinery/conveyor{ dir = 1; @@ -1436,24 +1610,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/disposal) -"axb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/sign/warning/gas_mask/directional/north{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/turf/open/floor/vault, -/area/station/security/prison/rec) -"axc" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "Biohazard Containment Door" - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/science/research) "axd" = ( /obj/structure/table, /obj/item/mod/module/plasma_stabilizer, @@ -1469,6 +1625,22 @@ /obj/machinery/modular_computer/preset/id, /turf/open/floor/iron, /area/station/command/bridge) +"axj" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/medical/morgue) "axm" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -1486,11 +1658,12 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"axy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/cold_temp, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/aft) +"axw" = ( +/obj/structure/chair/stool/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/commons/lounge) "axz" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -1503,12 +1676,6 @@ }, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain) -"axC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/bookcase/random, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "axD" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -1553,6 +1720,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/lobby) +"axZ" = ( +/obj/structure/table/optable{ + name = "Robotics Operating Table" + }, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/dark, +/area/station/science/robotics/lab) +"ayd" = ( +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "ayq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "atmos-entrance" @@ -1583,26 +1761,31 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"ayJ" = ( -/obj/effect/spawner/random/lavaland_mob/raptor, -/turf/open/misc/asteroid/snow/icemoon, +"ayL" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"ayR" = ( -/obj/machinery/airalarm/directional/east, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/stamp/head/cmo, -/obj/item/clothing/neck/stethoscope, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/cmo) -"ayY" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"ayS" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Security - Permabrig Lower Hallway Stairwell"; + network = list("ss13","prison") + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) +"aze" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/medium{ dir = 1 }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/area/station/security/prison) "azf" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -1617,12 +1800,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"azt" = ( -/obj/machinery/door/airlock{ - name = "Unit B" - }, -/turf/open/floor/iron/textured, -/area/station/commons/toilet) "azw" = ( /turf/closed/wall, /area/station/medical/pharmacy) @@ -1636,24 +1813,6 @@ /obj/effect/turf_decal/bot_red, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) -"azC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance" - }, -/obj/structure/sign/warning/radiation/rad_area/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"azI" = ( -/obj/machinery/vending/autodrobe, -/obj/machinery/airalarm/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "azN" = ( /obj/structure/rack, /obj/item/tank/internals/emergency_oxygen{ @@ -1671,27 +1830,12 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) -"azU" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "robotics"; - name = "Robotics Lab Shutters" - }, -/obj/machinery/door/firedoor, -/obj/structure/desk_bell{ - pixel_x = 7 - }, -/obj/machinery/door/window/left/directional/south{ - name = "Robotics Desk"; - req_access = list("robotics") - }, -/turf/open/floor/plating, -/area/station/science/robotics/lab) -"aAf" = ( -/obj/machinery/incident_display/delam, -/turf/closed/wall/r_wall, -/area/station/command/bridge) +"aAe" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) "aAi" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/table/wood/fancy/red, @@ -1708,10 +1852,6 @@ }, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) -"aAk" = ( -/obj/structure/table/wood, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "aAl" = ( /obj/machinery/computer/mech_bay_power_console{ dir = 1 @@ -1726,28 +1866,6 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/station/command/bridge) -"aAy" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/dice{ - pixel_y = 5; - pixel_x = -4 - }, -/obj/effect/spawner/random/entertainment/money_small, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"aBb" = ( -/obj/structure/closet/emcloset, -/obj/item/pickaxe, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron, -/area/station/service/hydroponics) "aBf" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/engine{ @@ -1766,14 +1884,21 @@ name = "Chief Medical Officer's Fax Machine" }, /obj/machinery/light/cold/directional/south, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"aBj" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 +"aBK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"aBP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "pharmacy_shutters3"; + name = "Pharmacy Shutters" }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +/turf/open/floor/plating, +/area/station/service/kitchen) "aBR" = ( /turf/open/genturf/blue, /area/icemoon/surface/outdoors/noruins) @@ -1803,6 +1928,9 @@ pixel_x = -2; pixel_y = -1 }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) "aCj" = ( @@ -1816,19 +1944,27 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/wood, /area/station/command/meeting_room) -"aCl" = ( -/obj/structure/bodycontainer/morgue{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "aCo" = ( /obj/structure/chair/wood{ dir = 8 }, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"aCw" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + desc = "An outlet for the pneumatic disposal system. This one seems designed for rapid corpse disposal."; + dir = 1; + name = "rapid corpse mover 9000" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/trimline/neutral/filled/end, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "aCA" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -1841,6 +1977,19 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"aCJ" = ( +/obj/machinery/newscaster/directional/west, +/obj/effect/spawner/random/structure/twelve_percent_spirit_board, +/turf/open/floor/iron/grimy, +/area/station/service/chapel/office) +"aCP" = ( +/obj/machinery/modular_computer/preset/engineering, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/incident_display/bridge/directional/north, +/turf/open/floor/iron, +/area/station/command/bridge) "aCU" = ( /obj/effect/spawner/random/maintenance, /obj/structure/disposalpipe/segment{ @@ -1858,10 +2007,23 @@ /obj/item/stock_parts/subspace/filter, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"aDe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) +"aDc" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Public Mining Storage"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/mine/storage) +"aDl" = ( +/obj/structure/rack, +/obj/item/bouquet, +/obj/item/binoculars, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "aDo" = ( /obj/structure/chair/office{ dir = 4 @@ -1870,13 +2032,18 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood, /area/station/service/library) -"aDy" = ( -/obj/machinery/light/directional/south, -/obj/effect/spawner/random/vending/colavend, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/sign/poster/official/random/directional/south, +"aDr" = ( +/obj/machinery/vending/cigarette, +/obj/machinery/light/small/directional/south, +/obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/science/breakroom) +"aDG" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "aDJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1884,25 +2051,18 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/dark/side, /area/station/security/prison) -"aDZ" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/command/bridge) -"aEx" = ( -/obj/structure/closet/lasertag/blue, -/obj/effect/landmark/start/hangover/closet, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron, -/area/station/commons/fitness) +"aDM" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aEj" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/starboard/fore) +"aEz" = ( +/obj/machinery/newscaster/directional/west, +/obj/machinery/keycard_auth/wall_mounted/directional/south, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "aEA" = ( /obj/structure/rack, /obj/item/clothing/mask/gas, @@ -1922,20 +2082,10 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"aEK" = ( -/obj/machinery/atmospherics/components/binary/pump/off, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "aEM" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/r_wall, -/area/station/cargo/warehouse) +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "aES" = ( /obj/structure/table/wood/fancy/blue, /obj/effect/spawner/random/aimodule/neutral, @@ -1953,6 +2103,10 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) +"aEY" = ( +/obj/structure/railing/corner, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) "aFg" = ( /obj/machinery/button/door/directional/east{ id = "lawyer_blast"; @@ -1963,6 +2117,16 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/lawoffice) +"aFh" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/status_display/ai/directional/south, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/chem_master/condimaster, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "aFi" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/machinery/portable_atmospherics/scrubber, @@ -1976,23 +2140,6 @@ /obj/machinery/dna_scannernew, /turf/open/floor/iron/dark, /area/station/science/genetics) -"aFx" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hooded/wintercoat/eva{ - pixel_y = 9 - }, -/obj/item/clothing/shoes/winterboots/ice_boots/eva{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/effect/turf_decal/delivery/red, -/obj/item/clothing/gloves/color/grey/protects_cold, -/obj/item/clothing/mask/gas, -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/turf/open/floor/iron/textured, -/area/station/ai_monitored/command/storage/eva) "aFz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2022,26 +2169,10 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"aGf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) -"aGk" = ( -/obj/structure/rack, -/obj/item/wrench, -/obj/item/crowbar, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/random/engineering/flashlight, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/lesser) +"aGb" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "aGr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/camera/directional/east{ @@ -2067,6 +2198,15 @@ /obj/item/papercutter, /turf/open/floor/iron, /area/station/cargo/office) +"aGR" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "aGW" = ( /obj/machinery/door/airlock/highsecurity{ name = "Labor Camp Monitoring" @@ -2077,13 +2217,35 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/mine/laborcamp) -"aHh" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 +"aHt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/table/reinforced, +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = -6; + pixel_y = -1 }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = 6; + pixel_y = -1 + }, +/obj/machinery/button/ignition/incinerator/atmos{ + pixel_y = 9 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"aHw" = ( +/obj/structure/rack, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) "aHz" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -2110,6 +2272,23 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood, /area/station/command/meeting_room) +"aHX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) "aHZ" = ( /obj/effect/turf_decal/tile/neutral/diagonal_edge, /obj/effect/landmark/start/cook, @@ -2122,10 +2301,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/service/chapel) -"aIg" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall/r_wall, -/area/station/engineering/main) +"aIn" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "aIr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2137,21 +2320,6 @@ dir = 9 }, /area/station/science/explab) -"aIA" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/green/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "aIB" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 4 @@ -2190,6 +2358,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"aJa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aJi" = ( +/obj/machinery/shower/directional/east, +/obj/structure/fluff/shower_drain, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "aJm" = ( /obj/structure/cable, /obj/machinery/door/window/left/directional/east{ @@ -2222,14 +2403,6 @@ /obj/item/lighter/greyscale, /turf/open/floor/iron/showroomfloor, /area/station/maintenance/department/medical/morgue) -"aJz" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/ordnance/office) "aJA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2269,6 +2442,12 @@ }, /turf/open/floor/plating, /area/station/engineering/transit_tube) +"aKb" = ( +/obj/structure/fence{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "aKf" = ( /obj/machinery/light_switch/directional/south, /obj/structure/chair/comfy/brown{ @@ -2308,11 +2487,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"aLh" = ( -/obj/structure/fireplace, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "aLy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2351,14 +2525,6 @@ /obj/machinery/shower/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) -"aLO" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/sign/clock/directional/east, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) "aLV" = ( /obj/machinery/bluespace_vendor/directional/south, /turf/open/floor/iron, @@ -2401,6 +2567,13 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) +"aMh" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) "aMr" = ( /obj/structure/chair/office{ dir = 4 @@ -2421,18 +2594,16 @@ }, /turf/open/floor/iron, /area/station/tcommsat/computer) +"aMA" = ( +/obj/structure/stairs/north, +/turf/open/floor/iron, +/area/station/service/chapel) "aME" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"aMI" = ( -/obj/machinery/oven/range, -/obj/effect/turf_decal/siding/white, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "aML" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -2443,21 +2614,21 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"aNc" = ( -/obj/structure/fence{ - dir = 4 - }, -/obj/structure/sign/nanotrasen, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) -"aNj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 +"aMU" = ( +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/iron, -/area/station/commons/fitness) +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/remains/human, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"aMZ" = ( +/obj/structure/flora/grass/both/style_random, +/obj/item/stack/rods, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "aNq" = ( /obj/effect/turf_decal/caution/stand_clear, /obj/effect/turf_decal/siding/dark_blue, @@ -2487,22 +2658,48 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plating, /area/mine/eva/lower) -"aOa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, +"aNE" = ( +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"aOb" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "botany_apiary"; + name = "Apiary Shutters" + }, /turf/open/floor/plating, -/area/station/maintenance/disposal) +/area/station/service/hydroponics) "aOd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/miningdock) +"aOe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "aOf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron/dark, /area/mine/eva) +"aOx" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/vending/clothing, +/obj/structure/noticeboard/staff{ + pixel_y = 36 + }, +/turf/open/floor/iron, +/area/station/commons/locker) "aOz" = ( /obj/structure/chair{ dir = 4 @@ -2527,11 +2724,32 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"aOG" = ( +/obj/structure/fence/post{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "aOS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/textured, /area/station/security/medical) +"aOU" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/trunk/multiz/down, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/aft) +"aOW" = ( +/obj/machinery/duct, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "aOX" = ( /turf/open/floor/engine/co2, /area/station/engineering/atmos) @@ -2564,6 +2782,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) +"aPl" = ( +/obj/effect/turf_decal/tile/purple, +/obj/machinery/camera/directional/south{ + c_tag = "Starboard Primary Hallway Center East" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "aPD" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) @@ -2583,11 +2808,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/textured, /area/station/security/warden) -"aPP" = ( -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "aPV" = ( /obj/effect/spawner/random/trash/mess, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2609,30 +2829,24 @@ }, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) +"aPZ" = ( +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/lesser) "aQe" = ( /obj/item/clothing/shoes/jackboots, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"aQn" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) -"aQy" = ( -/obj/effect/turf_decal/siding/wood, -/obj/item/kirbyplants/random/fullysynthetic{ - pixel_x = 10; - pixel_y = 19 - }, +"aQj" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/stone, -/area/mine/eva/lower) +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "aQJ" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -2661,15 +2875,17 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"aRe" = ( +/obj/structure/cable/multilayer/multiz, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "aRj" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/engine/co2, /area/station/engineering/atmos) -"aRl" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/smartfridge/extract/preloaded, -/turf/open/floor/iron, -/area/station/science/xenobiology) "aRm" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -2714,6 +2930,10 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"aRx" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/cargo/storage) "aRz" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/yellow{ @@ -2737,12 +2957,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"aRQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/south, -/obj/effect/mapping_helpers/dead_body_placer, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "aRR" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -2784,17 +2998,6 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) -"aSw" = ( -/obj/structure/rack, -/obj/item/lighter, -/obj/item/clothing/glasses/meson{ - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/reagent_containers/pill/patch/aiuri, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "aSB" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/box, @@ -2819,6 +3022,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"aSM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/dark{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) "aSS" = ( /obj/effect/turf_decal/trimline/dark_red/end, /obj/machinery/meter, @@ -2826,6 +3042,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"aTc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "aTj" = ( /obj/structure/table, /obj/item/storage/belt/utility, @@ -2840,22 +3061,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"aTk" = ( -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Apiary" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/service/hydroponics) "aTp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2865,6 +3070,9 @@ /area/station/maintenance/department/medical/central) "aTw" = ( /obj/structure/displaycase/captain, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "aTE" = ( @@ -2878,12 +3086,6 @@ dir = 4 }, /area/station/medical/chem_storage) -"aTG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/command/teleporter) "aTH" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -2945,11 +3147,43 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"aUq" = ( -/obj/structure/flora/bush/fullgrass/style_random, -/obj/structure/flora/bush/generic/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) +"aUo" = ( +/obj/structure/table/wood, +/obj/item/trapdoor_remote/preloaded{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/gavelblock{ + pixel_x = 5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"aUt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) +"aUu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "aUA" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -2959,12 +3193,11 @@ /area/station/cargo/storage) "aUC" = ( /obj/structure/fence/door, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"aUD" = ( -/obj/structure/sign/departments/maint/alt, -/turf/closed/wall, -/area/station/maintenance/department/medical/morgue) "aUK" = ( /obj/machinery/camera/directional/west{ c_tag = "Engineering Equipment Storage" @@ -2973,20 +3206,18 @@ /obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/iron/dark, /area/station/engineering/storage) +"aUM" = ( +/obj/structure/filingcabinet, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/vacant_room/office) "aUO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/chapel) -"aUR" = ( -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/effect/spawner/structure/window/hollow/reinforced/end{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/morgue) "aUS" = ( /obj/machinery/meter{ name = "Mixed Air Tank In" @@ -2994,6 +3225,12 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos) +"aUT" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "aVb" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -3022,21 +3259,18 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"aVp" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Mining B-1 Crater Observatory Access" - }, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/mine/living_quarters) "aVq" = ( /obj/structure/ore_box, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"aVr" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "aVw" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -3044,14 +3278,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"aVF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/textured, -/area/station/security/brig) "aVH" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/tile/blue/half/contrasted, @@ -3062,35 +3288,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) -"aVJ" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/stone, -/area/station/commons/lounge) -"aVU" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - id_tag = "virology_airlock_exterior"; - name = "Virology Exterior Airlock" - }, -/obj/machinery/door_buttons/access_button{ - idDoor = "virology_airlock_exterior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_y = -24; - req_access = list("virology") - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 +"aVM" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 }, -/obj/effect/mapping_helpers/airlock/access/all/medical/virology, -/obj/effect/turf_decal/tile/green/full, -/turf/open/floor/iron/white/smooth_large, +/obj/effect/landmark/start/hangover, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, /area/station/medical/virology) "aWb" = ( /obj/effect/turf_decal/stripes/line{ @@ -3115,14 +3319,47 @@ /obj/structure/chair/office/light, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"aWj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "aWk" = ( /obj/machinery/door/poddoor/shutters{ dir = 1; id = "armory"; name = "Armory Shutter" }, +/obj/machinery/button/door/directional/east{ + id = "armory"; + name = "Armory Shutters"; + req_access = list("armory") + }, /turf/open/floor/iron, /area/station/ai_monitored/security/armory/upper) +"aWo" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/redbeet, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/green{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/mine/laborcamp) +"aWu" = ( +/obj/structure/barricade/wooden/snowed, +/obj/machinery/light/small/red/directional/north, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "minecraft_shutter"; + name = "Cart Shutters" + }, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "aWD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -3153,6 +3390,25 @@ /obj/structure/cable, /turf/open/floor/iron, /area/mine/laborcamp/security) +"aXc" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"aXg" = ( +/obj/structure/ladder{ + name = "chemistry lab access" + }, +/obj/machinery/door/window/left/directional/south{ + name = "Morgue Access Hatch"; + req_access = list("medical") + }, +/obj/effect/turf_decal/stripes/end, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/white/textured_large, +/area/station/medical/medbay/central) "aXp" = ( /obj/structure/cable, /obj/machinery/button/door/directional/west{ @@ -3168,28 +3424,41 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"aXu" = ( -/obj/structure/chair/sofa/right/brown, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"aXv" = ( -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"aXx" = ( +"aXq" = ( /obj/item/bedsheet/red, /mob/living/simple_animal/bot/secbot/beepsky, /turf/open/floor/plating, /area/station/maintenance/fore) +"aXP" = ( +/obj/structure/barricade/wooden, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) "aXY" = ( /obj/structure/rack, /obj/item/circuitboard/machine/monkey_recycler, /obj/structure/sign/poster/random/directional/east, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"aYi" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/ecto_sniffer{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/iron, +/area/station/science/robotics/lab) +"aYk" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/item/seeds/berry, +/obj/machinery/light/small/dim/directional/south, +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/station/maintenance/starboard/fore) "aYm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3204,6 +3473,15 @@ }, /turf/open/floor/iron, /area/station/commons/storage/mining) +"aYu" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "aYJ" = ( /turf/open/floor/iron/white, /area/station/science/research) @@ -3214,39 +3492,12 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/mine/production) -"aYO" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/fore) "aYQ" = ( /obj/machinery/shower/directional/south, /obj/item/soap/nanotrasen, /obj/item/bikehorn/rubberducky/plasticducky, /turf/open/floor/iron/freezer, /area/mine/laborcamp) -"aYS" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/table, -/obj/item/storage/box/lights/mixed, -/obj/item/stack/cable_coil, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/power_store/cell/emproof, -/obj/item/stock_parts/power_store/cell/emproof{ - pixel_x = 6; - pixel_y = -2 - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = 10 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "aZd" = ( /turf/open/floor/plating, /area/station/medical/virology) @@ -3305,6 +3556,14 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) +"aZJ" = ( +/obj/item/toy/snowball{ + pixel_x = 11; + pixel_y = -7 + }, +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "aZK" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/table, @@ -3329,6 +3588,13 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/service/chapel) +"aZU" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/commons/lounge) "aZV" = ( /obj/effect/landmark/start/atmospheric_technician, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -3367,13 +3633,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"bao" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +"bap" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/structure/closet/emcloset, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/turf/open/floor/iron/dark, +/area/station/service/chapel) "bar" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -3389,11 +3654,6 @@ }, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"baE" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "baF" = ( /obj/structure/closet/l3closet/scientist, /obj/item/extinguisher, @@ -3405,6 +3665,13 @@ /obj/effect/mapping_helpers/requests_console/supplies, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) +"baN" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "baQ" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ dir = 4 @@ -3427,6 +3694,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"baX" = ( +/obj/structure/table, +/obj/item/folder/white, +/obj/item/pen, +/obj/item/stamp/head/rd{ + pixel_x = 3; + pixel_y = -2 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) "bbo" = ( /turf/open/floor/iron, /area/station/construction) @@ -3457,6 +3734,13 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"bbO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/end{ + dir = 1 + }, +/turf/open/floor/iron/textured, +/area/station/medical/chem_storage) "bbQ" = ( /obj/structure/chair{ dir = 4 @@ -3467,17 +3751,18 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"bbU" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/status_display/evac/directional/south, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/no_smoking/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) "bbY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/red, /turf/open/floor/iron/textured, /area/station/security/brig) -"bcf" = ( -/obj/effect/spawner/random/entertainment/arcade, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/eighties, -/area/station/commons/lounge) "bcm" = ( /obj/machinery/camera/directional/east{ c_tag = "Security - Lower Brig Cells"; @@ -3490,14 +3775,19 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron/textured, /area/station/security/brig) -"bcu" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ +"bcs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 }, -/obj/item/seeds/watermelon, -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/station/maintenance/starboard/fore) +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/mine/eva/lower) "bcx" = ( /obj/machinery/door/airlock/maintenance{ name = "Quartermaster Office Maintenance" @@ -3546,6 +3836,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/prison/rec) +"bdp" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) "bdr" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/blue/filled/warning, @@ -3612,14 +3914,28 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/wood, /area/station/service/library) -"bdX" = ( -/obj/item/toy/snowball{ - pixel_y = 3; - pixel_x = 3 +"bdT" = ( +/obj/structure/table/glass, +/obj/effect/spawner/random/entertainment/deck{ + pixel_x = -6 }, -/obj/item/toy/snowball, -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay Break Room"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/break_room) "bea" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating/icemoon, @@ -3637,14 +3953,13 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) -"beF" = ( -/obj/machinery/door/airlock{ - name = "Unisex Showers" - }, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/iron/textured, -/area/station/commons/toilet) +"beu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "beO" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -3673,20 +3988,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/mess) -"bfl" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "bfo" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end, /turf/open/floor/plating, /area/mine/eva/lower) -"bfy" = ( -/obj/effect/spawner/random/trash/bin, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "bfL" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -3726,6 +4031,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) +"bfV" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) +"bge" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "bgs" = ( /obj/structure/sign/poster/random/directional/east, /obj/structure/cable, @@ -3808,12 +4126,11 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"bhk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +"bhm" = ( +/obj/machinery/vending/coffee, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/breakroom) "bht" = ( /obj/structure/closet/lasertag/red, /obj/effect/spawner/random/contraband/permabrig_gear, @@ -3830,6 +4147,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) +"bhI" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) +"bhQ" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bhV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -3840,37 +4165,21 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"bid" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/effect/landmark/navigate_destination/bar, -/obj/machinery/door/airlock/multi_tile/public/glass{ - name = "Atrium" - }, -/turf/open/floor/iron/dark/textured_half, -/area/station/service/bar/atrium) "bie" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 }, /turf/open/floor/plating, /area/mine/production) -"bif" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/sign/warning/radiation/rad_area/directional/east, -/obj/machinery/camera/directional/east{ - c_tag = "Atmospherics - HFR Decontamination Chamber" +"bij" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/hfr_room) -"bil" = ( -/obj/structure/railing/wooden_fence, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/treatment_center) "bin" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 4 @@ -3894,14 +4203,24 @@ /obj/item/clothing/head/beanie/orange, /turf/open/floor/iron, /area/station/cargo/storage) -"biI" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Xenobiology Test Chamber"; - network = list("ss13","test","rd","xeno") +"biu" = ( +/obj/machinery/door/window/right/directional/south{ + req_access = list("kitchen"); + name = "The Ice Box" }, -/obj/machinery/light/directional/west, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"biE" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/lesser) "biR" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers{ @@ -3979,6 +4298,28 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"bjI" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/west, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) +"bjK" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/keycard_auth/wall_mounted/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) +"bjL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) "bjN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4030,15 +4371,15 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/upper) -"bkF" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/dirt, +"bkQ" = ( +/obj/structure/tank_holder/extinguisher, +/obj/structure/sign/warning/biohazard/directional/north, /turf/open/floor/iron, -/area/station/science/explab) -"bkM" = ( -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/science/xenobiology) +"bkR" = ( +/obj/machinery/modular_computer/preset/civilian, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) "bkS" = ( /obj/machinery/bci_implanter, /turf/open/floor/iron/white/side{ @@ -4118,6 +4459,14 @@ /obj/machinery/light/directional/west, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"blM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood/large, +/area/station/service/bar) "blO" = ( /obj/structure/girder, /turf/open/floor/plating, @@ -4148,10 +4497,17 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood, /area/station/service/library) -"blX" = ( -/obj/effect/decal/cleanable/dirt/dust, +"blY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/maintenance/port/greater) +"bmc" = ( +/obj/structure/fence/post, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "bml" = ( /obj/structure/table, /obj/item/storage/medkit/regular, @@ -4170,21 +4526,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) -"bmT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 9 +"bng" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/structure/railing{ + dir = 8 }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"bna" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +/turf/open/floor/iron/stairs/medium{ dir = 1 }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/medical/medbay/aft) +/area/station/commons/lounge) "bnh" = ( /obj/machinery/door/window/left/directional/east{ name = "Containment Pen 7"; @@ -4204,6 +4554,27 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"bnm" = ( +/obj/machinery/door/airlock/multi_tile/public/glass{ + dir = 4; + name = "Service Hall" + }, +/obj/effect/turf_decal/siding/dark/corner, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/service/general, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/hallway/secondary/service) "bnp" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -4213,6 +4584,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/storage_shared) +"bnr" = ( +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/science/xenobiology) "bnt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -4230,11 +4606,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"bnG" = ( -/obj/structure/sign/warning/fire/directional/west, -/obj/effect/turf_decal/tile/yellow/opposingcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/project) "bnL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/maintenance_hatch, @@ -4257,52 +4628,20 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) -"bod" = ( -/obj/structure/closet/crate/wooden, -/obj/item/camera_film{ - pixel_x = -4; - pixel_y = 4 +"boc" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Exfiltrate to Waste" }, -/obj/item/camera, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing/corner/end{ + dir = 4 }, -/obj/structure/sign/poster/contraband/the_griffin/directional/south, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room/office) +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "bol" = ( /turf/open/floor/iron/dark/textured, /area/station/security/prison) -"bon" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"bor" = ( -/obj/structure/minecart_rail{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/holosign/barrier/atmos/sturdy, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "minecraft_shutter"; - name = "Cart Shutters" - }, -/turf/open/floor/iron/textured, -/area/station/service/hydroponics) "bos" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 5 @@ -4333,23 +4672,22 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) -"bpa" = ( -/obj/structure/minecart_rail{ - dir = 4 - }, +"boU" = ( +/obj/structure/rack, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/smooth, +/area/mine/living_quarters) +"boX" = ( +/obj/machinery/duct, /obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/obj/machinery/light/small/red/directional/north, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) -"bpc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/service/theater) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow/corner, +/turf/open/floor/iron, +/area/station/engineering/lobby) "bpd" = ( /obj/machinery/power/smes/engineering, /obj/effect/turf_decal/delivery, @@ -4358,11 +4696,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/engineering/engine_smes) -"bpf" = ( -/obj/machinery/computer/records/security, -/obj/effect/turf_decal/tile/red/anticorner/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) "bpm" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -4384,33 +4717,29 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"bpv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"bpq" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/railing/corner{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/stone, -/area/station/service/bar/atrium) -"bpD" = ( -/obj/machinery/newscaster/directional/south, -/obj/structure/closet/firecloset, -/turf/open/floor/iron/cafeteria{ - dir = 8 +/turf/open/floor/plastic, +/area/station/commons/dorms/laundry) +"bpw" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/landmark/event_spawn, +/obj/structure/railing/corner/end/flip{ + dir = 4 }, -/area/station/science/research) +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "bpK" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"bpL" = ( -/obj/structure/noticeboard/directional/west, -/turf/open/floor/engine/cult, -/area/station/service/library) "bpQ" = ( /obj/machinery/mech_bay_recharge_port, /obj/structure/cable, @@ -4438,16 +4767,37 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) -"bpZ" = ( -/obj/item/radio/intercom/directional/west, -/obj/machinery/chem_dispenser, -/turf/open/floor/glass/reinforced, -/area/station/medical/treatment_center) +"bpY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor/heavy{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "bqe" = ( /obj/structure/grille, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"bqf" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/labor_camp) +"bqq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "botany_chasm_and_wolf_shutters" + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) "bqr" = ( /obj/item/target, /obj/structure/window/reinforced/spawner/directional/north, @@ -4465,6 +4815,19 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/security/processing) +"bqz" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/cultivator, +/obj/item/seeds/potato, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/green{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/mine/laborcamp) "bqF" = ( /obj/structure/chair{ dir = 4 @@ -4479,10 +4842,13 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/upper) -"bqX" = ( -/obj/machinery/air_sensor/ordnance_burn_chamber, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) +"bqS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) "bqY" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/two, @@ -4497,6 +4863,15 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"brm" = ( +/obj/machinery/computer/holodeck{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) "bro" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4523,15 +4898,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) -"brC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/chair_flipped{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "brJ" = ( /obj/structure/chair/stool/directional/south, /obj/effect/landmark/event_spawn, @@ -4574,23 +4940,14 @@ }, /turf/open/floor/plating, /area/mine/eva/lower) -"bsc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/stock_parts/power_store/cell/high, -/turf/open/floor/iron, -/area/station/maintenance/department/electrical) "bsd" = ( /obj/structure/chair/stool/directional/south, -/obj/structure/sign/poster/official/obey/directional/north, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /obj/machinery/light/small/dim/directional/west, +/obj/structure/sign/poster/official/obey/directional/west, /turf/open/floor/iron, /area/mine/laborcamp) "bse" = ( @@ -4612,14 +4969,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/break_room) -"bsn" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" +"bso" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light_switch/directional/west{ + pixel_x = -39 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/textured, -/area/station/commons/toilet) +/turf/open/floor/iron/checker, +/area/station/commons/storage/emergency/port) "bst" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 6 @@ -4661,6 +5018,21 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/dark, /area/station/maintenance/port/greater) +"bsW" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "bta" = ( /obj/structure/chair/sofa/bench/right{ dir = 8 @@ -4689,6 +5061,14 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"btq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "bts" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -4718,6 +5098,20 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"btK" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) "btU" = ( /turf/closed/wall, /area/station/medical/morgue) @@ -4762,39 +5156,44 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"buW" = ( -/obj/structure/lattice, -/obj/structure/sign/warning/directional/south, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/underground/explored) +"buR" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/potato{ + name = "\improper Beepsky's emergency battery" + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"buU" = ( +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/obj/item/clothing/shoes/wheelys/skishoes{ + pixel_y = -8 + }, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "buY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"bvc" = ( -/obj/structure/minecart_rail{ - dir = 1 - }, -/obj/item/radio/intercom/directional/west{ - frequency = 1453; - name = "Kitchen Intercom" +"bvb" = ( +/obj/structure/fence/post{ + dir = 4 }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "bvd" = ( /obj/machinery/power/terminal, /obj/machinery/light/small/directional/east, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) -"bve" = ( -/obj/structure/sign/warning/no_smoking{ - pixel_x = -28 - }, -/turf/open/openspace, -/area/station/medical/treatment_center) "bvg" = ( /obj/structure/railing{ dir = 4 @@ -4828,11 +5227,23 @@ /obj/machinery/autolathe, /turf/open/floor/iron, /area/station/cargo/office) -"bvu" = ( -/obj/machinery/light/directional/north, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +"bvw" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -5; + pixel_y = -8 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_y = -6; + pixel_x = 9 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "bvE" = ( /obj/machinery/computer/monitor{ name = "bridge power monitoring console" @@ -4859,43 +5270,30 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_large, /area/station/maintenance/department/medical/morgue) +"bvX" = ( +/obj/machinery/computer/security/hos, +/obj/machinery/requests_console/directional/north{ + department = "Head of Security's Desk"; + name = "Head of Security Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/item/radio/intercom/directional/west, +/obj/machinery/button/door/directional/north{ + id = "hosspace"; + name = "Icemoon Shutters Control" + }, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hos) "bvY" = ( /obj/machinery/firealarm/directional/south, /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/upper) -"bwe" = ( -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/virology{ - autoclose = 0; - frequency = 1449; - id_tag = "virology_airlock_interior"; - name = "Virology Interior Airlock" - }, -/obj/structure/cable, -/obj/machinery/door_buttons/access_button{ - idDoor = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Button"; - pixel_x = -24; - pixel_y = 5; - req_access = list("virology") - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, -/obj/effect/mapping_helpers/airlock/access/all/medical/virology, -/obj/effect/turf_decal/tile/green/full, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/virology) "bwh" = ( -/obj/effect/turf_decal/siding/white/corner{ - dir = 8 - }, -/turf/closed/wall, -/area/station/service/hydroponics) +/turf/closed/wall/mineral/iron, +/area/icemoon/underground/explored) "bwi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4920,11 +5318,38 @@ dir = 8 }, /area/station/hallway/secondary/entry) +"bwp" = ( +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "bwt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"bwD" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "bwK" = ( /obj/structure/bookcase/random/religion, /turf/open/floor/wood, @@ -4969,6 +5394,10 @@ /obj/structure/cable/multilayer/multiz, /turf/open/floor/plating, /area/station/maintenance/fore) +"bxS" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/turf/open/floor/plating, +/area/station/maintenance/fore) "bxU" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -4987,12 +5416,6 @@ dir = 5 }, /area/station/maintenance/port/aft) -"bxX" = ( -/obj/structure/chair/stool/directional/north, -/obj/structure/sign/poster/official/report_crimes/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/mine/laborcamp) "byd" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/machinery/light_switch/directional/south, @@ -5012,6 +5435,7 @@ /obj/machinery/camera/directional/north{ c_tag = "Cargo Bay Delivery Office" }, +/obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/cargo/sorting) "byn" = ( @@ -5051,11 +5475,6 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) -"byy" = ( -/obj/machinery/newscaster/directional/east, -/obj/machinery/duct, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "byB" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/plating/icemoon, @@ -5064,6 +5483,16 @@ /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) +"byJ" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/bar) "byK" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5075,18 +5504,16 @@ /obj/effect/mapping_helpers/mail_sorting/science/robotics, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"byO" = ( -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 - }, -/mob/living/carbon/human/species/monkey/punpun, -/obj/item/kirbyplants/organic/plant11, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "byP" = ( /obj/structure/girder, /turf/open/floor/plating, /area/station/maintenance/fore) +"bza" = ( +/obj/structure/fence/end{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "bzc" = ( /obj/machinery/status_display/evac/directional/east, /obj/effect/turf_decal/tile/blue, @@ -5107,14 +5534,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"bzB" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "bzC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5122,20 +5541,27 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"bzD" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "mining-aux-mechbay-external" + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Mech Bay External Airlock"; + opacity = 0 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/turf/open/floor/iron/large, +/area/mine/mechbay) "bzE" = ( /obj/structure/railing{ dir = 1 }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"bzF" = ( -/obj/machinery/status_display/ai/directional/north, -/obj/item/aquarium_kit, -/obj/structure/rack, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/siding/dark, -/turf/open/floor/iron/checker, -/area/station/hallway/secondary/service) "bzI" = ( /obj/machinery/bluespace_vendor/directional/west, /obj/effect/turf_decal/tile/blue{ @@ -5143,15 +5569,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"bzJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/camera/directional/north{ - c_tag = "Mining Mech Bay" - }, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/iron/smooth, -/area/mine/mechbay) "bzQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5164,15 +5581,6 @@ "bzW" = ( /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"bzX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "bAa" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -5180,6 +5588,19 @@ /obj/structure/chair/stool/directional/north, /turf/open/floor/carpet, /area/station/command/heads_quarters/qm) +"bAj" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/cryo) "bAk" = ( /obj/machinery/firealarm/directional/west, /turf/open/floor/carpet, @@ -5241,25 +5662,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"bBa" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"bBb" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "bBd" = ( /obj/effect/turf_decal/siding/yellow{ dir = 6 @@ -5268,24 +5670,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/engineering/lobby) -"bBn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ - color = "#0000ff"; - dir = 8; - name = "Supply multi deck pipe adapter" - }, -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - color = "#ff0000"; - dir = 8; - name = "Scrubbers multi deck pipe adapter" - }, -/obj/structure/cable/multilayer/multiz, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "bBw" = ( /obj/item/trash/sosjerky, /turf/open/floor/plating, @@ -5317,14 +5701,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) +"bBO" = ( +/obj/effect/spawner/random/decoration/flower, +/obj/structure/flora/rock/pile/icy/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "bBW" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) -"bCc" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/maintenance/port/aft) "bCd" = ( /obj/machinery/door/airlock/maintenance{ name = "Genetics Lab Maintenance" @@ -5355,24 +5740,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/security/prison/work) -"bCq" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) -"bCr" = ( -/obj/machinery/door/window/left/directional/north{ - name = "Pharmacy Desk"; - req_access = list("pharmacy") - }, -/obj/item/folder/white, -/obj/item/pen, -/obj/machinery/door/firedoor, -/obj/structure/sign/warning/fire/directional/west, -/obj/structure/table/reinforced, -/turf/open/floor/plating, -/area/station/medical/treatment_center) "bCs" = ( /obj/machinery/door/airlock/engineering{ name = "Construction Area" @@ -5391,12 +5758,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, /area/station/medical/virology) -"bCL" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/table/glass, -/obj/item/storage/box/monkeycubes, -/turf/open/floor/iron, -/area/station/science/xenobiology) +"bCN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner, +/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/morgue) "bCQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, @@ -5411,32 +5787,15 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"bCW" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/command/bridge) -"bDd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/prison/workout) "bDj" = ( /obj/machinery/light/warm/directional/south, /turf/open/floor/iron/dark/textured, /area/station/security/prison/workout) "bDl" = ( /obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "bDu" = ( @@ -5450,6 +5809,12 @@ dir = 4 }, /area/station/engineering/lobby) +"bDB" = ( +/obj/structure/plaque/static_plaque/golden/commission/icebox{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "bDC" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm_B"; @@ -5526,32 +5891,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) -"bEh" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/structure/sign/warning/cold_temp/directional/east, -/obj/structure/sign/warning/gas_mask/directional/west{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Xenobiology External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "bEi" = ( /obj/structure/sign/poster/official/work_for_a_future/directional/north, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"bEo" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/white, -/area/station/maintenance/aft/greater) +"bEk" = ( +/obj/structure/railing/wooden_fence{ + dir = 4 + }, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) +"bEn" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "bEz" = ( /obj/machinery/door/airlock/command/glass{ name = "Secure EVA Storage" @@ -5569,20 +5928,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/general, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/command/storage/eva) -"bEB" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/central) -"bEH" = ( -/obj/structure/stairs/north{ - dir = 4 - }, -/turf/open/floor/iron/stairs/old{ - dir = 4 - }, -/area/station/engineering/atmos/storage) "bEJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -5590,6 +5935,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/science/ordnance/office) "bEL" = ( @@ -5617,22 +5965,48 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"bFr" = ( -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/iron, -/area/station/science/xenobiology) "bFs" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"bFS" = ( -/obj/item/crowbar/red, +"bFx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/dark, +/area/mine/storage) +"bFA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) +"bFP" = ( +/obj/structure/fence/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"bFW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "bFY" = ( /obj/item/trash/syndi_cakes, /turf/open/floor/plating, @@ -5643,15 +6017,11 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"bGf" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/trash/waffles, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"bGc" = ( +/obj/machinery/computer/cargo/request, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron, +/area/station/command/bridge) "bGm" = ( /obj/machinery/firealarm/directional/south, /obj/structure/filingcabinet/filingcabinet, @@ -5660,17 +6030,29 @@ }, /turf/open/floor/iron, /area/station/command/bridge) +"bGn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor/border_only, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/mine/eva) +"bGq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "bGA" = ( /obj/effect/spawner/structure/window, /obj/structure/sign/departments/xenobio/directional/south, /turf/open/floor/plating, /area/station/science/xenobiology) -"bGD" = ( -/obj/structure/table/reinforced, -/obj/structure/reagent_dispensers/wall/peppertank/directional/east, -/obj/effect/turf_decal/tile/red/full, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/checkpoint/medical) "bGP" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -5680,6 +6062,15 @@ dir = 1 }, /area/mine/eva) +"bGS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/fore/lesser) "bGT" = ( /obj/machinery/light/directional/south, /obj/structure/closet/firecloset, @@ -5695,6 +6086,14 @@ dir = 4 }, /area/station/command/heads_quarters/rd) +"bHc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/railing{ + dir = 4 + }, +/obj/item/kirbyplants/random/dead, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "bHu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -5717,6 +6116,10 @@ }, /turf/open/floor/plating, /area/station/hallway/primary/fore) +"bHJ" = ( +/obj/machinery/smartfridge, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "bHO" = ( /obj/machinery/light_switch/directional/south{ pixel_x = 6; @@ -5725,11 +6128,6 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"bHZ" = ( -/obj/effect/spawner/random/trash/mess, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "bIa" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; @@ -5753,21 +6151,6 @@ dir = 4 }, /area/station/ai_monitored/command/storage/eva) -"bId" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "bIl" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -5788,15 +6171,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/disposal) -"bIq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk/multiz/down{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "bIt" = ( /obj/structure/rack, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -5898,37 +6272,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/mine/laborcamp) -"bJy" = ( -/obj/machinery/button/flasher{ - id = "hopflash"; - pixel_x = 8; - pixel_y = -32 - }, -/obj/machinery/button/door/directional/south{ - id = "hopqueue"; - name = "Queue Shutters Control"; - pixel_x = -8; - req_access = list("hop") - }, -/obj/machinery/button/door/directional/south{ - id = "hop"; - name = "Privacy Shutters Control"; - pixel_x = 8; - req_access = list("hop") - }, -/obj/machinery/button/ticket_machine{ - pixel_x = -8; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/modular_computer/preset/id{ - dir = 1 - }, -/obj/item/paper/fluff/ids_for_dummies, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "bJD" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ dir = 4 @@ -5938,14 +6281,6 @@ "bJE" = ( /turf/open/floor/iron/dark/smooth_large, /area/station/security/processing) -"bJJ" = ( -/obj/machinery/computer/mech_bay_power_console{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/sign/poster/random/directional/west, -/turf/open/floor/iron, -/area/station/science/robotics/mechbay) "bJQ" = ( /obj/structure/table/wood, /obj/item/stack/package_wrap, @@ -5955,13 +6290,11 @@ }, /turf/open/floor/wood, /area/station/service/library) -"bKm" = ( -/obj/machinery/vending/assist, -/obj/structure/sign/poster/random/directional/west, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/research) +"bJX" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/robot_debris/down, +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) "bKp" = ( /obj/machinery/door/airlock/maintenance{ name = "Firefighting Equipment" @@ -5980,6 +6313,25 @@ }, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/office) +"bKE" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/brown{ + dir = 4 + }, +/obj/machinery/button/door/directional/north{ + id = "miningdorm_B"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/stellar, +/area/mine/production) "bKI" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/machinery/disposal/bin, @@ -6012,19 +6364,6 @@ dir = 5 }, /area/station/maintenance/port/aft) -"bLa" = ( -/obj/structure/bed, -/obj/machinery/airalarm/directional/north, -/obj/effect/spawner/random/bedsheet, -/obj/machinery/button/door/directional/east{ - id = "Dorm1"; - name = "Dorm Bolt Control"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, -/obj/item/pillow/random, -/turf/open/floor/carpet, -/area/station/commons/dorms) "bLc" = ( /turf/open/floor/iron/dark/textured_edge{ dir = 1 @@ -6035,12 +6374,6 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) -"bLf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "bLn" = ( /obj/machinery/light/directional/west, /obj/item/radio/intercom/directional/west, @@ -6114,12 +6447,10 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"bMe" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +"bMk" = ( +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/commons/lounge) "bMz" = ( /obj/docking_port/stationary{ dir = 8; @@ -6151,24 +6482,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"bNo" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor"; - name = "Supply Dock Loading Door" - }, -/turf/open/floor/plating, -/area/station/cargo/storage) -"bNu" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/research) "bNy" = ( /obj/item/toy/snowball{ pixel_x = 9; @@ -6176,6 +6489,12 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"bNC" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "bNE" = ( /obj/machinery/door/airlock/atmos/glass{ name = "Atmospherics Monitoring" @@ -6204,11 +6523,14 @@ /turf/open/floor/iron/showroomfloor, /area/station/security/processing) "bOh" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) "bOj" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment, @@ -6222,15 +6544,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/construction) -"bOn" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Service - Gambling Lounge" - }, -/obj/machinery/computer/slot_machine{ - name = "two-armed bandit" - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "bOo" = ( /obj/effect/turf_decal/arrows/white{ dir = 4 @@ -6240,15 +6553,18 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"bOy" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/spawner/random/vending/snackvend, -/obj/machinery/camera/directional/east{ - c_tag = "Engineering Lobby" +"bOp" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/newscaster/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay North"; + network = list("ss13","medbay") }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "bOz" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 1 @@ -6264,12 +6580,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"bOT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "bOX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6281,27 +6591,41 @@ /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) "bOZ" = ( -/obj/effect/spawner/random/structure/musician/piano/random_piano, -/obj/machinery/button/curtain{ - id = "cantena_curtains"; - pixel_x = -30 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "bPc" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"bPk" = ( -/obj/structure/reagent_dispensers/plumbed{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/morgue) +"bPl" = ( +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/security/courtroom) "bPn" = ( /obj/structure/girder, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"bPp" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access"; + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "bPr" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -6361,12 +6685,6 @@ /obj/effect/turf_decal/tile/green/full, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/virology) -"bPR" = ( -/obj/structure/railing/wooden_fence{ - dir = 1 - }, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) "bPV" = ( /obj/item/kirbyplants/random/dead, /turf/open/floor/plating/snowed/icemoon, @@ -6383,20 +6701,19 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/engineering/atmos/storage) -"bQd" = ( -/obj/structure/fireaxecabinet/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) "bQh" = ( /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark/corner{ dir = 1 }, /area/station/hallway/primary/starboard) +"bQx" = ( +/obj/structure/ladder{ + name = "upper dispenser access" + }, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/iron/dark/textured_large, +/area/station/medical/chemistry) "bQA" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -6413,14 +6730,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"bQV" = ( -/obj/structure/sign/warning/electric_shock/directional/north, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "bRb" = ( /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/floor/grass, @@ -6434,6 +6743,12 @@ /obj/effect/mapping_helpers/airlock/access/all/science/robotics, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"bRj" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/closet/emcloset/anchored, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/engineering/main) "bRl" = ( /obj/effect/turf_decal/trimline/green/filled/corner, /obj/effect/decal/cleanable/dirt, @@ -6455,19 +6770,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"bRx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/landmark/generic_maintenance_landmark, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "bRz" = ( /obj/machinery/hydroponics/soil{ pixel_y = 8 @@ -6500,18 +6802,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"bRO" = ( -/obj/item/reagent_containers/cup/soda_cans/beer{ - pixel_x = -7; - pixel_y = 2 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "bSi" = ( -/obj/structure/sign/warning/cold_temp/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "bSk" = ( /obj/machinery/door/poddoor/preopen{ id = "Prison Gate"; @@ -6533,21 +6830,22 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/eighties/red, /area/station/security/prison/safe) +"bSp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "bSz" = ( /obj/structure/railing{ dir = 8 }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"bSC" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway Center" - }, -/obj/structure/cable, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "bSG" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -6564,11 +6862,19 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"bSX" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/chair/sofa/right/brown, -/turf/open/floor/carpet/blue, -/area/station/security/prison/work) +"bSW" = ( +/obj/structure/bed, +/obj/machinery/airalarm/directional/north, +/obj/effect/spawner/random/bedsheet, +/obj/machinery/button/door/directional/east{ + id = "Dorm1"; + name = "Dorm Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/item/pillow/random, +/turf/open/floor/carpet, +/area/station/commons/dorms) "bTl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6589,6 +6895,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, /turf/open/floor/iron/showroomfloor, /area/station/engineering/atmos) +"bTE" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Service External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "bTF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6597,13 +6916,21 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"bTQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) +"bTJ" = ( +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/radio/intercom/directional/north, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) +"bTM" = ( +/obj/structure/closet/crate, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/smooth, +/area/mine/eva/lower) "bUa" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -6612,13 +6939,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"bUp" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/security/prison/garden) "bUx" = ( /turf/closed/wall/r_wall, /area/station/maintenance/fore) +"bUy" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/bar) "bUH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -6640,6 +6970,15 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"bUS" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "bUW" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -6671,6 +7010,13 @@ /obj/item/clothing/gloves/latex/nitrile, /turf/open/floor/iron/dark, /area/station/medical/storage) +"bVs" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Security - Permabrig Observation Prep"; + network = list("ss13","prison") + }, +/turf/open/floor/vault, +/area/station/security/prison/rec) "bVv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6678,6 +7024,18 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"bVx" = ( +/obj/item/trash/popcorn, +/obj/structure/reagent_dispensers/plumbed{ + name = "dormitory reservoir" + }, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/delivery/white{ + color = "#307db9" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/textured, +/area/station/maintenance/fore) "bVI" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -6711,19 +7069,22 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"bVY" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/seeds/soya, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 +"bVT" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/effect/spawner/random/contraband/prison, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/mine/laborcamp) -"bVZ" = ( -/obj/structure/sign/poster/contraband/the_big_gas_giant_truth, -/turf/closed/wall, -/area/station/maintenance/department/medical/central) +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/work) "bWe" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/reinforced/middle, @@ -6750,14 +7111,37 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/iron/dark, /area/station/service/chapel) +"bWv" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "bWy" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/engineering/atmos) +"bWH" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/science/ordnance) "bWK" = ( /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) +"bWM" = ( +/obj/structure/stairs/south, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/medical/virology) "bWQ" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -6767,6 +7151,14 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"bWU" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio4"; + name = "Xenobio Pen 4 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "bWV" = ( /obj/structure/closet/crate, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -6779,13 +7171,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/service/chapel) -"bXb" = ( -/obj/effect/decal/cleanable/greenglow, -/obj/effect/decal/cleanable/plastic, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "bXf" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -6829,6 +7214,12 @@ "bXy" = ( /turf/open/openspace, /area/station/ai_monitored/security/armory/upper) +"bXD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "bXF" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/ai_all, @@ -6844,21 +7235,6 @@ dir = 1 }, /area/station/security/prison) -"bXL" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/white, -/area/station/science/research) -"bXT" = ( -/obj/machinery/camera{ - c_tag = "Medbay Storage"; - dir = 9; - network = list("ss13","medbay") - }, -/obj/structure/closet/l3closet, -/obj/effect/turf_decal/trimline/blue/filled/line, -/turf/open/floor/iron/dark, -/area/station/medical/storage) "bYd" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/light/small/directional/west, @@ -6881,10 +7257,6 @@ dir = 8 }, /area/station/service/chapel) -"bYr" = ( -/obj/structure/fence, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "bYu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -6898,12 +7270,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter) -"bYx" = ( -/obj/structure/fence/post{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "bYz" = ( /obj/machinery/conveyor{ dir = 8; @@ -6927,6 +7293,14 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) +"bYC" = ( +/obj/machinery/vending/wardrobe/bar_wardrobe, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Backroom" + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/wood/parquet, +/area/station/service/bar/backroom) "bYF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6944,6 +7318,15 @@ }, /turf/open/floor/glass/reinforced, /area/station/medical/treatment_center) +"bYR" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/station/commons/dorms/laundry) "bYS" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7008,26 +7391,37 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/visit) +"bZm" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Service - Hall" + }, +/obj/machinery/disposal/bin/tagger, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "bZx" = ( /turf/open/openspace, /area/station/hallway/primary/fore) -"bZB" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hooded/wintercoat/eva{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/clothing/shoes/winterboots/ice_boots/eva{ - pixel_x = -1; - pixel_y = 4 +"bZC" = ( +/obj/structure/lattice, +/obj/structure/sign/poster/official/report_crimes/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) +"bZI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 }, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/delivery/red, -/obj/item/clothing/gloves/color/grey/protects_cold, -/obj/item/clothing/mask/gas, -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/floor/iron/textured, -/area/station/ai_monitored/command/storage/eva) +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/treatment_center) "bZK" = ( /obj/structure/table, /obj/effect/turf_decal/tile/red, @@ -7036,34 +7430,54 @@ "bZQ" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/starboard) -"bZU" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 2 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/effect/mapping_helpers/mail_sorting/service/dormitories, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/commons/fitness) "bZV" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"cag" = ( -/obj/effect/turf_decal/siding/wood{ +"bZW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"cah" = ( +/obj/machinery/status_display/supply{ + pixel_x = -32 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) +"cax" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/item/radio/intercom/directional/east, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Atrium" + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/sign/picture_frame/portrait/bar{ + pixel_y = 32 + }, +/turf/open/floor/wood/large, +/area/station/service/bar/atrium) +"caA" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/theater) +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/table/glass, +/obj/item/book/manual/hydroponics_pod_people, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/sign/poster/contraband/kudzu/directional/north, +/obj/machinery/light/small/directional/west, +/obj/item/plant_analyzer, +/obj/item/watertank{ + pixel_y = -3; + pixel_x = -5 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "caC" = ( /obj/machinery/door/window/right/directional/west{ name = "Monkey Pen"; @@ -7079,18 +7493,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/large, /area/station/hallway/primary/port) -"caU" = ( -/obj/structure/sign/warning/cold_temp/directional/south, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) -"caX" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/obj/structure/marker_beacon/burgundy, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "caY" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, @@ -7110,49 +7512,39 @@ "cbk" = ( /turf/open/floor/iron, /area/mine/mechbay) -"cbq" = ( -/obj/structure/plasticflaps/opaque, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "Research Division" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) "cbs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"cby" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/service/hydroponics) "cbz" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) -"cbF" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "rnd2"; - name = "Research Lab Shutters" +"cbC" = ( +/obj/machinery/meter, +/obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ + dir = 1 }, -/obj/effect/turf_decal/siding/purple/corner{ +/obj/machinery/atmospherics/pipe/layer_manifold/pink/visible{ dir = 4 }, -/turf/open/floor/iron, -/area/station/science/lab) -"cbP" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio9"; - name = "Xenobio Pen 9 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/machinery/light/floor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/sign/warning/no_smoking/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/storage) "ccg" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -7185,6 +7577,24 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"cct" = ( +/obj/structure/noticeboard/captain{ + pixel_y = 36 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room) +"ccv" = ( +/obj/structure/table, +/obj/machinery/cell_charger{ + pixel_y = 3 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 3 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/textured, +/area/mine/mechbay) "ccw" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -7219,6 +7629,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/lesser) +"ccF" = ( +/obj/structure/cable, +/mob/living/basic/bear/snow/misha, +/obj/structure/bed/dogbed/misha, +/turf/open/floor/carpet/royalblue, +/area/station/command/heads_quarters/hos) +"ccL" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "ccQ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -7228,6 +7650,11 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"ccR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/sink/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/cryo) "ccS" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 4 @@ -7256,13 +7683,6 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/cafeteria, /area/station/command/heads_quarters/rd) -"ccX" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/spawner/random/medical/patient_stretcher, -/obj/effect/decal/cleanable/blood/gibs/torso, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/security/prison/safe) "ccZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 6 @@ -7293,28 +7713,12 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"cdO" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/service/theater, +"cdp" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"cdX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron, +/area/station/security/prison/workout) "cef" = ( /obj/machinery/biogenerator, /obj/effect/turf_decal/trimline/green/filled/line{ @@ -7326,16 +7730,21 @@ /obj/structure/grille, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"cem" = ( -/obj/structure/flora/rock/pile/icy/style_random, -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) "ceo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) +"cew" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) "cex" = ( /obj/machinery/computer/piratepad_control/civilian{ dir = 1 @@ -7359,6 +7768,24 @@ /obj/effect/turf_decal/tile/green/full, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/virology) +"ceF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small/directional/east, +/obj/machinery/conveyor{ + id = "mining_internal" + }, +/obj/machinery/bouldertech/refinery, +/obj/machinery/camera/directional/east{ + c_tag = "Mining Ore Smeltery"; + network = list("ss13", "mine") + }, +/turf/open/floor/iron, +/area/mine/production) "ceO" = ( /obj/machinery/button/crematorium{ id = "crematoriumChapel"; @@ -7370,6 +7797,14 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"ceQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/minecart_rail/railbreak, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "ceS" = ( /obj/machinery/mech_bay_recharge_port{ dir = 1 @@ -7378,21 +7813,6 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/smooth, /area/mine/mechbay) -"ceU" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Fitness Maintenance" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/fore) "ceY" = ( /obj/machinery/door/poddoor/preopen{ id = "Disposal Exit"; @@ -7454,6 +7874,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"cft" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "cfC" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ @@ -7461,6 +7896,14 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"cfR" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "cfS" = ( /obj/item/clothing/suit/costume/snowman{ name = "Man of Snow" @@ -7471,22 +7914,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"cfT" = ( -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ - color = "#0000ff"; - dir = 8; - name = "Supply multi deck pipe adapter" - }, -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - color = "#ff0000"; - dir = 8; - name = "Scrubbers multi deck pipe adapter" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/engineering/lobby) "cga" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -7499,19 +7926,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/mess) -"cgd" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) -"cge" = ( -/obj/machinery/light/dim/directional/west, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "cgs" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/dark, @@ -7529,6 +7943,10 @@ }, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) +"cgB" = ( +/obj/structure/aquarium/lawyer, +/turf/open/floor/wood, +/area/station/service/lawoffice) "cgC" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -7554,10 +7972,27 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"chb" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"chc" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "chg" = ( /obj/structure/fence/door, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"chn" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "cht" = ( /obj/machinery/vending/engivend, /obj/machinery/light/small/directional/north, @@ -7614,16 +8049,11 @@ }, /turf/open/floor/iron/white/side, /area/mine/living_quarters) -"chW" = ( -/obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/chem_master, -/obj/structure/sign/warning/no_smoking/circle{ - pixel_x = -27; - pixel_y = -26 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/glass/reinforced, -/area/station/medical/treatment_center) +"cie" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "cih" = ( /obj/machinery/button/door/directional/west{ id = "chemistry_lower_shutters"; @@ -7644,6 +8074,15 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"cip" = ( +/obj/machinery/atmospherics/components/tank/air{ + initialize_directions = 3; + dir = 3 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "ciG" = ( /obj/machinery/door/airlock/external{ name = "Security Yard"; @@ -7656,13 +8095,6 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) -"ciH" = ( -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron/cafeteria, -/area/station/commons/dorms/laundry) "ciI" = ( /obj/item/radio/intercom/directional/west, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -7686,23 +8118,11 @@ /obj/effect/spawner/random/trash/cigbutt, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"cjh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"ciU" = ( +/obj/structure/barricade/wooden, +/obj/structure/sign/warning/cold_temp/directional/north, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"cjz" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/rack, -/obj/item/stack/ducts/fifty, -/obj/item/storage/box/swab, -/obj/effect/spawner/random/contraband/permabrig_gear, -/turf/open/floor/iron/grimy, -/area/station/security/prison/work) +/area/station/maintenance/aft/lesser) "cjI" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -7735,13 +8155,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"ckc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/camera/directional/south{ - c_tag = "Central Hallway South-West" - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "cke" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7751,11 +8164,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"cki" = ( -/obj/effect/turf_decal/tile/neutral/diagonal_edge, -/obj/structure/cable, -/turf/open/floor/iron/kitchen/diagonal, -/area/station/service/kitchen) "cks" = ( /obj/item/wrench, /obj/effect/turf_decal/delivery, @@ -7763,6 +8171,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"ckL" = ( +/obj/structure/fence/corner{ + dir = 2; + pixel_y = 0 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "ckN" = ( /obj/structure/cable, /obj/machinery/newscaster/directional/south, @@ -7776,6 +8191,13 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) +"ckX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/stairs/right{ + dir = 4 + }, +/area/station/engineering/lobby) "cll" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7790,12 +8212,6 @@ /obj/effect/spawner/random/maintenance/seven, /turf/open/floor/plating, /area/station/construction) -"clo" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/light/small/directional/north, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/dark, -/area/station/science/breakroom) "clq" = ( /turf/open/floor/iron/dark, /area/station/security/processing) @@ -7810,30 +8226,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/mining) -"clG" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/turf/open/misc/asteroid/snow/icemoon, -/area/station/engineering/main) "clI" = ( /obj/structure/sign/warning/biohazard/directional/north, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"clK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/blue/full, -/turf/open/floor/iron/large, -/area/station/medical/medbay/lobby) "clP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7879,14 +8275,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"cmg" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/structure/sink/kitchen/directional/south, -/turf/open/floor/iron, -/area/station/service/hydroponics) "cmq" = ( /obj/machinery/door/airlock/external{ name = "External Access" @@ -7897,15 +8285,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"cmv" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "cmw" = ( /obj/machinery/firealarm/directional/north, /obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ @@ -7944,17 +8323,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"cmK" = ( -/obj/structure/table/wood, -/obj/machinery/newscaster/directional/west, -/obj/item/stack/package_wrap, -/obj/item/stack/package_wrap{ - pixel_y = 3 - }, -/obj/item/storage/photo_album/bar, -/obj/item/toy/figure/bartender, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) "cmL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -7973,6 +8341,7 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 4 }, +/obj/structure/closet/crate/trashcart, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) "cmV" = ( @@ -7987,9 +8356,22 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) +"cmY" = ( +/obj/effect/turf_decal/tile/neutral/diagonal_centre, +/obj/machinery/atmospherics/pipe/multiz/pink/visible{ + dir = 4; + name = "Exfiltrate" + }, +/obj/effect/turf_decal/tile/red/diagonal_edge, +/obj/structure/sign/warning/fire/directional/north, +/turf/open/floor/iron/dark/diagonal, +/area/station/engineering/atmos/mix) "cmZ" = ( /obj/item/clothing/suit/hooded/wintercoat/engineering, /obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) "cnb" = ( @@ -8004,10 +8386,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"cnh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/maintenance/disposal/incinerator) "cnj" = ( /obj/structure/fence/door{ name = "graveyard" @@ -8048,15 +8426,18 @@ }, /turf/open/floor/iron, /area/station/cargo/office) -"cnS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 +"cod" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/chair/stool/directional/east, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron, +/area/station/engineering/main) +"coe" = ( /obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/obj/structure/closet/crate, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "coT" = ( /obj/structure/table, /obj/item/storage/wallet, @@ -8105,6 +8486,11 @@ /obj/machinery/light/small/directional/east, /turf/open/openspace, /area/station/service/chapel) +"cps" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/wallet/random, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "cpt" = ( /obj/structure/fence/corner{ dir = 9 @@ -8141,10 +8527,6 @@ }, /turf/open/floor/plating, /area/station/engineering/engine_smes) -"cpO" = ( -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "cpT" = ( /obj/item/kirbyplants/random, /obj/machinery/status_display/evac/directional/south, @@ -8153,6 +8535,13 @@ "cpY" = ( /turf/closed/wall, /area/station/service/kitchen) +"cqb" = ( +/obj/machinery/food_cart, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/sign/poster/official/cleanliness/directional/north, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "cqh" = ( /obj/machinery/door/airlock/maintenance{ name = "Library Maintenance" @@ -8168,13 +8557,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"cql" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/structure/chair/stool/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "cqo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8185,24 +8567,12 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"cqs" = ( -/obj/item/toy/snowball{ - pixel_y = -7; - pixel_x = 5 - }, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) -"cqv" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/camera{ - c_tag = "Virology Pen"; - dir = 9; - network = list("ss13","medbay") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, -/obj/machinery/light/small/directional/north, -/turf/open/floor/grass, -/area/station/medical/virology) +"cqw" = ( +/obj/structure/table/wood, +/obj/item/c_tube, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "cqx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8218,8 +8588,18 @@ /obj/machinery/camera/directional/west{ c_tag = "Solar Maintenance - South West Access" }, +/obj/structure/sign/warning/electric_shock/directional/west, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"cqN" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "cqO" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 10 @@ -8235,25 +8615,28 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) -"crg" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth" +"crf" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +/obj/structure/sign/departments/security/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "crn" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/science/genetics) -"crO" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/railing/corner/end/flip{ - dir = 1 +"crv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/turf/open/floor/iron, +/area/station/commons/fitness) "crS" = ( /obj/machinery/vending/wardrobe/law_wardrobe, /turf/open/floor/wood, @@ -8264,6 +8647,13 @@ /obj/structure/sign/poster/ripped/directional/west, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"crW" = ( +/obj/structure/railing, +/obj/structure/stairs/west, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/science/cytology) "cse" = ( /obj/machinery/door/airlock/maintenance{ name = "Cargo Bay Maintenance" @@ -8287,13 +8677,15 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"css" = ( -/obj/structure/table/wood, -/obj/structure/reagent_dispensers/beerkeg, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) +"csu" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "csB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -8304,23 +8696,13 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/port/aft) +"csJ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/service/chapel) "csT" = ( /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"csV" = ( -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored/graveyard) -"csZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) "ctk" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8335,6 +8717,13 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"ctm" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "ctr" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/stripes/line{ @@ -8344,6 +8733,12 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/engineering/atmos) +"ctC" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "ctE" = ( /obj/structure/cable, /obj/machinery/light_switch/directional/south, @@ -8354,10 +8749,6 @@ }, /turf/open/floor/iron/dark/smooth_half, /area/station/security/office) -"ctF" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/science/xenobiology) "ctI" = ( /obj/machinery/telecomms/processor/preset_three, /turf/open/floor/iron/dark/telecomms, @@ -8373,16 +8764,19 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"ctS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) "ctY" = ( /obj/structure/tank_holder/anesthetic, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"cua" = ( -/obj/machinery/button/photobooth{ - pixel_y = -26 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "cuc" = ( /obj/effect/turf_decal/siding/thinplating_new, /turf/open/floor/iron, @@ -8424,10 +8818,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"cuB" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) "cuJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -8469,6 +8859,37 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) +"cvj" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) +"cvn" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/sink/kitchen/directional/south, +/obj/structure/mirror/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Coldroom Access" + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) "cvq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -8501,6 +8922,19 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"cvH" = ( +/obj/structure/table, +/obj/item/trash/can/food/beans, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"cvJ" = ( +/obj/structure/fence/cut/medium{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "cvN" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -8518,12 +8952,6 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"cwh" = ( -/obj/structure/plaque/static_plaque/golden/commission/icebox{ - pixel_y = 29 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "cwj" = ( /obj/machinery/requests_console/directional/south{ department = "Atmospherics"; @@ -8542,6 +8970,10 @@ "cwn" = ( /obj/structure/cable, /obj/structure/transit_tube/crossing/horizontal, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "cwr" = ( @@ -8568,10 +9000,20 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/storage) +"cwH" = ( +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore) "cwO" = ( /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"cwT" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/fore) "cxd" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark/side{ @@ -8596,6 +9038,11 @@ /obj/item/clothing/suit/costume/wellworn_shirt/graphic/ian, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"cxt" = ( +/obj/structure/table, +/obj/item/food/chococoin, +/turf/open/floor/iron/smooth, +/area/mine/eva) "cxz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8613,17 +9060,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"cxD" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"cxI" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Drone Bay" }, -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/obj/effect/turf_decal/siding/brown/corner{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) "cxO" = ( /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) @@ -8648,12 +9100,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) -"cxT" = ( -/obj/structure/table/wood, -/obj/item/plate, -/obj/effect/spawner/random/trash/bacteria, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "cyh" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -8674,20 +9120,6 @@ /obj/effect/spawner/random/structure/barricade, /turf/open/floor/plating, /area/station/commons/vacant_room/office) -"cyG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/kirbyplants/random, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) "cyH" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -8730,43 +9162,28 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"cyV" = ( -/obj/structure/chair/stool/directional/west, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) "cyX" = ( /obj/machinery/recharge_station, /obj/item/radio/intercom/directional/west, /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"cyZ" = ( -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/fore) "czi" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"czj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/medical/morgue) "czl" = ( /obj/effect/turf_decal/tile/brown/fourcorners, /obj/machinery/modular_computer/preset/cargochat/engineering, /turf/open/floor/iron/dark, /area/station/engineering/lobby) -"czo" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 8 - }, -/obj/structure/sign/poster/official/help_others/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/commons/fitness) "czq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -8789,41 +9206,9 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"czz" = ( -/obj/machinery/computer/pod/old/mass_driver_controller/trash{ - pixel_x = -24; - pixel_y = -6 - }, -/obj/machinery/button/door/directional/west{ - id = "Disposal Exit"; - name = "Disposal Vent Control"; - pixel_y = 4; - req_access = list("maint_tunnels") - }, -/obj/structure/chair/stool/directional/south{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal) "czD" = ( /turf/closed/wall, /area/mine/laborcamp/security) -"czF" = ( -/obj/machinery/smartfridge/organ, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white, -/area/station/medical/surgery/aft) -"czO" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "czR" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/machinery/camera/directional/south{ @@ -8832,31 +9217,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) -"czS" = ( -/obj/structure/cable, -/obj/structure/table, -/obj/item/storage/medkit/regular, -/obj/item/storage/medkit/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "czW" = ( /obj/structure/weightmachine, /obj/effect/turf_decal/box, /turf/open/floor/iron/dark/textured, /area/station/security/prison/workout) -"czY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 4 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "cAe" = ( /obj/structure/disposalpipe/segment, /obj/effect/spawner/random/trash/grille_or_waste, @@ -8893,11 +9258,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"cAz" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/wood, -/area/station/security/courtroom) "cAB" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/airalarm/directional/west, @@ -8925,10 +9285,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/depsec/medical, -/obj/machinery/light_switch/directional/south{ - pixel_x = -21; - pixel_y = -25 - }, /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) @@ -8976,20 +9332,38 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"cBn" = ( -/obj/structure/sign/poster/random/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"cBD" = ( -/obj/effect/turf_decal/siding/wood/corner{ +"cBk" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) +"cBv" = ( +/obj/machinery/button/door/directional/east{ + id = "misclab"; + name = "Test Chamber Blast Doors"; + pixel_y = 6; + req_access = list("xenobiology") + }, +/obj/machinery/button/door/directional/east{ + id = "xenobiomain"; + name = "Xenobiology Containment Blast Door"; + pixel_y = -6; + req_access = list("xenobiology") + }, +/obj/structure/railing/corner/end/flip{ dir = 4 }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "cBG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8997,10 +9371,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/prison/workout) -"cBJ" = ( -/obj/effect/spawner/random/trash/mess, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "cBP" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp{ @@ -9014,9 +9384,6 @@ /area/station/security/courtroom) "cBU" = ( /obj/structure/table, -/obj/structure/sign/plaques/kiddie{ - pixel_x = 32 - }, /obj/machinery/camera/motion/directional/east{ c_tag = "AI Upload East"; network = list("aiupload") @@ -9026,20 +9393,15 @@ dir = 4 }, /obj/machinery/light/directional/east, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "cCb" = ( /obj/structure/flora/tree/pine/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"cCe" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) "cCt" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/rnd_all, @@ -9052,41 +9414,14 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/white/smooth_large, /area/station/science/genetics) -"cCD" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) -"cCF" = ( -/obj/machinery/hydroponics/constructable, -/obj/structure/window/reinforced/spawner/directional/west, +"cCG" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/seeds/carrot, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 8 +/obj/machinery/button/flasher{ + pixel_y = -30; + id = "GulagCell 2" }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/mine/laborcamp) -"cCR" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"cCT" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "cCW" = ( /obj/machinery/conveyor/inverted{ dir = 6; @@ -9121,6 +9456,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"cDv" = ( +/obj/item/stack/rods/fifty, +/obj/structure/rack, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/department/electrical) "cDw" = ( /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/door/airlock/glass{ @@ -9163,22 +9515,33 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) -"cEh" = ( -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 29 - }, -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/turf/open/floor/plating, -/area/mine/mechbay) +"cEe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/wood/large, +/area/station/service/bar) "cEi" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/medical_all, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"cEl" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + pixel_x = -9 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) "cEo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -9211,6 +9574,10 @@ /obj/structure/grille/broken, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"cEz" = ( +/obj/structure/sign/departments/holy/directional/north, +/turf/open/openspace, +/area/station/service/chapel) "cEG" = ( /obj/effect/spawner/random/trash/cigbutt, /obj/effect/spawner/random/trash/cigbutt, @@ -9245,26 +9612,20 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/smooth_edge, /area/station/security/lockers) -"cFc" = ( -/obj/structure/rack, -/obj/effect/spawner/random/contraband/permabrig_gear, -/obj/structure/sign/warning/cold_temp/directional/west, -/turf/open/floor/vault, -/area/station/security/prison/rec) +"cFr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/fore) "cFJ" = ( /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"cFX" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/obj/structure/chair/stool/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/light/small/directional/west, +"cFM" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/secure_area/directional/north, /turf/open/floor/iron/dark, -/area/station/command/gateway) +/area/station/ai_monitored/turret_protected/ai) "cFZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9308,22 +9669,13 @@ "cGA" = ( /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"cGI" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ +"cGB" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/siding/white{ dir = 8 }, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/service/kitchen) +/turf/open/floor/iron/dark, +/area/station/commons/fitness) "cGQ" = ( /obj/structure/sign/poster/official/random/directional/west, /obj/effect/turf_decal/tile/green/anticorner/contrasted{ @@ -9331,6 +9683,18 @@ }, /turf/open/floor/iron, /area/station/security/prison/garden) +"cGS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/disposal) +"cGZ" = ( +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/service/hydroponics) "cHb" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -9364,6 +9728,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"cHA" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/turf/open/floor/iron/smooth, +/area/mine/living_quarters) "cHB" = ( /obj/machinery/vending/autodrobe, /turf/open/floor/plating, @@ -9400,9 +9769,20 @@ /obj/machinery/digital_clock/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"cIb" = ( +/obj/machinery/dna_scannernew, +/obj/structure/sign/warning/test_chamber/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/genetics) "cIc" = ( /turf/closed/wall, /area/station/security/prison/work) +"cIf" = ( +/obj/structure/fence/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "cIq" = ( /obj/machinery/computer/slot_machine{ balance = 15; @@ -9422,6 +9802,7 @@ /area/station/maintenance/fore) "cIP" = ( /obj/machinery/bookbinder, +/obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/wood, /area/station/service/library) "cIU" = ( @@ -9439,20 +9820,36 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) -"cJa" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "cJb" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/mine/laborcamp) +"cJd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + id = "riot"; + name = "Anti-Riot Shutters"; + req_access = list("security") + }, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "cJi" = ( /obj/structure/sign/warning, /turf/closed/wall/r_wall, /area/station/security/warden) +"cJk" = ( +/obj/machinery/chem_mass_spec, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "cJs" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -9488,6 +9885,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"cJX" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "cKe" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9501,14 +9910,6 @@ dir = 6 }, /area/station/science/research) -"cKp" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark/textured_half, -/area/station/service/bar/atrium) "cKq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9521,6 +9922,16 @@ }, /turf/open/floor/iron/dark/side, /area/station/security/processing) +"cKy" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/work) "cKA" = ( /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 2 @@ -9550,30 +9961,22 @@ /obj/structure/bookcase/random/reference, /turf/open/floor/carpet/blue, /area/station/medical/psychology) -"cKJ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/siding/dark{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/checker, -/area/station/hallway/secondary/service) -"cLf" = ( -/obj/structure/rack, -/obj/item/shovel, -/obj/item/clothing/mask/gas/plaguedoctor, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"cKL" = ( +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, +/obj/machinery/light/small/directional/north, +/turf/open/floor/grass, +/area/station/medical/virology) "cLo" = ( /obj/machinery/recharge_station, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"cLp" = ( +/obj/structure/table, +/obj/item/razor, +/obj/item/storage/backpack/duffelbag/sec/surgery, +/turf/open/floor/plating/icemoon, +/area/station/security/execution/education) "cLq" = ( /obj/effect/turf_decal/loading_area{ dir = 1 @@ -9641,9 +10044,24 @@ }, /turf/open/floor/wood, /area/station/service/library) +"cLK" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) "cLN" = ( /turf/open/floor/iron, /area/station/hallway/primary/aft) +"cLR" = ( +/obj/machinery/firealarm/directional/west, +/obj/structure/closet/crate/wooden/toy, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "cMd" = ( /obj/machinery/recharge_station, /obj/effect/turf_decal/tile/yellow{ @@ -9660,26 +10078,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"cMj" = ( -/obj/structure/stairs/west, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "cMk" = ( /turf/closed/wall/r_wall, /area/mine/production) -"cMv" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Escape" - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/iron/white/corner, -/area/station/hallway/secondary/exit/departure_lounge) +"cMr" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/starboard/fore) "cMA" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Control" @@ -9688,6 +10093,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/security/warden) +"cMG" = ( +/obj/structure/closet/crate/coffin, +/obj/machinery/light/small/red/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Chapel Coffin Storage" + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/service/chapel) "cMI" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining/glass{ @@ -9726,12 +10139,10 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"cNh" = ( -/obj/structure/fence/corner{ - dir = 10 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +"cNe" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "cNm" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -9760,25 +10171,15 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "cNL" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/siding/thinplating/dark/corner{ +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/area/station/command/heads_quarters/cmo) "cNS" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -9796,15 +10197,6 @@ }, /turf/closed/wall, /area/station/tcommsat/computer) -"cOb" = ( -/obj/structure/rack, -/obj/item/storage/box/lights/mixed{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/storage/box/lights/tubes, -/turf/open/floor/iron/checker, -/area/station/commons/storage/emergency/port) "cOi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/mix_output{ dir = 8 @@ -9816,6 +10208,18 @@ /obj/effect/turf_decal/tile/red/half, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) +"cOy" = ( +/obj/machinery/smartfridge, +/obj/machinery/door/window/right/directional/south{ + name = "Produce Access"; + req_access = list("hydroponics") + }, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "cOC" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -9830,17 +10234,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"cOQ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/engineering{ - name = "Utilities Room" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "cPd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9864,11 +10257,49 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/dark/smooth_half, /area/station/service/chapel) +"cPt" = ( +/obj/structure/railing/corner, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "cPE" = ( /turf/open/floor/iron/smooth_half{ dir = 1 }, /area/station/security/prison/garden) +"cPK" = ( +/obj/structure/table, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/item/clothing/mask/breath{ + pixel_x = 2; + pixel_y = -1 + }, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/iron, +/area/station/commons/storage/mining) "cPQ" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/decal/cleanable/dirt, @@ -9877,17 +10308,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/workout) -"cQa" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/turf/open/floor/iron/white/corner, -/area/station/hallway/secondary/entry) "cQc" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/rag, @@ -9928,13 +10348,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) -"cQp" = ( -/obj/machinery/status_display/evac/directional/north, -/obj/machinery/rnd/production/techfab/department/service, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/siding/dark, -/turf/open/floor/iron/checker, -/area/station/hallway/secondary/service) "cQs" = ( /obj/structure/table, /obj/item/computer_disk{ @@ -9978,17 +10391,6 @@ dir = 8 }, /area/station/ai_monitored/command/storage/eva) -"cQE" = ( -/obj/structure/fence, -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"cQH" = ( -/obj/structure/sign/warning/no_smoking/directional/south, -/turf/open/floor/circuit/telecomms/mainframe, -/area/station/tcommsat/server) "cQL" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -9997,19 +10399,34 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) "cQV" = ( -/obj/structure/barricade/wooden/snowed, -/obj/machinery/light/small/red/directional/north, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "minecraft_shutter"; - name = "Cart Shutters" - }, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/dark_blue, +/obj/effect/turf_decal/trimline/dark_blue/filled/line, +/obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner, +/turf/open/floor/iron/dark/smooth_large, +/area/station/medical/morgue) "cRg" = ( /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/warden) +"cRq" = ( +/obj/structure/table, +/obj/item/holosign_creator/atmos{ + pixel_x = -5 + }, +/obj/item/holosign_creator/atmos{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) +"cRu" = ( +/obj/structure/disposalpipe/junction, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "cRy" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -10017,6 +10434,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"cRC" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "cRE" = ( /obj/structure/rack, /obj/item/wirecutters, @@ -10045,20 +10466,14 @@ }, /area/station/command/heads_quarters/rd) "cRN" = ( -/obj/structure/chair/office/tactical{ - dir = 1 - }, -/obj/effect/landmark/start/coroner, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/obj/machinery/hydroponics/soil, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "cRO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/closed/wall, /area/station/engineering/atmos) -"cRX" = ( -/obj/machinery/processor, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "cSe" = ( /obj/structure/table, /obj/item/flashlight{ @@ -10098,22 +10513,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"cSO" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"cSP" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Aft Primary Hallway South"; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "cTh" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -10152,17 +10551,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/large, /area/station/commons/vacant_room/office) -"cTJ" = ( -/obj/structure/cable, -/obj/machinery/light_switch/directional/south{ - pixel_x = -10 - }, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 +"cTR" = ( +/turf/open/floor/iron/white/side{ + dir = 1 }, -/turf/open/floor/iron/white, -/area/station/medical/cryo) +/area/station/science/research) "cTV" = ( /obj/effect/turf_decal/box/white{ color = "#52B4E9" @@ -10179,6 +10572,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"cUB" = ( +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "cUF" = ( /obj/machinery/camera/directional/west{ c_tag = "Aft Primary Hallway North" @@ -10189,22 +10586,13 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"cUH" = ( -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/commons/dorms) -"cVa" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Fitness Room North" - }, -/obj/structure/closet/masks, -/obj/effect/landmark/start/hangover/closet, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/fitness) +"cUS" = ( +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/machinery/hydroponics/constructable, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "cVk" = ( /obj/item/storage/box/evidence{ pixel_x = -10; @@ -10234,14 +10622,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"cVW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/south{ - pixel_x = 5 +"cVV" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/railing{ + dir = 1 }, -/turf/open/floor/wood/parquet, -/area/station/service/theater) +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/security/brig) "cWq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -10249,15 +10638,10 @@ }, /turf/open/floor/iron, /area/station/security/prison/garden) -"cWz" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/siding/white{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) +"cWE" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/service/chapel/office) "cWG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10271,22 +10655,17 @@ c_tag = "Labor Camp Cellblock"; network = list("labor") }, +/obj/machinery/button/flasher{ + pixel_y = -30; + id = "GulagCell 1" + }, /turf/open/floor/iron, /area/mine/laborcamp) -"cWJ" = ( -/obj/machinery/holopad, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/box/white{ - color = "#52B4E9" - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "cWX" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plating/snowed/icemoon, +/turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) "cXc" = ( /obj/effect/turf_decal/arrows, @@ -10306,24 +10685,33 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/port/fore) -"cXu" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner, -/obj/structure/railing/corner, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "cXy" = ( /obj/structure/cable, /turf/open/floor/iron/smooth_half{ dir = 1 }, /area/station/security/prison/garden) +"cXG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"cXI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/light/floor, +/turf/open/floor/wood, +/area/station/commons/lounge) +"cXR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "cXV" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/dark_red/filled/line{ @@ -10351,21 +10739,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"cYe" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"cYf" = ( -/obj/machinery/shower/directional/west, -/obj/effect/turf_decal/stripes/red/line{ - dir = 6 - }, -/obj/structure/sign/warning/no_smoking/directional/east, -/turf/open/floor/iron/textured, -/area/station/engineering/atmos) "cYi" = ( /obj/effect/turf_decal/trimline/dark_red/line, /obj/effect/turf_decal/trimline/dark_red/line{ @@ -10380,6 +10753,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"cYj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "cYo" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/stripes/line{ @@ -10414,13 +10796,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"cYI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "cYK" = ( /obj/machinery/netpod, /obj/machinery/light/small/directional/south, @@ -10456,6 +10831,10 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/cargo/miningdock) +"cZc" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "cZd" = ( /obj/machinery/computer/records/security{ dir = 1 @@ -10464,9 +10843,14 @@ /obj/machinery/button/door/directional/south{ id = "MedbayFoyer"; name = "Medbay Doors Control"; - normaldoorcontrol = 1 + normaldoorcontrol = 1; + pixel_x = 5; + pixel_y = -26 }, /obj/effect/turf_decal/tile/red/full, +/obj/machinery/light_switch/directional/south{ + pixel_x = -6 + }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) "cZe" = ( @@ -10474,6 +10858,16 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"cZf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) +"cZk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "cZm" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -10524,17 +10918,30 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"dad" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/poster/official/the_owl/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "daf" = ( /obj/structure/table, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"daj" = ( -/obj/machinery/door/morgue{ - name = "Confession Booth (Chaplain)"; - req_access = list("chapel_office") - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "dak" = ( /obj/item/clothing/suit/apron/surgical, /obj/effect/mapping_helpers/broken_floor, @@ -10562,23 +10969,33 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"day" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) "daE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"daH" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "daM" = ( /obj/structure/closet/secure_closet/engineering_personal, /obj/machinery/airalarm/directional/north, /obj/item/clothing/suit/hooded/wintercoat/engineering, /turf/open/floor/iron/dark, /area/station/engineering/storage_shared) +"daO" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/machinery/button/door/directional/east{ + id = "drone_bay"; + name = "Shutter Control" + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "daR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10600,23 +11017,6 @@ /obj/item/cultivator, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"daX" = ( -/obj/structure/sign/warning/gas_mask, -/turf/closed/wall, -/area/station/service/chapel) -"daZ" = ( -/obj/structure/marker_beacon/jade, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"dbi" = ( -/obj/structure/table, -/obj/item/flashlight, -/obj/item/flashlight{ - pixel_y = 13 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "dbm" = ( /obj/machinery/door/airlock{ name = "Private Restroom" @@ -10624,6 +11024,11 @@ /obj/effect/mapping_helpers/airlock/access/all/command/captain, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain) +"dbn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/carpet/red, +/area/station/security/prison/work) "dbr" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -10645,6 +11050,9 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"dbB" = ( +/turf/closed/wall/ice, +/area/icemoon/underground/explored/graveyard) "dbH" = ( /turf/closed/wall/r_wall, /area/station/security/prison/mess) @@ -10652,6 +11060,25 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/security/prison/safe) +"dbO" = ( +/obj/machinery/door/airlock/wood{ + name = "Backstage" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/theater) "dcd" = ( /obj/structure/ladder, /turf/open/floor/plating, @@ -10673,12 +11100,6 @@ /obj/item/pillow/random, /turf/open/floor/wood, /area/station/commons/dorms) -"dcr" = ( -/obj/machinery/chem_master, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/science/xenobiology) "dcs" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -10736,6 +11157,12 @@ dir = 8 }, /area/station/hallway/secondary/entry) +"dcI" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "dcO" = ( /obj/machinery/camera/directional/east{ c_tag = "Engineering Emitter Room Starboard"; @@ -10743,15 +11170,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"dcQ" = ( -/obj/structure/table, -/obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/condiment/enzyme, -/obj/item/reagent_containers/condiment/sugar, -/obj/structure/light_construct/directional/west, -/obj/structure/sign/poster/official/random/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "dcW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10777,16 +11195,45 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) +"ddd" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/east, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/hallway/secondary/entry) "ddh" = ( /obj/structure/chair/stool/directional/north, /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) +"ddi" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) "ddk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit, /area/station/science/robotics/mechbay) +"ddm" = ( +/mob/living/basic/pet/penguin/emperor{ + name = "Club" + }, +/obj/item/toy/snowball{ + pixel_x = -9; + pixel_y = 17 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "ddp" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10810,13 +11257,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"ddv" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 +"ddw" = ( +/obj/structure/railing{ + dir = 8 }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +/obj/effect/turf_decal/loading_area/white, +/turf/open/floor/wood/large, +/area/station/service/bar/atrium) "ddz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10829,25 +11276,22 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"ddJ" = ( -/obj/structure/reagent_dispensers/plumbed{ - name = "service reservoir" - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/delivery/white{ - color = "#307db9" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/textured, -/area/station/maintenance/starboard/fore) -"ddR" = ( -/obj/structure/disposalpipe/segment{ +"ddK" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/onion, +/obj/effect/turf_decal/tile/green/anticorner/contrasted, +/obj/effect/turf_decal/siding/green{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/turf/open/floor/iron/dark, +/area/mine/laborcamp) +"ddQ" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/kirbyplants/random, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/iron, +/area/station/commons/locker) "ddZ" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/green{ @@ -10860,6 +11304,12 @@ /obj/structure/cable/layer3, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) +"dei" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/vending/cigarette, +/obj/structure/sign/poster/official/nanotrasen_logo/directional/north, +/turf/open/floor/iron, +/area/station/commons/locker) "det" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10953,18 +11403,20 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) +"dfR" = ( +/obj/item/toy/snowball{ + pixel_y = 3; + pixel_x = 3 + }, +/obj/item/toy/snowball, +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "dga" = ( /obj/effect/turf_decal/loading_area{ dir = 4 }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"dge" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/railing/corner/end/flip, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "dgl" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -10972,6 +11424,48 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"dgp" = ( +/obj/machinery/modular_computer/preset/engineering, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/small/directional/north, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) +"dgt" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_exterior"; + name = "Virology Exterior Airlock" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/effect/turf_decal/tile/green/full, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/virology) +"dgx" = ( +/obj/structure/rack, +/obj/effect/spawner/random/contraband/permabrig_gear, +/turf/open/floor/vault, +/area/station/security/prison/rec) +"dgA" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"dgR" = ( +/obj/machinery/smartfridge, +/turf/open/floor/iron/dark, +/area/station/service/kitchen) "dgZ" = ( /obj/machinery/airalarm/directional/south, /obj/structure/cable, @@ -10991,29 +11485,25 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) +"dhi" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/railing, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/security/brig) "dhj" = ( /obj/machinery/light_switch/directional/north, /turf/open/floor/wood, /area/station/command/meeting_room) -"dhk" = ( -/obj/structure/table/reinforced, -/obj/machinery/camera{ - c_tag = "Security Post - Medbay"; - dir = 9; - network = list("ss13","medbay") - }, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/machinery/newscaster/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/full, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/checkpoint/medical) "dhq" = ( /turf/closed/mineral/random/labormineral/ice, /area/icemoon/surface/outdoors/labor_camp) +"dhv" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "dhH" = ( /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/weather/snow/corner{ @@ -11033,6 +11523,11 @@ }, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"dhR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bookcase/random, +/turf/open/floor/iron/grimy, +/area/station/maintenance/aft/greater) "dhS" = ( /obj/machinery/door/airlock{ name = "Permabrig Showers" @@ -11050,20 +11545,42 @@ }, /turf/open/floor/iron/dark/side, /area/station/security/processing) -"dhY" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 +"dhV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair{ + dir = 4 }, +/obj/structure/sign/departments/exodrone/directional/west, +/turf/open/floor/iron, +/area/station/cargo/storage) +"dhY" = ( /obj/machinery/computer/security/mining{ dir = 1 }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) -"dig" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"dia" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) +"dik" = ( +/obj/machinery/cell_charger{ + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_y = 6 + }, +/obj/structure/table/glass, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/lab) "dip" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11109,16 +11626,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/textured, /area/mine/mechbay) -"diK" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "diL" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -11138,28 +11645,12 @@ dir = 1 }, /area/mine/living_quarters) -"djl" = ( -/obj/structure/chair/sofa/left/brown{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "djr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) -"djB" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/camera{ - c_tag = "Medbay Chemistry Lab - South"; - dir = 5; - network = list("ss13","medbay") - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "djC" = ( /obj/effect/decal/remains/human, /obj/item/reagent_containers/cup/glass/bottle/wine{ @@ -11183,6 +11674,13 @@ /obj/effect/mapping_helpers/airlock/access/all/service/crematorium, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"djG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) "djH" = ( /obj/item/stack/sheet/animalhide/lizard{ desc = "Landssslidessss, the landssslidesss..."; @@ -11209,6 +11707,17 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"dka" = ( +/obj/machinery/firealarm/directional/west{ + pixel_y = -4 + }, +/obj/machinery/light_switch/directional/west{ + pixel_y = 5 + }, +/obj/machinery/photocopier, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "dkb" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -11235,15 +11744,15 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/science/robotics/lab) -"dkB" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ +"dku" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/chair_flipped{ dir = 4 }, -/obj/effect/spawner/random/armory/shotgun, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory) +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "dkK" = ( /obj/structure/railing/corner, /obj/effect/turf_decal/stripes/line, @@ -11268,19 +11777,14 @@ dir = 8 }, /area/station/security/brig/entrance) -"dla" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Service External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +"dkZ" = ( +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/effect/landmark/start/cook, +/turf/open/floor/iron/kitchen/diagonal, +/area/station/service/kitchen) "dlt" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 8 @@ -11288,16 +11792,13 @@ /obj/structure/marker_beacon/burgundy, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"dlu" = ( -/turf/closed/wall/mineral/wood/nonmetal, -/area/icemoon/underground/explored) -"dlB" = ( -/obj/structure/table/wood, -/obj/item/storage/photo_album/chapel, -/obj/structure/noticeboard/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/chapel/office) +"dlH" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/smartfridge/drying, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "dlK" = ( /obj/machinery/computer/security{ dir = 8 @@ -11315,16 +11816,14 @@ }, /turf/open/floor/plating, /area/station/construction) -"dmj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/machinery/button/door/directional/east{ - id = "xenobio11"; - name = "Xenobio Pen 11 Blast DOors"; - req_access = list("xenobiology") - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +"dlS" = ( +/obj/item/crowbar/red, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/maintenance, +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "dmk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/railing{ @@ -11349,6 +11848,12 @@ /obj/structure/ladder, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"dmw" = ( +/obj/structure/fence/end{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "dmG" = ( /obj/structure/table/wood, /obj/item/camera, @@ -11357,6 +11862,7 @@ "dmI" = ( /obj/machinery/chem_master, /obj/effect/turf_decal/tile/yellow/full, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/white/smooth_large, /area/station/medical/pharmacy) "dmL" = ( @@ -11364,24 +11870,24 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/electrical) -"dmR" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Engineering External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "Engineering-External" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, -/turf/open/floor/iron/smooth, -/area/station/engineering/lobby) "dmU" = ( /obj/structure/cable, /obj/structure/table, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"dmV" = ( +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio10"; + name = "Xenobio Pen 10 Blast Door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology) "dng" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -11397,9 +11903,47 @@ /obj/structure/dresser, /turf/open/floor/carpet, /area/station/commons/dorms) +"dnn" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + id = "cantena_curtains" + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "dnq" = ( /turf/open/floor/iron, /area/station/hallway/primary/central) +"dnz" = ( +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) +"dnE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) +"dnI" = ( +/obj/machinery/firealarm/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "dnL" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -11420,6 +11964,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/lockers) +"dom" = ( +/turf/closed/wall/ice, +/area/station/service/kitchen/coldroom) "don" = ( /obj/machinery/portable_atmospherics/canister, /obj/structure/disposalpipe/segment, @@ -11428,6 +11975,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"dop" = ( +/obj/structure/fence/door/opened{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "doq" = ( /obj/machinery/flasher/directional/north{ id = "transferflash" @@ -11445,6 +11998,15 @@ }, /turf/closed/wall, /area/station/maintenance/starboard/upper) +"dow" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/any/security/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore) "doG" = ( /obj/structure/rack, /obj/machinery/light/small/directional/north, @@ -11458,14 +12020,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"doK" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "doM" = ( /obj/structure/table, /obj/item/paper{ @@ -11486,23 +12040,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"dpa" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/white{ - dir = 5 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -7; - pixel_y = 6 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +"dpb" = ( +/obj/structure/table/wood, +/obj/item/food/pie/cream, +/obj/item/bikehorn, +/obj/machinery/status_display/evac/directional/west, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "dpc" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ @@ -11516,23 +12061,21 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/command/storage/eva) -"dpj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) +"dpl" = ( +/obj/machinery/light/directional/south, +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/bluespace_vendor/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "dpq" = ( /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) "dpw" = ( -/obj/structure/table/wood, -/obj/effect/spawner/random/food_or_drink/snack, -/obj/effect/spawner/random/trash/food_packaging, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/dark, +/area/mine/storage) "dpx" = ( /obj/effect/spawner/random/maintenance, /obj/structure/disposalpipe/segment, @@ -11572,26 +12115,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"dpZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/warning/docking/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) -"dqg" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/secure_area/directional/south, -/obj/structure/sign/warning/cold_temp, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat_interior) -"dqs" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "dqw" = ( /obj/machinery/holopad, /turf/open/floor/iron, @@ -11600,12 +12123,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"dqA" = ( -/obj/structure/fence/corner{ - dir = 5 +"dqI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/dark/half/contrasted{ + dir = 1 }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "rnd2"; + name = "Research Lab Shutters" + }, +/turf/open/floor/plating, +/area/station/science/ordnance/office) "dqL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, @@ -11628,43 +12160,52 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"dqV" = ( -/obj/effect/decal/cleanable/dirt, +"dqW" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) +"drb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/modular_computer/preset/civilian{ +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ dir = 8 }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ +/obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/obj/structure/sign/poster/official/work_for_a_future/directional/east, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) -"dqW" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) -"dqX" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/firedoor{ dir = 4 }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) +"drd" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, /obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/lobby) +/obj/item/mod/module/plasma_stabilizer, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/mod/module/signlang_radio, +/obj/item/mod/module/thermal_regulator, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "drh" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/pumproom) -"drm" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/starboard/upper) "drr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, @@ -11680,9 +12221,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) -"drw" = ( -/turf/closed/wall/ice, -/area/station/service/kitchen/coldroom) "dry" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11710,11 +12248,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/commons/storage/mining) -"drG" = ( -/obj/structure/disposalpipe/trunk, -/obj/machinery/disposal/bin/tagger, -/turf/open/floor/iron, -/area/station/cargo/office) "drH" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -11726,6 +12259,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"drK" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible/layer2, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 8 + }, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = 32 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "drP" = ( /obj/structure/toilet{ dir = 8 @@ -11756,17 +12301,11 @@ /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 }, +/obj/machinery/status_display/supply{ + pixel_x = -32 + }, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) -"dsg" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "dsj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/south, @@ -11801,53 +12340,25 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) -"dsT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Medbay Chemistry Lab - East"; - dir = 6; - network = list("ss13","medbay") - }, -/obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - pixel_x = -1; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/beaker/large{ - pixel_x = 3; - pixel_y = -8 - }, -/obj/item/reagent_containers/cup/beaker/large{ - pixel_x = -3; - pixel_y = -8 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = -6 - }, -/obj/item/reagent_containers/dropper{ - pixel_y = -7 - }, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/medical/chemistry) "dsU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/carpet, /area/station/command/heads_quarters/qm) +"dsZ" = ( +/obj/structure/noticeboard/directional/west, +/turf/open/floor/engine/cult, +/area/station/service/library) "dtb" = ( /obj/structure/bookcase/random/reference, /turf/open/floor/wood, /area/station/service/library) "dtc" = ( -/obj/structure/table/wood/poker, -/obj/item/storage/dice, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/structure/closet/emcloset/anchored, +/turf/open/floor/plating, +/area/station/engineering/atmos) "dth" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -11858,16 +12369,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, /turf/open/floor/iron, /area/station/engineering/engine_smes) -"dtq" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/telescreen/prison/directional/north, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/fax{ - fax_name = "Law Office"; - name = "Law Office Fax Machine" - }, -/turf/open/floor/wood, -/area/station/service/lawoffice) "dtr" = ( /obj/machinery/computer/records/medical, /obj/effect/turf_decal/tile/green/anticorner/contrasted, @@ -11890,6 +12391,11 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"dtR" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/mine/eva/lower) "dtU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11905,19 +12411,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) -"duI" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/poster/random_official, -/obj/item/poster/random_official, -/obj/item/poster/random_official, -/obj/item/poster/random_official, -/obj/item/poster/random_official, -/obj/item/poster/random_official, -/obj/item/poster/random_official, -/obj/item/poster/random_official, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) "duS" = ( /obj/machinery/door/airlock{ name = "Labor Camp Library" @@ -11927,6 +12420,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/mine/laborcamp) +"duT" = ( +/obj/item/chair/stool/bar{ + pixel_y = -2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"duY" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/ordnance_burn_chamber_input, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "duZ" = ( /obj/machinery/door/airlock/engineering{ name = "Utilities Closet" @@ -11959,6 +12464,7 @@ "dvi" = ( /obj/structure/flora/grass/both/style_random, /obj/structure/railing, +/obj/effect/turf_decal/siding/thinplating, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) "dvl" = ( @@ -11982,6 +12488,21 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"dvK" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/clothing/mask/breath/medical, +/obj/item/clothing/mask/breath/medical, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/machinery/camera/directional/east{ + c_tag = "Virology Module South"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "dvO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -11990,29 +12511,17 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"dvS" = ( -/turf/open/floor/iron/recharge_floor, -/area/station/maintenance/department/electrical) "dvY" = ( /obj/structure/flora/tree/dead/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) "dvZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/door/airlock/maintenance{ - name = "Bar Maintenance" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/unres{ +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/effect/turf_decal/weather/snow/corner{ dir = 4 }, -/turf/open/floor/plating, -/area/station/commons/lounge) +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "dwb" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -12020,6 +12529,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"dwj" = ( +/obj/machinery/atmospherics/components/binary/pump/off, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_y = 32 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "dwo" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -12028,12 +12547,12 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/openspace/icemoon/keep_below, /area/station/maintenance/port/lesser) -"dwq" = ( -/obj/structure/grille/broken, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"dws" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "dww" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -12056,19 +12575,6 @@ /obj/effect/spawner/random/clothing/kittyears_or_rabbitears, /turf/open/floor/plastic, /area/station/commons/dorms/laundry) -"dwS" = ( -/obj/machinery/status_display/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_x = -32 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) "dwY" = ( /obj/machinery/light_switch/directional/west, /obj/structure/closet/secure_closet/quartermaster, @@ -12077,6 +12583,10 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) +"dwZ" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/white, +/area/station/science/research) "dxg" = ( /obj/structure/table, /obj/item/stack/sheet/plasteel{ @@ -12115,6 +12625,15 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"dxq" = ( +/obj/structure/closet/secure_closet/chief_medical, +/obj/item/screwdriver, +/obj/machinery/camera/directional/north{ + c_tag = "Chief Medical Officer Bedroom"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) "dxs" = ( /obj/structure/closet/secure_closet/personal{ anchored = 1 @@ -12143,9 +12662,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/lesser) +"dxI" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/sign/poster/official/safety_internals/directional/north, +/turf/open/floor/iron, +/area/station/maintenance/port/fore) "dxK" = ( /turf/closed/wall/r_wall, /area/station/command/meeting_room) +"dxO" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/medical/cryo) "dxU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12161,9 +12692,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"dym" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt/dust, +"dyg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"dyA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, +/obj/effect/turf_decal/stripes/line, +/obj/structure/chair/stool/directional/west, /turf/open/floor/plating, /area/station/maintenance/fore) "dyE" = ( @@ -12182,25 +12720,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"dyW" = ( -/obj/structure/sign/poster/official/random/directional/south, -/obj/structure/table/optable{ - name = "Robotics Operating Table" - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/dark, -/area/station/science/robotics/lab) -"dzg" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "Biohazard Containment Door" - }, -/obj/effect/turf_decal/bot, -/obj/structure/noticeboard/directional/north, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/science/research) "dzi" = ( /obj/machinery/status_display/ai/directional/south, /obj/effect/turf_decal/tile/green{ @@ -12212,14 +12731,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"dzr" = ( -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "graveyard" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, -/turf/open/floor/plating, -/area/station/medical/morgue) "dzt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -12237,15 +12748,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"dzD" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "dzJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -12259,6 +12761,12 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/dark, /area/mine/eva/lower) +"dzZ" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "dAc" = ( /obj/item/radio/intercom/directional/north, /obj/item/storage/belt/utility{ @@ -12277,36 +12785,27 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"dAk" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 4 +"dAh" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) +"dAl" = ( +/obj/machinery/smartfridge/extract/preloaded, +/obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron, -/area/station/hallway/primary/aft) +/area/station/science/xenobiology) "dAm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/lobby) -"dAq" = ( -/obj/machinery/conveyor{ - id = "mining_internal" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Mining Ore Smeltery"; - dir = 6 - }, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron, -/area/mine/production) "dAx" = ( /obj/machinery/hydroponics/soil{ pixel_y = 8 @@ -12337,9 +12836,34 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"dAQ" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/modular_computer/preset/civilian, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/light_switch/directional/north{ + pixel_x = -6 + }, +/obj/machinery/button/door/directional/north{ + id = "stationawaygate"; + name = "Gateway Access Shutter Control"; + req_access = list("gateway"); + pixel_x = 6 + }, +/turf/open/floor/iron/dark, +/area/station/command/gateway) "dAZ" = ( /turf/closed/wall/r_wall, /area/station/security/prison/visit) +"dBb" = ( +/obj/structure/chair/sofa/right/brown, +/obj/item/toy/plush/moth{ + name = "Dr. Moff" + }, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/carpet/blue, +/area/station/medical/psychology) "dBh" = ( /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/iron/dark/telecomms, @@ -12353,36 +12877,11 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/fore/lesser) -"dBw" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer2{ - dir = 1 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/mine/laborcamp/security) -"dBA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/starboard) "dBB" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot_white, /obj/machinery/firealarm/directional/south, +/obj/structure/sign/poster/official/help_others/directional/west, /turf/open/floor/iron/checker, /area/station/commons/storage/emergency/port) "dBJ" = ( @@ -12402,6 +12901,15 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage/gas) +"dBN" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/duct, +/obj/machinery/light/small/directional/north, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron, +/area/station/service/bar) "dBQ" = ( /obj/machinery/camera/directional/north{ c_tag = "MiniSat AI Chamber South"; @@ -12409,6 +12917,10 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) +"dBX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "dBY" = ( /obj/effect/turf_decal/stripes/end{ dir = 1 @@ -12421,15 +12933,11 @@ "dBZ" = ( /turf/open/floor/iron, /area/station/cargo/sorting) -"dCs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue/full, -/turf/open/floor/iron/large, -/area/station/medical/medbay/lobby) +"dCq" = ( +/obj/machinery/light/directional/north, +/obj/structure/sign/warning/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "dCy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -12439,25 +12947,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/fitness) -"dCV" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/bar/backroom) "dDm" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1 }, /turf/open/floor/engine, /area/station/science/explab) -"dDo" = ( -/obj/item/trash/pistachios, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "dDp" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -12465,14 +12960,6 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"dDq" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "dDt" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/red{ @@ -12489,6 +12976,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"dDz" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/two, +/obj/item/sign, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "dDC" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -12499,22 +12992,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"dDR" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "dDV" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"dEc" = ( -/obj/structure/table/wood, -/obj/item/soap/nanotrasen, -/obj/item/clothing/head/costume/sombrero/green, -/obj/machinery/camera{ - c_tag = "Service - Theater"; - dir = 9 - }, -/obj/machinery/status_display/ai/directional/north, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/grimy, -/area/station/commons/lounge) "dEf" = ( /obj/effect/turf_decal/trimline/blue/corner{ dir = 1 @@ -12549,19 +13040,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/security/prison/rec) -"dEC" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "rnd2"; - name = "Research Lab Shutters" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron, -/area/station/science/lab) "dEI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12572,6 +13050,16 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/station/command/bridge) +"dEL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4{ + dir = 8; + name = "Air Out" + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) "dEQ" = ( /obj/machinery/camera/directional/east{ c_tag = "Public Mining Ladder" @@ -12602,6 +13090,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"dFi" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "dFj" = ( /turf/open/floor/iron/white/side{ dir = 9 @@ -12640,13 +13141,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"dFD" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/structure/sign/poster/random/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "dFF" = ( /obj/structure/chair{ dir = 8 @@ -12660,8 +13154,24 @@ /area/station/maintenance/starboard/aft) "dFO" = ( /obj/machinery/light/directional/north, +/obj/structure/sign/departments/evac/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"dFR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/mine/laborcamp) "dFW" = ( /turf/open/floor/iron/white/side, /area/station/science/research) @@ -12683,6 +13193,17 @@ /obj/effect/decal/cleanable/food/egg_smudge, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dGq" = ( +/obj/machinery/computer/records/medical, +/obj/structure/cable, +/obj/machinery/button/door/directional/north{ + id = "medsecprivacy"; + name = "Privacy Shutters Control"; + req_access = list("security") + }, +/obj/effect/turf_decal/tile/red/full, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/checkpoint/medical) "dGK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12694,6 +13215,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/fitness) +"dGS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/obj/structure/rack, +/obj/machinery/camera/directional/south{ + c_tag = "Chapel Electrical Maintenace Lower" + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/department/chapel) "dGU" = ( /obj/machinery/door/airlock/maintenance{ name = "Captain's Office Maintenance" @@ -12705,19 +13235,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/captain, /turf/open/floor/plating, /area/station/maintenance/central/lesser) -"dGZ" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Chapel Maintenance External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/maintenance/department/chapel) "dHa" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -12746,6 +13263,32 @@ initial_gas_mix = "o2=22;n2=82;TEMP=293.15" }, /area/station/security/prison/rec) +"dHf" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Service - Botany Upper Entrance" + }, +/obj/structure/table/glass, +/obj/machinery/fax/auto_name, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"dHg" = ( +/obj/machinery/door/airlock{ + name = "Unit B" + }, +/turf/open/floor/iron/textured, +/area/station/commons/toilet) +"dHi" = ( +/obj/structure/chair/stool/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/commons/lounge) "dHk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12766,16 +13309,17 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) +"dHF" = ( +/obj/structure/railing, +/obj/structure/marker_beacon/cerulean, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "dHJ" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"dHM" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "dIl" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -12796,33 +13340,24 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/mining) -"dIA" = ( -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/science/xenobiology) -"dIS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"dIG" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster/directional/south, +/obj/item/book/bible{ + pixel_y = 8 }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio3"; - name = "Xenobio Pen 3 Blast Door" +/obj/item/storage/fancy/candle_box{ + pixel_x = 4 }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/sign/warning/electric_shock, -/turf/open/floor/plating, -/area/station/science/xenobiology) -"dIZ" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ +/obj/item/storage/fancy/candle_box, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"dIL" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, -/turf/open/floor/iron/dark, -/area/station/medical/virology) +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "dJx" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -12839,18 +13374,6 @@ /obj/machinery/air_sensor/ordnance_freezer_chamber, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance/freezerchamber) -"dJF" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "dJY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12877,16 +13400,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/station/cargo/sorting) -"dKf" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Starboard Primary Hallway Center West" - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "dKh" = ( /obj/machinery/light_switch/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -12895,22 +13408,13 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/tcommsat/computer) -"dKr" = ( -/obj/structure/table, -/obj/machinery/computer/security/telescreen/isolation/directional/south, -/obj/item/clothing/suit/jacket/straight_jacket, -/obj/item/clothing/suit/jacket/straight_jacket{ - pixel_x = 6 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Security - Permabrig Prep"; - network = list("ss13","prison"); - view_range = 5 - }, -/obj/structure/cable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/smooth, -/area/station/security/execution/transfer) +"dKk" = ( +/obj/machinery/light/directional/west, +/obj/structure/displaycase, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/mine/living_quarters) "dKy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -12954,15 +13458,6 @@ dir = 1 }, /area/station/security/processing) -"dKS" = ( -/obj/structure/sign/warning/electric_shock/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line, -/obj/effect/turf_decal/trimline/red/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/range) "dKW" = ( /obj/structure/sign/directions/security{ dir = 1; @@ -13000,22 +13495,75 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"dLH" = ( -/obj/structure/fence{ - dir = 1 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +"dLA" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/toy/figure/chef, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/service/kitchen/coldroom) +"dLL" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat/maint) "dLN" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/laborcamp) +"dLQ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "dLR" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/food_or_drink/donkpockets, /turf/open/floor/iron, /area/mine/laborcamp) +"dMi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/fore) +"dMl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"dMn" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) +"dMo" = ( +/obj/structure/fence/corner{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "dMp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13029,18 +13577,6 @@ /obj/item/clothing/under/color/rainbow, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"dMB" = ( -/obj/vehicle/ridden/wheelchair{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/end{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/radio/intercom/directional/west, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/large, -/area/station/medical/medbay/aft) "dMH" = ( /obj/machinery/light/directional/north, /obj/machinery/status_display/evac/directional/north, @@ -13051,11 +13587,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"dMO" = ( -/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "dMX" = ( /obj/structure/chair{ dir = 1; @@ -13063,18 +13594,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"dNk" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"dNl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plastic, -/area/station/commons/dorms/laundry) "dNt" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -13098,12 +13617,6 @@ "dNA" = ( /turf/open/floor/iron/smooth, /area/mine/mechbay) -"dNB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/chapel/office) "dNC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/binary/pump{ @@ -13132,6 +13645,16 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"dOp" = ( +/obj/structure/table/wood, +/obj/item/instrument/saxophone, +/obj/item/instrument/piano_synth, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Theater" + }, +/turf/open/floor/iron/grimy, +/area/station/commons/lounge) "dOq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13145,6 +13668,19 @@ /obj/structure/closet/wardrobe/mixed, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"dOF" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door"; + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "dOH" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating, @@ -13179,10 +13715,16 @@ }, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) -"dPP" = ( -/obj/structure/closet/toolcloset, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +"dPH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/camera/directional/north{ + c_tag = "Mining Mech Bay"; + network = list("ss13", "mine") + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron/smooth, +/area/mine/mechbay) "dPT" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -13191,16 +13733,6 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"dPX" = ( -/obj/structure/sign/warning/docking/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "dQd" = ( /obj/machinery/door/airlock/maintenance{ name = "Mining Station Maintenance" @@ -13211,6 +13743,11 @@ dir = 1 }, /area/station/maintenance/department/cargo) +"dQl" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "dQo" = ( /obj/machinery/button/door/directional/east{ id = "pharmacy_shutters2"; @@ -13222,13 +13759,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"dQp" = ( -/obj/structure/table/wood, -/obj/item/food/pie/cream, -/obj/item/bikehorn, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/theater) +"dQy" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/closet/secure_closet/hydroponics, +/turf/open/floor/iron, +/area/station/service/hydroponics) "dQI" = ( /obj/effect/landmark/start/assistant, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -13260,29 +13798,6 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"dRe" = ( -/obj/machinery/camera{ - c_tag = "Medbay Break Room"; - dir = 1; - network = list("ss13","medbay") - }, -/obj/structure/table/glass, -/obj/effect/spawner/random/entertainment/deck{ - pixel_x = -6 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = 7; - pixel_y = 9 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/break_room) "dRk" = ( /obj/effect/turf_decal/bot, /obj/structure/ore_box, @@ -13298,6 +13813,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) +"dRB" = ( +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/hydroponics) "dRD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/south, @@ -13305,6 +13836,18 @@ dir = 1 }, /area/station/command/gateway) +"dRX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast Door" + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) "dSj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -13319,14 +13862,6 @@ }, /turf/open/floor/iron/white, /area/station/security/prison/safe) -"dSs" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair/stool/bar/directional/east, -/obj/structure/disposalpipe/segment, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "dSJ" = ( /obj/machinery/flasher/directional/north{ id = "visitorflash" @@ -13351,14 +13886,14 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"dSY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"dTa" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/bar) "dTm" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/mob_spawn/corpse/human/skeleton, @@ -13379,13 +13914,18 @@ "dTs" = ( /turf/open/floor/iron/smooth, /area/mine/eva) -"dTx" = ( -/obj/machinery/status_display/ai/directional/south, -/obj/structure/chair/sofa/right/brown{ +"dTC" = ( +/obj/machinery/door/poddoor/preopen{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast Door" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology) "dTD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -13404,6 +13944,14 @@ }, /turf/open/floor/iron, /area/mine/production) +"dTI" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/fake_stairs/wood/directional/north, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "dTW" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -13421,6 +13969,24 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) +"dUh" = ( +/obj/machinery/light/small/directional/north, +/obj/item/kirbyplants/random, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/breakroom) +"dUm" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "dUn" = ( /obj/machinery/shieldgen, /turf/open/floor/plating, @@ -13471,6 +14037,11 @@ "dUO" = ( /turf/closed/wall, /area/station/security/brig) +"dUR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/medical/virology) "dUW" = ( /obj/machinery/light_switch/directional/south, /turf/open/floor/wood, @@ -13494,35 +14065,13 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "dVj" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 10 - }, -/obj/machinery/hydroponics/constructable, +/obj/effect/spawner/structure/window, /turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"dVq" = ( -/obj/machinery/space_heater, -/obj/structure/sign/poster/random/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +/area/station/medical/morgue) "dVt" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/checker, /area/station/science/lab) -"dVw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/medbay/aft) "dVF" = ( /obj/structure/sign/warning/secure_area/directional/north, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -13535,16 +14084,24 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/engineering/lobby) -"dVX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"dVN" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) +"dVS" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/white/line{ dir = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood/large, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/cryo) "dWf" = ( /obj/item/trash/pistachios, /turf/open/floor/plating, @@ -13566,11 +14123,25 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark/textured, /area/station/security/prison) +"dWI" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/item/kirbyplants/organic/plant2, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "dWK" = ( /obj/machinery/hydroponics/soil, /obj/item/shovel/spade, /turf/open/floor/grass, /area/station/security/prison/garden) +"dWL" = ( +/obj/structure/railing, +/obj/machinery/vending/cytopro, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "dWP" = ( /obj/structure/table/wood, /obj/item/pen/red{ @@ -13586,13 +14157,6 @@ }, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"dWX" = ( -/obj/machinery/modular_computer/preset/engineering, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "dWZ" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -13602,6 +14166,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"dXh" = ( +/obj/item/stamp{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/stamp/denied{ + pixel_x = 4; + pixel_y = -2 + }, +/obj/structure/table, +/obj/machinery/status_display/supply{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/cargo/office) "dXi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -13609,6 +14188,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"dXk" = ( +/obj/structure/railing/wooden_fence{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "dXn" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -13617,12 +14202,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"dXp" = ( +/turf/open/floor/iron/dark/smooth_half, +/area/station/service/hydroponics) +"dXr" = ( +/obj/structure/minecart_rail{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "dXv" = ( /obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/directional/north, /turf/open/floor/iron/dark, /area/station/command/gateway) +"dXx" = ( +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "dXF" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -13632,6 +14233,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"dXI" = ( +/obj/machinery/chem_master, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron, +/area/station/science/xenobiology) "dXP" = ( /obj/effect/turf_decal/trimline/yellow/filled/shrink_cw{ dir = 4 @@ -13639,13 +14246,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"dXR" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "dXU" = ( /obj/effect/decal/cleanable/generic, /obj/machinery/light/small/directional/south, @@ -13657,9 +14257,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"dYq" = ( -/turf/open/floor/plating, -/area/station/commons/dorms/laundry) "dYr" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -13676,11 +14273,24 @@ }, /turf/open/floor/iron, /area/mine/production) +"dYA" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/east, +/obj/structure/sign/departments/security/directional/east, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/brig/entrance) "dYC" = ( /obj/structure/closet/firecloset, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dYH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "dYI" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 @@ -13701,13 +14311,21 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"dYX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 +"dYS" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"dYU" = ( +/obj/effect/turf_decal/tile/blue, +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "dZc" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, @@ -13724,36 +14342,11 @@ dir = 8 }, /area/mine/eva) -"dZC" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "dZJ" = ( /obj/machinery/seed_extractor, /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) -"dZL" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "dZN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -13835,33 +14428,49 @@ /obj/structure/cable, /turf/open/floor/carpet/red, /area/station/security/prison/work) -"eav" = ( -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Hydroponics" +"eat" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/siding/blue{ + dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wood{ +/obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/dark/textured_half, -/area/station/service/hydroponics) -"eaw" = ( -/obj/effect/spawner/random/contraband/prison, -/obj/structure/closet/crate, -/obj/item/stack/license_plates/empty/fifty, -/obj/item/stack/license_plates/empty/fifty, -/obj/item/stack/license_plates/empty/fifty, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/dark/smooth_half, -/area/station/security/prison/work) -"eaM" = ( -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) +/obj/structure/sign/poster/official/no_erp/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms/laundry) +"eay" = ( +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/structure/cable, +/turf/open/floor/iron/kitchen/diagonal, +/area/station/service/kitchen) +"eaE" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/lobby) +"eaG" = ( +/obj/structure/sign/departments/vault/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/surface/outdoors/nospawn) +"eaQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"eaT" = ( +/obj/machinery/bluespace_vendor/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "ebb" = ( /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron, @@ -13885,13 +14494,10 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored) -"ebK" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/rack, -/obj/item/crowbar/large/old, -/obj/effect/turf_decal/tile/dark/fourcorners, +"ebH" = ( +/obj/structure/sign/departments/medbay/alt/directional/east, /turf/open/floor/iron, -/area/mine/living_quarters) +/area/station/hallway/primary/central) "ebL" = ( /obj/effect/turf_decal/bot_white/right, /obj/structure/closet/crate/goldcrate, @@ -13899,12 +14505,27 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"ebX" = ( -/obj/structure/fence/corner{ +"ebO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/event_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ dir = 1 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) +"ebW" = ( +/obj/structure/fence/cut/medium{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "ecs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13940,6 +14561,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"ecW" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"edc" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "edd" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -13952,66 +14582,64 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"ede" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access"; + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "edn" = ( /obj/effect/turf_decal/bot_white/right, /obj/machinery/ore_silo, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"edp" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - desc = "Used to grind things up into raw materials and liquids."; - pixel_y = 5 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/science/xenobiology) "edq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"edt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +"edw" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 }, -/obj/structure/rack, -/obj/item/tank/internals/oxygen, -/obj/item/extinguisher, -/obj/item/clothing/suit/utility/fire/firefighter, -/obj/item/clothing/head/utility/hardhat/red, -/obj/item/clothing/mask/gas, -/obj/item/clothing/glasses/meson, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/fore) -"edM" = ( -/obj/item/toy/snowball{ - pixel_x = -6; - pixel_y = -4 +/obj/effect/turf_decal/trimline/dark_green/arrow_ccw, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer1{ + dir = 4 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/iron, +/area/station/engineering/atmos/storage) "edN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"edO" = ( +"edR" = ( +/obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood/large, -/area/station/service/bar) -"edT" = ( -/obj/structure/grille/broken, +/obj/effect/spawner/random/structure/steam_vent, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, -/area/station/maintenance/aft/greater) +/area/station/maintenance/starboard/lesser) +"eea" = ( +/obj/structure/sign/warning/docking/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "eei" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -14019,24 +14647,11 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"eek" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/item/clothing/head/costume/fancy, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) -"eeq" = ( -/obj/structure/table, -/obj/item/hand_tele{ - pixel_x = 3; - pixel_y = 13 - }, -/turf/open/floor/iron, -/area/station/command/teleporter) -"eet" = ( -/obj/effect/spawner/random/trash/bin, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +"ees" = ( +/obj/structure/kitchenspike, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "eeD" = ( /obj/machinery/light/directional/west, /turf/open/floor/iron/dark/textured, @@ -14056,39 +14671,23 @@ /obj/effect/mapping_helpers/mail_sorting/engineering/atmospherics, /turf/open/floor/iron, /area/station/engineering/lobby) -"eeY" = ( -/obj/structure/railing{ +"eff" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ dir = 4 }, -/obj/effect/turf_decal/siding/white{ - dir = 4 +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/firedoor{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ - id = "cantena_curtains" - }, -/turf/open/floor/wood, -/area/station/commons/lounge) -"efi" = ( -/obj/structure/bed/dogbed, -/obj/effect/decal/cleanable/blood/gibs/body, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "efk" = ( /obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/explab) -"efo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/iv_drip, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "efv" = ( /obj/item/toy/snowball{ pixel_x = -6; @@ -14105,13 +14704,14 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/range) -"efz" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 +"efy" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/service/chapel) "efE" = ( /obj/structure/reflector/box/anchored{ dir = 1 @@ -14147,41 +14747,14 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored) -"efN" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Chapel External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/chapel_office, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/service/chapel) -"efS" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/machinery/light/warm/directional/east, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"efU" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ +"efR" = ( +/obj/structure/ladder, +/obj/structure/railing{ dir = 8 }, -/obj/machinery/duct, -/obj/structure/sign/flag/nanotrasen/directional/west, -/turf/open/floor/iron, -/area/station/commons/fitness) +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "efV" = ( /obj/effect/turf_decal/delivery, /obj/structure/cable, @@ -14233,16 +14806,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/command/storage/eva) -"egR" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) "egS" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14290,18 +14853,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"ehh" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "ehp" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/locker) -"ehy" = ( -/obj/machinery/keycard_auth/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/hos) +"ehq" = ( +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ehD" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -14321,6 +14889,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/engine_smes) +"ehL" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/deepfryer, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "ehO" = ( /obj/machinery/door/window/brigdoor/right/directional/west{ name = "Observation Deck"; @@ -14352,6 +14927,12 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) +"ehU" = ( +/obj/machinery/door/firedoor/border_only, +/obj/structure/railing, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "ehZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14388,6 +14969,30 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"eik" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"ein" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Gas to Chamber" + }, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/warning/fire/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter) +"eiH" = ( +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "eiI" = ( /obj/effect/turf_decal/siding/yellow{ dir = 1 @@ -14401,12 +15006,14 @@ /obj/item/clothing/suit/hooded/wintercoat/engineering, /turf/open/floor/iron/dark, /area/station/engineering/storage_shared) -"eiY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"ejb" = ( /obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) +/obj/machinery/door/airlock/security/glass{ + name = "Permabrig Visitation" + }, +/obj/effect/mapping_helpers/airlock/access/any/security/brig, +/turf/open/floor/iron, +/area/station/security/prison/visit) "ejn" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -14436,6 +15043,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"ejN" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ + name = "Burn Chamber Exterior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "ejQ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -14447,22 +15062,6 @@ "ejX" = ( /turf/open/floor/plating, /area/station/security/prison/safe) -"ejY" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/station/maintenance/fore) -"ekc" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "ekh" = ( /obj/machinery/camera/directional/west{ c_tag = "Atmospherics - Central" @@ -14472,6 +15071,13 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"ekj" = ( +/obj/structure/closet, +/obj/effect/spawner/random/clothing/costume, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/spawner/random/clothing/gloves, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "ekm" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 8; @@ -14514,16 +15120,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/processing) -"elf" = ( -/obj/machinery/rnd/production/circuit_imprinter/department/science, -/obj/machinery/button/door/directional/north{ - id = "rnd"; - name = "Shutters Control Button"; - pixel_x = 7; - req_access = list("research") - }, -/turf/open/floor/iron/checker, -/area/station/science/lab) "elj" = ( /obj/effect/landmark/start/depsec/engineering, /obj/structure/cable, @@ -14545,48 +15141,29 @@ "elw" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/upper) +"elE" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hazardvest, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "elT" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ dir = 8 }, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) -"elU" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/work) "emp" = ( /turf/open/floor/iron/dark/side{ dir = 1 }, /area/station/hallway/primary/starboard) -"emw" = ( -/obj/item/radio/intercom/directional/west, -/turf/open/floor/wood, -/area/station/commons/lounge) "emx" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"emF" = ( -/obj/structure/reagent_dispensers/plumbed{ - name = "service reservoir" - }, -/obj/machinery/light/small/dim/directional/north, -/obj/effect/turf_decal/delivery/white{ - color = "#307db9" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/textured, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/port/aft) "emK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/side{ @@ -14603,6 +15180,11 @@ dir = 1 }, /area/station/security/brig) +"emT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "ena" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -14610,6 +15192,14 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) +"eni" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/red/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/range) "enq" = ( /obj/machinery/doppler_array{ dir = 4 @@ -14621,6 +15211,15 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/engineering/lobby) +"enH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "enI" = ( /obj/machinery/door/airlock/maintenance{ name = "Tool Storage Maintenance" @@ -14642,13 +15241,11 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"eog" = ( -/obj/structure/table/wood, -/obj/machinery/newscaster/directional/north, -/obj/item/flashlight/lantern, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +"enY" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "eos" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -14702,18 +15299,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"eoV" = ( -/obj/item/trash/popcorn, -/obj/structure/reagent_dispensers/plumbed{ - name = "dormitory reservoir" +"eoS" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth"; + dir = 4 }, -/obj/machinery/light/small/dim/directional/north, -/obj/effect/turf_decal/delivery/white{ - color = "#307db9" +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/textured, -/area/station/maintenance/fore) +/turf/open/floor/wood/large, +/area/station/service/chapel) "eoY" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -14723,28 +15318,41 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"eph" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, +"epw" = ( +/obj/structure/chair/stool/directional/north, +/obj/effect/landmark/event_spawn, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/hallway/primary/starboard) "epB" = ( /obj/structure/chair/pew/left{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"epC" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "epH" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/science/explab) +"epN" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) "epY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14766,34 +15374,6 @@ dir = 8 }, /area/station/science/ordnance/office) -"eqk" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"eqn" = ( -/obj/structure/sign/warning/docking/directional/east, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"eqp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "eqq" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -14807,6 +15387,26 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/starboard) +"eqE" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"eqH" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "eqI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -14814,14 +15414,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/upper) -"eqJ" = ( -/obj/machinery/power/solar_control{ - id = "auxsolareast"; - name = "Starboard Bow Solar Control" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/fore) "eqN" = ( /obj/structure/fence/door, /obj/effect/turf_decal/weather/snow/corner{ @@ -14829,6 +15421,13 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"eqP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "eqS" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/red/warning{ @@ -14856,6 +15455,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"erd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/commons/fitness) "eri" = ( /obj/structure/chair/office/light{ dir = 4 @@ -14890,13 +15497,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/genetics) -"erq" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "erw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, @@ -14909,22 +15509,6 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron, /area/station/construction) -"erE" = ( -/obj/machinery/requests_console/auto_name/directional/east, -/obj/machinery/duct, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"erH" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/fitness) "erI" = ( /obj/structure/rack, /obj/item/tank/internals/emergency_oxygen{ @@ -14949,6 +15533,15 @@ }, /turf/open/floor/plating, /area/station/commons/vacant_room/office) +"erM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "erN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14956,6 +15549,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/storage) +"erV" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "erY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14973,10 +15572,6 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/miningdock) -"ese" = ( -/obj/structure/fence/cut/medium, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored/graveyard) "eso" = ( /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/iron/dark/telecomms, @@ -15028,19 +15623,30 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"etr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 +"ete" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/area/station/commons/lounge) +"etv" = ( +/obj/machinery/chem_heater/withbuffer, +/obj/effect/turf_decal/tile/yellow/full, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "etw" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/security/prison/workout) +"etz" = ( +/obj/structure/sign/warning/directional/north, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) "etB" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ @@ -15068,33 +15674,34 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/iron/dark, /area/station/engineering/main) -"etY" = ( -/obj/machinery/light_switch/directional/north, -/turf/open/floor/iron, -/area/station/commons/locker) -"eub" = ( -/obj/machinery/camera{ - c_tag = "Medbay Pharmacy"; - dir = 9; - network = list("ss13","medbay") +"etW" = ( +/obj/structure/railing/corner{ + dir = 8 }, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/machinery/shower/directional/south, -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/fluff/shower_drain, -/obj/effect/turf_decal/stripes/white/end, +/obj/structure/railing, +/obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, -/area/station/medical/pharmacy) +/area/station/medical/medbay/lobby) +"etY" = ( +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron, +/area/station/commons/locker) "euc" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"eud" = ( +/obj/item/food/chococoin, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "euf" = ( /obj/structure/bed{ dir = 4 @@ -15105,13 +15712,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) -"eul" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/trimline/yellow/filled/end{ - dir = 1 - }, -/turf/open/floor/iron/textured, -/area/station/medical/chem_storage) "euq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15141,22 +15741,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) -"euR" = ( -/obj/structure/ladder{ - name = "chemistry lab access" - }, -/obj/effect/turf_decal/stripes/end, -/obj/structure/sign/departments/chemistry/directional/north, -/obj/structure/sign/warning/no_smoking{ - pixel_x = -28 - }, -/obj/effect/turf_decal/tile/yellow/full, -/obj/machinery/door/window/left/directional/south{ - name = "Chemistry Lab Access Hatch"; - req_access = list("plumbing") - }, -/turf/open/floor/iron/white/textured_large, -/area/station/medical/treatment_center) "euZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15170,10 +15754,12 @@ "evb" = ( /turf/open/floor/iron, /area/station/service/janitor) -"evc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) +"evh" = ( +/obj/structure/flora/tree/pine/style_random{ + pixel_x = -15 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "evk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15194,6 +15780,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/processing) +"evP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/vault, +/area/station/security/prison/rec) "evT" = ( /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb) @@ -15206,6 +15799,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"ewo" = ( +/obj/structure/fence/post{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "ewC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, @@ -15227,6 +15829,16 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/security/brig/upper) +"ewT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "exe" = ( /obj/effect/turf_decal/siding/yellow/end{ dir = 8 @@ -15235,29 +15847,43 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/plating, /area/station/medical/treatment_center) -"exq" = ( -/obj/effect/turf_decal/trimline/neutral/warning, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/item/flashlight{ - pixel_y = 9 +"exm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "robotics"; + name = "Robotics Lab Shutters" }, -/obj/item/flashlight{ - pixel_y = 9 +/obj/machinery/door/firedoor, +/obj/structure/desk_bell{ + pixel_x = 7 }, -/obj/item/flashlight{ - pixel_x = -3; - pixel_y = 5 +/obj/machinery/door/window/left/directional/south{ + name = "Robotics Desk"; + req_access = list("robotics") }, -/obj/item/flashlight{ +/obj/item/paper_bin{ pixel_x = -3; - pixel_y = 5 + pixel_y = 7 }, -/obj/structure/rack, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ +/obj/item/pen, +/turf/open/floor/plating, +/area/station/science/robotics/lab) +"exn" = ( +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/iron/dark/smooth_edge, -/area/station/ai_monitored/command/storage/eva) +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"exu" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/graveyard) "exv" = ( /obj/effect/gibspawner/human/bodypartless, /turf/open/misc/asteroid/snow/icemoon, @@ -15265,13 +15891,6 @@ "exw" = ( /turf/closed/wall, /area/station/service/hydroponics) -"exy" = ( -/obj/structure/sign/warning/no_smoking{ - pixel_x = -28 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "exL" = ( /obj/item/trash/cheesie, /obj/effect/decal/cleanable/dirt, @@ -15286,6 +15905,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/work) +"exQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "eyb" = ( /turf/closed/wall, /area/station/security/processing) @@ -15334,21 +15960,19 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"eyU" = ( -/obj/structure/closet/crate/coffin, -/obj/machinery/light/small/red/directional/south, -/turf/open/floor/iron/dark/smooth_half, -/area/station/service/chapel) -"ezd" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/storage/wallet{ - pixel_y = 5; - pixel_x = 3 - }, -/obj/item/newspaper, +"eym" = ( +/obj/structure/girder, +/obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/area/station/maintenance/fore) +"eyP" = ( +/turf/open/misc/ice/coldroom, +/area/station/service/kitchen/coldroom) +"eyR" = ( +/obj/machinery/processor/slime, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron, +/area/station/science/xenobiology) "ezf" = ( /obj/machinery/door/airlock{ name = "Private Restroom" @@ -15356,13 +15980,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/iron/freezer, /area/station/medical/break_room) -"ezk" = ( -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 - }, -/obj/item/kirbyplants/organic/plant11, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "ezl" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt, @@ -15463,6 +16080,20 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"eAQ" = ( +/obj/structure/rack, +/obj/item/storage/box/lights/mixed{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/storage/box/lights/tubes, +/turf/open/floor/iron/checker, +/area/station/commons/storage/emergency/port) +"eAW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/sign/warning/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "eBd" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, @@ -15503,20 +16134,16 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"eBU" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Courtroom" - }, -/obj/item/radio/intercom/directional/north, -/obj/structure/chair{ - name = "Defense" - }, -/turf/open/floor/wood, -/area/station/security/courtroom) "eBV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/closed/wall/r_wall, /area/station/security/checkpoint/engineering) +"eCg" = ( +/obj/structure/tank_holder/oxygen, +/obj/effect/decal/cleanable/wrapping, +/obj/structure/sign/poster/official/safety_internals/directional/north, +/turf/open/floor/vault, +/area/station/security/prison/rec) "eCn" = ( /obj/structure/disposalpipe/trunk/multiz{ dir = 1 @@ -15554,11 +16181,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"eCz" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/mine/laborcamp) "eCD" = ( /obj/machinery/door/airlock/public/glass{ name = "Prison Common Room" @@ -15579,6 +16201,15 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"eCT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "eDc" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/structure/cable, @@ -15618,15 +16249,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/visit) -"eDy" = ( -/obj/structure/closet/boxinggloves, -/obj/machinery/light/directional/north, -/obj/item/clothing/shoes/jackboots, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/fitness) +"eDs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "eDC" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ @@ -15634,12 +16263,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"eDD" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment, -/obj/structure/railing/corner/end, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "eDH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15652,6 +16275,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"eDJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Mix to Space" + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "eDM" = ( /obj/machinery/door/airlock/command/glass{ name = "Head of Security" @@ -15664,43 +16297,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/smooth_large, /area/station/command/heads_quarters/hos) -"eEh" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/analyzer, -/obj/item/pipe_dispenser, -/obj/item/flashlight, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"eEm" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/rods/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/electronics/airlock, -/obj/item/electronics/airlock, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/stack/sheet/mineral/plasma{ - amount = 30 - }, -/turf/open/floor/plating, -/area/station/engineering/engine_smes) -"eEr" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/warning/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"eEC" = ( -/obj/structure/table/wood, -/obj/machinery/fax{ - fax_name = "Captain's Office"; - name = "Captain's Fax Machine" - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) "eEO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15710,22 +16306,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"eEZ" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Security Checkpoint" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brigoutpost" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/security/brig/entrance) "eFd" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -15735,14 +16315,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/open/floor/plating, /area/station/engineering/atmos/storage/gas) -"eFf" = ( -/obj/structure/fireplace{ - pixel_x = 0 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, -/area/station/commons/lounge) "eFh" = ( /obj/structure/table, /obj/effect/spawner/random/entertainment/cigarette_pack, @@ -15776,9 +16348,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/mine/laborcamp) -"eFw" = ( -/obj/structure/sign/poster/official/report_crimes, -/turf/closed/wall/ice, +"eFG" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/flag/nanotrasen/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) +"eFH" = ( +/obj/structure/flora/rock/icy/style_random, +/turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) "eFO" = ( /obj/structure/cable, @@ -15802,19 +16385,24 @@ /turf/open/floor/wood, /area/station/commons/dorms) "eGg" = ( -/obj/machinery/icecream_vat, -/obj/structure/sign/clock/directional/north, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) -"eGl" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/item/seeds/watermelon, +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/station/maintenance/starboard/fore) "eGr" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) +"eGs" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/dark_blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "eGw" = ( /obj/machinery/light/small/directional/north, /obj/machinery/firealarm/directional/north, @@ -15838,27 +16426,55 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"eGB" = ( +/obj/effect/spawner/random/entertainment/arcade, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/eighties, +/area/station/commons/lounge) "eGK" = ( /obj/structure/closet, /obj/effect/spawner/random/entertainment/drugs, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"eGM" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) "eGN" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) +"eGV" = ( +/obj/effect/spawner/random/lavaland_mob/raptor, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "eGW" = ( /obj/effect/turf_decal/tile/red{ dir = 1 }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"eGX" = ( -/obj/machinery/vending/boozeomat/all_access, -/turf/closed/wall, -/area/station/maintenance/port/aft) +"eHb" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/mapping_helpers/mail_sorting/service/dormitories, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) "eHe" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -15886,22 +16502,57 @@ /obj/item/clothing/under/costume/jabroni, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"eHo" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/shower/directional/north, +/turf/open/floor/iron/smooth, +/area/mine/eva) +"eHC" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "eHT" = ( /obj/structure/cable, /obj/effect/spawner/random/structure/steam_vent, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"eHX" = ( +"eHV" = ( +/obj/structure/plasticflaps/opaque{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "Research Division" + }, +/obj/effect/turf_decal/delivery, /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/maintenance/starboard/upper) +"eHX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/door/airlock/multi_tile/public/glass{ + dir = 4; + name = "Arrivals Dock" + }, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) "eHZ" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -15915,6 +16566,13 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"eIg" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/sign/poster/official/here_for_your_safety/directional/north, +/turf/open/floor/iron, +/area/station/security/prison/visit) "eIk" = ( /obj/structure/filingcabinet, /obj/machinery/power/apc/auto_name/directional/north, @@ -15922,6 +16580,12 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/service/library) +"eIv" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "eIC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -15939,14 +16603,17 @@ /obj/item/reagent_containers/dropper, /turf/open/floor/iron/dark, /area/station/medical/virology) +"eIR" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "eIU" = ( -/obj/machinery/button/door/directional/south{ - id = "Cargo_Store_In"; - name = "Shutter Control"; - pixel_x = 24 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red, +/obj/structure/sign/warning/electric_shock/directional/east, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/hallway/primary/central/fore) "eJe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16006,11 +16673,31 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/mine/eva) +"eJX" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/cigarette_pack, +/obj/effect/spawner/random/entertainment/lighter, +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"eKb" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "eKl" = ( /obj/effect/turf_decal/stripes/box, /obj/machinery/destructive_scanner, /turf/open/floor/iron/textured_large, /area/station/hallway/primary/starboard) +"eKI" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/departments/medbay/alt/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "eKJ" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron, @@ -16027,18 +16714,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"eKX" = ( -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/maintenance/port/fore) "eLl" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/chapel) +"eLm" = ( +/obj/structure/table/glass, +/obj/item/storage/box/monkeycubes, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "eLn" = ( /obj/machinery/computer/crew{ dir = 4 @@ -16051,19 +16738,32 @@ dir = 5 }, /area/station/science/research) -"eLv" = ( -/obj/machinery/light_switch/directional/east, -/obj/effect/turf_decal/siding/white{ - dir = 8 +"eLs" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) +"eLB" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Service - Gambling Lounge" }, -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/item/food/grown/tomato, -/obj/item/food/grown/tomato{ - pixel_y = 2; - pixel_x = 2 +/obj/machinery/computer/slot_machine{ + name = "two-armed bandit" }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"eLM" = ( +/obj/structure/cable/multilayer/multiz, +/turf/open/floor/plating, +/area/station/engineering/lobby) +"eLN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, +/obj/machinery/meter/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) "eLS" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/east, @@ -16083,6 +16783,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) +"eMn" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/secure_area/directional/north{ + desc = "A warning sign which reads 'SERVER ROOM'."; + name = "SERVER ROOM" + }, +/turf/open/floor/iron/white, +/area/station/maintenance/aft/greater) "eMr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, @@ -16091,6 +16799,15 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos) +"eME" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/box/red/corners{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "eMG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16118,21 +16835,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/service) -"eML" = ( -/obj/machinery/vending/wardrobe/coroner_wardrobe, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"eMO" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/box, -/obj/structure/ladder, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/mine/eva) "eMT" = ( /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/door/airlock/maintenance, @@ -16140,15 +16842,6 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"eMU" = ( -/obj/effect/turf_decal/tile/neutral/diagonal_centre, -/obj/machinery/atmospherics/pipe/multiz/pink/visible{ - dir = 4; - name = "Exfiltrate" - }, -/obj/effect/turf_decal/tile/red/diagonal_edge, -/turf/open/floor/iron/dark/diagonal, -/area/station/engineering/atmos/mix) "eNh" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -16202,17 +16895,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"eNQ" = ( -/obj/structure/sign/warning/vacuum/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/smooth, -/area/station/engineering/lobby) -"eNS" = ( -/obj/structure/sign/warning/xeno_mining, -/turf/closed/wall, -/area/mine/storage) "eOl" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron, @@ -16228,36 +16910,31 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"eOz" = ( +"eOx" = ( /obj/structure/table, -/obj/item/razor, -/obj/item/storage/backpack/duffelbag/sec/surgery, -/turf/open/floor/plating/icemoon, -/area/station/security/execution/education) -"eOK" = ( -/obj/effect/turf_decal/trimline/neutral/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/warning{ - dir = 6 +/obj/machinery/fax{ + fax_name = "Research Division"; + name = "Research Division Fax Machine"; + pixel_x = 1 }, -/obj/effect/turf_decal/trimline/neutral/mid_joiner{ - dir = 4 +/obj/structure/sign/departments/science/directional/south, +/turf/open/floor/iron/cafeteria{ + dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/area/station/science/research) +"eOB" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 8 }, -/turf/open/floor/iron/dark/smooth_edge{ +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) +"eOJ" = ( +/obj/structure/railing{ dir = 4 }, -/area/station/ai_monitored/command/storage/eva) -"ePd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/turf/open/floor/iron/stairs/medium, +/area/station/cargo/storage) "ePi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -16268,6 +16945,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) +"ePj" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/coin{ + pixel_x = -7 + }, +/obj/effect/spawner/random/clothing/bowler_or_that, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "ePm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16287,6 +16972,10 @@ "ePr" = ( /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/hos) +"ePu" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/engine, +/area/station/science/explab) "ePB" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -16294,6 +16983,16 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/cargo/miningdock) +"ePP" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Starboard Primary Hallway Center West" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "ePR" = ( /obj/structure/railing{ dir = 6 @@ -16301,16 +17000,27 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ePZ" = ( -/obj/structure/chair/stool/directional/west, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, +"ePT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, -/area/station/commons/lounge) +/obj/structure/cable, +/obj/structure/sign/warning/chem_diamond/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"ePV" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/sign/warning/pods/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) "eQz" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -16320,34 +17030,46 @@ /obj/structure/table, /turf/open/floor/iron, /area/station/security/prison/mess) +"eQF" = ( +/obj/structure/railing/corner, +/obj/structure/sign/departments/holy/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/service/chapel) "eQH" = ( /obj/structure/sign/departments/medbay/alt/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"eQQ" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall, -/area/station/command/heads_quarters/rd) "eQT" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/mine/laborcamp/security) -"eQU" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "eQX" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"eRf" = ( +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "eRh" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) +"eRp" = ( +/obj/structure/bed{ + dir = 1; + pixel_x = -2 + }, +/obj/machinery/flasher/directional/north{ + id = "Cell 1" + }, +/turf/open/floor/iron/smooth, +/area/station/security/brig) "eRw" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -16364,6 +17086,12 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"eRE" = ( +/obj/structure/fence/post{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "eRH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -16393,15 +17121,6 @@ dir = 4 }, /area/station/cargo/bitrunning/den) -"eSm" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/structure/sign/warning/electric_shock/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "eSn" = ( /obj/structure/chair/office, /obj/effect/landmark/start/assistant, @@ -16412,23 +17131,31 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/service/library) +"eSq" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) "eSr" = ( /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/mine/laborcamp/security) -"eSE" = ( -/obj/structure/closet/crate/trashcart/laundry, -/obj/effect/spawner/random/contraband/prison, -/obj/item/clothing/under/rank/prisoner, -/obj/item/clothing/under/rank/prisoner, -/obj/item/clothing/under/rank/prisoner/skirt, -/obj/item/clothing/under/rank/prisoner/skirt, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 +"eSA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark, +/area/mine/eva) +"eSC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/work) +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "eSJ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -16457,6 +17184,18 @@ }, /turf/open/floor/carpet/black, /area/station/security/prison/safe) +"eTe" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/cafeteria{ + dir = 5 + }, +/area/station/hallway/secondary/entry) "eTi" = ( /obj/machinery/telecomms/broadcaster/preset_left, /turf/open/floor/iron/dark/telecomms, @@ -16497,19 +17236,13 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) -"eTT" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/duct, -/obj/machinery/light/small/directional/north, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron, -/area/station/service/bar) -"eUe" = ( -/obj/effect/turf_decal/trimline/yellow/filled/corner, +"eTY" = ( +/obj/machinery/recharge_station, +/obj/effect/turf_decal/stripes/box, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/sign/warning/no_smoking/circle/directional/north, /turf/open/floor/iron/white, -/area/station/medical/chemistry) +/area/station/medical/medbay/aft) "eUf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16528,6 +17261,48 @@ /obj/item/seeds/tower, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) +"eUm" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"eUx" = ( +/obj/machinery/light_switch/directional/east, +/obj/structure/table, +/obj/item/paper_bin/construction, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/item/stack/pipe_cleaner_coil/random, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/commons/storage/art) +"eUz" = ( +/obj/machinery/computer/pod/old/mass_driver_controller/chapelgun{ + pixel_x = 32 + }, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 1 + }, +/area/station/service/chapel) "eUA" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/green/corner{ @@ -16560,26 +17335,39 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"eUC" = ( -/obj/machinery/firealarm/directional/west{ - pixel_y = -4 - }, -/obj/machinery/light_switch/directional/west{ - pixel_y = 5 - }, -/obj/machinery/photocopier, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "eUI" = ( /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"eUK" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/stack/sheet/plasteel/twenty{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/engineering/atmos/storage) "eUL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"eUN" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/obj/machinery/button/door/directional/south{ + id = "surgery"; + name = "Surgery Shutter Control" + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/aft) "eUO" = ( /mob/living/simple_animal/hostile/asteroid/polarbear{ move_force = 999; @@ -16587,39 +17375,11 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"eUR" = ( -/obj/structure/table, -/obj/machinery/button/door/directional/west{ - id = "briggate"; - name = "Brig Shutters"; - pixel_x = -6; - pixel_y = -2 - }, -/obj/machinery/button/flasher{ - id = "brigentry"; - pixel_x = -7; - pixel_y = 9 - }, -/obj/machinery/button/door/directional/west{ - id = "innerbrig"; - name = "Brig Interior Doors Control"; - normaldoorcontrol = 1; - pixel_x = 6; - pixel_y = 9; - req_access = list("security") - }, -/obj/machinery/button/door/directional/west{ - id = "outerbrig"; - name = "Brig Exterior Doors Control"; - normaldoorcontrol = 1; - pixel_x = 6; - pixel_y = -2; - req_access = list("security") - }, -/obj/item/radio/intercom/prison/directional/north, -/obj/effect/turf_decal/tile/red/full, -/turf/open/floor/iron/dark/textured_large, -/area/station/security/brig/entrance) +"eUU" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "eUW" = ( /obj/structure/chair/stool/directional/south, /obj/effect/landmark/start/janitor, @@ -16636,11 +17396,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/eva/lower) -"eVi" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "eVl" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining/glass{ @@ -16661,6 +17416,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"eVw" = ( +/obj/effect/spawner/random/trash, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "eVC" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 9 @@ -16752,11 +17513,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"eWP" = ( -/obj/machinery/computer/security/mining, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) "eWQ" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/engine/n2, @@ -16774,24 +17530,73 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"eXa" = ( +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/structure/sign/poster/official/wtf_is_co2/directional/north, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/maintenance/port/fore) +"eXc" = ( +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"eXf" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Fitness Room North" + }, +/obj/structure/closet/masks, +/obj/effect/landmark/start/hangover/closet, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/flag/ssc/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) +"eXD" = ( +/obj/structure/minecart_rail{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/holosign/barrier/atmos/sturdy, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "minecraft_shutter"; + name = "Cart Shutters" + }, +/turf/open/floor/iron/textured, +/area/station/service/hydroponics) "eXH" = ( /turf/closed/wall/r_wall, /area/station/medical/chemistry) -"eXZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "eYe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"eYm" = ( +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) "eYn" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -16799,6 +17604,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"eYx" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "eYz" = ( /obj/machinery/mineral/processing_unit/gulag{ dir = 1 @@ -16809,18 +17618,36 @@ "eYC" = ( /turf/open/floor/iron/smooth, /area/mine/laborcamp/security) +"eYF" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "eYH" = ( /obj/machinery/power/smes/super/full, /obj/structure/cable, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) -"eYP" = ( -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +"eYK" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/camera/directional/north{ + c_tag = "Arrivals External Access" + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/textured, +/area/station/hallway/secondary/entry) "eYR" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 10 @@ -16835,6 +17662,11 @@ }, /turf/open/floor/iron/dark, /area/station/medical/virology) +"eYS" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "eYT" = ( /obj/item/paper_bin{ pixel_x = -3; @@ -16857,6 +17689,14 @@ /obj/effect/landmark/start/botanist, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"eYY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "eZc" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/engine/n2o, @@ -16878,6 +17718,12 @@ /obj/item/storage/fancy/cigarettes/cigpack_mindbreaker, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"eZA" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "eZK" = ( /obj/machinery/recycler{ dir = 8 @@ -16913,6 +17759,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/main) +"eZW" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore) "fab" = ( /obj/structure/cable, /turf/open/floor/engine, @@ -16950,26 +17800,17 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"far" = ( -/obj/structure/railing/corner/end{ +"faq" = ( +/obj/machinery/newscaster/directional/west, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/turf/open/floor/iron/stairs/old{ - dir = 4 +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 8 }, +/turf/open/floor/iron, /area/station/hallway/primary/starboard) -"fat" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "faG" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -16986,30 +17827,32 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"fbg" = ( -/obj/machinery/door/airlock/wood{ - name = "Backstage" +"faL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) +"faV" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood{ +/turf/open/floor/plating/snowed/icemoon, +/area/mine/laborcamp/security) +"faW" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/iron/dark/textured_half{ +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/railing{ dir = 1 }, -/area/station/service/theater) -"fbh" = ( -/obj/machinery/power/tracker, -/obj/structure/cable, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/turf/open/floor/iron, +/area/station/service/hydroponics) "fbl" = ( /turf/open/floor/iron/dark, /area/station/science/breakroom) @@ -17017,17 +17860,30 @@ /obj/machinery/camera/directional/north{ c_tag = "Bridge Conference Room" }, -/obj/machinery/newscaster/directional/north, +/obj/structure/noticeboard/directional/north, /turf/open/floor/wood, /area/station/command/meeting_room) -"fbW" = ( -/obj/machinery/newscaster/directional/west, -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/siding/wood{ +"fbA" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/stairs/medium{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/commons/lounge) +/area/station/science/cytology) +"fbF" = ( +/obj/effect/landmark/navigate_destination/dockarrival, +/obj/effect/turf_decal/bot_white, +/obj/structure/plaque/static_plaque/golden/commission/icebox, +/turf/open/floor/iron/large, +/area/station/hallway/secondary/entry) +"fbM" = ( +/obj/structure/chair/stool/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) "fbY" = ( /obj/effect/spawner/random/trash/hobo_squat, /turf/open/floor/plating, @@ -17038,14 +17894,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"fce" = ( -/obj/structure/table/glass, -/obj/structure/sign/poster/contraband/little_fruits/directional/east, -/obj/item/storage/bag/plants/portaseeder, -/obj/item/plant_analyzer, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "fcg" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17058,22 +17906,23 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"fcj" = ( -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) -"fco" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/bar) "fcu" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/chair, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"fcA" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/hydroponics/constructable, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "fcI" = ( /obj/effect/decal/cleanable/oil, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17102,6 +17951,16 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/laborcamp/security) +"fdb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 4 + }, +/obj/structure/fence{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fde" = ( /obj/structure/table, /obj/item/paper{ @@ -17110,6 +17969,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"fdj" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Escape"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "fdm" = ( /obj/structure/falsewall, /turf/open/floor/iron, @@ -17149,12 +18025,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"fdP" = ( -/obj/structure/bonfire, -/obj/item/melee/roastingstick, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) +"fdV" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/obj/item/bikehorn/rubberducky, +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "fdX" = ( /obj/item/toy/cards/deck{ pixel_x = -9; @@ -17168,6 +18046,20 @@ /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /turf/closed/wall, /area/station/medical/cryo) +"fed" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"fep" = ( +/obj/structure/no_effect_signpost, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "fez" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -17181,6 +18073,11 @@ /obj/item/seeds/apple, /turf/open/floor/iron, /area/mine/laborcamp) +"feD" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) "feJ" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory/upper) @@ -17203,11 +18100,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"feV" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "ffe" = ( /turf/closed/wall/r_wall, /area/station/maintenance/aft/lesser) @@ -17218,20 +18110,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/chapel) -"ffr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"ffz" = ( -/obj/machinery/processor/slime, -/turf/open/floor/iron, -/area/station/science/xenobiology) "ffQ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 10 @@ -17245,11 +18123,14 @@ }, /turf/open/floor/iron, /area/station/commons/fitness) -"fgm" = ( -/obj/machinery/photocopier, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/wood, -/area/station/service/library) +"fgc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "fgo" = ( /obj/effect/spawner/random/trash/mess, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17269,12 +18150,6 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) -"fgz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/fore) "fgJ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -17282,6 +18157,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/security/execution/transfer) +"fgN" = ( +/obj/structure/bonfire/prelit, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "fgQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/spawner/random/engineering/tracking_beacon, @@ -17298,12 +18178,28 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"fgV" = ( +/obj/structure/railing/wooden_fence{ + dir = 8 + }, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "fhb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/iron/white/smooth_large, /area/station/science/genetics) +"fhg" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Dormitory South" + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/commons/dorms) "fhu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -17320,19 +18216,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/fore) -"fhB" = ( -/obj/structure/chair/sofa/bench/left, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"fhS" = ( -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/structure/sink/kitchen/directional/west, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +"fhL" = ( +/obj/structure/sign/warning/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "fhU" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -17350,6 +18237,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"fhX" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fij" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17456,6 +18351,12 @@ /obj/machinery/ntnet_relay, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) +"fja" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "fjg" = ( /obj/machinery/shower/directional/west, /obj/effect/turf_decal/trimline/blue, @@ -17474,16 +18375,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/science/xenobiology) -"fju" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/hydroponics) "fjz" = ( /obj/effect/decal/cleanable/generic, /obj/effect/decal/cleanable/dirt, @@ -17510,32 +18401,31 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"fjO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/binary/valve/digital/on/layer4, -/turf/open/floor/plating, -/area/station/maintenance/fore) +"fjN" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/dark{ + dir = 10 + }, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) "fjQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/mine/living_quarters) -"fkc" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/sign/poster/contraband/missing_gloves/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) -"fkd" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/siding/wood{ - dir = 5 +"fki" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/light/directional/east, +/obj/machinery/newscaster/directional/north, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/white/side{ + dir = 10 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/dark, -/area/station/commons/lounge) +/area/station/science/research) "fkj" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -17551,21 +18441,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen/diagonal, /area/station/service/kitchen) -"fkq" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "fkt" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plating/icemoon, /area/station/maintenance/port/lesser) +"fkw" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"fkD" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "fkF" = ( /obj/item/weldingtool, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "fkN" = ( @@ -17638,13 +18533,11 @@ /obj/machinery/vending/wardrobe/jani_wardrobe, /turf/open/floor/iron, /area/station/service/janitor) -"flV" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/siding/wood/corner, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/wood, -/area/station/service/library) +"flK" = ( +/obj/effect/spawner/random/entertainment/arcade, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/eighties, +/area/station/commons/lounge) "flW" = ( /obj/machinery/atmospherics/components/tank/air, /turf/open/floor/plating, @@ -17726,13 +18619,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"fna" = ( -/obj/structure/chair/wood{ - dir = 4 - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "fng" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -17750,6 +18636,16 @@ }, /turf/open/floor/wood, /area/station/security/prison/rec) +"fnt" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "fnA" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 8 @@ -17787,11 +18683,13 @@ }, /turf/open/floor/iron/dark, /area/station/medical/storage) -"foy" = ( -/obj/item/radio/intercom/directional/south, -/obj/machinery/vending/wardrobe/science_wardrobe, -/turf/open/floor/iron/dark, -/area/station/science/breakroom) +"foI" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/item/storage/box/matches, +/obj/effect/spawner/random/entertainment/cigar, +/turf/open/floor/iron, +/area/station/service/bar) "foO" = ( /turf/open/floor/carpet, /area/station/security/prison/rec) @@ -17809,26 +18707,6 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron, /area/station/commons/dorms) -"fpm" = ( -/obj/structure/railing/corner/end{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) -"fpp" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/structure/sign/warning/electric_shock/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/virology) "fps" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 @@ -17841,11 +18719,6 @@ dir = 9 }, /area/station/security/prison/safe) -"fpt" = ( -/obj/structure/kitchenspike, -/obj/machinery/status_display/evac/directional/west, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "fpA" = ( /obj/machinery/hydroponics/soil, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -17853,25 +18726,12 @@ }, /turf/open/floor/grass, /area/station/maintenance/starboard/fore) -"fpC" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/structure/sign/warning/cold_temp/directional/east, -/turf/open/floor/plating, -/area/station/commons/dorms/laundry) "fpD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"fpF" = ( -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/station/maintenance/fore) "fpJ" = ( /obj/structure/fireaxecabinet/directional/west, /obj/machinery/suit_storage_unit/atmos, @@ -17896,6 +18756,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"fqG" = ( +/obj/structure/fluff/fokoff_sign, +/obj/effect/mapping_helpers/no_atoms_ontop, +/obj/structure/sign/departments/security/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "fqH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/red/half, @@ -17905,6 +18771,13 @@ /obj/effect/turf_decal/trimline/white/filled/warning, /turf/open/genturf, /area/icemoon/underground/unexplored/rivers/deep) +"fqM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/east, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/port/lesser) "fqQ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -17915,6 +18788,15 @@ }, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"fqR" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Starboard Primary Hallway West" + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "fqW" = ( /obj/structure/rack, /obj/item/reagent_containers/cup/bottle/carbon{ @@ -17933,11 +18815,6 @@ dir = 8 }, /area/station/medical/chem_storage) -"fqX" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "frd" = ( /obj/structure/railing/corner{ dir = 1 @@ -17976,6 +18853,12 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"frz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/item/chair, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "frD" = ( /obj/machinery/air_sensor/oxygen_tank, /turf/open/floor/engine/o2, @@ -17987,29 +18870,34 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/storage/gas) +"frF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/lesser) "frN" = ( /obj/machinery/power/shieldwallgen, /obj/structure/window/reinforced/spawner/directional/west, /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/command/teleporter) -"frP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "frS" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/evidence) +"fsj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "fsm" = ( /obj/structure/flora/rock/pile/icy/style_random, /turf/open/misc/asteroid/snow/icemoon, @@ -18027,11 +18915,39 @@ "fsv" = ( /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"fsx" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lantern/on, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) +"fsz" = ( +/obj/structure/table/glass, +/obj/machinery/vending/wallmed/directional/north, +/obj/item/book/manual/wiki/surgery{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/surgery_tray/full, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Surgery A"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/fore) "fsF" = ( /obj/effect/spawner/structure/window, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"fsJ" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "fsK" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/reinforced/middle{ @@ -18039,14 +18955,6 @@ }, /turf/open/floor/plating, /area/station/security/execution/education) -"fsO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/commons/fitness) "fsQ" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /obj/effect/turf_decal/tile/blue{ @@ -18073,23 +18981,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"fte" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/structure/closet/secure_closet/hydroponics, -/obj/structure/sign/clock/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"ftt" = ( -/obj/structure/sign/warning/secure_area/directional/south{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM" +"ftk" = ( +/obj/item/chair/wood, +/obj/item/toy/plush/moth{ + name = "Ariadne" }, -/obj/effect/spawner/structure/window/reinforced, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/flag/nanotrasen/directional/north, /turf/open/floor/plating, -/area/station/science/server) +/area/station/maintenance/starboard/fore) "ftA" = ( /obj/structure/table, /obj/item/storage/box/prisoner, @@ -18110,7 +19010,6 @@ /turf/open/floor/plating, /area/station/science/genetics) "ftN" = ( -/obj/machinery/light_switch/directional/west, /obj/machinery/rnd/destructive_analyzer, /turf/open/floor/iron/checker, /area/station/science/lab) @@ -18122,6 +19021,23 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"ftY" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"fuc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/landmark/navigate_destination/hydro, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "fue" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -18133,6 +19049,16 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"fuf" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "fum" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/plating, @@ -18155,11 +19081,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"fuS" = ( -/obj/structure/stairs/east, -/obj/structure/railing, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "fuX" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -18177,19 +19098,24 @@ /obj/structure/flora/tree/pine/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"fvj" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/exoscanner{ + pixel_y = 3 + }, +/obj/item/circuitboard/machine/exoscanner, +/obj/item/circuitboard/machine/exoscanner{ + pixel_y = -3 + }, +/obj/item/radio/intercom/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Cargo Bay Drone Bay" + }, +/turf/open/floor/iron/dark, +/area/station/cargo/drone_bay) "fvk" = ( /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) -"fvm" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "fvx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18226,12 +19152,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/iron, +/turf/open/floor/iron/dark/textured, /area/station/maintenance/disposal/incinerator) -"fvX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/closed/wall/r_wall, -/area/station/maintenance/aft/greater) "fwh" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -18242,13 +19164,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) -"fwi" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "fwm" = ( /obj/effect/turf_decal/plaque{ icon_state = "L14" @@ -18265,9 +19180,22 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"fwx" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/structure/marker_beacon/cerulean, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fwB" = ( /turf/closed/mineral/snowmountain/coldroom, /area/station/service/kitchen/coldroom) +"fwC" = ( +/obj/structure/railing/wooden_fence{ + dir = 6 + }, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "fwD" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -18323,13 +19251,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"fwW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/stairs/right{ - dir = 4 - }, -/area/station/engineering/lobby) "fxd" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -18403,14 +19324,9 @@ /obj/machinery/telecomms/server/presets/service, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"fyL" = ( -/obj/structure/table, -/obj/item/storage/medkit/regular, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/fitness) +"fyI" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/icemoon/underground/explored) "fyQ" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/meter, @@ -18424,18 +19340,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"fyT" = ( -/obj/structure/table, -/obj/machinery/cell_charger{ - pixel_y = 3 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_y = 3 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/textured, -/area/mine/mechbay) "fyZ" = ( /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, @@ -18497,6 +19401,19 @@ "fzK" = ( /turf/closed/wall, /area/station/service/bar) +"fzO" = ( +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/machinery/door/airlock/maintenance{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/departmental, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "fzQ" = ( /obj/structure/chair/office{ dir = 8 @@ -18528,6 +19445,10 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/security/prison/work) +"fAW" = ( +/obj/structure/fence/door/opened, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fBc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/yellow/line, @@ -18561,7 +19482,7 @@ network = list("labor") }, /obj/machinery/flasher/directional/west{ - id = "GulagCell 1" + id = "GulagCell 3" }, /turf/open/floor/iron, /area/mine/laborcamp) @@ -18573,6 +19494,22 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"fBy" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/closet/l3closet/virology, +/obj/machinery/camera/directional/north{ + network = list("ss13","medbay"); + c_tag = "Virology Airlock" + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/virology) "fBF" = ( /obj/effect/landmark/start/hangover, /obj/structure/disposalpipe/segment, @@ -18580,14 +19517,15 @@ /turf/open/floor/iron, /area/station/hallway/primary/fore) "fBJ" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 +/obj/machinery/modular_computer/preset/civilian, +/obj/machinery/requests_console/directional/north{ + department = "Ordnance"; + name = "Ordnance Lab Requests Console" }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) "fBM" = ( /obj/structure/chair{ dir = 4 @@ -18596,11 +19534,6 @@ dir = 8 }, /area/station/service/chapel) -"fBN" = ( -/obj/structure/marker_beacon/burgundy, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "fBQ" = ( /obj/structure/cable, /turf/open/floor/iron/white/corner{ @@ -18613,52 +19546,28 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"fCd" = ( -/obj/structure/table, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = 5; - pixel_y = 8; - req_access = list("brig") - }, -/obj/machinery/button/door{ - id = "Trial Transfer"; - name = "Trial Transfer Lockdown"; - pixel_x = -7; - pixel_y = 8; - req_access = list("brig") - }, -/obj/machinery/button/door{ - id = "Secure Gate"; - name = "Cell Shutters"; - pixel_x = -7; - pixel_y = -3; - req_access = list("brig") - }, +"fCm" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/closed/mineral/random/snow, +/area/icemoon/underground/explored) +"fCA" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) -"fCw" = ( -/obj/machinery/door/morgue{ - name = "Relic Closet"; - req_access = list("chapel_office") - }, -/turf/open/floor/cult, -/area/station/service/chapel/office) +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "fCM" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/medbay/lobby) -"fCS" = ( -/obj/machinery/door/poddoor/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) +"fCR" = ( +/obj/structure/fence/end{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fCW" = ( /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark/textured, @@ -18678,6 +19587,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"fDf" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/box/red/corners{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "fDl" = ( /obj/machinery/light/small/built/directional/west, /turf/open/floor/iron, @@ -18686,10 +19602,6 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"fDp" = ( -/obj/machinery/light/small/directional/east, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored/graveyard) "fDI" = ( /obj/structure/table/wood, /obj/machinery/computer/records/medical/laptop{ @@ -18698,6 +19610,7 @@ /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 8 }, +/obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/white, /area/station/medical/psychology) "fDJ" = ( @@ -18707,15 +19620,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/service/janitor) -"fDM" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Security Post - Engineering" - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red, -/obj/machinery/computer/security/telescreen/engine/directional/east, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/engineering) "fDP" = ( /obj/structure/cable, /obj/item/radio/intercom/prison/directional/north, @@ -18735,6 +19639,19 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"fEe" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/effect/landmark/navigate_destination, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/commons/dorms) "fEA" = ( /obj/structure/cable, /obj/machinery/door/airlock/maintenance{ @@ -18746,22 +19663,17 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/security/processing) -"fEC" = ( -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Security Checkpoint" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"fEL" = ( +/obj/machinery/holopad, +/obj/machinery/duct, +/obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brigoutpost" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron/dark/textured_edge{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/area/station/security/brig/entrance) +/turf/open/floor/iron/large, +/area/station/engineering/lobby) "fER" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 4 @@ -18790,11 +19702,6 @@ }, /turf/open/floor/iron, /area/mine/laborcamp/security) -"fEY" = ( -/obj/item/stack/rods/two, -/obj/item/stack/sheet/iron, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "fEZ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -18807,6 +19714,13 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"fFe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "fFi" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -18849,18 +19763,11 @@ /obj/effect/decal/cleanable/greenglow, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) -"fFJ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) +"fFQ" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) "fGn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18879,24 +19786,10 @@ }, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) -"fGr" = ( -/obj/structure/chair/sofa/bench{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "fGI" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) -"fGJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace/icemoon/keep_below, -/area/station/maintenance/port/lesser) "fGM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -18905,11 +19798,21 @@ dir = 8 }, /area/station/security/brig/entrance) -"fHb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/cold_temp, -/turf/open/floor/plating, -/area/station/hallway/secondary/entry) +"fGQ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/hangover, +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"fGY" = ( +/obj/machinery/smartfridge/organ, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "surgery"; + name = "Surgery Shutter" + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/aft) "fHg" = ( /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/dark/side, @@ -18922,32 +19825,17 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"fHz" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera{ - c_tag = "Medbay North"; - network = list("ss13","medbay") - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) -"fHC" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "fHK" = ( /obj/machinery/holopad, /turf/open/floor/carpet, /area/station/command/meeting_room) +"fHO" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "botany_chasm_and_wolf_shutters" + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) "fHQ" = ( /obj/machinery/atmospherics/pipe/smart/simple/violet/visible{ dir = 5 @@ -18974,21 +19862,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"fHY" = ( -/obj/item/kirbyplants/random, -/obj/machinery/button/door/directional/south{ - id = "stationawaygate"; - name = "Gateway Access Shutter Control"; - pixel_x = 6; - req_access = list("gateway") +"fHV" = ( +/obj/machinery/mineral/stacking_unit_console{ + pixel_x = -32 }, -/obj/machinery/vending/wallmed/directional/west, -/obj/machinery/light_switch/directional/south{ - pixel_x = -6 +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Disposals" }, -/obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/dark, -/area/station/command/gateway) +/area/station/maintenance/disposal) "fHZ" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -18997,18 +19883,6 @@ dir = 1 }, /area/mine/eva/lower) -"fIb" = ( -/obj/machinery/light/warm/directional/north, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison/rec) -"fIn" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "fIs" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -19035,18 +19909,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"fJd" = ( -/obj/item/kirbyplants/random, -/obj/structure/sign/warning/pods/directional/west, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/light/directional/south, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/cafeteria{ - dir = 5 - }, -/area/station/hallway/secondary/entry) "fJe" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Airlock" @@ -19074,6 +19936,20 @@ /obj/structure/lattice/catwalk, /turf/open/openspace, /area/station/science/ordnance/office) +"fJA" = ( +/obj/structure/bodycontainer/morgue/beeper_off{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/medical/morgue) "fJF" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/east, @@ -19089,6 +19965,16 @@ }, /turf/open/floor/engine/n2, /area/station/engineering/atmos) +"fJS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"fJZ" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/railing/corner, +/turf/open/floor/iron/textured, +/area/station/security/brig) "fKe" = ( /obj/machinery/camera/directional/west{ c_tag = "Engineering West" @@ -19115,11 +20001,6 @@ /obj/machinery/iv_drip, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"fKk" = ( -/obj/item/kirbyplants/fern, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "fKr" = ( /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -19132,6 +20013,9 @@ /obj/structure/fluff/tram_rail, /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) +"fKw" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "fKF" = ( /obj/effect/turf_decal/plaque{ icon_state = "L7" @@ -19159,6 +20043,23 @@ /obj/machinery/status_display/ai/directional/east, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"fKR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) +"fKV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "fKW" = ( /obj/machinery/camera/directional/north{ c_tag = "Security - Upper Permabrig Hallway North"; @@ -19170,10 +20071,22 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) -"fLa" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) +"fKZ" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/kitchen) "fLb" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -19205,31 +20118,32 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory/upper) -"fLC" = ( -/obj/structure/chair/stool/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/wood/large, -/area/mine/eva/lower) -"fLG" = ( -/obj/structure/railing/corner/end/flip{ - dir = 4 +"fLu" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/white/corner{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, +/obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron, /area/station/service/hydroponics) -"fLH" = ( -/obj/machinery/computer/station_alert{ - dir = 4 +"fLx" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/railing{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/computer/security/telescreen/ce/directional/west, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/chapel) +"fLC" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/wood/large, +/area/mine/eva/lower) "fLK" = ( /obj/structure/railing/corner{ dir = 8 @@ -19268,15 +20182,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/mine/laborcamp/security) -"fLU" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "rnd2"; - name = "Research Lab Shutters" - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/science/research) "fLY" = ( /obj/structure/table, /obj/item/stock_parts/micro_laser{ @@ -19302,39 +20207,38 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"fMg" = ( -/obj/structure/rack, -/obj/item/reagent_containers/cup/bottle/acidic_buffer{ - pixel_x = 7; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/bottle/basic_buffer{ - pixel_x = -5; - pixel_y = 3 +"fMt" = ( +/obj/effect/turf_decal/bot{ + dir = 1 }, -/obj/item/reagent_containers/cup/bottle/formaldehyde{ - pixel_x = 1 +/obj/machinery/suit_storage_unit/engine, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark/textured, +/area/station/engineering/engine_smes) +"fMC" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/dice{ + pixel_y = 5; + pixel_x = -4 }, -/obj/structure/sign/warning/no_smoking/directional/north, -/turf/open/floor/iron/dark/textured_edge{ +/obj/effect/spawner/random/entertainment/money_small, +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"fME" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/area/station/medical/chem_storage) -"fMq" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"fMZ" = ( /obj/structure/cable, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) -"fMu" = ( -/obj/structure/table/wood, -/obj/effect/spawner/random/trash/crushed_can, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/item/wrench, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "fNa" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, @@ -19360,34 +20264,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"fNy" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hooded/wintercoat{ - pixel_x = 3; - pixel_y = 3 +"fNB" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 }, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/shoes/winterboots, -/obj/item/clothing/shoes/winterboots, -/obj/structure/sign/warning/gas_mask/directional/west, -/obj/machinery/light/small/directional/west, -/obj/machinery/mining_weather_monitor/directional/north, -/obj/effect/turf_decal/delivery/red, -/obj/machinery/camera/directional/north{ - c_tag = "Arrivals External Access"; - dir = 9 +/obj/structure/railing{ + dir = 1 }, -/turf/open/floor/iron/textured, -/area/station/hallway/secondary/entry) -"fNz" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/crate, -/obj/effect/spawner/random/maintenance/two, -/turf/open/floor/plating, -/area/station/maintenance/fore) -"fNA" = ( -/turf/open/openspace, -/area/station/medical/medbay/central) +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "fNK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19403,18 +20288,47 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter) -"fOg" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"fNZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/machinery/door/firedoor, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "fOl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/explab) +"fOq" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"fOs" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Quartermaster's Office" + }, +/obj/structure/table, +/obj/item/coin/silver, +/obj/item/computer_disk/quartermaster, +/obj/item/computer_disk/quartermaster, +/obj/item/computer_disk/quartermaster, +/obj/item/clipboard, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) +"fOH" = ( +/obj/structure/fence/post{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "fOR" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/airalarm/directional/east, @@ -19423,6 +20337,22 @@ dir = 9 }, /area/station/science/lab) +"fOS" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"fOU" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fPb" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, @@ -19430,12 +20360,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"fPh" = ( -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 4 +"fPc" = ( +/obj/structure/fence{ + dir = 8 }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fPv" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -19453,13 +20383,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"fPO" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/computer/security/telescreen/test_chamber/directional/north, -/turf/open/floor/iron/white/side{ - dir = 1 +"fPI" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/area/station/command/heads_quarters/rd) +/obj/item/kirbyplants/organic/plant10, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "fPP" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19495,28 +20430,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"fQa" = ( -/obj/structure/railing/wooden_fence{ - dir = 6 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "fQc" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 1 }, /turf/open/floor/iron, /area/station/engineering/atmos) +"fQe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Service - Electrical Maintenace Lower" + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/lesser) "fQk" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/east, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"fQs" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "fQu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19539,12 +20472,6 @@ dir = 1 }, /area/station/security/prison) -"fQU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/engineering/engine_smes) "fRb" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -19555,6 +20482,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/pink, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"fRq" = ( +/obj/structure/closet/boxinggloves, +/obj/machinery/light/directional/north, +/obj/item/clothing/shoes/jackboots, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) "fRv" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/engine, @@ -19568,13 +20505,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/dark, /area/station/medical/virology) -"fSd" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/structure/railing/corner, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "fSi" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line{ @@ -19596,16 +20526,42 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"fSs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "fSv" = ( /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/port) -"fSC" = ( -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/hangover, -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +"fSB" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) +"fSP" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/table, +/obj/item/clothing/head/utility/welding{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/clothing/head/utility/welding{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/clothing/head/utility/welding, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "fTb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19615,11 +20571,16 @@ }, /turf/open/floor/iron, /area/station/security/prison/mess) -"fTn" = ( -/obj/effect/spawner/random/structure/grille, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"fTi" = ( +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "fTo" = ( /obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -3 @@ -19669,6 +20630,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"fTH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "fTR" = ( /obj/machinery/light/directional/north, /obj/structure/sign/warning/electric_shock/directional/north, @@ -19718,17 +20684,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron, /area/station/hallway/primary/port) -"fUx" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"fUI" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/engineering/storage/tech) "fUL" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 @@ -19748,11 +20703,33 @@ "fUR" = ( /turf/closed/wall, /area/station/hallway/secondary/entry) -"fVh" = ( -/obj/structure/table/wood, -/obj/effect/spawner/random/trash/food_packaging, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) +"fUW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) +"fVf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "fVm" = ( /obj/machinery/door/airlock/maintenance{ name = "Chemical Storage" @@ -19771,16 +20748,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"fVC" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/machinery/ecto_sniffer{ - pixel_x = 6; - pixel_y = 6 - }, +"fVy" = ( +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/iron, -/area/station/science/robotics/lab) +/area/station/command/heads_quarters/ce) "fVD" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/engineering{ @@ -19828,6 +20799,13 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron, /area/station/service/janitor) +"fVU" = ( +/obj/structure/chair/stool/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/gateway) "fWa" = ( /obj/structure/chair/wood{ dir = 4 @@ -19837,44 +20815,11 @@ }, /turf/open/floor/wood, /area/station/security/prison/rec) -"fWd" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Hydroponics Maintenance" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/turf/open/floor/plating, -/area/station/service/hydroponics) "fWe" = ( /obj/machinery/hydroponics/soil, /obj/item/plant_analyzer, /turf/open/floor/grass, /area/station/security/prison/garden) -"fWn" = ( -/obj/structure/table/glass, -/obj/machinery/vending/wallmed/directional/north, -/obj/item/book/manual/wiki/surgery{ - pixel_x = -4; - pixel_y = 3 - }, -/obj/machinery/camera{ - c_tag = "Surgery A"; - dir = 1; - network = list("ss13","medbay"); - pixel_x = 22 - }, -/obj/item/surgery_tray/full, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/surgery/fore) "fWo" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19887,16 +20832,6 @@ /obj/structure/railing/corner, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"fWE" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "fWL" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -19918,18 +20853,21 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"fWQ" = ( +/obj/machinery/flasher/directional/north{ + id = "Cell 2" + }, +/obj/structure/bed{ + dir = 1; + pixel_x = -2 + }, +/turf/open/floor/iron/smooth, +/area/station/security/brig) "fWS" = ( /obj/structure/mineral_door/wood, /obj/structure/barricade/wooden/crude/snow, /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) -"fWW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/wood{ - dir = 1 - }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "fWX" = ( /obj/structure/cable/multilayer/multiz, /turf/open/floor/plating/snowed/icemoon, @@ -19943,16 +20881,6 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) -"fXo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/commons/dorms) "fXr" = ( /turf/open/floor/iron/white/corner{ dir = 8 @@ -19963,17 +20891,24 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"fXw" = ( +/obj/machinery/chem_master/condimaster{ + desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; + name = "HoochMaster Deluxe" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/service/bar) "fXy" = ( /obj/structure/cable, /obj/machinery/computer/prisoner/management, /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron, /area/mine/laborcamp/security) -"fXF" = ( -/obj/structure/table/wood, -/obj/item/pai_card, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) +"fXL" = ( +/obj/structure/sign/poster/official/here_for_your_safety/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "fXO" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -19981,15 +20916,19 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) -"fXP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +"fXQ" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) +"fXX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/mine/laborcamp) +/obj/machinery/door/airlock/maintenance_hatch{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "fYi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19998,16 +20937,35 @@ }, /turf/open/floor/iron/cafeteria, /area/station/security/prison/work) -"fYF" = ( -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/openspace, -/area/station/commons/storage/mining) +"fYz" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"fYE" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/obj/item/paper/fluff/ids_for_dummies, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "fYH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/mine/eva/lower) +"fYJ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/service/bar) "fYO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -20021,19 +20979,26 @@ "fYS" = ( /turf/closed/wall, /area/station/commons/storage/primary) +"fYT" = ( +/obj/structure/fence/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "fYW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, /turf/open/floor/iron/large, /area/station/hallway/secondary/entry) -"fYX" = ( -/obj/structure/chair/stool/directional/north, -/obj/structure/disposalpipe/segment{ +"fYY" = ( +/obj/structure/disposalpipe/trunk{ dir = 4 }, +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/bot, /turf/open/floor/iron, -/area/station/commons/fitness) +/area/station/engineering/atmos/storage) "fZb" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "miner-passthrough" @@ -20057,18 +21022,38 @@ /obj/structure/curtain/cloth, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) -"fZO" = ( -/obj/effect/spawner/random/vending/snackvend, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) -"fZT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"fZy" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ dir = 4 }, -/obj/effect/mapping_helpers/broken_floor, +/turf/open/openspace, +/area/station/science/ordnance/office) +"fZA" = ( +/obj/machinery/button/door/directional/west{ + id = "xenobio5"; + name = "Xenobio Pen 5 Blast Door"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"fZH" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck{ + pixel_y = 13; + pixel_x = 6 + }, +/obj/effect/spawner/random/entertainment/cigarette, +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"fZK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/sign/clock/directional/north, /turf/open/floor/wood, -/area/station/maintenance/aft/greater) +/area/station/commons/vacant_room/office) "fZV" = ( /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ @@ -20123,10 +21108,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/cargo/storage) -"gar" = ( -/obj/structure/lattice/catwalk, -/turf/open/misc/asteroid/snow/icemoon, -/area/station/maintenance/aft/greater) "gas" = ( /obj/structure/table, /obj/machinery/camera/directional/east{ @@ -20160,6 +21141,25 @@ /obj/effect/turf_decal/box/corners, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"gaA" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored/graveyard) +"gaC" = ( +/obj/structure/closet/lasertag/red, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) +"gaF" = ( +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/machinery/light/small/directional/west, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "gaS" = ( /obj/item/hot_potato/harmless/toy, /obj/structure/table/wood, @@ -20215,16 +21215,6 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) -"gbz" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/obj/structure/sign/warning/secure_area/directional/west, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) -"gbC" = ( -/obj/machinery/vending/dinnerware, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "gbJ" = ( /obj/machinery/door/airlock/security/glass{ name = "Armory" @@ -20235,6 +21225,23 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) +"gbK" = ( +/obj/structure/rack, +/obj/item/clothing/suit/utility/beekeeper_suit, +/obj/item/clothing/head/utility/beekeeper_head, +/obj/item/melee/flyswatter, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Botany Lower Entrance" + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "gbL" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -20249,10 +21256,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/departmental, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"gbM" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/turf/open/floor/plating, -/area/station/maintenance/fore) "gbP" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -20260,17 +21263,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/storage) -"gcf" = ( -/obj/structure/table, -/obj/item/storage/bag/tray, -/obj/item/knife/kitchen{ - pixel_y = 2 - }, -/obj/effect/turf_decal/siding/white{ - dir = 10 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "gck" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20287,22 +21279,27 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"gcy" = ( -/obj/effect/turf_decal/stripes/line{ +"gcP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/stool/bar/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"gcT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"gcU" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 8 }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/science/ordnance) -"gcB" = ( -/obj/item/pickaxe/improvised{ - pixel_x = 7 - }, -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) +/area/station/medical/morgue) "gcV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -20315,14 +21312,11 @@ /obj/item/food/piedough, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"gdg" = ( -/obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 8 - }, -/obj/structure/sign/warning/fire/directional/south, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/underground/explored) +"gdc" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "gdv" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, @@ -20355,13 +21349,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"gdK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "gdN" = ( /obj/structure/railing/corner{ dir = 1 @@ -20371,24 +21358,10 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"gdO" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "gdP" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"gdS" = ( -/obj/machinery/shower/directional/north, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/turf/open/floor/iron/smooth, -/area/mine/eva/lower) "gdY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20402,6 +21375,30 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"gec" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/spawner/random/engineering/toolbox, +/obj/effect/spawner/random/engineering/toolbox, +/obj/effect/turf_decal/siding/wood, +/obj/effect/spawner/random/trash/janitor_supplies, +/obj/structure/sign/poster/contraband/the_griffin/directional/north, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) +"gee" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/mine/eva) "geg" = ( /obj/machinery/light/directional/north, /obj/effect/decal/cleanable/dirt, @@ -20432,6 +21429,16 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron, /area/station/commons/locker) +"get" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/turf/open/floor/iron/dark, +/area/station/cargo/miningdock) "geJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -20465,6 +21472,20 @@ "gfb" = ( /turf/closed/wall/r_wall, /area/station/maintenance/central/greater) +"gff" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/camera/directional/north{ + c_tag = "Virology Module North"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "gfo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20479,18 +21500,6 @@ /obj/structure/table, /turf/open/floor/plating, /area/mine/eva/lower) -"gfy" = ( -/obj/machinery/camera{ - c_tag = "Morgue North"; - dir = 9; - network = list("ss13","medbay") - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "gfC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/light_construct/directional/south, @@ -20504,17 +21513,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/commons/storage/art) -"gfY" = ( -/obj/effect/spawner/random/structure/tank_holder, -/obj/structure/sign/poster/official/wtf_is_co2/directional/east, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron, -/area/station/maintenance/port/fore) "gga" = ( /obj/machinery/light/small/directional/west, /obj/effect/spawner/random/trash/hobo_squat, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"gge" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ggn" = ( /obj/machinery/door/airlock/atmos{ name = "Atmospherics Maintenance" @@ -20527,15 +21535,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"ggv" = ( -/obj/effect/turf_decal/bot, -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 2; - pixel_y = -32 +"ggz" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 }, -/obj/machinery/shower/directional/north, -/turf/open/floor/iron/smooth, -/area/mine/eva) +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/minecart_rail{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south{ + frequency = 1453; + name = "Kitchen Intercom" + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "ggG" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -20546,10 +21562,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) -"ggS" = ( -/obj/structure/sign/warning/biohazard/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "ggV" = ( /obj/machinery/conveyor{ id = "gulag" @@ -20558,14 +21570,13 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/mine/laborcamp) -"ghj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Gas to Chamber" +"ghb" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/engine, -/area/station/engineering/supermatter) +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "ghl" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, @@ -20580,12 +21591,16 @@ /obj/structure/closet/crate, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"ghA" = ( -/obj/structure/railing/wooden_fence{ - dir = 5 +"ghD" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 }, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/vending/wardrobe/hydro_wardrobe, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "ghE" = ( /obj/structure/disposalpipe/segment, /obj/machinery/camera/directional/west{ @@ -20607,30 +21622,25 @@ /obj/structure/sink/directional/east, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"ghQ" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/mine/eva) -"ghT" = ( -/obj/machinery/newscaster/directional/north, -/obj/structure/table/wood, -/obj/machinery/light/small/directional/north, -/obj/item/toy/figure/mime{ - pixel_x = -6 - }, -/obj/item/toy/figure/clown{ - pixel_x = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "ghY" = ( /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) +"gib" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 6 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay South"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "gif" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -20639,20 +21649,26 @@ /obj/structure/sign/warning/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"giH" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/barsign/all_access/directional/north, -/obj/effect/turf_decal/siding/wood, -/obj/structure/disposalpipe/segment{ +"giv" = ( +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/iron, -/area/station/service/bar) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "giN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/yellow/line, /turf/open/floor/iron/dark/side, /area/station/security/prison/workout) +"giO" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/fore) "giP" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -20673,14 +21689,6 @@ }, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) -"giR" = ( -/obj/structure/table, -/obj/item/relic, -/obj/effect/spawner/random/maintenance, -/obj/item/screwdriver, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/iron/checker, -/area/station/maintenance/port/fore) "giV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20720,6 +21728,11 @@ "gjq" = ( /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) +"gjI" = ( +/obj/effect/spawner/random/structure/tank_holder, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron, +/area/station/maintenance/port/fore) "gjM" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -20727,17 +21740,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"gjN" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) "gjP" = ( /obj/structure/table, /obj/item/clothing/gloves/cargo_gauntlet, @@ -20753,13 +21755,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/wood, /area/station/security/courtroom) -"gjT" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "gjW" = ( /obj/structure/chair, /turf/open/floor/iron/cafeteria, @@ -20796,12 +21791,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"gkH" = ( -/obj/structure/table/wood, -/obj/effect/spawner/random/entertainment/cigarette, -/obj/effect/spawner/random/entertainment/lighter, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "gkK" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ color = "#0000ff"; @@ -20817,6 +21806,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/lobby) +"gkN" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) "gkP" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -20833,6 +21826,16 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"gkX" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 6 + }, +/obj/item/reagent_containers/syringe, +/obj/effect/turf_decal/tile/blue/full, +/turf/open/floor/iron/large, +/area/station/medical/treatment_center) "gkY" = ( /obj/machinery/atmospherics/components/binary/pump/off{ dir = 1; @@ -20859,18 +21862,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"gle" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/warning/cold_temp{ - pixel_x = -2; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/mine/eva/lower) "glh" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) @@ -20897,6 +21888,19 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white, /area/station/medical/virology) +"glz" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/starboard) "glC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -20954,11 +21958,6 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/white, /area/station/medical/virology) -"gmt" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/food_cart, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "gmJ" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Port to Infiltrate/Filter" @@ -21031,9 +22030,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"gnE" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/grass, +"gnJ" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, /area/station/service/hydroponics) "gnL" = ( /obj/structure/closet/bombcloset/security, @@ -21047,33 +22053,52 @@ }, /turf/open/floor/wood, /area/station/command/meeting_room) -"gnR" = ( -/obj/structure/toilet/greyscale{ - cistern_open = 1; - dir = 1 +"gnT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/toilet) -"gnZ" = ( -/obj/structure/marker_beacon/burgundy, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/structure/sign/departments/medbay/alt/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"gnX" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"goa" = ( +/obj/machinery/chem_heater/withbuffer, +/obj/effect/turf_decal/tile/yellow/full, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "gob" = ( /obj/structure/closet/wardrobe/black, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"goc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/smartfridge/organ, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"goq" = ( -/obj/structure/statue/snow/snowman, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) +"god" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/door/window/left/directional/west{ + name = "Secure Art Exhibition"; + req_access = list("library") + }, +/obj/effect/spawner/random/structure/table_fancy, +/obj/structure/sign/painting/library_secure{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/station/service/library) +"goe" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "gov" = ( /obj/machinery/door/window/left/directional/west{ name = "Janitorial Delivery"; @@ -21083,6 +22108,21 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/iron, /area/station/service/janitor) +"goy" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) "goB" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -21113,11 +22153,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/office) -"goJ" = ( -/obj/structure/flora/rock/pile/jungle/style_random, -/mob/living/carbon/human/species/monkey, -/turf/open/floor/grass, -/area/station/medical/virology) +"goY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/fore) "gpj" = ( /obj/structure/chair/sofa/corp/right{ dir = 8 @@ -21125,9 +22165,34 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"gpo" = ( +/obj/structure/sign/warning/directional/south, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "gpp" = ( /turf/open/floor/iron, /area/station/hallway/primary/port) +"gpr" = ( +/obj/machinery/restaurant_portal/bar, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/barsign/directional/south, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) +"gps" = ( +/obj/effect/turf_decal/stripes/asteroid/line{ + dir = 1 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/microwave, +/obj/machinery/camera/directional/north{ + c_tag = "Mining B-1 Crater Observatory"; + network = list("ss13", "mine") + }, +/obj/effect/turf_decal/tile/dark/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/white/side, +/area/mine/living_quarters) "gpt" = ( /obj/machinery/button/door/directional/east{ id = "kanyewest"; @@ -21139,6 +22204,35 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) +"gpB" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat_interior) +"gpM" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"gpR" = ( +/obj/structure/cable, +/obj/machinery/light/dim/directional/south, +/obj/machinery/requests_console/directional/south{ + department = "Medbay"; + name = "Medbay Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"gpS" = ( +/obj/effect/turf_decal/loading_area/white{ + dir = 8 + }, +/obj/structure/noticeboard/directional/south, +/turf/open/floor/wood/large, +/area/station/service/bar/atrium) "gpU" = ( /obj/structure/frame/computer, /obj/item/stack/cable_coil/five, @@ -21189,10 +22283,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"gqG" = ( -/obj/structure/sign/warning, -/turf/closed/wall/ice, -/area/icemoon/underground/explored) "gqK" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -21211,32 +22301,23 @@ dir = 8 }, /area/station/command/heads_quarters/rd) -"gqZ" = ( -/obj/machinery/status_display/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_x = -32 - }, +"gra" = ( +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/obj/machinery/door/airlock/medical/glass, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) -"grg" = ( -/obj/item/toy/snowball{ - pixel_x = 6; - pixel_y = 5 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "grk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/plating, /area/station/commons/dorms/laundry) +"grp" = ( +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "grr" = ( /obj/structure/table, /obj/item/storage/box/shipping, @@ -21251,15 +22332,10 @@ /obj/structure/sign/warning/cold_temp/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) -"grs" = ( -/obj/structure/sign/warning/fire/directional/south, -/turf/open/floor/glass/reinforced, -/area/station/science/ordnance/office) "grA" = ( /obj/structure/table/reinforced, /obj/item/assembly/flash/handheld, /obj/item/assembly/flash/handheld, -/obj/machinery/newscaster/directional/west, /obj/item/wrench{ pixel_y = 17 }, @@ -21285,22 +22361,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"grL" = ( +/obj/machinery/light/small/directional/east, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored/graveyard) "grN" = ( /obj/structure/chair{ dir = 8 }, /turf/open/floor/iron, /area/station/cargo/lobby) -"grO" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "grT" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -21311,13 +22381,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"grU" = ( -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 +"gsd" = ( +/obj/structure/fence/corner{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/security/prison/visit) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "gsk" = ( /obj/structure/reflector/single/anchored{ dir = 5 @@ -21327,15 +22396,17 @@ "gst" = ( /turf/closed/wall, /area/station/commons/vacant_room/commissary) -"gsF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 +"gsI" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 }, -/obj/item/radio/intercom/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/mine/eva) +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) "gsK" = ( /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/weather/snow/corner{ @@ -21380,6 +22451,16 @@ /obj/effect/turf_decal/tile/neutral/diagonal_edge, /turf/open/floor/iron/kitchen/diagonal, /area/station/service/kitchen) +"gtB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/fore) "gtF" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -21392,17 +22473,19 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron, /area/station/commons/locker) -"gua" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"guA" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 }, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/bar) +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) +"guO" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/effect/decal/cleanable/generic, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "guS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21437,13 +22520,14 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"gvi" = ( -/obj/effect/turf_decal/siding/wideplating_new/light{ - dir = 4 +"gvf" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio8"; + name = "Xenobio Pen 8 Blast DOors"; + req_access = list("xenobiology") }, -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "gvj" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -21457,26 +22541,36 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"gvr" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "gvK" = ( /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/dark, /area/station/service/chapel) -"gvM" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/smartfridge/extract/preloaded, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron, -/area/station/science/xenobiology) -"gwb" = ( -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"gwm" = ( -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron/white/side{ - dir = 9 +"gwl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/area/station/science/research) +/obj/machinery/light/directional/north, +/obj/machinery/button/door/directional/north{ + id = "Secure Gate"; + name = "Cell Shutters"; + req_access = list("brig") + }, +/obj/machinery/button/door/directional/north{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + req_access = list("brig"); + pixel_y = 35 + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "gwp" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/full, @@ -21537,6 +22631,17 @@ dir = 4 }, /area/station/maintenance/port/fore) +"gwW" = ( +/obj/structure/ladder, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"gxg" = ( +/obj/structure/cable, +/turf/open/floor/stone, +/area/station/commons/lounge) "gxh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21556,10 +22661,6 @@ /obj/item/radio/intercom/prison/directional/south, /turf/open/floor/iron/dark, /area/station/security/prison/rec) -"gxz" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) "gxO" = ( /obj/structure/table/reinforced, /obj/item/hand_labeler{ @@ -21592,22 +22693,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/mine/eva) -"gxT" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Fitness" - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/commons/fitness) "gxU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -21620,15 +22705,27 @@ /obj/item/storage/medkit/regular, /turf/open/floor/iron, /area/station/commons/dorms) -"gyf" = ( -/obj/structure/table/wood, -/obj/machinery/newscaster/directional/south, -/obj/item/storage/fancy/candle_box, -/obj/item/storage/fancy/candle_box{ - pixel_x = 4 +"gyd" = ( +/obj/machinery/space_heater, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"gyg" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/cup/watering_can, /turf/open/floor/iron/dark, -/area/station/service/chapel) +/area/station/service/hydroponics) "gyH" = ( /obj/machinery/light/directional/north, /obj/machinery/vending/coffee, @@ -21636,14 +22733,19 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"gyP" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/bar/backroom) +"gyO" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/cytology{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/storage/box/swab{ + pixel_y = 7; + pixel_x = 7 + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "gyR" = ( /turf/closed/wall/r_wall, /area/station/engineering/main) @@ -21661,6 +22763,35 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"gzH" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) +"gzI" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) +"gzJ" = ( +/obj/structure/cable/multilayer/multiz, +/obj/effect/turf_decal/stripes/box, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "gzV" = ( /obj/structure/mineral_door/paperframe{ name = "Meditation Room" @@ -21674,14 +22805,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"gAd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/light/small/dim/directional/north, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) "gAk" = ( /obj/machinery/airalarm/directional/east, /obj/structure/closet/l3closet/scientist, @@ -21705,25 +22828,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/visit) -"gAw" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 +"gAz" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 }, /obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/turf/open/floor/iron, +/area/station/science/robotics/mechbay) "gAB" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, @@ -21736,18 +22847,28 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"gAG" = ( -/obj/machinery/modular_computer/preset/civilian, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) +"gAM" = ( +/obj/effect/spawner/random/engineering/atmospherics_portable, +/obj/structure/sign/warning/cold_temp/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "gAR" = ( /obj/structure/falsewall, /turf/open/floor/plating, /area/station/security/prison) -"gAY" = ( -/obj/structure/sign/warning/cold_temp/directional/west, +"gAV" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/stairs/south, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/security/prison) +"gAZ" = ( +/obj/effect/turf_decal/tile/purple, /turf/open/floor/iron, -/area/station/cargo/miningdock) +/area/station/hallway/primary/starboard) "gBb" = ( /obj/machinery/door/window/right/directional/west{ name = "Containment Pen 3"; @@ -21771,14 +22892,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"gBl" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/icemoon/underground/explored) -"gBs" = ( -/obj/structure/falsewall, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "gBv" = ( /obj/machinery/door/window/left/directional/south{ name = "Engineering Delivery"; @@ -21796,10 +22909,18 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"gBI" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/hallway/secondary/exit/departure_lounge) +"gBJ" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/bar) "gBX" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/reinforced/middle{ @@ -21849,15 +22970,15 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"gCs" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/sign/poster/contraband/missing_gloves/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "gCu" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"gCG" = ( -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "gCK" = ( /obj/structure/chair/office{ dir = 8 @@ -21867,6 +22988,12 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"gCV" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "gCY" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -21889,18 +23016,31 @@ /turf/open/floor/wood, /area/station/security/courtroom) "gDh" = ( -/obj/structure/flora/grass/brown/style_random, -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/station/commons/dorms/laundry) "gDp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"gDq" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"gDv" = ( +/obj/structure/table, +/obj/item/clothing/suit/apron/chef, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/processor, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "gDz" = ( /obj/structure/table/glass, /obj/item/reagent_containers/cup/glass/bottle/amaretto{ @@ -21918,22 +23058,20 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/fore) -"gDB" = ( -/obj/machinery/oven/range, -/obj/effect/turf_decal/siding/white/corner, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) -"gDL" = ( -/obj/structure/chair/wood{ +"gDE" = ( +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/item/toy/plush/moth{ - name = "Theseus" +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance" }, -/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/sign/warning/biohazard/directional/north, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/aft/greater) "gDN" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -21952,33 +23090,9 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"gDY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/railing{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "gDZ" = ( /turf/open/floor/wood, /area/station/maintenance/port/fore) -"gEb" = ( -/obj/machinery/button/door/directional/west{ - id = "riot"; - name = "Anti-Riot Shutters"; - pixel_x = -7; - pixel_y = 32; - req_access = list("security") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/fore) "gEd" = ( /obj/machinery/camera/directional/east{ c_tag = "MiniSat External SouthWest"; @@ -21987,20 +23101,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"gEe" = ( -/obj/structure/table, -/obj/item/binoculars, -/obj/machinery/computer/security/telescreen/ordnance/directional/north, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) -"gEl" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "gEn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22024,11 +23124,22 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/general, /turf/open/floor/plating, /area/station/engineering/storage_shared) -"gEt" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +"gEy" = ( +/obj/structure/table, +/obj/item/computer_disk/ordnance, +/obj/item/computer_disk/ordnance{ + pixel_y = 4; + pixel_x = -5 + }, +/obj/item/computer_disk{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/item/aicard, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/command/heads_quarters/rd) "gEE" = ( /turf/open/openspace, /area/station/service/chapel) @@ -22042,6 +23153,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, /turf/open/floor/iron, /area/station/hallway/primary/central) "gEV" = ( @@ -22050,18 +23164,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/hallway/secondary/exit/departure_lounge) -"gEX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/dim/directional/east, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"gEZ" = ( -/obj/structure/railing, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "gFj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -22069,19 +23171,15 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/station/security/detectives_office) -"gFt" = ( -/obj/effect/spawner/random/engineering/canister, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"gFx" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/gas_mask, -/turf/open/floor/plating/icemoon, -/area/station/maintenance/solars/port/aft) "gFH" = ( /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"gFI" = ( +/obj/machinery/telecomms/server/presets/security, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "gFL" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -22090,24 +23188,6 @@ dir = 5 }, /area/station/hallway/secondary/entry) -"gFR" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/suit/utility/radiation, -/obj/item/clothing/head/utility/radiation, -/obj/item/geiger_counter, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/clothing/glasses/meson, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) -"gFW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/wood/large, -/area/station/service/bar) "gFX" = ( /turf/closed/wall, /area/icemoon/underground/explored) @@ -22133,12 +23213,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"gGo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/radio/intercom/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "gGs" = ( /obj/structure/closet/secure_closet/engineering_welding, /obj/machinery/newscaster/directional/west, @@ -22161,12 +23235,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/science/genetics) -"gGC" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass/fifty, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage) "gGE" = ( /obj/structure/rack, /obj/item/clothing/suit/hooded/wintercoat{ @@ -22189,20 +23257,15 @@ /obj/structure/light_construct/directional/west, /turf/open/floor/plating, /area/station/construction) -"gGK" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) -"gGS" = ( -/obj/structure/railing, -/obj/effect/turf_decal/siding/white, -/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ - id = "cantena_curtains" +"gGI" = ( +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay Storage"; + network = list("ss13","medbay") }, -/turf/open/floor/wood, -/area/station/commons/lounge) +/turf/open/floor/iron/dark, +/area/station/medical/storage) "gGZ" = ( /obj/machinery/computer/bank_machine, /obj/effect/turf_decal/bot_white, @@ -22218,10 +23281,6 @@ /obj/machinery/mineral/processing_unit_console, /turf/closed/wall, /area/mine/laborcamp) -"gHj" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/commons/dorms) "gHl" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer1{ dir = 8 @@ -22262,9 +23321,6 @@ /obj/effect/turf_decal/trimline/red/line, /turf/open/floor/iron/dark/textured, /area/station/security/range) -"gHL" = ( -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/starboard/fore) "gHN" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 @@ -22289,26 +23345,24 @@ /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/checker, /area/station/science/lab) -"gIf" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +"gIh" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/starboard) -"gIl" = ( -/obj/structure/fence/corner{ - dir = 6 +/obj/machinery/light/directional/north, +/obj/structure/sign/warning/biohazard/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"gIs" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/light/warm/directional/east, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "gIt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, @@ -22328,6 +23382,10 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"gIJ" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/medical/morgue) "gIL" = ( /obj/machinery/door/airlock/security/glass{ name = "Secure Walkway" @@ -22340,37 +23398,18 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"gIN" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/fitness) "gIY" = ( /turf/closed/wall, /area/station/medical/medbay/central) -"gJi" = ( -/obj/structure/table, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/crowbar, -/obj/item/radio/headset/headset_sci{ - pixel_x = -3 - }, -/obj/machinery/newscaster/directional/east, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/science/robotics/lab) "gJs" = ( /obj/machinery/portable_atmospherics/canister, /obj/structure/disposalpipe/segment, @@ -22386,12 +23425,31 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/commons/dorms) +"gJD" = ( +/obj/item/reagent_containers/cup/soda_cans/beer{ + pixel_x = -7; + pixel_y = 2 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "gJK" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 }, /turf/open/floor/plating, /area/station/commons/dorms/laundry) +"gJN" = ( +/obj/machinery/rnd/production/circuit_imprinter, +/obj/machinery/requests_console/directional/east{ + department = "Engineering"; + name = "Engineering Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) "gJT" = ( /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/white/side{ @@ -22441,6 +23499,11 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"gKE" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "gKG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/green{ @@ -22451,6 +23514,20 @@ "gKQ" = ( /turf/closed/wall, /area/station/security/courtroom) +"gKU" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door"; + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "gLj" = ( /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine, @@ -22459,6 +23536,16 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central) +"gLn" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/structure/railing/corner/end{ + dir = 1 + }, +/obj/structure/sign/warning/biohazard/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "gLu" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22483,33 +23570,63 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) -"gLS" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall/r_wall, -/area/station/science/xenobiology) +"gLU" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Public Mining Storage"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/iron/dark, +/area/mine/storage) +"gLX" = ( +/obj/structure/railing/wooden_fence{ + dir = 9 + }, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "gLY" = ( -/obj/machinery/vatgrower, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/theater, /obj/structure/cable, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "gLZ" = ( /obj/structure/table, /obj/item/flashlight/lamp, /turf/open/floor/wood, /area/station/maintenance/port/fore) -"gMi" = ( +"gMd" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/medical/morgue) +"gMl" = ( /obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen{ - pixel_x = -5 +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 }, -/obj/item/hand_labeler{ - pixel_y = -3 +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) +"gMq" = ( +/obj/machinery/computer/cargo{ + dir = 4 }, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) +/obj/machinery/keycard_auth/wall_mounted/directional/west, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "gMt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt/dust, @@ -22520,25 +23637,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"gMw" = ( -/obj/structure/sign/warning/gas_mask{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; - pixel_x = -29 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/smooth, -/area/mine/eva) -"gMx" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "gMK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22554,25 +23652,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) -"gMN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/secure_area/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner, -/area/station/engineering/atmos) -"gMT" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) "gMZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -22582,13 +23661,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"gNc" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/bar) "gNg" = ( /obj/machinery/camera/directional/north{ c_tag = "MiniSat External South"; @@ -22597,10 +23669,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"gNh" = ( -/obj/structure/sign/poster/random/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "gNi" = ( /obj/structure/table, /obj/item/reagent_containers/cup/beaker/large{ @@ -22614,21 +23682,13 @@ /obj/item/reagent_containers/dropper, /turf/open/floor/iron/cafeteria, /area/station/science/lab) -"gNu" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ +"gNC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/dark/smooth_edge{ dir = 4 }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "botany_chasm_and_wolf_shutters" - }, -/turf/open/floor/plating, -/area/station/service/hydroponics) -"gNw" = ( -/obj/structure/flora/bush/grassy/style_random, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) +/area/station/command/gateway) "gNH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -22636,12 +23696,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/workout) -"gNJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/chapel/office) "gNL" = ( /obj/machinery/status_display/evac/directional/south, /obj/machinery/light/directional/south, @@ -22657,6 +23711,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"gOa" = ( +/obj/structure/cable, +/obj/effect/turf_decal/box/red/corners{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "gOb" = ( /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -22666,15 +23727,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) -"gOd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/lesser) "gOg" = ( /obj/machinery/light/small/directional/west, /obj/machinery/camera/directional/west{ @@ -22703,11 +23755,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/lawoffice) -"gOq" = ( -/obj/effect/spawner/random/trash, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "gOx" = ( /obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -22719,6 +23766,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"gOA" = ( +/obj/structure/railing/corner, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "gOI" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -22748,20 +23799,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"gPj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/hatch{ - name = "Morgue" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "gPn" = ( /obj/machinery/door/airlock/security/glass{ name = "Armory" @@ -22771,13 +23808,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/ai_monitored/security/armory/upper) -"gPo" = ( -/obj/effect/spawner/random/structure/chair_flipped{ - dir = 8 - }, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "gPp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -22785,18 +23815,13 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) -"gPB" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/food_or_drink/refreshing_beverage, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"gPE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/cafeteria{ - dir = 8 +"gPC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner{ + dir = 4 }, -/area/station/science/research) +/turf/open/openspace, +/area/station/science/ordnance/office) "gPR" = ( /obj/effect/turf_decal/trimline/green/filled/warning, /obj/machinery/duct, @@ -22863,6 +23888,18 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/prison/rec) +"gQI" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm4"; + name = "Dorm 4" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms) "gQO" = ( /obj/machinery/door/airlock/public/glass{ name = "Chapel Office" @@ -22877,6 +23914,14 @@ /obj/effect/mapping_helpers/airlock/access/all/service/chapel_office, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"gRg" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/sign/warning/gas_mask/directional/north{ + desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." + }, +/turf/open/floor/plating, +/area/station/cargo/drone_bay) "gRm" = ( /obj/structure/grille/broken, /obj/effect/decal/cleanable/dirt, @@ -22905,30 +23950,26 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"gRE" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "botany_chasm_and_wolf_shutters" +"gRt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, -/turf/open/floor/plating, -/area/station/service/hydroponics) +/turf/open/floor/iron, +/area/station/engineering/engine_smes) +"gRA" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/test_chamber/directional/east{ + name = "Xenobio Monitor" + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "gRI" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"gRL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "gRZ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -22937,8 +23978,35 @@ dir = 8 }, /obj/machinery/light/small/directional/south, +/obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/security/prison/visit) +"gSd" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"gSl" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/iron/white, +/area/station/medical/virology) +"gSq" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/machinery/button/door/directional/north{ + id = "rnd"; + name = "Shutters Control Button"; + req_access = list("research"); + dir = 2 + }, +/obj/machinery/light_switch/directional/north{ + pixel_y = 35 + }, +/turf/open/floor/iron/checker, +/area/station/science/lab) "gSr" = ( /obj/structure/table/reinforced, /obj/item/clothing/suit/utility/radiation, @@ -22963,19 +24031,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"gSK" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/mine/eva/lower) "gSN" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -22989,30 +24044,6 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva/lower) -"gSQ" = ( -/obj/structure/table, -/obj/item/crowbar/red, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/structure/sign/poster/random/directional/west, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) -"gSU" = ( -/obj/item/popsicle_stick{ - pixel_y = 1; - pixel_x = -9 - }, -/obj/item/popsicle_stick{ - pixel_y = 3; - pixel_x = -2 - }, -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) "gSV" = ( /obj/machinery/light/directional/south, /obj/structure/bodycontainer/morgue{ @@ -23022,39 +24053,44 @@ dir = 1 }, /area/station/service/chapel/office) -"gTb" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/line{ +"gTa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sign/warning/cold_temp/directional/west, -/obj/machinery/light/directional/west, -/turf/open/floor/plating, -/area/station/cargo/storage) +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/bar/directional/north, +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/commons/lounge) "gTi" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay Chemistry Access" - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"gTq" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) +"gTr" = ( /obj/structure/cable, +/obj/structure/holosign/barrier/atmos/sturdy, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/effect/turf_decal/tile/yellow/full, -/turf/open/floor/iron/large, -/area/station/medical/treatment_center) -"gTq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +/obj/machinery/door/poddoor/shutters{ + dir = 1; + id = "minecraft_shutter"; + name = "Cart Shutters" + }, +/obj/structure/minecart_rail{ + dir = 1 + }, +/turf/open/floor/iron/textured, +/area/station/service/kitchen/coldroom) "gTw" = ( /obj/structure/railing{ dir = 8 @@ -23072,6 +24108,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) +"gUa" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "gUg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -23101,13 +24142,12 @@ dir = 1 }, /area/station/security/processing) -"gUw" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) +"gUv" = ( +/obj/machinery/holopad, +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "gUx" = ( /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, @@ -23122,19 +24162,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"gUT" = ( -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) -"gUX" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 8 - }, -/obj/machinery/computer/security/telescreen/test_chamber/directional/east{ - name = "Xenobio Monitor" - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "gUY" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -23146,10 +24173,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"gVh" = ( -/obj/structure/chair/stool/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "gVm" = ( /obj/item/coin/silver{ pixel_x = -5; @@ -23162,12 +24185,6 @@ }, /turf/open/floor/plating, /area/station/commons/dorms/laundry) -"gVs" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/hobo_squat, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "gVt" = ( /obj/item/radio/intercom/directional/west, /obj/effect/turf_decal/tile/red{ @@ -23183,18 +24200,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"gVC" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible/layer2, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ - dir = 8 - }, -/obj/machinery/airlock_sensor/incinerator_atmos{ - pixel_y = 24 +"gVB" = ( +/obj/structure/chair/stool/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/commons/lounge) "gVD" = ( /obj/structure/closet/firecloset, /obj/item/radio/intercom/directional/west, @@ -23203,6 +24218,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"gVN" = ( +/obj/structure/flora/grass/green/style_random, +/obj/structure/sign/warning/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "gVO" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -23228,13 +24249,18 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"gVX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 +"gVV" = ( +/obj/structure/railing{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + id = "cantena_curtains" + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "gWf" = ( /obj/item/storage/box/lights/mixed, /obj/structure/table, @@ -23243,37 +24269,44 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/department/medical/morgue) -"gWl" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 +"gWh" = ( +/obj/structure/rack, +/obj/machinery/light/small/dim/directional/north, +/obj/structure/sign/departments/maint/alt/directional/north, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"gWi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 10 +/obj/machinery/door/airlock/freezer{ + desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold."; + name = "The Ice Box" }, -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - pixel_y = 8; - pixel_x = 6 +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/turf/open/floor/plating, +/area/station/service/kitchen/coldroom) +"gWn" = ( +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + dir = 4; + name = "Exfiltrate Filter" }, -/obj/item/storage/box/syringes{ - pixel_y = 8; - pixel_x = -5 +/obj/effect/turf_decal/trimline/dark_red/filled/warning{ + dir = 10 }, -/obj/item/storage/box/beakers{ - pixel_y = 5; - pixel_x = -9 +/obj/effect/turf_decal/trimline/dark_red/filled/warning{ + dir = 5 }, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"gWr" = ( -/obj/structure/tank_dispenser, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/sign/warning/directional/north, /turf/open/floor/iron/dark, -/area/station/science/ordnance/office) -"gWy" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/cold_temp, +/area/station/engineering/atmos/mix) +"gWV" = ( +/obj/structure/chair/stool/directional/north, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, -/area/station/maintenance/solars/port/fore) +/area/station/maintenance/solars/starboard/fore) "gWX" = ( /obj/structure/chair{ dir = 4 @@ -23327,10 +24360,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"gXv" = ( -/obj/machinery/portable_atmospherics/pump/lil_pump, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "gXy" = ( /obj/machinery/door/airlock/public/glass{ id_tag = "gulag2"; @@ -23347,12 +24376,23 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/lab) +"gXN" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "gYa" = ( /obj/structure/railing{ dir = 9 }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"gYd" = ( +/obj/structure/stairs/north, +/turf/open/floor/iron/stairs/medium, +/area/station/cargo/storage) "gYg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -23366,20 +24406,27 @@ /obj/effect/spawner/structure/window/hollow/reinforced, /turf/open/floor/plating, /area/mine/living_quarters) -"gYk" = ( -/obj/machinery/computer/security/telescreen/entertainment/directional/east, -/obj/machinery/status_display/evac/directional/south, -/obj/structure/chair/sofa/left/brown{ - dir = 8 +"gYm" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "riot"; + name = "Security Shutters" }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +/turf/open/floor/glass/reinforced, +/area/station/hallway/primary/fore) "gYp" = ( /obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"gYq" = ( +/obj/item/toy/snowball{ + pixel_y = -7; + pixel_x = 5 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "gYt" = ( /obj/machinery/door/window/left/directional/west{ name = "Research Division Delivery"; @@ -23395,6 +24442,18 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"gYv" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/table/wood, +/obj/machinery/light/small/directional/north, +/obj/item/toy/figure/mime{ + pixel_x = -6 + }, +/obj/item/toy/figure/clown{ + pixel_x = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "gYz" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -23414,18 +24473,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"gYN" = ( -/obj/effect/turf_decal/loading_area/white{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/service/bar/atrium) -"gZa" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"gYT" = ( +/obj/machinery/light/cold/directional/east, +/obj/machinery/status_display/ai/directional/east, +/obj/structure/railing, +/obj/structure/lattice/catwalk, +/turf/open/openspace, +/area/station/service/kitchen/coldroom) "gZb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, @@ -23439,13 +24493,17 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"gZk" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/random/maintenance/four, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/random/directional/north, -/turf/open/floor/plating, -/area/station/construction) +"gZq" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/turf/open/floor/iron, +/area/station/command/bridge) "gZt" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 6 @@ -23453,11 +24511,6 @@ /obj/effect/gibspawner/human, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"gZx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "gZP" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -23473,10 +24526,6 @@ dir = 1 }, /area/station/security/prison) -"gZR" = ( -/obj/machinery/power/smes/engineering, -/turf/open/floor/plating, -/area/station/maintenance/department/electrical) "gZT" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -23488,11 +24537,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"gZV" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, -/turf/open/floor/plating, -/area/station/maintenance/fore) "hac" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 9 @@ -23509,14 +24553,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"hai" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/icemoon/underground/explored/graveyard) "han" = ( /obj/structure/table, /obj/item/plate, @@ -23539,6 +24575,9 @@ /area/station/hallway/primary/central) "haC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "haD" = ( @@ -23557,16 +24596,15 @@ /obj/effect/landmark/start/bitrunner, /turf/open/floor/iron, /area/station/cargo/storage) -"haQ" = ( -/obj/effect/turf_decal/tile/purple/half/contrasted{ +"haJ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 8 }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"hbp" = ( -/obj/machinery/photocopier, -/turf/open/floor/wood, -/area/station/command/meeting_room) +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "hbt" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/spawner/random/clothing/mafia_outfit, @@ -23588,10 +24626,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"hbL" = ( -/obj/machinery/light/small/directional/east, -/turf/open/openspace, -/area/station/service/hydroponics) "hbR" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -23625,15 +24659,17 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"hcj" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 +"hcs" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) "hcw" = ( /obj/docking_port/stationary/random/icemoon{ dir = 8; @@ -23657,6 +24693,18 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"hcT" = ( +/obj/structure/closet/crate/internals, +/obj/machinery/firealarm/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Cargo Bay B-1" + }, +/turf/open/floor/iron, +/area/station/cargo/storage) +"hcZ" = ( +/obj/structure/railing/wooden_fence, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "hdb" = ( /obj/machinery/shower/directional/south, /turf/open/floor/iron/smooth, @@ -23691,28 +24739,12 @@ dir = 1 }, /area/mine/living_quarters) -"hds" = ( -/obj/structure/disposalpipe/junction{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) "hdw" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"hdz" = ( -/obj/structure/sign/warning/gas_mask, -/turf/closed/wall, -/area/station/hallway/secondary/exit/departure_lounge) "hdH" = ( /obj/structure/railing{ dir = 1 @@ -23734,30 +24766,6 @@ /obj/effect/spawner/random/engineering/canister, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hek" = ( -/obj/structure/table, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stack/sheet/glass, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/scanning_module, -/obj/item/stock_parts/scanning_module, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/turf/open/floor/iron/white/side{ - dir = 10 - }, -/area/station/science/lab) -"het" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/gas_mask, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/fore) "hex" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -23773,37 +24781,18 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron/smooth, /area/mine/mechbay) -"heG" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/computer/gateway_control, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron/dark, -/area/station/command/gateway) -"heH" = ( -/obj/structure/sign/poster/random/directional/west, -/turf/closed/wall/r_wall, -/area/station/maintenance/aft/lesser) -"heQ" = ( -/obj/structure/table, -/obj/item/stack/cable_coil, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage) -"heS" = ( -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; - name = "AI Upload Turret Control"; - pixel_y = -25 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Bridge Center" +"heE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 9 }, -/obj/structure/disposalpipe/segment{ +/obj/structure/fence{ dir = 4 }, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "heX" = ( /obj/structure/cable, /turf/open/floor/wood, @@ -23812,6 +24801,14 @@ /obj/structure/lattice/catwalk, /turf/open/openspace, /area/station/science/xenobiology) +"hfd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) "hff" = ( /obj/structure/chair/office{ dir = 8 @@ -23819,17 +24816,40 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood, /area/station/service/library) -"hfm" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +"hfg" = ( +/obj/structure/reagent_dispensers/plumbed{ + name = "service reservoir" + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/delivery/white{ + color = "#307db9" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/textured, +/area/station/maintenance/starboard/fore) +"hfs" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood, +/obj/effect/spawner/random/entertainment/musical_instrument, +/obj/item/instrument/harmonica, +/turf/open/floor/iron/grimy, +/area/station/commons/lounge) "hfv" = ( /obj/machinery/processor{ pixel_y = 6 }, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) +"hfy" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/turretid{ + name = "AI Chamber turret control"; + pixel_x = 5; + pixel_y = -24 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "hfA" = ( /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 2 @@ -23840,14 +24860,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) -"hfG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "hfI" = ( /obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -23858,26 +24870,6 @@ /obj/structure/closet/l3closet/scientist, /turf/open/floor/iron, /area/station/science/xenobiology) -"hfY" = ( -/obj/effect/turf_decal/siding/thinplating/dark/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/poster/official/the_owl/directional/south, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "hgc" = ( /obj/structure/table, /turf/open/floor/plating, @@ -23888,17 +24880,6 @@ "hgr" = ( /turf/open/floor/glass/reinforced, /area/station/hallway/secondary/entry) -"hgx" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"hgH" = ( -/obj/item/radio/intercom/prison/directional/west, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) "hgK" = ( /obj/structure/ladder, /obj/effect/landmark/blobstart, @@ -23943,6 +24924,7 @@ c_tag = "Ordnance Lower Mix Lab"; network = list("ss13","rd") }, +/obj/structure/sign/warning/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance) "hhz" = ( @@ -23953,13 +24935,17 @@ dir = 1 }, /area/station/service/chapel/office) -"hhN" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/dark/smooth_edge{ - dir = 4 +"hhO" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchencounter"; + name = "Kitchen Counter Shutters" }, -/area/station/command/gateway) +/obj/structure/displaycase/forsale/kitchen, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "hhP" = ( /obj/machinery/newscaster/directional/south, /obj/item/kirbyplants/random, @@ -23982,6 +24968,33 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"hir" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/structure/reagent_dispensers/plumbed{ + name = "dormitory reservoir" + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/delivery/white{ + color = "#307db9" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/textured, +/area/station/maintenance/fore) +"hjc" = ( +/obj/structure/closet/emcloset, +/obj/item/pickaxe, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "hjh" = ( /obj/machinery/computer/records/security{ dir = 4 @@ -23992,6 +25005,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"hjl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/wood/large, +/area/station/service/bar) "hjp" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/camera/directional/south{ @@ -24008,16 +25031,20 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/hydroponics/garden) -"hjw" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +"hjz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"hjA" = ( +/obj/effect/turf_decal/tile/blue, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "hjE" = ( /turf/closed/wall/r_wall, /area/station/science/explab) @@ -24037,14 +25064,6 @@ "hjM" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/medical/morgue) -"hjO" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/wood/large, -/area/station/service/bar) "hjQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -24056,15 +25075,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos/project) -"hjU" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "hjV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -24109,6 +25119,39 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"hku" = ( +/obj/structure/railing, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 10 + }, +/obj/machinery/barsign/directional/north, +/turf/open/floor/wood/large, +/area/station/hallway/primary/starboard) +"hkI" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/dorms/laundry) +"hkQ" = ( +/obj/structure/table/optable, +/obj/effect/decal/cleanable/xenoblood, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"hkS" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/structure/closet/secure_closet/cytology, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "hkU" = ( /obj/effect/landmark/start/cargo_technician, /obj/structure/chair/office{ @@ -24136,12 +25179,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"hlt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/south, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) "hlv" = ( /obj/machinery/airalarm/directional/south, /obj/machinery/shower/directional/west, @@ -24155,32 +25192,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/mine/laborcamp) -"hlQ" = ( -/obj/machinery/door/airlock/external, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "graveyard" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, -/turf/open/floor/plating, -/area/station/medical/morgue) -"hlS" = ( -/obj/structure/table, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/turf/open/floor/iron/dark, -/area/station/service/chapel) -"hlW" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/vending/clothing, -/turf/open/floor/iron, -/area/station/commons/locker) "hmb" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -24207,6 +25218,32 @@ /obj/item/paper, /turf/open/floor/iron, /area/station/security/checkpoint/customs/auxiliary) +"hmx" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay Lobby"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"hmE" = ( +/obj/structure/chair, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/departments/medbay/alt/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"hmF" = ( +/obj/effect/spawner/random/entertainment/arcade, +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/eighties, +/area/station/commons/lounge) "hmX" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ color = "#0000ff"; @@ -24226,13 +25263,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"hno" = ( -/obj/structure/sign/painting/library{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/service/library) "hnt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -24247,14 +25277,6 @@ }, /turf/open/floor/iron, /area/station/cargo/lobby) -"hnK" = ( -/obj/structure/table/wood, -/obj/item/wallframe/camera{ - pixel_y = -2; - pixel_x = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "hnN" = ( /obj/machinery/camera/directional/west{ c_tag = "Xenobiology Pens Observation - Port Aft"; @@ -24283,19 +25305,19 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"hog" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 8 +"hoa" = ( +/obj/structure/sink/directional/east, +/obj/machinery/button/door/directional/west{ + id = "xenobio2"; + name = "Xenobio Pen 2 Blast Door"; + req_access = list("xenobiology") }, -/obj/machinery/hydroponics/constructable, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/obj/machinery/light/floor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "hos" = ( /obj/structure/disposalpipe/trunk/multiz/down{ dir = 1 @@ -24305,6 +25327,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hoz" = ( +/obj/structure/fence/corner{ + dir = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "hoD" = ( /turf/open/floor/iron, /area/station/cargo/miningdock) @@ -24361,16 +25389,35 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) -"hpm" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Starboard Primary Hallway East" +"hph" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 1; + name = "hydroponics reservoir" }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark/corner{ - dir = 4 +/obj/effect/turf_decal/delivery/white{ + color = "#307db9" }, -/area/station/hallway/primary/starboard) -"hpp" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron/dark/textured, +/area/station/maintenance/starboard/lesser) +"hpl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/iron, +/area/mine/laborcamp) +"hpm" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Starboard Primary Hallway East" + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark/corner{ + dir = 4 + }, +/area/station/hallway/primary/starboard) +"hpp" = ( /obj/structure/sign/departments/chemistry/directional/south, /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 8 @@ -24430,25 +25477,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) -"hpK" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "hpM" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -24511,15 +25539,16 @@ }, /area/station/commons/storage/art) "hqv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4{ - dir = 1; - name = "Can In" +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/cigarette{ + pixel_x = 6; + pixel_y = 12 }, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/turf/open/floor/iron, +/area/mine/eva) "hqx" = ( /obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24544,18 +25573,17 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"hqV" = ( -/obj/structure/sign/warning/radiation/rad_area, -/turf/closed/wall/r_wall, -/area/station/engineering/main) -"hrd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, -/obj/machinery/meter/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"hqH" = ( +/obj/machinery/door/airlock/research{ + name = "Cytology Lab" }, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron/smooth_large, +/area/station/science/ordnance) "hrh" = ( /obj/structure/chair/comfy/beige{ dir = 1 @@ -24571,35 +25599,36 @@ /obj/effect/turf_decal/tile/red/anticorner/contrasted, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) -"hrA" = ( -/obj/machinery/space_heater, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/railing{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "hrJ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/cargo/storage) -"hrK" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 +"hrO" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Security Checkpoint" }, -/turf/open/floor/iron/dark/side{ - dir = 4 +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brigoutpost" }, -/area/station/service/chapel) +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/brig/entrance) "hrS" = ( /obj/item/trash/raisins, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hrY" = ( +/obj/structure/stairs/west, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "hrZ" = ( /obj/structure/chair/office/light{ dir = 4 @@ -24619,6 +25648,14 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/break_room) +"hso" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/turf_decal/weather/snow, +/turf/open/floor/plating/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hsr" = ( /obj/structure/table/wood, /obj/item/newspaper, @@ -24627,6 +25664,9 @@ /area/station/security/prison/rec) "hsx" = ( /obj/machinery/vending/cigarette, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "hsy" = ( @@ -24642,22 +25682,6 @@ "hsB" = ( /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"hsC" = ( -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 6 - }, -/obj/machinery/light_switch/directional/south, -/obj/machinery/camera{ - c_tag = "Chief Medical Office South"; - dir = 4; - network = list("ss13","medbay") - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/cmo) "hsN" = ( /obj/structure/table, /obj/item/storage/box/firingpins, @@ -24679,14 +25703,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"htg" = ( +/obj/structure/fireplace, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "hth" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"hto" = ( -/obj/structure/girder, -/turf/closed/wall, -/area/station/maintenance/starboard/aft) "htp" = ( /obj/machinery/door/poddoor/preopen{ id = "xenobio2"; @@ -24707,6 +25732,14 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"hts" = ( +/obj/structure/table/wood, +/obj/item/wallframe/camera{ + pixel_y = -2; + pixel_x = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "hty" = ( /obj/item/stack/rods, /turf/open/misc/asteroid/snow/icemoon, @@ -24714,6 +25747,25 @@ "htB" = ( /turf/open/floor/carpet/red, /area/station/security/prison/work) +"htH" = ( +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Psychology Office"; + name = "Psychology Office Fax Machine" + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay Psychology"; + network = list("ss13","medbay") + }, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/psychology) +"htJ" = ( +/obj/effect/spawner/random/engineering/atmospherics_portable, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "htO" = ( /obj/structure/chair/office{ dir = 4 @@ -24746,16 +25798,16 @@ "hul" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/status_display/evac/directional/north, -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /turf/open/floor/iron, /area/station/commons/locker) -"hut" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/rcl/pre_loaded, +"huq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, /turf/open/floor/iron, -/area/station/command/heads_quarters/ce) +/area/station/science/xenobiology) "huB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24795,25 +25847,6 @@ }, /turf/open/floor/iron, /area/station/service/chapel) -"huM" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/wrench, -/obj/item/assembly/infra{ - pixel_x = 3 - }, -/obj/item/assembly/igniter{ - pixel_y = -2 - }, -/obj/effect/turf_decal/trimline/neutral/warning, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/item/assembly/signaler, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/dark/smooth_edge, -/area/station/ai_monitored/command/storage/eva) "huN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24843,23 +25876,25 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"hvi" = ( -/obj/structure/closet/crate/freezer/food{ - name = "cooler" - }, -/obj/item/reagent_containers/cup/glass/ice, -/obj/item/reagent_containers/cup/glass/ice, -/obj/item/reagent_containers/cup/glass/ice, -/obj/item/reagent_containers/cup/glass/ice, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) "hvm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"hvt" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/surgery_tray/full/morgue, +/obj/structure/table/reinforced, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/turf_decal/bot_white, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"hvQ" = ( +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "hvS" = ( /obj/effect/landmark/start/depsec/engineering, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24938,6 +25973,30 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/upper) +"hxa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/engineering{ + name = "Utilities Room" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"hxe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner, +/area/station/engineering/atmos) "hxs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24947,30 +26006,30 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"hxB" = ( -/obj/machinery/door/airlock{ - id_tag = "Toilet2"; - name = "Unit 2" - }, -/turf/open/floor/iron/textured, -/area/station/commons/toilet) "hxE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/miningdock) -"hxI" = ( -/turf/open/floor/iron/dark/side{ - dir = 5 +"hxJ" = ( +/obj/structure/fence/corner{ + dir = 10 }, -/area/station/service/chapel) -"hxY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"hyc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) "hyd" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -24980,6 +26039,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/break_room) +"hye" = ( +/obj/structure/table/wood, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/box/white/corners, +/obj/item/storage/fancy/cigarettes/cigars{ + pixel_y = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/bar) "hyj" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 1 @@ -24991,22 +26060,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/lobby) -"hyL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) -"hyQ" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/landmark/navigate_destination/hydro, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "hyV" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/testlab) @@ -25016,16 +26069,10 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"hzd" = ( -/obj/structure/stairs/north, -/turf/open/floor/iron, -/area/station/service/chapel) -"hzw" = ( -/obj/structure/fence/cut/large{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"hzb" = ( +/obj/structure/sign/xenobio_guide/directional/north, +/turf/open/openspace, +/area/station/science/xenobiology) "hzz" = ( /obj/structure/table/glass, /obj/item/clothing/gloves/latex, @@ -25048,6 +26095,41 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"hzG" = ( +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/machinery/button/door/directional/north{ + id = "Secure Gate"; + name = "Cell Shutters"; + req_access = list("brig"); + pixel_x = 6 + }, +/obj/machinery/button/door/directional/north{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + req_access = list("brig"); + pixel_y = 35; + pixel_x = 6 + }, +/obj/machinery/button/door/directional/north{ + id = "briggate"; + name = "Front Gate Shutters"; + req_access = list("brig"); + pixel_y = 12; + pixel_x = 6 + }, +/obj/machinery/button/door/directional/north{ + id = "BrigLock"; + name = "Brig Lockdown"; + req_access = list("brig"); + pixel_y = 0; + pixel_x = 6 + }, +/turf/open/floor/iron/showroomfloor, +/area/station/security/warden) "hzH" = ( /obj/machinery/camera/motion/directional/west{ c_tag = "MiniSat Core Hallway"; @@ -25077,6 +26159,21 @@ }, /turf/open/openspace, /area/station/ai_monitored/security/armory/upper) +"hzU" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"hzV" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "hzY" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -25086,34 +26183,42 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/brig/entrance) +"hAl" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/starboard) "hAm" = ( /turf/open/floor/iron/white/side{ dir = 4 }, /area/station/science/research) -"hAo" = ( -/obj/machinery/photocopier, -/obj/effect/turf_decal/siding/wood/corner, -/obj/structure/sign/calendar/directional/west, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) -"hAq" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/corner, -/area/station/command/heads_quarters/rd) +"hAE" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "hAG" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/iron/large, /area/station/hallway/secondary/entry) -"hAK" = ( -/obj/machinery/holopad, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark/smooth_half, -/area/station/service/hydroponics) +"hAM" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hAO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25133,10 +26238,6 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) -"hAS" = ( -/obj/machinery/light/cold/directional/east, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "hAT" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -25148,16 +26249,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/genetics) -"hAW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"hAU" = ( +/obj/machinery/light_switch/directional/west, +/obj/structure/closet{ + name = "janitorial supplies" + }, +/obj/item/pushbroom, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "hBd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"hBf" = ( +/obj/structure/fence/door{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hBg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25278,6 +26391,23 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/port/fore) +"hDe" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/machinery/button/door/directional/north{ + id = "Lakeview_Bathroom"; + req_access = list("robotics") + }, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/freezer, +/area/mine/eva/lower) +"hDf" = ( +/obj/structure/cable, +/turf/open/floor/iron/chapel{ + dir = 1 + }, +/area/station/service/chapel) "hDh" = ( /obj/machinery/computer/atmos_alert{ dir = 8 @@ -25287,50 +26417,37 @@ "hDp" = ( /turf/open/floor/engine, /area/station/science/genetics) -"hDu" = ( -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/item/stack/package_wrap{ - pixel_y = 2 +"hDq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 }, -/obj/item/book/manual/chef_recipes, -/obj/item/holosign_creator/robot_seat/restaurant, -/obj/structure/rack, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) +"hDv" = ( +/obj/machinery/shower/directional/north, +/turf/open/floor/iron/smooth, +/area/mine/eva/lower) "hDA" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb) -"hDC" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) "hDG" = ( /obj/docking_port/stationary/random/icemoon{ dir = 4; name = "lavaland"; shuttle_id = "pod_4_lavaland" }, -/turf/open/misc/asteroid/snow/icemoon, +/turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "hDK" = ( /turf/open/floor/iron, /area/mine/laborcamp) +"hDL" = ( +/obj/item/kirbyplants/random/dead, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "hDU" = ( /turf/closed/wall/r_wall, /area/station/command/gateway) @@ -25344,6 +26461,14 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron/dark, /area/mine/eva) +"hED" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore) "hEG" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Control" @@ -25359,12 +26484,22 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"hEV" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/bureaucracy/briefcase, -/obj/item/taperecorder/empty, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +"hEP" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 4 + }, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology) "hEW" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -25392,18 +26527,22 @@ /obj/structure/frame/machine, /turf/open/floor/plating, /area/station/construction) -"hFj" = ( -/obj/machinery/computer/security/telescreen/entertainment/directional/south, -/obj/machinery/status_display/evac/directional/east, -/obj/structure/chair/sofa/right/brown{ - dir = 1 +"hFm" = ( +/obj/effect/spawner/random/structure/chair_flipped{ + dir = 8 }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "hFr" = ( /obj/structure/flora/grass/both/style_2, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"hFw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/fore) "hFC" = ( /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 2 @@ -25420,46 +26559,33 @@ }, /turf/open/floor/iron/cafeteria, /area/station/security/prison/work) +"hFJ" = ( +/obj/machinery/computer/station_alert, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/engine/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "hFL" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 }, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"hFN" = ( -/obj/machinery/light/small/directional/south, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored/graveyard) -"hFU" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 +"hFR" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 }, -/obj/machinery/door/airlock/external/glass{ - name = "Supply Door Airlock" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/storage) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) "hFW" = ( /obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"hFX" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"hGg" = ( -/obj/structure/sign/warning/directional/west{ - desc = "A sign warning to watch for moving minecarts beyond this point." - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "hGh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -25496,6 +26622,22 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"hHl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/status_display/shuttle{ + pixel_x = -32; + shuttle_id = "arrival" + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/entry) "hHp" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -25517,8 +26659,25 @@ "hHu" = ( /obj/structure/disposalpipe/segment, /obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"hHz" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "hHD" = ( /obj/machinery/camera/directional/south{ c_tag = "Construction Area" @@ -25528,13 +26687,6 @@ }, /turf/open/floor/plating, /area/station/construction) -"hHF" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "hHG" = ( /turf/open/cliff/snowrock, /area/icemoon/surface/outdoors/nospawn) @@ -25552,18 +26704,22 @@ }, /turf/open/floor/engine/n2, /area/station/engineering/atmos) -"hIe" = ( -/obj/structure/sign/warning/no_smoking/circle/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/structure/sink/directional/west, -/turf/open/floor/iron/white, -/area/station/medical/cryo) "hIj" = ( /obj/machinery/camera/directional/south{ c_tag = "Port Hallway East" }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"hIv" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hIA" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ @@ -25571,15 +26727,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) -"hIE" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Service - Electrical Maintenace Lower" - }, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/lesser) "hIH" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -25593,17 +26740,33 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/service/chapel) -"hIS" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 +"hIO" = ( +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hosspace"; + name = "Privacy Shutters" }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/command/heads_quarters/hos) "hIU" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"hIW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms/laundry) "hJe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -25622,6 +26785,17 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/science/xenobiology) +"hJo" = ( +/obj/structure/table, +/obj/item/plate, +/obj/item/food/piedough, +/obj/effect/spawner/random/food_or_drink/cake_ingredients, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/obj/item/kitchen/rollingpin, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "hJp" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -25632,15 +26806,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"hJC" = ( -/obj/machinery/light_switch/directional/west, -/obj/structure/closet{ - name = "janitorial supplies" - }, -/obj/item/pushbroom, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "hJD" = ( /obj/structure/ladder, /turf/open/floor/wood, @@ -25653,11 +26818,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"hJF" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/warning/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/fore) "hJG" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/decal/cleanable/dirt, @@ -25666,33 +26826,14 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"hJS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/machinery/duct, -/obj/effect/turf_decal/siding/dark{ - dir = 10 - }, -/turf/open/floor/iron/checker, -/area/station/hallway/secondary/service) +"hJH" = ( +/turf/open/openspace, +/area/station/science/research) "hJY" = ( /obj/structure/closet/l3closet/janitor, /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/service/janitor) -"hKn" = ( -/obj/machinery/biogenerator, -/obj/machinery/door/window/left/directional/south{ - name = "Biogenerator Access"; - req_access = list("hydroponics") - }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "hKr" = ( /obj/structure/table/glass, /obj/item/book/manual/wiki/infections{ @@ -25729,23 +26870,19 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/tcommsat/computer) -"hKL" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"hKT" = ( -/obj/machinery/light/floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) "hKV" = ( /obj/structure/chair, /turf/open/floor/iron, /area/station/cargo/storage) +"hKY" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=1"; + location = "Medbay" + }, +/obj/effect/turf_decal/bot, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/medical/central) "hLf" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -25753,12 +26890,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/brig/upper) -"hLh" = ( -/obj/structure/closet/crate/grave/filled, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/icemoon/underground/explored/graveyard) "hLk" = ( /obj/structure/table, /obj/item/paper, @@ -25769,35 +26900,15 @@ network = list("labor") }, /obj/machinery/flasher/directional/west{ - id = "GulagCell 1" + id = "GulagCell 2" }, /turf/open/floor/iron, /area/mine/laborcamp) -"hLy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, -/area/station/service/bar/atrium) -"hLO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) +"hLw" = ( +/obj/structure/flora/grass/both/style_3, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hLS" = ( /obj/machinery/computer/atmos_control/nitrous_tank{ dir = 8 @@ -25807,6 +26918,19 @@ }, /turf/open/floor/iron/white/corner, /area/station/engineering/atmos) +"hLW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"hLX" = ( +/obj/structure/girder, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "hLY" = ( /obj/structure/cable, /obj/structure/chair, @@ -25834,12 +26958,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/chapel) -"hMs" = ( -/obj/effect/landmark/start/hangover, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +"hMv" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "hMw" = ( /obj/structure/bookcase/random/fiction, /turf/open/floor/plating, @@ -25850,6 +26974,12 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) +"hMA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "hMB" = ( /obj/structure/table, /obj/item/stack/cable_coil, @@ -25884,23 +27014,16 @@ /turf/open/floor/iron/smooth, /area/mine/laborcamp/security) "hMM" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 }, -/area/station/hallway/secondary/service) +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"hMQ" = ( +/obj/structure/sign/warning/xeno_mining/directional/east, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hMS" = ( /obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -25909,6 +27032,13 @@ /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/white, /area/station/security/prison/safe) +"hMZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/stone, +/area/station/commons/lounge) "hNg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -25923,6 +27053,27 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/wood, /area/station/service/lawoffice) +"hNn" = ( +/obj/effect/turf_decal/weather/snow/corner, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) +"hNp" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"hNq" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/structure/railing, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "hNx" = ( /obj/machinery/camera/directional/south{ c_tag = "Holodeck - South"; @@ -25937,13 +27088,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/large, /area/station/hallway/primary/port) -"hNF" = ( -/obj/structure/fence{ - dir = 4 - }, -/obj/structure/sign/warning, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "hNI" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/bot, @@ -25952,19 +27096,35 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"hNK" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/mess, +"hNJ" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Port Bow Solar Control" + }, +/obj/structure/cable, +/obj/structure/sign/warning/cold_temp/directional/north, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/solars/port/fore) "hNM" = ( -/obj/structure/sign/warning/no_smoking/directional/north, /obj/structure/cable, /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 }, +/obj/machinery/light_switch/directional/north, /turf/open/floor/iron, /area/station/engineering/storage) +"hNU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "hOc" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -25998,6 +27158,10 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"hOG" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/grass, +/area/station/service/hydroponics) "hOU" = ( /obj/machinery/camera/directional/west{ c_tag = "Xenobiology Pens - Port Fore"; @@ -26051,6 +27215,12 @@ "hPs" = ( /turf/closed/wall/r_wall, /area/station/security/prison/work) +"hPv" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hPz" = ( /obj/structure/chair{ dir = 8 @@ -26058,6 +27228,23 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) +"hPD" = ( +/obj/structure/bodycontainer/morgue/beeper_off{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/medical/morgue) "hPK" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -26070,19 +27257,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"hPS" = ( -/obj/effect/landmark/start/botanist, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/structure/sign/calendar/directional/north, -/obj/machinery/camera{ - c_tag = "Service - Botany Equipment"; - dir = 9 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "hPT" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -26129,19 +27303,21 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"hQO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"hQv" = ( +/obj/item/kirbyplants/random/dead, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"hQK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Escape" +/obj/structure/table, +/obj/item/trash/candle{ + pixel_y = 12 }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "hQP" = ( /obj/structure/cable, /obj/machinery/airalarm/directional/east, @@ -26155,26 +27331,10 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"hRe" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) -"hRp" = ( -/obj/machinery/button/door/directional/north{ - id = "visitation"; - name = "Visitation Shutters"; - pixel_x = 6; - pixel_y = -24; - req_access = list("brig") - }, -/obj/machinery/button/flasher{ - id = "visitorflash"; - pixel_x = -6; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted, -/turf/open/floor/iron, -/area/station/security/prison/visit) +"hQW" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "hRt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -26220,11 +27380,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"hRF" = ( -/obj/structure/cable, -/obj/effect/spawner/random/vending/snackvend, -/turf/open/floor/iron/dark, -/area/station/science/breakroom) "hRG" = ( /obj/machinery/shower/directional/north, /obj/structure/window/reinforced/spawner/directional/west, @@ -26241,11 +27396,30 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"hRQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Xenobiology Pens Hall - Fore"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "hRX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"hSe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/mine/eva) "hSl" = ( /obj/effect/turf_decal/trimline/neutral/mid_joiner{ dir = 8 @@ -26305,6 +27479,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"hTk" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Supply Door Airlock"; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) "hTm" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/meter, @@ -26312,6 +27497,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"hTq" = ( +/obj/structure/cable, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/aft) +"hTu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "sci-med-passthrough" + }, +/obj/machinery/door/airlock/research{ + name = "Research Access" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/turf_decal/tile/purple/full, +/turf/open/floor/iron/white/smooth_large, +/area/station/maintenance/aft/greater) "hTw" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/half{ @@ -26319,6 +27526,17 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) +"hTx" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay Stasis Center South"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "hTB" = ( /obj/structure/table, /obj/item/clothing/suit/jacket/leather{ @@ -26331,6 +27549,11 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"hTI" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/icemoon, +/area/station/maintenance/port/lesser) "hTJ" = ( /obj/machinery/camera/directional/north{ c_tag = "Solar Maintenance - North West Access" @@ -26339,32 +27562,21 @@ /obj/effect/spawner/random/engineering/tank, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"hTY" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics) "hUe" = ( /obj/effect/landmark/start/hangover, /obj/machinery/status_display/evac/directional/south, /turf/open/floor/wood, /area/station/service/library) -"hUf" = ( -/obj/structure/table/glass, -/obj/item/assembly/signaler{ - pixel_x = 6; - pixel_y = 5 - }, -/obj/item/reagent_containers/dropper{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/stack/cable_coil, -/obj/item/pen{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/research) "hUi" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -26372,19 +27584,6 @@ /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"hUl" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel" - }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/command/hop, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "hUx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26439,6 +27638,17 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central) +"hVf" = ( +/obj/structure/chair{ + pixel_y = -2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) "hVo" = ( /obj/effect/spawner/random/maintenance, /obj/structure/table, @@ -26464,6 +27674,11 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/smooth, /area/station/maintenance/port/lesser) +"hVz" = ( +/obj/effect/spawner/random/maintenance/two, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "hVB" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -26473,6 +27688,15 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/mine/eva) +"hVR" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "hVX" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end{ dir = 1 @@ -26495,13 +27719,49 @@ /obj/machinery/teleport/hub, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) -"hWv" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "botany_chasm_and_wolf_shutters" +"hWl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/service/hydroponics) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"hWt" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"hWz" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"hWD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) "hWI" = ( /obj/effect/turf_decal/box, /obj/effect/spawner/random/structure/closet_empty/crate/with_loot, @@ -26509,40 +27769,17 @@ /obj/structure/sign/poster/official/wtf_is_co2/directional/north, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) +"hWR" = ( +/obj/structure/table/wood, +/obj/item/paper/crumpled, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "hWV" = ( /obj/machinery/light/small/directional/north, /obj/machinery/space_heater, /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plating, /area/station/medical/virology) -"hWW" = ( -/obj/structure/sign/warning/directional/south, -/obj/structure/sign/warning/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"hWX" = ( -/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, -/obj/machinery/door/airlock/medical/glass, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"hXm" = ( -/obj/effect/spawner/random/vending/colavend, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) -"hXt" = ( -/obj/machinery/camera{ - c_tag = "Starboard Primary Hallway Center East" - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "hXC" = ( /obj/structure/chair{ dir = 8 @@ -26554,15 +27791,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"hXD" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/bot_red, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "hXU" = ( /obj/machinery/newscaster/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, @@ -26582,12 +27810,6 @@ /obj/effect/landmark/navigate_destination/disposals, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"hYt" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "hYy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -26596,6 +27818,43 @@ /obj/item/kirbyplants/random, /turf/open/floor/wood, /area/station/security/prison/rec) +"hYD" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"hYE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) +"hYG" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "packageSort2" + }, +/obj/structure/plasticflaps{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/sorting) +"hYL" = ( +/obj/structure/closet/lasertag/blue, +/obj/effect/landmark/start/hangover/closet, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) +"hYM" = ( +/obj/structure/lattice, +/obj/structure/sign/poster/official/help_others/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "hYP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26608,6 +27867,23 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"hZb" = ( +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + id = "cantena_curtains" + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) +"hZc" = ( +/obj/effect/landmark/start/clown, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "hZe" = ( /obj/effect/turf_decal/trimline/yellow/warning{ dir = 1 @@ -26615,10 +27891,71 @@ /obj/effect/turf_decal/trimline/yellow/warning, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"hZf" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Bridge East Access" + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"hZo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/storage/box, +/obj/effect/spawner/random/bureaucracy/birthday_wrap, +/obj/effect/spawner/random/bureaucracy/birthday_wrap, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/departments/maint/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) +"hZu" = ( +/obj/structure/sign/warning/secure_area{ + pixel_y = 32 + }, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"hZJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + color = "#ff0000"; + dir = 4; + name = "Scrubbers multi deck pipe adapter" + }, +/obj/structure/sign/poster/official/safety_eye_protection/directional/north, +/turf/open/floor/plating, +/area/station/medical/chemistry) +"hZN" = ( +/obj/structure/sign/warning/secure_area/directional/west, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "hZQ" = ( /obj/item/stack/sheet/iron/five, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"hZT" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"hZW" = ( +/obj/structure/sink/kitchen/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "iag" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, @@ -26650,12 +27987,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/fitness) -"iaz" = ( -/obj/structure/girder, -/obj/structure/grille, +"iaB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/structure/sign/departments/botany/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/aft/greater) +/area/station/maintenance/starboard/lesser) "iaF" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron, @@ -26766,6 +28105,13 @@ }, /turf/open/floor/wood, /area/station/security/prison/rec) +"ibJ" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/computer/slot_machine{ + name = "two-armed bandit" + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "ibM" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -26778,10 +28124,10 @@ }, /turf/open/floor/plating, /area/station/service/chapel) -"ica" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/medical/cryo) +"ich" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/station/hallway/secondary/entry) "ici" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26807,17 +28153,6 @@ dir = 4 }, /area/mine/living_quarters) -"icv" = ( -/obj/machinery/door/window/left/directional/east{ - name = "Coffin Storage"; - req_access = list("chapel_office") - }, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted, -/turf/open/floor/iron/dark/side{ - dir = 6 - }, -/area/station/service/chapel) "icA" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor/left/directional/east{ @@ -26862,6 +28197,13 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"icK" = ( +/obj/machinery/firealarm/directional/east, +/obj/structure/railing, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/science/xenobiology) "icQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26904,13 +28246,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/service/hydroponics/garden) -"ida" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/structure/sign/departments/chemistry/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "idi" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters{ @@ -26926,26 +28261,16 @@ /obj/effect/landmark/start/depsec/science, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"idp" = ( -/obj/machinery/button/door/directional/east{ - id = "cmoprivacy"; - name = "CMO Shutter Control"; - pixel_y = 23; - req_access = list("cmo") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/cmo/directional/east, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/cmo) -"idr" = ( -/obj/structure/stairs/north, -/obj/structure/railing{ - dir = 8 +"idm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "idt" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, @@ -26961,12 +28286,9 @@ }, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) -"idH" = ( -/obj/structure/railing/wooden_fence{ - dir = 6 - }, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) +"idI" = ( +/turf/open/floor/stone, +/area/station/commons/lounge) "idN" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/machinery/door/window/brigdoor/left/directional/south{ @@ -26984,16 +28306,49 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) -"iew" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) +"idP" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"idU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/hatch{ + name = "Morgue"; + dir = 4 + }, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"iem" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/stairs/north, +/turf/open/floor/iron/stairs/medium, +/area/station/cargo/storage) "ieG" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ieJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "ifa" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -27002,25 +28357,12 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/mine/laborcamp/security) -"ifd" = ( -/obj/item/radio/intercom/directional/north, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "ife" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) -"ifA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/cold_temp, -/turf/open/floor/plating/icemoon, -/area/station/maintenance/solars/port/aft) "ifX" = ( /obj/machinery/vending/wardrobe/cargo_wardrobe, /turf/open/floor/iron, @@ -27039,6 +28381,11 @@ /obj/item/soap/nanotrasen, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) +"igd" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) "igm" = ( /turf/closed/wall/ice, /area/mine/living_quarters) @@ -27046,15 +28393,24 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"igq" = ( -/obj/machinery/recharge_station, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/mine/eva/lower) -"igu" = ( -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +"igt" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/plaques/kiddie/library{ + pixel_x = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"igw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/sign/warning/radiation/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "igx" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 5 @@ -27065,20 +28421,23 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/glass, /area/station/security/lockers) -"igH" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"igG" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/structure/closet/emcloset/anchored, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/port/aft) "igL" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/mine/storage) +"igM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "igQ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -27132,25 +28491,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) -"ihN" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio4"; - name = "Xenobio Pen 4 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"iif" = ( -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/machinery/biogenerator, -/turf/open/floor/iron, -/area/station/service/hydroponics) "iih" = ( /obj/effect/spawner/xmastree, /obj/effect/turf_decal/tile/neutral{ @@ -27166,6 +28506,12 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"iis" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "iiy" = ( /obj/machinery/firealarm/directional/north, /obj/structure/chair{ @@ -27178,16 +28524,17 @@ /turf/open/floor/iron, /area/station/cargo/lobby) "iiB" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 8 +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) +"iiE" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, -/area/station/service/hydroponics) +/area/station/service/bar) "iiH" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "innerbrig"; @@ -27217,6 +28564,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"ijd" = ( +/obj/structure/table/wood/poker, +/obj/item/trash/candle{ + pixel_y = 3 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "ijj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27244,14 +28598,21 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"ijw" = ( -/obj/structure/disposalpipe/segment{ +"ijv" = ( +/obj/effect/decal/cleanable/blood/tracks{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/medical/morgue) "ijC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27278,11 +28639,11 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/brig/upper) -"ijW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/structure/sign/warning/secure_area/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/explab) +"ijV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva/lower) "ijY" = ( /obj/structure/flora/rock/icy/style_random, /turf/open/misc/asteroid/snow/icemoon, @@ -27306,10 +28667,6 @@ /obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/storage) -"ike" = ( -/obj/structure/fence/cut/medium, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "ikk" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 4 @@ -27336,12 +28693,6 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/north, /turf/open/floor/wood, /area/station/service/library) -"iku" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) "ikz" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 @@ -27373,6 +28724,13 @@ /obj/structure/reagent_dispensers/wall/peppertank/directional/south, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"ikL" = ( +/obj/machinery/status_display/ai/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "ikO" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -27390,10 +28748,19 @@ dir = 1 }, /area/station/service/chapel) -"ile" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/station/security/courtroom) +"iln" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) +"ilq" = ( +/obj/machinery/vending/games, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/sepia, +/area/station/service/library) "ilv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -27403,6 +28770,13 @@ "ily" = ( /turf/open/openspace, /area/station/science/xenobiology) +"ilz" = ( +/obj/machinery/computer/exoscanner_control{ + dir = 1 + }, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark, +/area/station/cargo/drone_bay) "ilD" = ( /obj/structure/lattice/catwalk, /turf/open/openspace/icemoon/keep_below, @@ -27438,18 +28812,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"imk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/item/rack_parts, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"imy" = ( -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "imH" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/gloves, @@ -27457,15 +28819,13 @@ /obj/item/clothing/mask/breath, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"imI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/item/kirbyplants/random, -/obj/machinery/light/warm/directional/south, -/obj/machinery/digital_clock/directional/south, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +"imJ" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible/layer2, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "imO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -27474,35 +28834,21 @@ dir = 4 }, /obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/official/fruit_bowl/directional/east, /turf/open/floor/iron/white/corner{ dir = 1 }, /area/station/commons/storage/art) -"imV" = ( -/obj/structure/stairs/east, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) -"inh" = ( -/obj/structure/stairs/west, -/obj/structure/railing, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/iron/white, -/area/station/science/ordnance) "ini" = ( /obj/structure/falsewall, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"int" = ( -/obj/structure/disposalpipe/segment, +"inn" = ( /obj/structure/cable, -/obj/structure/sign/departments/botany/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/turf/open/floor/iron/stairs/left{ + dir = 4 + }, +/area/station/engineering/lobby) "inE" = ( /turf/open/floor/iron/corner, /area/station/engineering/lobby) @@ -27514,37 +28860,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) -"inN" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/button/door/directional/south{ - id = "minecraft_shutter"; - req_one_access = list("hydroponics", "kitchen"); - name = "Cart Access"; - desc = "Opens the railway leading into the Kitchen Coldroom." - }, -/obj/structure/minecart_rail/railbreak{ - dir = 4 - }, -/obj/structure/closet/crate/miningcar{ - name = "delivery cart"; - desc = "Used for quick transit of fresh produce to the kitchen. Just give it a shove." - }, -/obj/item/storage/bag/plants, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"inP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "inQ" = ( /obj/structure/table/wood, /obj/item/paper_bin/carbon{ @@ -27573,12 +28888,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"ioi" = ( -/obj/structure/cable, -/mob/living/basic/bear/snow/misha, -/obj/structure/bed/dogbed/misha, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/hos) "iol" = ( /obj/machinery/camera/directional/south{ c_tag = "MiniSat Teleporter"; @@ -27593,10 +28902,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"ion" = ( -/obj/effect/spawner/random/trash/mess, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "ior" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27610,17 +28915,16 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"iot" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" +"iov" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm6"; + name = "Cabin 2" }, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/commons/dorms) "iox" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -27637,6 +28941,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"ioE" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/lobby) "ioK" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -27653,6 +28966,15 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) +"ioQ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "ipd" = ( /obj/machinery/light/small/directional/south, /obj/machinery/camera/directional/south{ @@ -27668,31 +28990,16 @@ /turf/open/genturf, /area/icemoon/underground/unexplored/rivers/deep/shoreline) "ipg" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/siding/white{ +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 }, -/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ - id = "cantena_curtains" - }, -/turf/open/floor/wood, -/area/station/commons/lounge) +/turf/open/floor/plating, +/area/station/service/chapel) "ipw" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"ipx" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm6"; - name = "Cabin 2" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/commons/dorms) "ipA" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -27702,35 +29009,12 @@ "ipE" = ( /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) -"ipF" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/pen/red, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/folder/yellow, -/obj/machinery/keycard_auth/directional/west{ - pixel_x = -25; - pixel_y = -5 - }, -/obj/machinery/button/door/directional/west{ - id = "qmprivacy"; - name = "Privacy Shutters Control"; - pixel_y = 5; - req_access = list("qm") - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "ipM" = ( /obj/structure/transit_tube/curved{ dir = 4 }, /obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "iqn" = ( @@ -27743,35 +29027,29 @@ }, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) -"iqr" = ( -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/departmental, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "iqu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"iqx" = ( -/obj/structure/railing, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/station/science/ordnance/office) -"iqA" = ( -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "iqC" = ( /obj/structure/table, /obj/item/flashlight/lamp, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"iqW" = ( +/obj/machinery/door/poddoor/massdriver_chapel{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/station/service/chapel) +"irn" = ( +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/fore) "irp" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -27809,32 +29087,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"irM" = ( -/obj/effect/turf_decal/stripes/asteroid/line{ - dir = 1 - }, -/obj/structure/table/reinforced/plastitaniumglass, -/obj/machinery/microwave, -/obj/machinery/camera/directional/north{ - c_tag = "Mining B-1 Crater Observatory" - }, -/obj/effect/turf_decal/tile/dark/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white/side, -/area/mine/living_quarters) -"irO" = ( -/obj/structure/ladder{ - name = "chemistry lab access" - }, -/obj/machinery/camera{ - c_tag = "Medbay Chemistry Lab - North"; - dir = 9; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/stripes/end, -/turf/open/floor/iron/dark/textured_large, -/area/station/medical/chemistry) "irQ" = ( /obj/structure/chair/pew{ dir = 1 @@ -27844,18 +29096,6 @@ dir = 8 }, /area/station/service/chapel) -"irX" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/structure/sign/warning/pods/directional/west, -/obj/machinery/light/directional/north, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/hallway/secondary/entry) "isb" = ( /obj/machinery/atmospherics/components/binary/pump/off{ dir = 1; @@ -27885,16 +29125,16 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) -"isj" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "isl" = ( /obj/structure/fence/door{ name = "graveyard" }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"isq" = ( +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "ist" = ( /obj/structure/chair/sofa/left/brown, /obj/effect/landmark/start/psychologist, @@ -27916,6 +29156,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) +"isC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/wood/parquet, +/area/station/service/bar/backroom) "isP" = ( /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, @@ -27935,6 +29185,14 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"itf" = ( +/obj/effect/turf_decal/stripes/box, +/obj/structure/ladder, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/mine/eva) "itj" = ( /turf/open/floor/iron/white, /area/station/science/genetics) @@ -27966,8 +29224,19 @@ /area/icemoon/surface/outdoors/nospawn) "itY" = ( /obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"iub" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/engineering/lobby) "ium" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -28009,19 +29278,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"iuE" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 8 - }, -/obj/machinery/chem_master/condimaster{ - desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; - name = "SapMaster XP" - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "iuH" = ( /obj/effect/turf_decal/siding/blue{ dir = 8 @@ -28031,6 +29287,16 @@ }, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) +"iuL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "iuS" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/glass/reinforced, @@ -28040,6 +29306,10 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"ivm" = ( +/obj/structure/sign/poster/official/random/directional/north, +/turf/closed/wall, +/area/station/maintenance/port/aft) "ivo" = ( /obj/machinery/airalarm/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -28048,11 +29318,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) -"ivp" = ( -/obj/structure/flora/bush/flowers_yw/style_random, -/obj/structure/flora/bush/sparsegrass/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) "ivq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -28060,25 +29325,48 @@ }, /turf/open/floor/iron, /area/mine/laborcamp/security) +"ivw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron, +/area/station/security/prison/visit) "ivB" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ivC" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 +"ivF" = ( +/turf/closed/wall, +/area/station/maintenance/disposal) +"ivG" = ( +/obj/structure/table, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 }, -/obj/structure/railing{ - dir = 1 +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -8; + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/crowbar, +/obj/item/radio/headset/headset_sci{ + pixel_x = -3 }, +/obj/machinery/newscaster/directional/east, +/obj/machinery/light/directional/east, /turf/open/floor/iron, -/area/station/service/hydroponics) -"ivF" = ( -/turf/closed/wall, -/area/station/maintenance/disposal) +/area/station/science/robotics/lab) "ivH" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -28090,34 +29378,9 @@ }, /turf/open/floor/wood, /area/station/service/library) -"ivJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "iwf" = ( /turf/closed/wall/r_wall, /area/mine/mechbay) -"iwj" = ( -/obj/structure/table, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/five, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"iwq" = ( -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) -"iwx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Xenobiology Maintenance" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "iwz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28142,6 +29405,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"iwQ" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "iwS" = ( /turf/closed/wall, /area/station/commons/dorms/laundry) @@ -28149,6 +29419,15 @@ /obj/structure/railing, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"ixa" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "ixb" = ( /obj/machinery/button/door/directional/south{ id = "vacantofficemaintshutter"; @@ -28158,21 +29437,12 @@ }, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) -"ixp" = ( -/obj/machinery/door/airlock/wood{ - name = "Bar Backroom" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"ixl" = ( +/obj/structure/sign/plaques/kiddie/devils_tooth{ + pixel_y = 32 }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/turf/open/floor/iron/dark/textured_half, -/area/station/service/bar/backroom) +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "ixu" = ( /obj/machinery/camera/directional/north{ c_tag = "Teleporter" @@ -28243,12 +29513,14 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"iyF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/blobstart, +"iyJ" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/textured, +/area/station/commons/toilet) "iyK" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -28262,13 +29534,6 @@ /obj/machinery/photocopier, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"iyP" = ( -/obj/structure/table, -/obj/item/aicard, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/command/heads_quarters/rd) "iyQ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28315,6 +29580,14 @@ "izC" = ( /turf/closed/wall, /area/station/service/bar/atrium) +"izD" = ( +/obj/machinery/light/directional/west, +/obj/machinery/vending/assist, +/obj/structure/sign/poster/official/science/directional/north, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) "izI" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment, @@ -28335,18 +29608,19 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/medical/chemistry) -"izU" = ( -/obj/structure/table/wood, -/obj/item/instrument/saxophone, -/obj/item/instrument/piano_synth, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/grimy, -/area/station/commons/lounge) "izY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/visit) +"iAc" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/departments/telecomms/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "iAf" = ( /turf/closed/wall/mineral/wood, /area/station/maintenance/space_hut/cabin) @@ -28356,41 +29630,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"iAp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Mining B-1 Hallway South"; - dir = 10 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/mine/eva) -"iAt" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"iAK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"iAA" = ( -/obj/machinery/hydroponics/constructable, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/cultivator, -/obj/item/seeds/potato, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 8 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/south{ + pixel_x = 5 }, -/turf/open/floor/iron/dark, -/area/mine/laborcamp) +/turf/open/floor/wood/parquet, +/area/station/service/theater) "iAO" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 @@ -28416,20 +29663,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) -"iBd" = ( -/obj/structure/fireplace{ - pixel_x = -32 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/camera{ - c_tag = "Mining Break Room"; - dir = 9 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = 9 - }, -/turf/open/floor/stone, -/area/mine/eva/lower) "iBe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -28444,19 +29677,18 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) -"iBj" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, +"iBi" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/railing/corner{ - dir = 1 +/obj/structure/table, +/obj/item/food/grown/carrot, +/obj/item/food/grown/carrot{ + pixel_y = 4; + pixel_x = -2 }, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "iBl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28465,19 +29697,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) -"iBz" = ( -/obj/structure/sign/warning/no_smoking/directional/south, -/turf/open/openspace, -/area/station/engineering/atmos/storage) +"iBo" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/treatment_center) "iBF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/sorting) -"iBM" = ( -/obj/structure/chair/wood, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "iBO" = ( /obj/machinery/modular_computer/preset/civilian{ dir = 4 @@ -28486,10 +29720,6 @@ dir = 4 }, /area/station/science/explab) -"iCe" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "iCg" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -28497,22 +29727,37 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"iCj" = ( +/obj/machinery/computer/operating{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/aft) +"iCo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"iCp" = ( +/obj/machinery/vatgrower, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/cable, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) "iCq" = ( /obj/structure/rack, /obj/item/stack/rods/ten, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"iCw" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/turf/open/floor/iron/white/corner{ - dir = 4 - }, -/area/station/hallway/secondary/entry) "iCz" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -28529,15 +29774,6 @@ }, /turf/open/floor/plating, /area/station/science/robotics/lab) -"iCD" = ( -/obj/machinery/door/airlock/external{ - name = "External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "iCE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28547,16 +29783,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"iCS" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair/stool/bar/directional/east, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "iCX" = ( /obj/machinery/power/solar_control{ dir = 4; @@ -28566,6 +29792,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) +"iDe" = ( +/obj/item/wrench, +/obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4{ + dir = 1; + name = "Air In" + }, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/landmark/blobstart, +/turf/open/floor/plating, +/area/station/maintenance/fore) "iDp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall, @@ -28585,25 +29821,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/wood, /area/station/security/prison/rec) -"iDv" = ( -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"iDx" = ( -/obj/structure/railing/wooden_fence{ - dir = 4 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"iDB" = ( -/obj/structure/table/wood, -/obj/item/circuitboard/machine/fax, -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/five, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "iDG" = ( /obj/machinery/door/window/left/directional/east{ name = "Containment Pen 3"; @@ -28615,25 +29832,11 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/science/xenobiology) -"iDK" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) "iDQ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"iEd" = ( -/obj/structure/sign/warning/radiation, -/turf/closed/wall/r_wall, -/area/station/engineering/supermatter) "iEA" = ( /obj/structure/table/glass, /obj/item/storage/box/gloves{ @@ -28675,19 +29878,6 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"iES" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/white/corner{ - dir = 4 - }, -/area/station/hallway/secondary/entry) -"iEY" = ( -/obj/machinery/restaurant_portal/bar, -/obj/effect/turf_decal/delivery/red, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "iFe" = ( /obj/structure/cable, /turf/open/floor/iron/dark/smooth_half, @@ -28699,15 +29889,6 @@ /mob/living/basic/pet/dog/pug/mcgriff, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) -"iFh" = ( -/obj/structure/table, -/obj/item/newspaper, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/vacant_room/commissary) "iFj" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -28720,29 +29901,17 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"iFz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) +"iFw" = ( +/obj/structure/closet/bombcloset, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/spawner/random/trash/janitor_supplies, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "iFL" = ( /obj/structure/bed/dogbed/renault, /mob/living/basic/pet/fox/renault, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) -"iFQ" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "iFX" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28756,6 +29925,14 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"iGd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/hallway/secondary/entry) "iGj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28777,25 +29954,30 @@ }, /turf/open/floor/iron, /area/station/command/bridge) +"iGQ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "botany_apiary"; + name = "Apiary Shutters" + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) "iHc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) -"iHm" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/obj/machinery/firealarm/directional/west, -/obj/machinery/camera{ - c_tag = "Atmospherics - South West"; - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/atmos) "iHp" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai) +"iHP" = ( +/obj/machinery/holopad, +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark/smooth_half, +/area/station/service/hydroponics) "iHV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -28827,23 +30009,29 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"iIk" = ( -/obj/structure/disposalpipe/segment{ +"iIm" = ( +/obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +/obj/machinery/duct, +/obj/machinery/door/firedoor{ + dir = 4 }, -/obj/effect/turf_decal/stripes/white/line{ +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/airlock{ + name = "Bar"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/starboard) +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/bar) "iIs" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, @@ -28852,15 +30040,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"iIv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/cup/bucket{ - pixel_y = 10; - pixel_x = -4 - }, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "iIA" = ( /obj/effect/turf_decal/bot, /turf/open/floor/iron, @@ -28873,6 +30052,24 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"iIJ" = ( +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) +"iIY" = ( +/obj/structure/cable/multilayer/multiz, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating, +/area/station/medical/chemistry) +"iJh" = ( +/obj/structure/sign/warning/gas_mask/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "iJl" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/siding/wood{ @@ -28899,6 +30096,15 @@ dir = 8 }, /area/station/command/heads_quarters/rd) +"iJE" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/effect/spawner/random/armory/rubbershot, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) "iJI" = ( /obj/structure/chair{ dir = 1 @@ -28920,15 +30126,30 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/plastic, /area/station/commons/dorms/laundry) -"iJM" = ( -/obj/structure/stairs/south{ +"iJN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ dir = 1 }, -/turf/open/floor/iron, -/area/station/commons/dorms/laundry) +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "iJO" = ( /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) +"iJV" = ( +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) "iJX" = ( /obj/item/target, /obj/structure/window/reinforced/spawner/directional/south, @@ -28937,6 +30158,42 @@ }, /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb) +"iKd" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/closet/chefcloset, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plating, +/area/station/service/kitchen/coldroom) +"iKh" = ( +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) +"iKj" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access"; + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "iKl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28946,13 +30203,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"iKp" = ( -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/smooth, -/area/station/cargo/warehouse) "iKw" = ( /obj/item/kitchen/fork/plastic, /obj/structure/table, @@ -28997,6 +30247,11 @@ dir = 4 }, /area/station/command/gateway) +"iLn" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "iLt" = ( /obj/structure/table/wood, /obj/item/flashlight/lantern, @@ -29065,6 +30320,10 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"iMb" = ( +/obj/structure/railing/corner, +/turf/open/floor/stone, +/area/station/commons/lounge) "iMf" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/dark_blue/line{ @@ -29074,6 +30333,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"iMg" = ( +/obj/effect/turf_decal/tile/red/half/contrasted, +/obj/machinery/button/flasher{ + id = "cell4"; + pixel_y = -26 + }, +/turf/open/floor/iron, +/area/station/security/brig/upper) "iMp" = ( /obj/machinery/status_display/ai/directional/east, /turf/open/floor/circuit, @@ -29122,6 +30389,12 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/engine, /area/station/engineering/supermatter) +"iNl" = ( +/obj/structure/fence/cut/large{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "iNn" = ( /obj/structure/chair/office{ dir = 1 @@ -29137,6 +30410,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/genetics) +"iNo" = ( +/turf/closed/mineral/random/snow, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "iNy" = ( /obj/structure/chair{ dir = 4 @@ -29164,6 +30440,11 @@ "iNQ" = ( /turf/open/floor/carpet, /area/station/maintenance/space_hut/cabin) +"iNY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/white/corner, +/area/station/command/heads_quarters/rd) "iOc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29179,19 +30460,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"iOu" = ( -/obj/structure/bed, -/obj/item/bedsheet/cmo, -/obj/machinery/light_switch/directional/south, -/obj/effect/landmark/start/chief_medical_officer, -/obj/machinery/keycard_auth/directional/east, -/obj/machinery/camera{ - c_tag = "Chief Medical Officer Bedroom"; - dir = 4; - network = list("ss13","medbay") - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/cmo) "iOv" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -29249,17 +30517,11 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/mining) -"iPP" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/landmark/start/bartender, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/bar) +"iPz" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/storage) "iPR" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -29270,23 +30532,47 @@ dir = 4 }, /area/station/security/brig/entrance) +"iQa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/starboard) +"iQd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/status_display/shuttle{ + pixel_x = -32; + shuttle_id = "arrival" + }, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) "iQj" = ( /obj/item/radio/intercom/directional/north, /obj/structure/table/glass, /obj/machinery/computer/records/medical/laptop, /turf/open/floor/iron/white/textured, /area/station/security/medical) -"iQt" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/service/chapel) -"iQw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) "iQx" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -29343,9 +30629,15 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"iRa" = ( -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/fore) +"iQY" = ( +/obj/structure/railing, +/obj/effect/turf_decal/siding/white, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + id = "cantena_curtains" + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "iRc" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -29403,6 +30695,13 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/engineering/atmos) +"iRJ" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Mix to Port" + }, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "iRM" = ( /obj/structure/rack, /obj/item/stack/sheet/iron/twenty, @@ -29417,28 +30716,6 @@ dir = 6 }, /area/station/science/research) -"iRP" = ( -/obj/structure/table/reinforced, -/obj/item/book/manual/wiki/atmospherics, -/obj/item/holosign_creator/atmos, -/obj/item/holosign_creator/atmos, -/obj/structure/sign/warning/radiation/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/hfr_room) -"iRS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "iRV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29451,13 +30728,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/mine/laborcamp/security) -"iSk" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 6 - }, -/turf/open/openspace, -/area/station/science/ordnance/office) "iSl" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Mix to Port" @@ -29478,19 +30748,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/fore/lesser) -"iSs" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/white, -/area/station/medical/virology) "iSA" = ( /obj/machinery/conveyor{ dir = 4; id = "packageSort2" }, -/obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/cargo/sorting) "iSE" = ( @@ -29525,6 +30787,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) +"iTr" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "iTy" = ( /obj/machinery/space_heater, /obj/machinery/airalarm/directional/south, @@ -29538,21 +30810,11 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"iTE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +"iTC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 8 - }, -/obj/machinery/holopad, -/obj/effect/landmark/start/depsec/medical, -/obj/machinery/computer/security/telescreen/cmo/directional/east, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/checkpoint/medical) +/obj/structure/sign/warning/docking/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "iTJ" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -29580,13 +30842,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"iUi" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/duct, -/turf/open/floor/wood/large, -/area/station/service/bar) "iUm" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -29601,19 +30856,25 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron, /area/station/security/warden) +"iUr" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/graveyard) +"iUs" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) "iUw" = ( /obj/structure/closet/lasertag/blue, /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron, /area/station/security/prison/workout) -"iUx" = ( -/obj/effect/turf_decal/siding/yellow/corner, -/obj/machinery/duct, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/lobby) "iUz" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -29646,6 +30907,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/engineering/supermatter) +"iUM" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin/tagger, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron, +/area/station/cargo/office) +"iUO" = ( +/obj/machinery/camera/motion/directional/north{ + c_tag = "EVA Storage North" + }, +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/bot_white, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/station/ai_monitored/command/storage/eva) "iUT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -29670,31 +30948,37 @@ }, /turf/open/floor/iron, /area/station/commons/storage/primary) -"iVi" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 +"iVg" = ( +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer1{ + dir = 1 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/cafeteria, -/area/station/hallway/secondary/entry) -"iVm" = ( -/obj/structure/stairs/north, -/obj/structure/railing{ - dir = 8 +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics - South East" }, /turf/open/floor/iron, -/area/mine/eva/lower) -"iVu" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 +/area/station/engineering/atmos) +"iVv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/textured, -/area/station/security/brig) +/obj/structure/cable, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/hallway/secondary/entry) "iVA" = ( /obj/effect/landmark/start/shaft_miner, /turf/open/floor/iron, /area/station/cargo/miningdock) +"iVD" = ( +/obj/structure/chair/stool/directional/east, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "iVN" = ( /obj/machinery/vending/sustenance, /turf/open/floor/iron/dark/textured, @@ -29710,16 +30994,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"iVY" = ( -/obj/structure/stairs/south, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) -"iWb" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"iWj" = ( +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "iWq" = ( /obj/structure/chair{ dir = 4 @@ -29727,23 +31006,17 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"iWI" = ( -/obj/structure/lattice/catwalk, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/reagent_dispensers/watertank, -/turf/open/openspace, -/area/station/science/xenobiology) +"iWA" = ( +/obj/structure/closet, +/obj/effect/spawner/random/clothing/gloves, +/obj/effect/spawner/random/trash/janitor_supplies, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) "iWM" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"iWN" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/newscaster/directional/north, -/obj/item/surgery_tray/full/morgue, -/obj/structure/table/reinforced, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "iWP" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -29773,10 +31046,27 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"iXc" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/genturf/orange, +/area/icemoon/underground/unexplored/no_rivers) +"iXg" = ( +/obj/structure/transit_tube, +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "iXh" = ( /obj/machinery/vending/cigarette, -/obj/machinery/firealarm/directional/east, +/obj/machinery/firealarm/directional/east{ + pixel_y = 6 + }, /obj/structure/cable, +/obj/machinery/light_switch/directional/east{ + pixel_y = -5 + }, /turf/open/floor/iron, /area/station/security/prison/visit) "iXk" = ( @@ -29801,13 +31091,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"iXB" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ - dir = 1 - }, -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/station/maintenance/starboard/fore) "iXC" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -29818,6 +31101,34 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"iXK" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) +"iXM" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/five, +/obj/item/stack/cable_coil/five, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) +"iXO" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/biogenerator, +/turf/open/floor/iron, +/area/station/service/hydroponics) "iXP" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box/white{ @@ -29828,6 +31139,31 @@ "iYb" = ( /turf/closed/wall, /area/station/maintenance/central/greater) +"iYd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/duct, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/sign/warning/radiation/rad_area/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) +"iYe" = ( +/obj/item/kirbyplants/random, +/obj/machinery/vending/wallmed/directional/west, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/gateway) +"iYq" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/railing/corner, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "iYs" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -29851,6 +31187,12 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/mine/mechbay) +"iYD" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/genturf/blue, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "iYG" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -29858,10 +31200,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"iYH" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall/r_wall, -/area/station/medical/virology) "iYU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29870,12 +31208,6 @@ }, /turf/open/floor/iron/textured, /area/station/security/brig) -"iYY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink/directional/south, -/obj/structure/mirror/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "iZl" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/poddoor/shutters/preopen{ @@ -29885,11 +31217,6 @@ }, /turf/open/floor/plating, /area/station/science/research) -"iZm" = ( -/obj/structure/chair/wood, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "iZn" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/wood, @@ -29903,6 +31230,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"iZr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/electrolyzer, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "iZs" = ( /obj/structure/table, /obj/item/kitchen/spoon/plastic, @@ -29919,13 +31251,13 @@ "iZz" = ( /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/labor_camp) -"iZD" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 +"iZC" = ( +/obj/machinery/status_display/ai/directional/south, +/obj/structure/chair/sofa/right/brown{ + dir = 4 }, -/obj/machinery/griddle, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/turf/open/floor/wood/large, +/area/station/commons/lounge) "iZO" = ( /obj/machinery/status_display/ai/directional/west, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -29961,12 +31293,6 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"jae" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "jag" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -29975,6 +31301,12 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"jai" = ( +/obj/structure/fence/post{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "jak" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/disposalpipe/segment{ @@ -29986,10 +31318,6 @@ /obj/effect/landmark/start/head_of_personnel, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"jas" = ( -/obj/structure/fence, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "jaw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29999,6 +31327,15 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"jaE" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "jaO" = ( /obj/machinery/door/airlock/atmos/glass{ name = "Turbine Access" @@ -30015,13 +31352,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"jaS" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/siding/green{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "jaW" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red/half/contrasted, @@ -30058,12 +31388,27 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/textured, /area/station/security/prison/rec) -"jbu" = ( -/obj/structure/railing/corner, -/turf/open/floor/iron/dark/side{ - dir = 9 +"jbe" = ( +/obj/structure/sign/warning/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/surface/outdoors/nospawn) +"jbf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/maintenance{ + name = "Medbay Maintenance" }, -/area/station/service/chapel) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/cmo, +/obj/effect/turf_decal/tile/purple/full, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"jbq" = ( +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "jbx" = ( /obj/machinery/door/airlock/medical/glass{ name = "Medbay Storage" @@ -30079,23 +31424,18 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/white/smooth_large, /area/station/medical/storage) -"jbB" = ( -/obj/structure/beebox, -/obj/machinery/status_display/ai/directional/north, -/obj/effect/turf_decal/siding/thinplating/dark/corner, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 9 +"jbz" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Library Art Gallery" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera{ - c_tag = "Service - Botany Apiary"; - dir = 9 +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/spawner/random/structure/table_fancy, +/obj/machinery/light/blacklight/directional/north, +/obj/structure/sign/painting/library_secure{ + pixel_x = 32 }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/turf/open/floor/wood, +/area/station/service/library) "jbC" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -30151,24 +31491,66 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"jcy" = ( +"jcr" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) +"jcs" = ( +/obj/machinery/door/morgue{ + req_access = list("bar"); + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) +"jct" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /obj/machinery/camera/directional/north{ - c_tag = "Central Hallway North-East" + c_tag = "Security - Upper Brig South" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/sign/poster/official/random/directional/north, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 }, +/obj/structure/noticeboard/hos{ + pixel_y = 36 + }, /turf/open/floor/iron, -/area/station/hallway/primary/central) -"jcC" = ( -/obj/machinery/requests_console/directional/north{ - department = "Ordnance"; - name = "Ordnance Lab Requests Console" +/area/station/security/brig/upper) +"jcA" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/departments/cargo/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"jcF" = ( +/obj/structure/sink/directional/east, +/obj/structure/mirror/directional/west, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) +"jcJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/iron/white, -/area/station/science/ordnance) +/obj/machinery/status_display/supply{ + pixel_y = -32 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "jcP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral{ @@ -30176,16 +31558,31 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"jdd" = ( -/obj/structure/closet/firecloset, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "jdf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/mess) +"jdm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"jdA" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Medbay East"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "jdJ" = ( /obj/structure/chair/wood, /turf/open/floor/carpet, @@ -30210,6 +31607,14 @@ dir = 9 }, /area/station/science/research) +"jdV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "jdW" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -30224,22 +31629,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"jed" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/starboard) -"jee" = ( -/obj/structure/girder, -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/fore) "jeh" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ dir = 1 @@ -30265,14 +31654,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"jes" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Exfiltrate to Port" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) "jez" = ( /obj/machinery/light/small/directional/north, /obj/effect/decal/cleanable/dirt, @@ -30298,22 +31679,29 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"jeR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airlock_controller/incinerator_atmos{ + pixel_x = 26 + }, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "jfc" = ( /turf/closed/wall, /area/station/command/heads_quarters/hop) +"jfF" = ( +/obj/structure/rack, +/obj/item/shovel, +/obj/item/clothing/mask/gas/plaguedoctor, +/obj/item/tank/internals/emergency_oxygen, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "jfR" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/command/gateway) -"jgd" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Starboard Primary Hallway West" - }, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "jgl" = ( /obj/effect/turf_decal/trimline/dark_blue/corner{ dir = 1 @@ -30341,6 +31729,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) +"jgC" = ( +/obj/structure/minecart_rail{ + dir = 10 + }, +/obj/structure/cable, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "jgD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/wardrobe/pjs{ @@ -30353,16 +31749,41 @@ /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/iron/smooth_edge, /area/station/security/lockers) +"jgL" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"jgV" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"jgW" = ( +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "jhf" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) -"jhu" = ( -/obj/effect/spawner/random/maintenance/three, -/obj/structure/closet/crate/wooden, -/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +"jhi" = ( +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/hallway/primary/central/fore) +"jhj" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/chair/sofa/right/brown, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/carpet/blue, +/area/station/security/prison/work) "jhy" = ( /obj/effect/turf_decal/tile/brown, /turf/open/floor/iron, @@ -30407,54 +31828,39 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"jik" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 6 - }, -/obj/structure/table/glass, -/obj/machinery/light/small/directional/east, -/obj/machinery/firealarm/directional/east, -/obj/item/food/grown/poppy{ - pixel_y = -1; - pixel_x = 3 - }, -/obj/item/food/grown/poppy/geranium{ - pixel_y = 5; - pixel_x = 2 - }, -/obj/item/food/grown/poppy/lily{ - pixel_x = -2 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"jiD" = ( +"jiw" = ( /obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 }, /obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/structure/table/glass, -/obj/item/book/manual/hydroponics_pod_people, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/structure/sign/poster/contraband/kudzu/directional/north, -/obj/machinery/light/small/directional/west, -/obj/item/plant_analyzer, -/obj/item/watertank{ - pixel_y = -3; - pixel_x = -5 +/obj/machinery/camera/directional/south{ + c_tag = "Service - Botany Garden Access" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 }, /turf/open/floor/iron, /area/station/service/hydroponics) -"jiU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 10 +"jiB" = ( +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas{ + pixel_x = -8; + pixel_y = 4 }, +/obj/structure/table, +/obj/machinery/door_buttons/access_button, +/obj/item/clothing/mask/gas{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/directional/north, +/obj/structure/sign/warning/biohazard/directional/north, /turf/open/floor/iron, -/area/station/commons/fitness) +/area/station/science/xenobiology) "jjk" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -30495,13 +31901,24 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"jjJ" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Labor Camp External West"; - network = list("labor") +"jjI" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"jjM" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/obj/machinery/holopad, +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/turf/open/floor/iron/white, +/area/station/medical/virology) "jjO" = ( /obj/structure/sink/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30513,33 +31930,11 @@ /obj/effect/turf_decal/tile/dark/fourcorners, /turf/open/floor/iron, /area/mine/living_quarters) -"jko" = ( -/obj/structure/railing, -/obj/structure/rack, -/obj/structure/cable, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/obj/effect/spawner/random/armory/dragnet, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory/upper) "jkH" = ( /obj/structure/training_machine, /obj/effect/landmark/blobstart, /turf/open/floor/engine, /area/station/science/explab) -"jkK" = ( -/obj/structure/railing/wooden_fence{ - dir = 9 - }, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) -"jkN" = ( -/obj/effect/spawner/random/entertainment/arcade, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/eighties, -/area/station/commons/lounge) "jkS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, @@ -30556,6 +31951,15 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"jkX" = ( +/obj/structure/fence{ + dir = 2 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "jla" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -30579,17 +31983,26 @@ /obj/machinery/atmospherics/components/tank, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"jlk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"jls" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "jlu" = ( /obj/structure/railing/corner, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"jlv" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/siding/wood, -/obj/effect/spawner/random/entertainment/musical_instrument, -/obj/item/instrument/harmonica, -/turf/open/floor/iron/grimy, -/area/station/commons/lounge) "jly" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -30621,17 +32034,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"jlT" = ( -/obj/structure/chair{ - desc = "Aw geez, I wonder what the chef's cooking up in there!"; - dir = 1; - name = "The Peanut's Gallery" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "jlV" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 @@ -30653,13 +32055,6 @@ }, /turf/open/floor/iron/cafeteria, /area/mine/laborcamp) -"jmo" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "jms" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, @@ -30679,21 +32074,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood/large, /area/mine/eva/lower) +"jmD" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/obj/machinery/status_display/evac/directional/east, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/sign/warning/radiation/rad_area/directional/north, +/turf/open/floor/iron, +/area/station/engineering/main) "jmI" = ( /turf/closed/wall/r_wall, /area/station/security/prison/workout) -"jmJ" = ( -/obj/machinery/door/airlock/external, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "chem-morgue-airlock" - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/medical/morgue) "jmR" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30703,16 +32095,22 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"jnh" = ( -/obj/machinery/door/airlock{ - name = "Unisex Showers" +"jmY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) +"jnp" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Cargo Bay North" }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/textured, -/area/station/commons/toilet) +/obj/machinery/light/directional/north, +/obj/structure/noticeboard/qm{ + pixel_y = 36 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "jnR" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -30732,29 +32130,21 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) -"jnU" = ( -/obj/structure/sign/departments/botany/directional/east, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "jnV" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"jnW" = ( +/obj/structure/railing/wooden_fence{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "jnX" = ( /obj/machinery/shower/directional/south, /obj/item/bikehorn/rubberducky/plasticducky, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) -"jnY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "joa" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor/right/directional/east{ @@ -30795,17 +32185,6 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"joW" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 10 - }, -/obj/structure/reagent_dispensers/watertank/high, -/obj/item/reagent_containers/cup/watering_can, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "jpd" = ( /obj/machinery/vending/coffee, /turf/open/floor/iron, @@ -30816,20 +32195,17 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"jpi" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/sign/warning/gas_mask{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; - pixel_x = -2; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ +"jpg" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/landmark/start/bartender, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/area/mine/eva/lower) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/bar) "jpo" = ( /obj/machinery/door/poddoor/preopen{ id = "maint2" @@ -30863,6 +32239,15 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) +"jpN" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) "jpS" = ( /turf/closed/wall/r_wall, /area/station/cargo/warehouse) @@ -30894,20 +32279,36 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"jqn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/directional/north, -/obj/structure/sign/poster/official/here_for_your_safety/directional/north, -/turf/open/floor/iron, -/area/station/security/prison/visit) "jqr" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) +"jqw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/white, +/area/station/science/genetics) "jqx" = ( /obj/structure/transit_tube/crossing/horizontal, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "jqE" = ( @@ -30929,46 +32330,19 @@ "jqT" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage/tech) -"jqZ" = ( -/obj/effect/landmark/start/hangover, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"jrc" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast DOors"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "jre" = ( /turf/closed/wall, /area/station/maintenance/starboard/lesser) -"jrk" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "jrv" = ( -/obj/item/book/manual/wiki/barman_recipes{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/rag, -/obj/structure/table/wood, -/obj/item/holosign_creator/robot_seat/bar{ - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/service/bar) +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "jrI" = ( /obj/structure/transit_tube/curved/flipped, /obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "jrQ" = ( @@ -30978,6 +32352,11 @@ /obj/structure/railing/corner/end/flip, /turf/open/floor/iron, /area/mine/production) +"jrX" = ( +/obj/item/cigbutt, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "jrZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -30994,14 +32373,6 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) -"jsh" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_y = 5 - }, -/obj/machinery/mining_weather_monitor/directional/east, -/turf/open/floor/iron/grimy, -/area/station/hallway/secondary/entry) "jsp" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, @@ -31047,23 +32418,12 @@ dir = 1 }, /area/station/hallway/primary/port) -"jsR" = ( -/obj/machinery/door/airlock{ - name = "Bar" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/service/bar) +"jsO" = ( +/obj/effect/spawner/random/maintenance/three, +/obj/structure/closet/crate/wooden, +/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "jtm" = ( /obj/machinery/porta_turret/ai{ dir = 4; @@ -31183,26 +32543,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/mining) -"jtY" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"jub" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Escape" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/hallway/secondary/exit/departure_lounge) "jug" = ( /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/pumproom) @@ -31266,10 +32606,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"jvc" = ( -/obj/machinery/door/firedoor/border_only, -/turf/open/openspace, -/area/station/science/ordnance) "jvj" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair, @@ -31315,12 +32651,13 @@ /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"jwf" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +"jvU" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "jwj" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8 @@ -31352,12 +32689,33 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) +"jwv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/hobo_squat, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"jww" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/graveyard) "jwx" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 }, /turf/open/floor/iron, /area/station/security/brig/upper) +"jwz" = ( +/obj/structure/flora/rock/icy/style_random, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "jwB" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/tile/brown{ @@ -31406,11 +32764,6 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) -"jxr" = ( -/obj/machinery/restaurant_portal/restaurant, -/obj/effect/turf_decal/delivery/red, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "jxv" = ( /obj/effect/landmark/start/paramedic, /obj/structure/cable, @@ -31435,6 +32788,13 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"jyy" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "jyz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -31446,14 +32806,15 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/virology) -"jyE" = ( -/obj/structure/disposalpipe/segment, +"jyJ" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/machinery/duct, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, +/turf/open/floor/iron/white, +/area/station/medical/virology) "jyL" = ( /obj/structure/cable, /obj/machinery/power/terminal{ @@ -31464,11 +32825,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/smooth, /area/mine/laborcamp/security) -"jyN" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/spawner/random/maintenance/three, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "jyR" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -31501,16 +32857,15 @@ /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /turf/open/floor/iron, /area/station/security/brig/upper) -"jzR" = ( -/obj/structure/table/glass, -/obj/item/shovel/spade, -/obj/item/cultivator{ - pixel_x = 1; - pixel_y = 6 +"jzH" = ( +/obj/machinery/modular_computer/preset/research{ + dir = 4 }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/iron/smooth_corner, +/area/station/command/heads_quarters/rd) "jzY" = ( /obj/machinery/airalarm/directional/west, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -31552,6 +32907,13 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"jAG" = ( +/obj/structure/bed, +/obj/item/bedsheet/cmo, +/obj/machinery/light_switch/directional/south, +/obj/effect/landmark/start/chief_medical_officer, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) "jAI" = ( /obj/machinery/module_duplicator, /obj/machinery/light/directional/south, @@ -31605,20 +32967,18 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"jBr" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/computer/security/telescreen/prison/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/security/warden) "jBB" = ( /obj/structure/kitchenspike, /turf/open/floor/plating/snowed/coldroom, /area/station/service/kitchen/coldroom) -"jBK" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/effect/landmark/start/hangover/closet, -/obj/machinery/mining_weather_monitor/directional/south, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) "jBR" = ( /obj/machinery/atmospherics/components/unary/thermomachine/heater{ dir = 8 @@ -31639,21 +32999,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"jCA" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/camera{ - c_tag = "Virology Module North"; - dir = 9; - network = list("ss13","medbay") - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "jCD" = ( /obj/structure/table/wood, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31669,6 +33014,13 @@ /obj/machinery/smartfridge/petri/preloaded, /turf/open/openspace, /area/station/science/xenobiology) +"jCK" = ( +/obj/machinery/modular_computer/preset/cargochat/service, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/dark, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) "jCL" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -31677,26 +33029,37 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/west, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"jCM" = ( -/obj/structure/rack, -/obj/item/bouquet, -/obj/item/binoculars, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +"jCT" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Bridge West Access" + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"jCV" = ( +/obj/machinery/computer/order_console/mining, +/obj/machinery/light/small/directional/south, +/obj/machinery/light_switch/directional/south, +/obj/machinery/newscaster/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Mining Bunks"; + network = list("ss13", "mine") + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/mine/production) "jDc" = ( /obj/effect/spawner/random/vending/snackvend, /obj/structure/sign/departments/restroom/directional/south, /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron/white, /area/station/medical/break_room) -"jDi" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Exfiltrate to Waste" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) +"jDl" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/cargo/miningdock) "jDm" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "robotics2"; @@ -31717,6 +33080,16 @@ /obj/machinery/pdapainter/security, /turf/open/floor/wood/large, /area/station/command/heads_quarters/hos) +"jDz" = ( +/obj/machinery/light/small/directional/east, +/obj/item/pickaxe, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/medical/morgue) +"jDB" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "jDG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31736,29 +33109,10 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"jDS" = ( -/obj/structure/chair/sofa/bench/left, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/iron/white/corner{ - dir = 4 - }, -/area/station/hallway/secondary/entry) -"jDT" = ( -/obj/structure/table/reinforced, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, -/obj/item/computer_disk/engineering, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) +"jDV" = ( +/obj/effect/spawner/random/engineering/atmospherics_portable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "jDW" = ( /obj/effect/turf_decal/bot_white/left, /obj/structure/closet/crate/silvercrate, @@ -31771,20 +33125,28 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"jEf" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 +"jDX" = ( +/obj/structure/training_machine, +/obj/item/target, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 }, -/obj/structure/bed/medical/anchored{ - dir = 8 +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/commons/fitness) +"jEo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/item/bedsheet/medical{ +/obj/effect/turf_decal/siding/yellow/corner{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/virology) +/turf/open/floor/iron, +/area/station/engineering/lobby) "jEs" = ( /obj/machinery/conveyor_switch/oneway{ id = "gulag"; @@ -31792,20 +33154,32 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) -"jEA" = ( -/obj/machinery/light/small/directional/east, -/obj/item/pickaxe, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/station/medical/morgue) -"jEB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/newscaster/directional/north, -/obj/machinery/light/small/dim/directional/north{ - pixel_y = 1 +"jED" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 4 }, +/obj/effect/turf_decal/bot/left, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) +"jEE" = ( +/obj/structure/tank_holder/extinguisher, +/obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/port/greater) +"jEJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sign/poster/official/obey/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"jEK" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "jFf" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -31818,18 +33192,6 @@ /obj/structure/rack, /turf/open/floor/iron, /area/station/command/gateway) -"jFu" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/bar) -"jFA" = ( -/obj/effect/decal/cleanable/blood/bubblegum, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "jFJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -31859,11 +33221,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"jFY" = ( -/obj/effect/spawner/random/entertainment/arcade, -/obj/machinery/digital_clock/directional/north, -/turf/open/floor/eighties, -/area/station/commons/lounge) "jFZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31893,36 +33250,28 @@ }, /turf/open/floor/iron/large, /area/station/engineering/lobby) -"jGN" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/machinery/door_buttons/airlock_controller{ - idExterior = "virology_airlock_exterior"; - idInterior = "virology_airlock_interior"; - idSelf = "virology_airlock_control"; - name = "Virology Access Console"; - pixel_x = 8; - pixel_y = 25; - req_access = list("virology") - }, -/obj/structure/closet/secure_closet/medical1, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"jGR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 +"jGJ" = ( +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/wall/peppertank/directional/east, +/obj/effect/turf_decal/tile/red/full, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/checkpoint/medical) +"jHb" = ( +/obj/structure/sign/warning/secure_area{ + pixel_y = 32 }, -/obj/effect/turf_decal/stripes/line{ +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"jHe" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) +"jHh" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, -/turf/open/floor/iron, -/area/station/science/ordnance) -"jGY" = ( -/obj/structure/rack, -/obj/item/clothing/suit/hazardvest, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +/turf/open/floor/iron/cafeteria, +/area/station/commons/dorms/laundry) "jHF" = ( /obj/item/trash/boritos/red, /obj/structure/cable, @@ -31934,13 +33283,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"jHL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "jHQ" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/co2{ dir = 1 @@ -31950,16 +33292,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"jHV" = ( -/obj/machinery/mineral/stacking_machine{ - output_dir = 2; - stack_amt = 10 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal) "jHX" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -32021,10 +33353,13 @@ }, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"jIE" = ( -/obj/structure/sign/warning/gas_mask, -/turf/closed/wall, -/area/station/cargo/storage) +"jIB" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "jII" = ( /turf/closed/wall, /area/station/hallway/primary/central) @@ -32051,12 +33386,6 @@ }, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"jIY" = ( -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "jIZ" = ( /obj/machinery/power/terminal{ dir = 1 @@ -32086,46 +33415,41 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) -"jJr" = ( -/obj/machinery/door/firedoor, -/obj/structure/sign/warning/electric_shock/directional/south, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +"jJl" = ( +/obj/effect/landmark/start/botanist, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) -"jJF" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/sign/calendar/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Botany Equipment" }, /turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"jJG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/area/station/service/hydroponics) +"jJA" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/turf/open/floor/iron, +/area/station/service/bar) "jJM" = ( /turf/open/floor/glass, /area/station/security/lockers) -"jJR" = ( -/obj/machinery/firealarm/directional/south, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 +"jJQ" = ( +/obj/machinery/light_switch/directional/east, +/obj/effect/turf_decal/siding/white{ + dir = 8 }, -/obj/item/pen, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato{ + pixel_y = 2; + pixel_x = 2 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "jJV" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -32139,6 +33463,17 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"jJZ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_y = 6 + }, +/obj/item/taperecorder{ + pixel_x = 9 + }, +/turf/open/floor/iron/dark, +/area/station/science/explab) "jKe" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -32165,6 +33500,18 @@ }, /turf/open/floor/plating/icemoon, /area/station/security/execution/education) +"jKs" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/effect/landmark/navigate_destination/bar, +/obj/machinery/door/airlock/multi_tile/public/glass{ + name = "Atrium" + }, +/turf/open/floor/iron/dark/textured_half, +/area/station/service/bar/atrium) "jKy" = ( /obj/machinery/holopad, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -32202,25 +33549,9 @@ /obj/effect/landmark/event_spawn, /obj/structure/cable, /obj/effect/turf_decal/tile/green, +/obj/structure/sign/plaques/kiddie, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"jKL" = ( -/obj/structure/cable, -/obj/structure/holosign/barrier/atmos/sturdy, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters{ - dir = 1; - id = "minecraft_shutter"; - name = "Cart Shutters" - }, -/obj/structure/minecart_rail{ - dir = 1 - }, -/turf/open/floor/iron/textured, -/area/station/service/kitchen/coldroom) "jKN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32236,6 +33567,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"jKQ" = ( +/obj/structure/sign/warning/fire{ + pixel_y = 32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "jKY" = ( /turf/closed/mineral/random/snow/high_chance, /area/icemoon/underground/unexplored/rivers/deep/shoreline) @@ -32243,6 +33580,19 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/openspace, /area/station/commons/storage/mining) +"jLc" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/chem_master/condimaster{ + desc = "Used to separate out liquids - useful for purifying botanical extracts. Also dispenses condiments."; + name = "SapMaster XP" + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "jLf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, @@ -32272,13 +33622,21 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) -"jLB" = ( -/obj/structure/sign/warning/electric_shock/directional/east, +"jLt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, /turf/open/floor/iron, -/area/station/hallway/primary/central/fore) +/area/station/hallway/primary/starboard) +"jLK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "jLM" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32350,6 +33708,30 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) +"jMn" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"jMr" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/spawner/random/trash/botanical_waste, +/obj/effect/spawner/random/food_or_drink/donkpockets, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"jMu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "jMw" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -32360,16 +33742,35 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"jMD" = ( -/obj/effect/turf_decal/siding/white/corner{ +"jMx" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Dormitory North" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"jMJ" = ( -/obj/machinery/duct, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) +"jME" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Supply Door Airlock"; + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) +"jMO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "jMY" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/dark_blue/line{ @@ -32379,10 +33780,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) -"jNe" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "jNf" = ( /turf/closed/wall, /area/station/security/prison/garden) @@ -32398,6 +33795,9 @@ /obj/effect/mapping_helpers/airlock/access/any/command/general, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"jNo" = ( +/turf/open/floor/stone, +/area/station/service/bar/atrium) "jNp" = ( /turf/closed/wall/r_wall, /area/station/security/holding_cell) @@ -32413,18 +33813,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"jOi" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge" - }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/turf/open/floor/iron, -/area/station/command/bridge) "jOj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32440,6 +33828,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/primary/port) +"jOy" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Central Hallway West" + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/bluespace_vendor/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "jOz" = ( /obj/effect/turf_decal/trimline/blue/end{ dir = 1 @@ -32453,6 +33849,19 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"jOC" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Bar" + }, +/turf/open/floor/iron, +/area/station/service/bar) "jOD" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -32465,6 +33874,12 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, /area/station/maintenance/port/aft) +"jOK" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore) "jOQ" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -32519,6 +33934,15 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) +"jPq" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "jPs" = ( /obj/effect/spawner/random/engineering/canister, /obj/structure/railing{ @@ -32542,6 +33966,14 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) +"jPL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/botanical_waste, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "jPV" = ( /obj/structure/sign/poster/random/directional/south, /turf/open/floor/plating, @@ -32553,6 +33985,15 @@ "jQd" = ( /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) +"jQe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 1; + name = "Gas to Filter" + }, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter) "jQh" = ( /obj/structure/ladder, /obj/machinery/light/small/directional/east, @@ -32565,16 +34006,6 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"jQt" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=1"; - location = "Medbay" - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/plasticflaps/opaque, -/turf/open/floor/iron/dark, -/area/station/maintenance/department/medical/central) "jQz" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32627,12 +34058,6 @@ /obj/item/gps/mining, /turf/open/floor/iron, /area/station/commons/storage/mining) -"jQM" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/machinery/light/warm/directional/north, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "jQS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, @@ -32661,16 +34086,27 @@ /obj/item/ai_module/supplied/freeform, /obj/effect/turf_decal/tile/dark_green, /obj/machinery/light/directional/west, +/obj/structure/sign/nanotrasen{ + pixel_x = -32 + }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"jRm" = ( -/obj/structure/mannequin/skeleton, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"jRi" = ( +/obj/structure/fence{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "jRt" = ( -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "jRu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32722,6 +34158,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"jRX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "botany_chasm_and_wolf_shutters" + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) +"jSa" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/dice, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "jSe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32739,16 +34190,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"jSp" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "jSt" = ( /obj/machinery/door/airlock/external{ name = "Security Yard"; @@ -32760,25 +34201,23 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) -"jSy" = ( -/obj/structure/fence/end{ - dir = 1 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "jSC" = ( /obj/structure/bookcase/random/reference, /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/service/library) -"jSL" = ( -/obj/structure/stairs/east, -/turf/open/floor/plating, -/area/station/hallway/primary/central/fore) -"jSQ" = ( -/obj/structure/sign/poster/official/here_for_your_safety/directional/east, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +"jSN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/station/commons/dorms/laundry) "jST" = ( /obj/machinery/door/window/right/directional/north{ name = "Bridge Delivery"; @@ -32814,6 +34253,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/explab) +"jTw" = ( +/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plating, +/area/station/maintenance/fore) "jTG" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -32837,6 +34280,23 @@ /obj/effect/mapping_helpers/airlock/access/all/science/rd, /turf/open/floor/iron/dark, /area/station/science/server) +"jUb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/item/stack/sheet/mineral/coal{ + pixel_x = 6; + pixel_y = 3 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) +"jUi" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "jUn" = ( /obj/structure/table, /obj/item/folder/red{ @@ -32854,14 +34314,18 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) -"jUv" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 +"jUs" = ( +/obj/machinery/door/airlock/external{ + name = "Graveyard Access"; + dir = 4 }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/medical/morgue) "jUB" = ( /turf/closed/wall, /area/station/medical/virology) @@ -32880,13 +34344,6 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/hallway) -"jUX" = ( -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/ordnance/office) "jUY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/secure_closet/personal{ @@ -32904,42 +34361,46 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"jVa" = ( +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "jVb" = ( /obj/machinery/space_heater, /obj/machinery/light/small/directional/north, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/fore) -"jVm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/west, +"jVp" = ( +/obj/item/kirbyplants/fern, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"jVx" = ( -/obj/machinery/light/small/directional/south, -/obj/structure/sign/warning/cold_temp/directional/south, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/area/station/maintenance/starboard/lesser) +"jVs" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_y = 4 }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) +/obj/item/folder/white{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "jVE" = ( /obj/effect/turf_decal/box/white, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"jVL" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"jWb" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 6 }, -/obj/structure/sign/departments/rndserver/directional/south, -/turf/open/floor/iron/white, -/area/station/science/research) +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "jWl" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -32951,28 +34412,45 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) +"jWm" = ( +/obj/effect/turf_decal/box/red/corners{ + dir = 4 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) +"jWq" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "jWt" = ( /obj/structure/cable, /obj/structure/closet/radiation, /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) -"jWJ" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/closet/emcloset/anchored, -/obj/structure/sign/warning/gas_mask/directional/west, -/turf/open/floor/plating, -/area/station/engineering/main) +"jWO" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/machinery/newscaster/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/full, +/obj/machinery/camera/directional/north{ + c_tag = "Security Post - Medbay"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/checkpoint/medical) "jWP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) -"jXc" = ( -/obj/structure/sign/poster/official/help_others, -/turf/closed/wall/ice, -/area/icemoon/underground/explored) "jXe" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -32997,16 +34475,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"jXC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/rack, -/obj/item/storage/box, -/obj/effect/spawner/random/bureaucracy/birthday_wrap, -/obj/structure/sign/poster/contraband/random/directional/north, -/obj/effect/spawner/random/bureaucracy/birthday_wrap, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "jXH" = ( /obj/machinery/conveyor{ dir = 8; @@ -33048,14 +34516,6 @@ /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"jYd" = ( -/obj/structure/sign/warning/electric_shock/directional/north, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "jYj" = ( /obj/structure/sign/warning/secure_area/directional/north, /obj/effect/turf_decal/stripes/red/line{ @@ -33070,6 +34530,29 @@ /obj/structure/mirror/directional/south, /turf/open/floor/iron/freezer, /area/station/medical/break_room) +"jYF" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/machinery/firealarm/directional/east, +/obj/structure/noticeboard/rd{ + pixel_y = 36 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) +"jYG" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/filingcabinet/filingcabinet, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jYH" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 @@ -33077,18 +34560,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) -"jYI" = ( -/obj/effect/spawner/random/trash/mess, -/obj/structure/disposalpipe/segment, -/obj/structure/railing/corner/end, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"jYL" = ( -/obj/structure/light_construct/directional/south, -/obj/structure/sign/poster/contraband/random/directional/south, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/station/maintenance/port/aft) "jYS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, @@ -33103,10 +34574,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"jZc" = ( -/obj/machinery/light/small/dim/directional/east, -/turf/open/floor/stone, -/area/station/commons/lounge) "jZe" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -33123,20 +34590,56 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/mine/laborcamp) +"jZj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/item/radio/intercom/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Service - Atrium Entrance" + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"jZo" = ( +/obj/structure/fence{ + dir = 2 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "jZr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/extinguisher_cabinet/directional/east, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/eva) -"jZB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" +"jZt" = ( +/obj/structure/bodycontainer/morgue{ + dir = 8 }, -/obj/effect/turf_decal/tile/yellow, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) +"jZy" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "jZD" = ( /obj/structure/chair/office{ dir = 1 @@ -33151,25 +34654,10 @@ dir = 10 }, /area/station/security/prison) -"jZJ" = ( -/obj/machinery/vending/wardrobe/bar_wardrobe, -/obj/machinery/camera/directional/north{ - c_tag = "Service - Backroom" - }, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/wood/parquet, -/area/station/service/bar/backroom) "jZM" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) -"jZN" = ( -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "jZU" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -33182,35 +34670,11 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"kav" = ( -/obj/effect/spawner/random/trash/moisture_trap, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "kaw" = ( /obj/machinery/photocopier, /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/cargo/office) -"kax" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = -5 - }, -/obj/structure/closet/secure_closet/medical1, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"kaI" = ( -/obj/effect/spawner/random/maintenance/two, -/obj/structure/closet/crate, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "kaK" = ( /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron, @@ -33238,12 +34702,6 @@ /obj/effect/decal/cleanable/food/pie_smudge, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"kbp" = ( -/obj/structure/marker_beacon/burgundy, -/obj/structure/fluff/fokoff_sign, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "kbq" = ( /obj/machinery/conveyor{ dir = 1; @@ -33260,12 +34718,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"kbu" = ( -/obj/structure/reagent_dispensers/plumbed{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "kbx" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -33274,10 +34726,28 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) +"kby" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "kbJ" = ( /obj/machinery/field/generator, /turf/open/floor/plating, /area/station/engineering/engine_smes) +"kbL" = ( +/obj/structure/table, +/obj/machinery/light/small/dim/directional/west, +/obj/item/camera{ + pixel_y = 9; + pixel_x = -2 + }, +/obj/item/reagent_containers/cup/glass/waterbottle/empty{ + pixel_y = 5; + pixel_x = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) "kbN" = ( /obj/structure/table/wood, /obj/item/storage/box/matches, @@ -33299,6 +34769,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/fore) +"kbS" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "kcc" = ( /obj/machinery/camera/directional/west{ c_tag = "Security - Infirmary" @@ -33322,29 +34801,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"kcj" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "kcm" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/command_all, /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/engineering/storage/tech) -"kcs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/commons/fitness) -"kcw" = ( -/obj/structure/flora/bush/fullgrass/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) "kcC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -33375,16 +34837,23 @@ }, /turf/open/floor/plating, /area/station/security/prison/visit) -"kcW" = ( -/obj/structure/sign/warning/directional/south, -/turf/open/genturf/blue, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) -"kda" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/random/maintenance/two, -/obj/item/sign, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"kcT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stock_parts/power_store/cell/high, +/turf/open/floor/iron, +/area/station/maintenance/department/electrical) +"kcZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/fore) "kdc" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ dir = 8 @@ -33394,16 +34863,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"kdo" = ( -/obj/structure/sign/warning/test_chamber/directional/south, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) -"kdw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/fore) +"kdg" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/science/ordnance) "kdy" = ( /obj/machinery/door/poddoor/shutters{ id = "secmechbay"; @@ -33414,14 +34879,37 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/security/mechbay) +"kdA" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) +"kdC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "kdF" = ( /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"kdJ" = ( -/obj/structure/flora/grass/brown/style_3, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) +"kdS" = ( +/obj/structure/fence{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "kdT" = ( /obj/machinery/iv_drip, /obj/item/reagent_containers/blood, @@ -33444,26 +34932,10 @@ }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"kea" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/structure/desk_bell{ - pixel_x = -3 - }, -/turf/open/floor/iron, -/area/station/service/bar) "kei" = ( /obj/docking_port/stationary/escape_pod, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"keu" = ( -/obj/structure/lattice/catwalk, -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/underground/explored) "kex" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -33482,18 +34954,6 @@ /obj/item/canvas/nineteen_nineteen, /turf/open/floor/sepia, /area/station/security/prison/rec) -"keL" = ( -/obj/machinery/light_switch/directional/south, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/commons/dorms) -"keM" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/stone, -/area/station/commons/lounge) "keP" = ( /turf/closed/wall, /area/station/engineering/atmos/storage/gas) @@ -33509,21 +34969,6 @@ dir = 1 }, /area/station/hallway/primary/central) -"keT" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/turf/open/floor/iron/dark/corner{ - dir = 4 - }, -/area/station/maintenance/port/fore) "keZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33552,13 +34997,6 @@ /obj/item/trash/energybar, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"kfk" = ( -/obj/structure/table/wood, -/obj/item/paper, -/obj/item/pen, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "kfl" = ( /obj/structure/table/wood, /obj/item/radio/intercom/directional/south, @@ -33573,6 +35011,12 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"kfr" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "kfs" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) @@ -33608,13 +35052,12 @@ /obj/structure/sign/poster/random/directional/west, /turf/open/floor/iron, /area/station/engineering/atmos) -"kfZ" = ( -/obj/machinery/door/firedoor/heavy, -/obj/structure/sign/warning/test_chamber/directional/east, -/turf/open/floor/iron/white/corner{ - dir = 1 +"kfS" = ( +/obj/machinery/atmospherics/components/tank/air/layer4{ + initialize_directions = 2 }, -/area/station/science/research) +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "kgc" = ( /obj/structure/disposalpipe/junction/flip{ dir = 8 @@ -33649,6 +35092,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"kgw" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "kgy" = ( /obj/structure/cable, /obj/effect/spawner/random/structure/steam_vent, @@ -33711,23 +35159,10 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"kho" = ( -/obj/item/radio/intercom/directional/south, -/obj/structure/table/wood, -/obj/machinery/fax{ - fax_name = "Psychology Office"; - name = "Psychology Office Fax Machine" - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted, -/turf/open/floor/iron/white, -/area/station/medical/psychology) -"kht" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"khs" = ( +/obj/effect/spawner/random/engineering/atmospherics_portable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "khu" = ( /obj/structure/closet/toolcloset, /obj/effect/decal/cleanable/dirt, @@ -33740,24 +35175,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/atmos) -"khz" = ( -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/genturf, -/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) -"khF" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/sign/warning/gas_mask/directional/north{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/machinery/button/door/directional/north{ - id = "drone_bay"; - name = "Shutter Control"; - pixel_x = -24 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "khR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit, @@ -33817,17 +35234,35 @@ /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, +/turf/open/floor/iron/dark/textured, /area/station/maintenance/disposal/incinerator) -"kiI" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/fore) "kiL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/command/meeting_room) +"kiO" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"kiQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/station/command/heads_quarters/rd) "kiR" = ( /obj/structure/table, /obj/structure/cable, @@ -33842,6 +35277,24 @@ }, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"kiX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + color = "#0000ff"; + dir = 8; + name = "Supply multi deck pipe adapter" + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + color = "#ff0000"; + dir = 8; + name = "Scrubbers multi deck pipe adapter" + }, +/obj/structure/cable/multilayer/multiz, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "kiY" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/red/half/contrasted, @@ -33849,6 +35302,23 @@ /obj/effect/spawner/random/armory/bulletproof_helmet, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) +"kjd" = ( +/obj/structure/plasticflaps{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"kjh" = ( +/obj/structure/closet/secure_closet/personal{ + anchored = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/commons/locker) "kjo" = ( /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /obj/machinery/door/airlock/engineering{ @@ -33862,10 +35332,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"kjr" = ( -/obj/structure/sign/warning/test_chamber/directional/south, -/turf/open/floor/engine, -/area/station/science/genetics) "kjt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33906,16 +35372,37 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"kjY" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "Bridge Blast Door" +"kjN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/command/bridge) +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/starboard) +"kjP" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing/corner/end/flip{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "kka" = ( /obj/machinery/requests_console/auto_name/directional/west, /obj/machinery/camera/directional/west{ @@ -33926,18 +35413,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"kkb" = ( -/obj/machinery/door/window/left/directional/east{ - name = "Fitness Ring" - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) "kke" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -33952,29 +35427,6 @@ "kkl" = ( /turf/closed/wall, /area/station/security/interrogation) -"kkp" = ( -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/solars/port/aft) -"kkr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "kkA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster/directional/west, @@ -33993,6 +35445,15 @@ /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"kkF" = ( +/obj/effect/landmark/start/hangover, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/end, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/virology) "kkK" = ( /obj/structure/table, /obj/machinery/power/apc/auto_name/directional/east, @@ -34027,6 +35488,11 @@ /obj/effect/mapping_helpers/airlock/access/all/command/gateway, /turf/open/floor/iron/dark/textured, /area/station/command/gateway) +"kkX" = ( +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/science/research) "klc" = ( /turf/closed/wall, /area/station/medical/cryo) @@ -34056,23 +35522,10 @@ /obj/effect/spawner/random/contraband/prison, /turf/open/floor/carpet/blue, /area/station/security/prison/work) -"klJ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"klP" = ( -/obj/structure/dresser, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain) -"klS" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"klW" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron, +/area/station/science/xenobiology) "klX" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/public/glass{ @@ -34084,23 +35537,28 @@ /obj/structure/cable, /turf/open/floor/iron, /area/mine/laborcamp) -"kmf" = ( -/obj/machinery/status_display/evac/directional/west, -/turf/open/openspace, -/area/station/medical/medbay/aft) -"kmg" = ( -/obj/structure/sign/poster/official/obey, -/turf/closed/wall/r_wall, -/area/station/security/prison/visit) "kmi" = ( /obj/effect/landmark/blobstart, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"kmn" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/station/service/chapel) +"kmo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"kmq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "kmA" = ( /obj/structure/bed/medical/anchored{ dir = 4 @@ -34118,12 +35576,6 @@ }, /turf/open/floor/iron/white, /area/mine/laborcamp) -"kmD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/electrolyzer, -/obj/machinery/light/directional/west, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "kmG" = ( /obj/machinery/defibrillator_mount/directional/north, /obj/effect/turf_decal/tile/blue/full, @@ -34189,11 +35641,6 @@ dir = 8 }, /area/station/hallway/secondary/entry) -"koj" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/fore) "koH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -34207,22 +35654,19 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"koQ" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 +"kpg" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Chapel External Airlock"; + opacity = 0 }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) -"koX" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/service/chapel_office, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, /turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat/maint) +/area/station/service/chapel) "kpj" = ( /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 2 @@ -34231,10 +35675,27 @@ /obj/effect/decal/cleanable/dirt, /obj/item/clothing/mask/muzzle, /obj/machinery/flasher/directional/east{ - id = "cell4" + id = "cell4"; + pixel_y = -7 }, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"kpn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/kitchen/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"kps" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"kpA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron, +/area/station/command/teleporter) "kpC" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/mix) @@ -34270,6 +35731,11 @@ "kqc" = ( /turf/closed/wall, /area/station/security/medical) +"kqg" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/decoration/ornament, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "kqh" = ( /obj/structure/chair/wood{ dir = 8 @@ -34307,16 +35773,6 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) -"kqo" = ( -/obj/structure/table/wood, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/box/white/corners, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_y = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/bar) "kqq" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 1; @@ -34342,13 +35798,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"kqx" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/dark/smooth_edge{ - dir = 4 - }, -/area/station/command/gateway) "kqG" = ( /obj/structure/table/reinforced, /obj/machinery/light/small/directional/east, @@ -34365,24 +35814,16 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"kqN" = ( -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk/multiz/down, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) "kqP" = ( -/obj/effect/turf_decal/siding/white/corner{ - dir = 4 +/obj/machinery/door/airlock{ + name = "Unisex Showers" }, -/obj/machinery/light/directional/south, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/textured, +/area/station/commons/toilet) "kqR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34455,22 +35896,6 @@ }, /turf/open/floor/plating, /area/mine/laborcamp/security) -"krE" = ( -/obj/structure/table, -/obj/item/flashlight/flare/candle{ - pixel_y = 1; - pixel_x = -16 - }, -/obj/item/paper/crumpled{ - pixel_y = 3; - pixel_x = 1; - name = "used napkin" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "krN" = ( /obj/structure/sign/poster/official/random/directional/south, /obj/structure/window/reinforced/spawner/directional/west, @@ -34492,19 +35917,39 @@ /obj/machinery/telecomms/bus/preset_four, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"krV" = ( -/obj/machinery/vending/autodrobe/all_access, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) -"krW" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) "krY" = ( /turf/closed/wall/r_wall, /area/station/science/breakroom) +"krZ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"ksb" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/structure/cable, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/warning/fire/directional/north, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) +"ksc" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "kse" = ( /obj/structure/chair/sofa/bench/left{ dir = 8 @@ -34512,19 +35957,27 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/security/prison/mess) -"ksf" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/turf/open/floor/plating, -/area/station/cargo/storage) "ksi" = ( /obj/structure/displaycase, /obj/effect/turf_decal/tile/dark/fourcorners, /turf/open/floor/iron, /area/mine/living_quarters) +"ksl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Fitness" + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/commons/fitness) "ksn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -34534,12 +35987,6 @@ dir = 1 }, /area/mine/eva) -"kso" = ( -/obj/structure/fence/corner{ - dir = 6 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "ksu" = ( /mob/living/basic/mining/gutlunch/warrior, /turf/open/misc/asteroid/snow/icemoon, @@ -34547,29 +35994,6 @@ "ksC" = ( /turf/open/floor/iron, /area/station/security/brig/upper) -"ksH" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"ksR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/confetti, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"ksU" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/modular_computer/preset/civilian, -/obj/effect/turf_decal/bot_white, -/obj/machinery/newscaster/directional/north, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron/dark, -/area/station/command/gateway) "kta" = ( /turf/closed/wall, /area/station/commons/storage/mining) @@ -34595,27 +36019,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms/laundry) -"ktq" = ( -/obj/effect/turf_decal/siding/thinplating/dark/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 10 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/warm/directional/south, -/obj/structure/sign/poster/contraband/lizard/directional/south, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "ktt" = ( /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, @@ -34636,12 +36039,6 @@ /obj/effect/mapping_helpers/airalarm/tlv_no_checks, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"ktx" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/main) "ktz" = ( /obj/machinery/newscaster/directional/north, /turf/open/floor/wood, @@ -34650,35 +36047,6 @@ /obj/effect/spawner/random/trash/hobo_squat, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"ktD" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/obj/structure/chair/sofa/corp/left{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Medbay East"; - dir = 6; - network = list("ss13","medbay") - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) -"ktJ" = ( -/obj/structure/chair/stool/directional/north, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/fore) -"ktK" = ( -/obj/structure/chair/sofa/bench/left{ - dir = 4 - }, -/obj/structure/sign/warning/electric_shock/directional/west, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "ktU" = ( /turf/open/floor/carpet, /area/station/command/meeting_room) @@ -34691,35 +36059,53 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"ktY" = ( -/obj/item/radio/intercom/directional/east, -/obj/structure/table, -/obj/machinery/fax/auto_name, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) +"ktX" = ( +/obj/structure/fence/post{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "kub" = ( /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/dark, /area/station/service/chapel) -"kuy" = ( -/obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver{ - pixel_x = 28 - }, -/obj/effect/turf_decal/stripes{ - dir = 1 +"kuq" = ( +/obj/structure/railing, +/obj/effect/turf_decal/siding/white, +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + id = "cantena_curtains" }, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) +/turf/open/floor/wood, +/area/station/commons/lounge) +"kux" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "kuC" = ( /obj/structure/closet/cardboard, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"kuJ" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "kuR" = ( /obj/structure/barricade/wooden, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"kuT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "kuV" = ( /obj/effect/turf_decal/arrows/red, /obj/effect/turf_decal/tile/purple/half{ @@ -34729,20 +36115,16 @@ dir = 1 }, /area/station/hallway/primary/starboard) -"kva" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/cup/beaker/large{ - pixel_x = -3; - pixel_y = 3 +"kuZ" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 1 }, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper{ - pixel_x = -4; - pixel_y = 4 +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "botany_chasm_and_wolf_shutters" }, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron, -/area/station/science/xenobiology) +/turf/open/floor/plating, +/area/station/service/hydroponics) "kvf" = ( /obj/effect/turf_decal/caution{ dir = 4 @@ -34750,10 +36132,6 @@ /obj/structure/sign/warning/cold_temp/directional/north, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"kvh" = ( -/obj/structure/sign/warning, -/turf/closed/wall/r_wall, -/area/station/security/brig/upper) "kvj" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, @@ -34771,22 +36149,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/smooth, /area/station/maintenance/port/fore) -"kvG" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"kvH" = ( -/obj/structure/ladder, -/obj/structure/sign/warning/cold_temp/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/station/engineering/lobby) "kvR" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -34798,15 +36160,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/ordnance/office) -"kvT" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "kvX" = ( /turf/open/floor/iron/dark/smooth_edge{ dir = 4 @@ -34829,6 +36182,16 @@ /obj/item/wrench, /turf/open/floor/iron, /area/station/engineering/atmos) +"kwn" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) +"kww" = ( +/obj/machinery/gibber, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "kwz" = ( /obj/structure/table/wood, /obj/item/folder/blue, @@ -34845,14 +36208,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"kwT" = ( -/obj/machinery/mass_driver/trash{ - dir = 1 - }, -/obj/structure/sign/warning/cold_temp/directional/east, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/maintenance/disposal) "kwU" = ( /obj/machinery/computer/records/security, /obj/structure/cable, @@ -34896,31 +36251,47 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) +"kxA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "kxY" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron, /area/station/engineering/storage_shared) -"kxZ" = ( -/obj/machinery/space_heater, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/plating, -/area/station/maintenance/fore/lesser) -"kyc" = ( -/obj/effect/turf_decal/tile/blue, -/obj/item/kirbyplants/random, +"kya" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/electric_shock/directional/east, -/obj/structure/cable, -/obj/machinery/status_display/evac/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"kyf" = ( +/obj/structure/bookcase{ + name = "Holy Bookcase" }, -/turf/open/floor/iron/white/corner{ - dir = 8 +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/area/station/hallway/secondary/entry) +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "kyg" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -34957,6 +36328,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"kyM" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/medium, +/area/mine/eva/lower) "kyU" = ( /obj/machinery/modular_computer/preset/id, /obj/machinery/light/directional/north, @@ -34966,16 +36343,18 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) -"kyW" = ( -/obj/machinery/computer/records/medical, -/obj/structure/cable, -/obj/machinery/button/door/directional/north{ - id = "medsecprivacy"; - name = "Privacy Shutters Control" +"kyV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/tile/red/full, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/checkpoint/medical) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "kzv" = ( /obj/structure/bed, /obj/effect/spawner/random/bedsheet/any, @@ -35005,16 +36384,6 @@ }, /turf/open/floor/iron/large, /area/station/engineering/engine_smes) -"kzC" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Central Hallway South-West - HoP's Office" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "kzD" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -35024,6 +36393,12 @@ pixel_x = 9; pixel_y = 4 }, +/obj/machinery/button/door{ + pixel_y = -3; + pixel_x = -3; + id = "bridge blast"; + name = "Blast Door Control" + }, /turf/open/floor/iron, /area/station/command/bridge) "kzG" = ( @@ -35040,18 +36415,6 @@ /obj/item/multitool, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"kzU" = ( -/obj/structure/dresser, -/obj/structure/mirror/directional/north, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Service - Backstage"; - dir = 9 - }, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "kzZ" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -35061,10 +36424,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"kAm" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/hallway/secondary/exit/departure_lounge) +"kAk" = ( +/obj/structure/railing/wooden_fence{ + dir = 6 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "kAn" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, @@ -35090,6 +36455,21 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"kAQ" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/bar) +"kAT" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/fore) "kAW" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -35097,10 +36477,22 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) -"kAZ" = ( -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/iron/white, -/area/station/medical/cryo) +"kBc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Holodeck Door" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "holodeck" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron/textured, +/area/station/commons/fitness) "kBi" = ( /obj/effect/mapping_helpers/airlock/abandoned, /obj/machinery/door/airlock/atmos{ @@ -35136,14 +36528,6 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"kBO" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) "kBU" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -35165,30 +36549,18 @@ dir = 1 }, /area/mine/eva/lower) -"kCb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/dorms) "kCg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, /obj/machinery/firealarm/directional/west, -/obj/item/radio/intercom/directional/north, /obj/machinery/light/small/directional/west, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, /turf/open/floor/wood, /area/station/service/library) -"kCh" = ( -/obj/structure/closet, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "kCn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35212,11 +36584,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/commons/dorms) -"kCv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "kCx" = ( /obj/structure/table/wood, /obj/item/book/granter/action/spell/smoke/lesser{ @@ -35240,6 +36607,14 @@ }, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"kCC" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "kCG" = ( /obj/effect/turf_decal/tile/brown/fourcorners, /obj/machinery/photocopier, @@ -35255,44 +36630,9 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/mine/laborcamp/security) -"kCR" = ( -/obj/structure/stairs/west, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "kCV" = ( /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/service) -"kCY" = ( -/obj/structure/rack, -/obj/item/clothing/shoes/winterboots/ice_boots/eva{ - pixel_y = 2 - }, -/obj/item/clothing/suit/hooded/wintercoat/eva{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/mining_weather_monitor/directional/north, -/obj/effect/turf_decal/delivery/red, -/obj/machinery/camera/directional/north{ - c_tag = "Arrivals Emergency EVA" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) -"kDb" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - dir = 4; - name = "Exfiltrate Filter" - }, -/obj/effect/turf_decal/trimline/dark_red/filled/warning{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/dark_red/filled/warning{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) "kDc" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{ dir = 8 @@ -35303,14 +36643,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/sorting) -"kDm" = ( -/obj/structure/closet/crate/trashcart/laundry, -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/commons/dorms/laundry) "kDs" = ( /turf/closed/mineral/snowmountain/cavern/icemoon, /area/icemoon/surface/outdoors/nospawn) @@ -35346,6 +36678,16 @@ dir = 4 }, /area/mine/eva) +"kDO" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "kEj" = ( /obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/table, @@ -35366,26 +36708,11 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"kEr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"kEs" = ( -/obj/structure/tank_holder/extinguisher, +"kEC" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/closet/emcloset, /turf/open/floor/plating, -/area/station/maintenance/port/greater) -"kEB" = ( -/obj/effect/decal/cleanable/generic, -/obj/effect/decal/cleanable/robot_debris/down, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/iron/checker, -/area/station/maintenance/port/fore) +/area/station/maintenance/port/aft) "kEM" = ( /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) @@ -35402,6 +36729,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"kFc" = ( +/obj/structure/table/wood, +/obj/item/circuitboard/machine/fax, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/five, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "kFu" = ( /obj/structure/table, /obj/item/stack/sheet/iron/fifty, @@ -35420,15 +36754,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"kFF" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Cart Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/kitchen, -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, -/obj/structure/barricade/wooden/snowed, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "kFH" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 10 @@ -35450,6 +36775,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/mine/eva) +"kFW" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "kGc" = ( /obj/structure/table/wood, /obj/structure/cable, @@ -35462,6 +36797,27 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood/large, /area/station/command/heads_quarters/hos) +"kGe" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door"; + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) +"kGm" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/cmo/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) "kGx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35472,12 +36828,9 @@ /turf/open/floor/iron, /area/station/cargo/lobby) "kGD" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/obj/structure/secure_safe/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "kGF" = ( /obj/structure/table, /obj/item/camera_film, @@ -35535,22 +36888,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) -"kHq" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/status_display/shuttle{ - pixel_x = -32; - shuttle_id = "arrival" - }, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron/white/corner{ - dir = 8 - }, -/area/station/hallway/secondary/entry) "kHr" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/project) @@ -35632,6 +36969,12 @@ /obj/item/clothing/suit/hooded/wintercoat, /turf/open/floor/vault, /area/station/security/prison/rec) +"kIr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/library) "kIt" = ( /obj/effect/turf_decal/siding/yellow{ dir = 4 @@ -35652,11 +36995,11 @@ /obj/machinery/space_heater, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"kIK" = ( -/obj/effect/turf_decal/tile/blue, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +"kIL" = ( +/obj/structure/flora/grass/green/style_random, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "kIU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner, @@ -35668,12 +37011,6 @@ dir = 1 }, /area/mine/eva) -"kIX" = ( -/obj/structure/fence/corner{ - dir = 6 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "kJc" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance/two, @@ -35698,6 +37035,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"kJr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/stool/bar/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "kJw" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ dir = 4 @@ -35706,26 +37053,18 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/smooth, /area/mine/laborcamp/security) -"kJx" = ( -/obj/structure/railing/wooden_fence, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"kJG" = ( -/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ - id = "cantena_curtains" - }, -/obj/structure/railing{ +"kJF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 }, -/obj/effect/turf_decal/siding/white{ +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy{ dir = 4 }, -/turf/open/floor/wood, -/area/station/commons/lounge) -"kJI" = ( -/obj/structure/transit_tube/station/reverse, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat_interior) +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "kJK" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -35740,12 +37079,6 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"kJP" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "kJU" = ( /obj/structure/girder, /turf/open/floor/iron/dark, @@ -35761,21 +37094,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) -"kKa" = ( -/obj/item/clothing/under/costume/skeleton, -/obj/item/clothing/head/helmet/skull, -/turf/open/floor/plating, -/area/station/medical/morgue) -"kKk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"kKn" = ( -/obj/machinery/light/cold/directional/east, -/obj/machinery/status_display/ai/directional/east, -/turf/open/openspace, -/area/station/service/kitchen/coldroom) "kKv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/sorting/mail{ @@ -35801,6 +37119,14 @@ "kKL" = ( /turf/closed/wall, /area/station/maintenance/starboard/fore) +"kKT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "kKU" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 8 @@ -35840,6 +37166,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage) +"kLd" = ( +/obj/structure/fence/post{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "kLo" = ( /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/dark/textured, @@ -35849,11 +37181,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) -"kLs" = ( -/obj/structure/sign/warning/docking, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/hallway/secondary/exit/departure_lounge) "kLy" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -35885,17 +37212,6 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"kMP" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/rack, -/obj/item/storage/backpack/satchel/leather/withwallet, -/obj/item/toy/figure/assistant, -/obj/structure/sign/calendar/directional/west, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/dorms/laundry) "kMY" = ( /obj/effect/turf_decal/siding/yellow{ dir = 6 @@ -35908,13 +37224,22 @@ }, /turf/open/floor/iron/large, /area/station/engineering/storage) -"kNa" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/cryo) +"kNf" = ( +/obj/structure/table, +/obj/item/flashlight/flare/candle{ + pixel_y = 1; + pixel_x = -16 + }, +/obj/item/paper/crumpled{ + pixel_y = 3; + pixel_x = 1; + name = "used napkin" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "kNi" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -35944,8 +37269,9 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical/central) "kNC" = ( -/obj/structure/fence, -/turf/open/misc/asteroid/snow/icemoon, +/obj/structure/railing, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) "kNQ" = ( /obj/structure/cable, @@ -35964,6 +37290,11 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"kOc" = ( +/obj/structure/chair, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "kOi" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 9 @@ -35981,6 +37312,45 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"kOq" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=EVA2"; + location = "Dorm" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"kOt" = ( +/obj/structure/fence/corner{ + dir = 2; + pixel_y = 0 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"kOx" = ( +/obj/structure/table/wood, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/box/white/corners{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/bar) +"kOM" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "botany_chasm_and_wolf_shutters" + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) "kON" = ( /obj/structure/rack, /obj/effect/decal/cleanable/dirt, @@ -35998,22 +37368,11 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) -"kOO" = ( -/obj/structure/sign/poster/random/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) -"kOS" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Public Mining Storage"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 29 - }, -/turf/open/floor/iron/dark, -/area/mine/storage) +"kOR" = ( +/obj/structure/railing/wooden_fence, +/obj/item/flashlight/lantern/on, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "kOV" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -36041,11 +37400,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"kPh" = ( -/obj/structure/flora/bush/sunny/style_random, -/obj/structure/flora/bush/fullgrass/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) "kPo" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -36060,6 +37414,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"kPu" = ( +/obj/structure/table, +/obj/item/crowbar/red, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/structure/sign/poster/random/directional/west, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "kPv" = ( /obj/machinery/vending/cigarette, /turf/open/floor/wood, @@ -36077,9 +37444,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"kPz" = ( -/turf/closed/mineral/random/snow, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) "kPL" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -36094,25 +37458,6 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"kPS" = ( -/obj/structure/railing, -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"kPY" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/vending/hydroseeds{ - slogan_delay = 700 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "kQc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36143,14 +37488,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"kQx" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/item/radio/intercom/directional/north, -/obj/machinery/holopad, -/obj/machinery/light/warm/directional/north, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/service/bar) "kQz" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -36169,14 +37506,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/fore) -"kQH" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "kQJ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -36199,13 +37528,6 @@ /obj/item/pipe_dispenser, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"kQV" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/random/maintenance/three, -/obj/structure/sign/departments/maint/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "kQY" = ( /obj/effect/turf_decal/arrows/red{ dir = 4; @@ -36227,12 +37549,15 @@ /obj/structure/bookcase, /turf/open/floor/iron, /area/mine/laborcamp) -"kRj" = ( -/obj/structure/table/wood, -/obj/item/c_tube, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +"kRw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/atmos_control/nocontrol/incinerator{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) "kRy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36240,15 +37565,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"kRD" = ( -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Garden" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/iron/textured, -/area/station/service/hydroponics) "kRE" = ( /obj/machinery/computer/mech_bay_power_console{ dir = 8 @@ -36256,13 +37572,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"kRF" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "kRH" = ( /obj/machinery/door/airlock/highsecurity{ name = "Chemistry Lab Exit" @@ -36273,21 +37582,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, /turf/open/floor/plating, /area/station/medical/chemistry) -"kRI" = ( -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -4 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "kRJ" = ( /obj/machinery/camera/directional/north{ c_tag = "Atmospherics Distribution Loop" @@ -36311,13 +37605,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/office) -"kSj" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/wood/parquet, -/area/station/service/theater) +"kRV" = ( +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"kSc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "kSn" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line, @@ -36332,12 +37628,25 @@ /obj/structure/sign/warning/secure_area, /turf/closed/wall/r_wall, /area/icemoon/underground/explored) +"kSA" = ( +/obj/machinery/mining_weather_monitor/directional/east, +/turf/open/floor/iron/grimy, +/area/station/hallway/secondary/entry) "kSD" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"kSG" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "kSM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -36383,25 +37692,6 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/mine/eva/lower) -"kTQ" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/lobby) -"kTX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/plastic, -/area/station/commons/dorms/laundry) "kUb" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 8 @@ -36420,6 +37710,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/pink, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"kUo" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light/cold/directional/west, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"kUt" = ( +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/security/prison/safe) "kUu" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -36438,6 +37743,13 @@ "kUD" = ( /turf/open/openspace, /area/mine/eva) +"kUF" = ( +/obj/machinery/light/directional/north, +/obj/machinery/status_display/supply{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "kUJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/built/directional/south, @@ -36446,14 +37758,6 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) -"kUP" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/structure/railing/corner, -/turf/open/lava/plasma/ice_moon, -/area/icemoon/underground/explored) "kUU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36462,72 +37766,43 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/smooth, /area/station/maintenance/port/lesser) -"kUW" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Service External Airlock"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"kVj" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, +"kVa" = ( +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/commons/fitness) +"kVe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/fore) "kVl" = ( /obj/effect/landmark/event_spawn, /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/cargo/storage) -"kVo" = ( -/obj/structure/table/wood, -/obj/machinery/reagentgrinder{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/shaker{ - pixel_x = -6 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/service/bar) -"kVq" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/light/warm/directional/north, -/obj/machinery/digital_clock/directional/north, -/turf/open/floor/iron, -/area/station/service/bar) +"kVv" = ( +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/five, +/obj/structure/sign/poster/contraband/little_fruits/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "kVx" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"kVE" = ( -/obj/structure/sign/painting/library_secure{ - pixel_x = 32 - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/door/window/left/directional/west{ - name = "Secure Art Exhibition"; - req_access = list("library") +"kVA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/effect/spawner/random/structure/table_fancy, -/turf/open/floor/wood, -/area/station/service/library) +/obj/machinery/mining_weather_monitor/directional/north, +/turf/open/floor/iron/large, +/area/station/hallway/secondary/entry) "kVF" = ( /obj/structure/closet/secure_closet/courtroom, /obj/item/gavelhammer, @@ -36535,6 +37810,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/security/courtroom) +"kVI" = ( +/obj/structure/closet/firecloset, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) "kVM" = ( /obj/structure/chair/sofa/corp/right{ dir = 1 @@ -36542,6 +37822,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/engineering/lobby) +"kVN" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Mining B-1 Hallway South"; + network = list("ss13", "mine") + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/mine/eva) "kVS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36562,6 +37856,16 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"kWk" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "kWr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -36578,23 +37882,6 @@ }, /turf/open/floor/iron, /area/station/tcommsat/computer) -"kWG" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"kWH" = ( -/obj/structure/rack, -/obj/item/hand_labeler, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/iron/textured, -/area/station/security/brig) "kWL" = ( /obj/structure/rack, /obj/item/reagent_containers/cup/bottle/nitrogen{ @@ -36608,6 +37895,7 @@ /obj/item/reagent_containers/cup/bottle/oxygen{ pixel_x = 1 }, +/obj/structure/sign/warning/no_smoking/circle/directional/west, /turf/open/floor/iron/dark/textured_edge{ dir = 8 }, @@ -36620,6 +37908,21 @@ /obj/effect/mapping_helpers/mail_sorting/service/janitor_closet, /turf/open/floor/iron, /area/station/hallway/primary/central) +"kWO" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table/wood, +/obj/item/flashlight/lantern, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"kWV" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "kWW" = ( /obj/machinery/door/airlock/atmos, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36644,6 +37947,10 @@ dir = 1 }, /area/station/engineering/atmos/hfr_room) +"kXf" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "kXq" = ( /obj/machinery/air_sensor/plasma_tank, /turf/open/floor/engine/plasma, @@ -36698,10 +38005,10 @@ /area/icemoon/surface/outdoors/nospawn) "kXM" = ( /obj/structure/closet/secure_closet/security/med, -/obj/machinery/firealarm/directional/south, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/turf_decal/tile/red/full, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) "kXO" = ( @@ -36710,22 +38017,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) -"kXS" = ( -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Hydroponics" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 +"kXQ" = ( +/obj/machinery/power/solar_control{ + id = "auxsolareast"; + name = "Starboard Bow Solar Control" }, -/area/station/service/hydroponics) +/obj/structure/cable, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/fore) +"kXW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/fore) "kXY" = ( /turf/open/floor/iron/dark, /area/station/security/prison/rec) @@ -36742,9 +38048,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"kYo" = ( -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) "kYq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -36774,11 +38077,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/large, /area/station/engineering/engine_smes) -"kYN" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lantern/on, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) "kZa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36798,6 +38096,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"kZe" = ( +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external/glass{ + name = "Cytology External Airlock" + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "kZh" = ( /obj/structure/cable, /obj/structure/sign/poster/contraband/random/directional/west, @@ -36807,16 +38115,6 @@ /obj/machinery/space_heater, /turf/open/floor/iron/dark/textured, /area/station/security/prison) -"kZm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "kZn" = ( /obj/structure/cable, /obj/machinery/light/floor, @@ -36844,12 +38142,14 @@ /turf/open/floor/vault, /area/station/security/prison/rec) "laa" = ( -/obj/machinery/atmospherics/components/tank, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/newscaster/directional/west, +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/structure/railing/corner, /turf/open/floor/iron/dark, -/area/station/science/ordnance) +/area/station/commons/lounge) "lab" = ( /obj/machinery/door/window/brigdoor/left/directional/north{ name = "Secure Weapons Storage"; @@ -36868,13 +38168,29 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"lal" = ( -/obj/structure/chair/sofa/right/brown, -/obj/item/toy/plush/moth{ - name = "Dr. Moff" +"lah" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/carpet/blue, -/area/station/medical/psychology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Escape"; + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/exit/departure_lounge) "law" = ( /obj/machinery/door/airlock/security/glass{ name = "Security Vestibule" @@ -36951,13 +38267,13 @@ /obj/structure/sign/warning/fire/directional/north, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"lca" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"lby" = ( +/obj/effect/decal/cleanable/greenglow, +/obj/effect/decal/cleanable/plastic, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "lch" = ( /obj/machinery/computer/monitor{ dir = 1; @@ -36970,27 +38286,21 @@ /obj/machinery/gateway/centerstation, /turf/open/floor/iron/dark/smooth_large, /area/station/command/gateway) -"lcm" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/decal/cleanable/ash, -/obj/item/rack_parts, -/obj/effect/mapping_helpers/burnt_floor, +"lcs" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 4 + }, /turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/area/station/maintenance/starboard/fore) +"lct" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/science/cytology) "lcu" = ( /turf/open/floor/iron/white, /area/station/science/explab) -"lcz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/warning/fire/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"lcA" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall/ice, -/area/icemoon/underground/explored) "lcB" = ( /obj/machinery/light/small/directional/west, /obj/structure/table/wood, @@ -37048,6 +38358,12 @@ "ldH" = ( /turf/closed/wall, /area/station/security/prison/mess) +"ldJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/newscaster/directional/north, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ldQ" = ( /obj/structure/barricade/wooden, /obj/structure/girder, @@ -37057,17 +38373,6 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"ldT" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge" - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/turf/open/floor/iron, -/area/station/command/bridge) "ldV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ @@ -37082,21 +38387,17 @@ /obj/machinery/shower/directional/south, /turf/open/floor/iron, /area/station/science/xenobiology) -"leg" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "lei" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/bed/medical/emergency, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"lej" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "lek" = ( /obj/machinery/conveyor_switch/oneway{ id = "packageSort2" @@ -37111,14 +38412,15 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"leE" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +"leo" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) "leM" = ( /obj/structure/railing{ dir = 8 @@ -37128,17 +38430,36 @@ }, /turf/open/floor/glass/reinforced, /area/station/hallway/primary/starboard) -"leP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"leU" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "leW" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) +"lfo" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron, +/area/station/command/bridge) "lfp" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/south, @@ -37154,11 +38475,26 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"lfF" = ( -/obj/structure/sign/warning/cold_temp/directional/west, -/obj/structure/sign/warning/gas_mask/directional/east, -/turf/open/floor/plating, -/area/station/engineering/atmos) +"lfA" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/directional/north, +/obj/machinery/door_buttons/airlock_controller{ + pixel_y = 32; + idExterior = "virology_airlock_exterior"; + idInterior = "virology_airlock_interior"; + idSelf = "virology_airlock_control"; + interior_airlock = "virology_airlock_control"; + name = "Virology Access Controller"; + req_access = list("virology") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "lfG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37183,11 +38519,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/medical/storage) -"lgb" = ( -/obj/effect/landmark/start/botanist, -/obj/structure/chair/office/light, -/turf/open/floor/glass, -/area/station/service/hydroponics) +"lfU" = ( +/obj/effect/spawner/random/structure/grille, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "lgg" = ( /obj/machinery/air_sensor/engine_chamber, /turf/open/floor/engine, @@ -37198,6 +38534,20 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"lgw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"lgx" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/service/bar/backroom) "lgz" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -37213,12 +38563,6 @@ }, /turf/open/floor/iron/textured, /area/station/security/brig) -"lgH" = ( -/obj/structure/flora/tree/pine/style_random, -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "lgK" = ( /turf/closed/wall, /area/station/security/prison/visit) @@ -37229,15 +38573,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) -"lgP" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "lgW" = ( /obj/machinery/meter/monitored/distro_loop, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, @@ -37291,6 +38626,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"lia" = ( +/turf/open/openspace, +/area/station/service/kitchen/coldroom) +"lik" = ( +/obj/effect/landmark/start/bartender, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "lil" = ( /obj/structure/cable, /obj/structure/sign/poster/random/directional/west, @@ -37298,6 +38643,9 @@ /area/station/maintenance/port/fore) "lis" = ( /obj/structure/closet/secure_closet/miner, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) "lit" = ( @@ -37309,19 +38657,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) -"liv" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/obj/structure/minecart_rail{ - dir = 1 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "lix" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -37359,12 +38694,11 @@ /obj/item/toy/figure/chaplain, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"ljj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/sign/warning/cold_temp, -/turf/open/floor/plating, -/area/station/hallway/secondary/exit/departure_lounge) +"liV" = ( +/obj/structure/chair/sofa/bench/left, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "ljl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37387,6 +38721,16 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ljq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "ljx" = ( /obj/effect/turf_decal/plaque{ icon_state = "L1" @@ -37403,6 +38747,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) +"ljB" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/aft) "ljD" = ( /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, @@ -37450,14 +38804,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured, /area/station/commons/storage/primary) -"lka" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/medical/treatment_center) "lkb" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -37481,6 +38827,15 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/carpet, /area/station/commons/dorms) +"lko" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/service/bar/backroom) "lkr" = ( /obj/structure/closet/firecloset, /turf/open/floor/iron, @@ -37514,42 +38869,18 @@ /obj/effect/decal/cleanable/food/pie_smudge, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"lkY" = ( -/obj/structure/bed{ - dir = 4 - }, -/obj/item/bedsheet/brown{ - dir = 4 - }, -/obj/machinery/button/door/directional/north{ - id = "miningdorm_A"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -24; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/donk, -/area/mine/production) "lli" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"llm" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/gun/ballistic/shotgun/doublebarrel, -/obj/structure/rack, -/obj/structure/disposalpipe/segment{ +"lln" = ( +/obj/effect/decal/cleanable/blood/tracks{ dir = 4 }, -/obj/effect/turf_decal/box/red, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "llw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37562,8 +38893,28 @@ /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 8 }, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/white, /area/station/medical/psychology) +"llR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/pen/red, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/folder/yellow, +/obj/machinery/button/door/directional/west{ + id = "qmprivacy"; + name = "Privacy Shutters Control"; + req_access = list("qm") + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "llT" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 1 @@ -37612,6 +38963,14 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/office) +"lmx" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "lmy" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 5 @@ -37642,26 +39001,37 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/mechbay) -"lmY" = ( -/obj/machinery/newscaster/directional/west, -/obj/machinery/camera{ - c_tag = "Research Division Lobby"; - dir = 10; - network = list("ss13","rd") - }, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/stripes/corner{ +"lmQ" = ( +/obj/effect/turf_decal/tile/bar{ dir = 4 }, -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 8 - }, +/obj/structure/chair/stool/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"lmT" = ( +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Chapel North" + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "lnc" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/commons/storage/tools) +"lne" = ( +/obj/structure/table/glass, +/obj/item/seeds/glowshroom, +/obj/item/seeds/bamboo{ + pixel_y = 3; + pixel_x = 4 + }, +/obj/machinery/newscaster/directional/east, +/obj/structure/sign/poster/contraband/kudzu/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "lnk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -37689,12 +39059,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"lnw" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/service/chapel) "lnx" = ( /obj/structure/closet/crate/preopen, /turf/open/floor/plating/snowed/icemoon, @@ -37704,23 +39068,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"lnE" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "lnL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/large, @@ -37751,15 +39098,11 @@ }, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) -"lop" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage) +"lom" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/commons/lounge) "loq" = ( /obj/structure/light_construct/directional/east, /turf/open/floor/iron, @@ -37775,11 +39118,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig/upper) -"loG" = ( -/obj/structure/closet/secure_closet/chief_medical, -/obj/item/screwdriver, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/cmo) +"loF" = ( +/obj/structure/table/wood, +/obj/item/toy/mecha/honk{ + pixel_y = 12 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/theater) +"loO" = ( +/obj/structure/statue/snow/snowman, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "loV" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 @@ -37812,6 +39162,10 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"lpy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "lpC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37866,6 +39220,13 @@ }, /turf/open/floor/iron, /area/station/security/prison/mess) +"lqi" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/rcl/pre_loaded, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "lqj" = ( /obj/structure/chair/pew/right{ dir = 1 @@ -37901,6 +39262,36 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"lqL" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"lqM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"lqN" = ( +/obj/structure/rack, +/obj/item/controller{ + pixel_x = -7 + }, +/obj/item/compact_remote{ + pixel_x = -7 + }, +/obj/item/compact_remote{ + pixel_x = -7 + }, +/obj/item/integrated_circuit/loaded/speech_relay{ + pixel_x = 7 + }, +/obj/item/integrated_circuit/loaded/hello_world{ + pixel_x = 7 + }, +/obj/machinery/airalarm/directional/west, +/obj/structure/sign/warning/firing_range/directional/north, +/turf/open/floor/iron/white/corner, +/area/station/science/explab) "lqU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -37910,6 +39301,17 @@ }, /turf/open/floor/plating, /area/station/science/xenobiology) +"lqZ" = ( +/obj/machinery/vending/wardrobe/coroner_wardrobe, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "lrc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37920,17 +39322,13 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/cmo_office, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"lry" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Chapel Coffin Storage" - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +"lrl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore) "lrz" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/trash/janitor_supplies, @@ -37943,14 +39341,13 @@ /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain) -"lrE" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/obj/item/bikehorn/rubberducky, -/obj/structure/cable, -/obj/effect/landmark/start/hangover, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) +"lrM" = ( +/obj/effect/turf_decal/siding/wideplating_new/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) "lsa" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 4; @@ -37960,11 +39357,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/robotics/lab) -"lsh" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/fore) "lsi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37974,26 +39366,34 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"lsn" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/stairs/south, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/security/prison) "lso" = ( /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"lsH" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ +"lsA" = ( +/obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/effect/turf_decal/stripes/white/line{ +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) +/obj/machinery/light/floor, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"lsF" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "lsN" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 8 @@ -38026,6 +39426,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"ltH" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"ltP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "ltV" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -38039,10 +39451,29 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) +"ltY" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Central Hallway North-East" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/sign/poster/official/random/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "lub" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) +"luk" = ( +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Captain's Office"; + name = "Captain's Fax Machine" + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "lup" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 8 @@ -38055,63 +39486,117 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"luJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" +"luD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/effect/turf_decal/tile/dark/half/contrasted{ - dir = 1 +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma{ + pixel_x = 3; + pixel_y = 3 }, -/turf/open/floor/iron/white/side, -/area/station/science/ordnance/office) -"luR" = ( +/obj/item/stack/sheet/mineral/plasma{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_x = -3; + pixel_y = 9 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"luG" = ( /obj/item/toy/snowball{ - pixel_x = 9; - pixel_y = 1 + pixel_x = 5; + pixel_y = -1 }, /turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"luI" = ( +/obj/effect/spawner/random/lavaland_mob/raptor, +/turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"luP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"luR" = ( +/obj/structure/chair/office/tactical{ + dir = 1 + }, +/obj/effect/landmark/start/coroner, +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "lva" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/xenobiology) -"lvh" = ( -/obj/structure/window/reinforced/spawner/directional/south, +"lvb" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/storage/box/syringes{ + pixel_y = 8; + pixel_x = -5 + }, +/obj/item/storage/box/beakers{ + pixel_y = 5; + pixel_x = -9 + }, /turf/open/floor/iron, -/area/station/science/xenobiology) +/area/station/service/hydroponics) "lvk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness) -"lvm" = ( -/obj/machinery/camera/motion/directional/north{ - c_tag = "EVA Storage North" +"lvl" = ( +/obj/structure/chair{ + dir = 1; + name = "Command Station" }, -/obj/structure/sign/warning/secure_area/directional/north, -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/dark/smooth_half{ - dir = 1 +/obj/machinery/keycard_auth{ + pixel_x = 29; + pixel_y = 8 }, -/area/station/ai_monitored/command/storage/eva) +/turf/open/floor/iron, +/area/station/command/bridge) "lvt" = ( /turf/open/openspace/icemoon, /area/icemoon/underground/explored) -"lvv" = ( -/obj/machinery/newscaster/directional/east, -/turf/open/floor/stone, -/area/station/commons/lounge) -"lvy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/hydroponics) +"lvA" = ( +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door"; + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/sign/warning/secure_area/directional/north, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "lvB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38138,9 +39623,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/eva) +"lvR" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "lvS" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/machinery/flasher/directional/east{ + id = "brigentry" + }, /turf/open/floor/iron/dark/textured_edge{ dir = 8 }, @@ -38152,6 +39646,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/eva) +"lvU" = ( +/obj/structure/closet/crate, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/effect/turf_decal/siding/dark{ + dir = 6 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/security/prison/work) "lvW" = ( /obj/structure/table, /obj/effect/spawner/random/trash/food_packaging, @@ -38190,6 +39695,15 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) +"lwI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "lwO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38231,14 +39745,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/tools) -"lxn" = ( -/obj/machinery/biogenerator, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/mine/laborcamp) +"lxi" = ( +/obj/structure/closet/toolcloset, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron, +/area/station/construction) "lxu" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ dir = 4 @@ -38246,6 +39758,10 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"lxR" = ( +/obj/effect/spawner/random/structure/crate_abandoned, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "lxT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/decal/cleanable/dirt, @@ -38263,6 +39779,11 @@ /obj/machinery/meter, /turf/open/floor/iron, /area/station/engineering/atmos) +"lxY" = ( +/obj/structure/closet/crate, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "lye" = ( /obj/effect/turf_decal/bot_white/right, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -38272,40 +39793,9 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"lyf" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "lyg" = ( /turf/closed/wall/r_wall, /area/station/security/brig) -"lyh" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=EVA2"; - location = "Dorm" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"lyl" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/treatment_center) "lyq" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/bot, @@ -38319,13 +39809,16 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/stone, /area/mine/eva/lower) -"lyv" = ( -/obj/structure/table/wood/poker, -/obj/item/trash/candle{ - pixel_y = 3 +"lyy" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/computer/gateway_control, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/turf/open/floor/iron/dark, +/area/station/command/gateway) "lyG" = ( /turf/open/floor/glass/reinforced, /area/station/ai_monitored/security/armory/upper) @@ -38334,26 +39827,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible/layer2, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) -"lyP" = ( -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/camera{ - c_tag = "Service - Botany Lower Entrance"; - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"lyU" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "lyX" = ( /obj/structure/chair{ dir = 4 @@ -38361,10 +39834,18 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"lzc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/plating, -/area/station/maintenance/fore) +"lzb" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) "lzq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38410,6 +39891,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"lzJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/sign/warning/radiation/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "lzM" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -38426,6 +39914,26 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"lzU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/sign/warning/pods/directional/north, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) "lzX" = ( /obj/machinery/light/floor, /turf/open/floor/iron/white, @@ -38475,6 +39983,22 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"lAW" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Fitness" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/commons/fitness) "lBo" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/carpet, @@ -38486,10 +40010,22 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"lBB" = ( +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "lBD" = ( /obj/structure/flora/grass/green/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"lBN" = ( +/obj/machinery/door/morgue{ + name = "Coffin Storage"; + req_access = list("chapel_office"); + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "lBR" = ( /turf/closed/wall, /area/station/security/prison/toilet) @@ -38516,6 +40052,14 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) +"lCc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "lCg" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -38526,26 +40070,24 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"lCv" = ( -/obj/machinery/firealarm/directional/west, -/obj/structure/closet/crate/wooden/toy, -/turf/open/floor/wood/parquet, -/area/station/service/theater) +"lCn" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "lCz" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/bot, /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) -"lCA" = ( -/obj/machinery/computer/order_console/mining, -/obj/machinery/light/small/directional/south, -/obj/machinery/light_switch/directional/south, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/mine/production) "lCC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38565,16 +40107,6 @@ dir = 1 }, /area/station/engineering/lobby) -"lCM" = ( -/obj/structure/closet/crate, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"lCO" = ( -/obj/machinery/duct, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "lCV" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38647,13 +40179,6 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) -"lDE" = ( -/obj/structure/sign/poster/official/safety_report/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/prison/visit) "lDF" = ( /obj/structure/table, /obj/item/wrench, @@ -38687,25 +40212,6 @@ /obj/structure/cable, /turf/open/floor/carpet/blue, /area/station/security/prison/work) -"lEb" = ( -/obj/machinery/door/airlock/multi_tile/public/glass{ - dir = 4; - name = "Service Hall" - }, -/obj/effect/turf_decal/siding/dark/corner, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/service/general, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/hallway/secondary/service) "lEg" = ( /obj/machinery/door/window/left/directional/north{ name = "AI Core Door"; @@ -38717,17 +40223,6 @@ "lEj" = ( /turf/open/floor/iron/dark/textured, /area/station/security/processing) -"lEn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/stack/sheet/mineral/coal{ - pixel_x = 6; - pixel_y = 3 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "lEo" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/disposalpipe/segment{ @@ -38735,13 +40230,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"lEt" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/mine/eva) "lEv" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38774,15 +40262,43 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) -"lEK" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/hangover, +"lEJ" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/structure/sign/warning/directional/north, /turf/open/floor/iron, -/area/station/hallway/primary/aft) +/area/station/commons/storage/mining) +"lEM" = ( +/obj/structure/rack, +/obj/item/hand_labeler, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red, +/obj/machinery/button/door/directional/east{ + id = "Trial Transfer"; + name = "Trial Transfer Lockdown"; + req_access = list("brig") + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "lEO" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -38802,6 +40318,20 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron, /area/station/command/bridge) +"lFb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/starboard) "lFe" = ( /obj/structure/bookcase/random/adult, /turf/open/floor/iron/dark/textured, @@ -38853,13 +40383,31 @@ dir = 8 }, /area/station/command/heads_quarters/rd) +"lGb" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/flashlight{ + pixel_y = 2 + }, +/obj/structure/lattice/catwalk, +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "lGd" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"lGf" = ( +/obj/structure/sign/warning/directional/north, +/turf/open/genturf/blue, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "lGh" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -38871,11 +40419,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"lGo" = ( -/obj/machinery/hydroponics/soil, -/obj/structure/sign/poster/contraband/kudzu/directional/east, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "lGp" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -38903,6 +40446,12 @@ /obj/item/storage/toolbox/emergency, /turf/open/floor/iron, /area/station/hallway/primary/port) +"lGH" = ( +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "lGK" = ( /obj/machinery/vending/cigarette, /obj/machinery/button/door{ @@ -38925,29 +40474,11 @@ dir = 1 }, /area/station/hallway/secondary/entry) -"lHi" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"lHm" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/test_chamber/directional/north, -/turf/open/floor/iron, -/area/station/science/explab) -"lHr" = ( -/obj/structure/stairs/north, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +"lGN" = ( +/obj/effect/landmark/start/botanist, +/obj/structure/chair/office/light, +/turf/open/floor/glass, +/area/station/service/hydroponics) "lHu" = ( /obj/structure/closet/secure_closet/brig, /obj/structure/cable, @@ -38958,16 +40489,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/fore) -"lHB" = ( -/obj/machinery/camera{ - c_tag = "Chapel North"; - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "lHC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -38987,17 +40508,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/storage/gas) -"lHI" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/siding/white/corner{ - dir = 8 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/service/hydroponics) "lHL" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/corner{ @@ -39011,6 +40521,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/mechbay) +"lHV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "lIk" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -39025,13 +40540,6 @@ }, /turf/open/floor/iron/freezer, /area/station/command/heads_quarters/captain) -"lIs" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "lIt" = ( /obj/machinery/modular_computer/preset/cargochat/security{ dir = 4 @@ -39066,16 +40574,10 @@ /obj/effect/mapping_helpers/airlock/access/any/command/general, /turf/open/floor/iron, /area/station/tcommsat/computer) -"lIK" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/turretid{ - name = "AI Chamber turret control"; - pixel_x = 5; - pixel_y = -24 - }, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) +"lIP" = ( +/obj/effect/mapping_helpers/trapdoor_placer, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/medbay/central) "lIQ" = ( /obj/item/restraints/legcuffs/beartrap, /obj/item/restraints/legcuffs/beartrap, @@ -39088,60 +40590,28 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva/lower) -"lIT" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/obj/structure/cable, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/hallway/secondary/entry) -"lIU" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/structure/sign/clock/directional/west, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ +"lIW" = ( +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat_interior) +"lJg" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, -/turf/open/floor/iron, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) -"lIW" = ( +"lJn" = ( +/obj/effect/decal/cleanable/confetti, +/obj/structure/closet/crate/cardboard, +/obj/item/storage/cans/sixbeer, +/obj/effect/spawner/random/food_or_drink/cups, /turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat_interior) -"lJc" = ( -/obj/item/food/chococoin, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) +/area/station/maintenance/starboard/fore) "lJO" = ( /turf/closed/wall, /area/station/maintenance/port/fore) -"lJS" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Security - Permabrig Lower Hallway Stairwell"; - network = list("ss13","prison") - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) -"lJW" = ( -/obj/machinery/smartfridge, -/obj/machinery/door/window/right/directional/south{ - name = "Produce Access"; - req_access = list("hydroponics") - }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "lKc" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -39184,15 +40654,13 @@ /obj/structure/closet/radiation, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"lKZ" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +"lKN" = ( +/obj/machinery/door/window/left/directional/west{ + req_access = list("hydroponics"); + name = "Hydroponics Equipment" }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) +/turf/open/floor/iron/half, +/area/station/service/hydroponics) "lLf" = ( /obj/structure/table/wood, /obj/item/storage/dice, @@ -39214,6 +40682,17 @@ "lLm" = ( /turf/open/floor/iron/cafeteria, /area/station/maintenance/port/aft) +"lLA" = ( +/obj/structure/sign/warning/fire{ + pixel_y = 32 + }, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) +"lLD" = ( +/obj/structure/closet/firecloset, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/main) "lLE" = ( /obj/machinery/netpod, /obj/machinery/camera/autoname/directional/south, @@ -39224,20 +40703,23 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"lLR" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 9 - }, -/obj/machinery/hydroponics/constructable, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "lLY" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/recharge_floor, /area/mine/mechbay) +"lMa" = ( +/obj/item/trash/pistachios, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "lMd" = ( /obj/structure/table, /obj/effect/turf_decal/tile/brown/half/contrasted, @@ -39246,12 +40728,9 @@ pixel_y = 6 }, /obj/item/food/cheesiehonkers, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/cargo/office) -"lMe" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/service/kitchen) "lMg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39264,19 +40743,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/engine/o2, /area/station/engineering/atmos) -"lMu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast Door" - }, -/obj/structure/sign/warning/electric_shock, -/turf/open/floor/plating, -/area/station/science/xenobiology) "lMC" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -39304,15 +40770,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"lNk" = ( -/obj/structure/sign/painting/library{ - pixel_y = -32 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/service/library) "lNy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39332,12 +40789,6 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"lNE" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "lNG" = ( /obj/machinery/door/airlock/security/glass{ name = "Security Office" @@ -39375,22 +40826,39 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) -"lOq" = ( -/obj/effect/turf_decal/stripes/line{ +"lNV" = ( +/obj/structure/closet/wardrobe/grey, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/commons/locker) +"lOa" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing{ dir = 1 }, -/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) +"lOr" = ( +/obj/structure/railing, +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/security/brig) +"lOt" = ( +/obj/structure/falsewall, /turf/open/floor/plating, -/area/station/maintenance/starboard/aft) -"lOz" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm2"; - name = "Dorm 2" +/area/station/medical/morgue) +"lOA" = ( +/obj/structure/minecart_rail{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/commons/dorms) +/obj/item/radio/intercom/directional/west{ + frequency = 1453; + name = "Kitchen Intercom" + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "lOI" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer1{ dir = 5 @@ -39398,6 +40866,13 @@ /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"lOJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "lOP" = ( /obj/structure/table, /obj/item/paper, @@ -39417,6 +40892,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/electrical) +"lOV" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "lPb" = ( /obj/structure/railing/corner, /obj/structure/railing/corner{ @@ -39439,6 +40923,17 @@ }, /turf/open/floor/iron/sepia, /area/station/service/library) +"lPl" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) +"lPq" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "lPr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39446,6 +40941,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"lPs" = ( +/obj/structure/girder, +/obj/structure/grille, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "lPC" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 @@ -39488,17 +40988,16 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/bitrunning/den) -"lPQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/fitness) "lQc" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/office) +"lQe" = ( +/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/storage_shared) "lQf" = ( /obj/structure/rack, /obj/item/clothing/mask/gas, @@ -39524,6 +41023,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/carpet, /area/station/commons/dorms) +"lQv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external/glass{ + name = "Garden Access" + }, +/turf/open/floor/iron/textured, +/area/station/service/hydroponics) "lQw" = ( /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ color = "#ff0000"; @@ -39554,7 +41062,7 @@ /obj/structure/table/glass, /obj/item/flashlight/lamp, /obj/effect/turf_decal/tile/blue/full, -/obj/machinery/firealarm/directional/west, +/obj/machinery/light_switch/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/cmo) "lQN" = ( @@ -39589,6 +41097,21 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"lRj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/airalarm/directional/west, +/obj/item/kirbyplants/organic/plant10, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"lRn" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/commons/dorms/laundry) "lRs" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -39642,6 +41165,21 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"lRK" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/spawner/random/structure/crate_abandoned, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"lRO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "lRR" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 6 @@ -39681,39 +41219,25 @@ "lSu" = ( /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"lSw" = ( -/obj/structure/tank_dispenser{ - pixel_x = -1 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Atmospherics Monitoring" - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage/gas) -"lSF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) "lSP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/storage/mining) +"lSX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/blobstart, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "lTa" = ( /obj/effect/turf_decal/trimline/red/warning{ dir = 10 @@ -39721,6 +41245,12 @@ /obj/effect/turf_decal/stripes/red/line, /turf/open/floor/iron/dark/textured, /area/station/security/range) +"lTl" = ( +/obj/structure/closet/crate/grave, +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/graveyard) "lTs" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -39734,12 +41264,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) -"lUa" = ( -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "lUb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -39817,6 +41341,12 @@ dir = 4 }, /area/station/engineering/storage_shared) +"lVr" = ( +/obj/structure/fence/cut/medium{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "lVt" = ( /obj/machinery/firealarm/directional/west, /obj/machinery/light/floor, @@ -39849,15 +41379,15 @@ }, /turf/open/floor/wood, /area/station/service/library) -"lVN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk/multiz/down{ - dir = 1 - }, +"lVS" = ( +/obj/structure/sign/departments/xenobio/directional/east, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/aft/greater) +"lVU" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "lVY" = ( /obj/effect/turf_decal/siding/thinplating_new/corner{ dir = 4 @@ -39877,6 +41407,25 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) +"lWd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "bridge blast"; + name = "Bridge Blast Door"; + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/command/bridge) "lWf" = ( /obj/structure/mop_bucket/janitorialcart, /turf/open/floor/plating, @@ -39889,29 +41438,9 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) -"lWj" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/structure/closet/secure_closet/medical3, -/obj/item/defibrillator/loaded{ - pixel_y = 3 - }, -/obj/item/clothing/gloves/latex/nitrile, -/obj/item/clothing/gloves/latex/nitrile, -/obj/machinery/light/cold/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/storage) -"lWy" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/mine/laborcamp) +"lWG" = ( +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/fore) "lWI" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -39934,12 +41463,13 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/fore) -"lXC" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/fore) +"lXA" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/siding/white, +/obj/machinery/mining_weather_monitor/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "lXJ" = ( /obj/structure/railing{ dir = 1 @@ -39950,6 +41480,13 @@ dir = 9 }, /area/station/security/prison/workout) +"lYd" = ( +/obj/machinery/computer/order_console/mining, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/mine/production) "lYg" = ( /obj/structure/cable, /obj/item/radio/intercom/directional/east, @@ -39964,6 +41501,10 @@ }, /turf/open/floor/grass, /area/station/medical/virology) +"lYT" = ( +/obj/structure/table, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "lZe" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -39975,11 +41516,6 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"lZP" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, -/turf/open/floor/plating, -/area/station/maintenance/fore) "lZQ" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/computer/cargo{ @@ -40012,26 +41548,23 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) -"maw" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "maB" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/commons/dorms) "maM" = ( -/obj/item/paper/fluff/jobs/security/beepsky_mom, -/obj/machinery/light/small/dim/directional/east, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/soya, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/green{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/mine/laborcamp) "maO" = ( /obj/machinery/disposal/bin, /obj/structure/window/reinforced/spawner/directional/south, @@ -40060,18 +41593,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/storage) -"maX" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "maY" = ( /obj/item/wrench, /obj/item/weldingtool, @@ -40082,16 +41603,15 @@ /obj/structure/rack, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"mbb" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/west{ - id = "xenobio1"; - name = "Xenobio Pen 1 Blast Door"; - req_access = list("xenobiology") +"mbe" = ( +/obj/structure/toilet/greyscale{ + cistern_open = 1; + dir = 1 }, -/obj/machinery/light/floor, -/turf/open/floor/iron, -/area/station/science/xenobiology) +/obj/effect/spawner/random/entertainment/cigar, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/toilet) "mbk" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/blue{ @@ -40100,6 +41620,14 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"mbm" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/item/radio/intercom/directional/north, +/obj/machinery/holopad, +/obj/machinery/light/warm/directional/north, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/station/service/bar) "mbn" = ( /obj/machinery/light/directional/north, /obj/structure/chair, @@ -40119,6 +41647,10 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/wood, /area/station/security/prison/rec) +"mbq" = ( +/obj/structure/closet/crate, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "mbt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40126,6 +41658,19 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/tcommsat/computer) +"mbw" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/multi_tile/public/glass{ + name = "Atrium" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/navigate_destination/kitchen, +/turf/open/floor/iron/dark/textured_half, +/area/station/service/bar/atrium) "mbB" = ( /obj/machinery/newscaster/directional/west, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -40151,16 +41696,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"mbJ" = ( +/obj/structure/sign/warning/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "mbK" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/side{ dir = 5 }, /area/station/science/research) -"mbT" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/maintenance/starboard/aft) +"mbM" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "mbZ" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/machinery/door/airlock/security{ @@ -40179,6 +41728,17 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/engineering/storage_shared) +"mch" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance{ + name = "Fitness Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "mco" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -40197,6 +41757,15 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/mine/laborcamp/security) +"mct" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/mine/eva/lower) "mcF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40212,26 +41781,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_large, /area/station/command/heads_quarters/hos) -"mcQ" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/status_display/evac/directional/north, -/obj/effect/turf_decal/siding/wood/corner, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/bar) -"mcT" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/commons/fitness) "mcW" = ( /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"mde" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/obj/item/kirbyplants/random/dead/research_director, +/obj/machinery/computer/security/telescreen/rd/directional/west, +/turf/open/floor/iron/smooth_half, +/area/station/command/heads_quarters/rd) "mdl" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -40245,6 +41806,12 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron, /area/station/security/prison/work) +"mdy" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Morgue Hallway" + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "mdE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40254,6 +41821,14 @@ dir = 1 }, /area/station/science/explab) +"mdI" = ( +/obj/machinery/door/airlock/atmos{ + name = "Turbine"; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/maintenance/disposal/incinerator) "mdM" = ( /obj/structure/rack, /obj/item/clothing/suit/hooded/wintercoat/eva{ @@ -40269,13 +41844,6 @@ /obj/item/clothing/mask/gas, /turf/open/floor/iron/textured, /area/station/ai_monitored/command/storage/eva) -"mdQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/warning/no_smoking{ - pixel_x = -28 - }, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "mdS" = ( /obj/item/paper_bin{ pixel_x = 1; @@ -40288,10 +41856,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"mdV" = ( -/obj/structure/sign/warning/electric_shock/directional/west, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "mdX" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -40306,6 +41870,15 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"met" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/red/filled/warning{ + dir = 9 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "meG" = ( /obj/item/kirbyplants/random, /obj/structure/cable, @@ -40343,12 +41916,20 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"meW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"meX" = ( +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"meZ" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "mfc" = ( /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, @@ -40363,6 +41944,16 @@ "mfH" = ( /turf/closed/wall/r_wall, /area/station/security/brig/upper) +"mfP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/decal/cleanable/vomit/old, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "mfV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -40374,6 +41965,18 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"mfX" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "mga" = ( /obj/machinery/camera/directional/west{ c_tag = "Xenobiology Pens - Port Mid"; @@ -40397,25 +42000,48 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/central) -"mgy" = ( -/obj/effect/turf_decal/stripes/line, +"mgo" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/textured, -/area/station/service/hydroponics) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"mgs" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "riot"; + name = "Security Shutters" + }, +/obj/structure/sign/departments/court/directional/west, +/turf/open/floor/glass/reinforced, +/area/station/hallway/primary/fore) +"mgv" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "mgD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) +"mgS" = ( +/obj/effect/spawner/structure/window/hollow/reinforced/middle{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "botany_chasm_and_wolf_shutters" + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) "mgU" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/hos) -"mgV" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Central Hallway West" - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "mgZ" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/closet/secure_closet/contraband/armory, @@ -40434,17 +42060,6 @@ }, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"mhj" = ( -/obj/structure/railing/wooden_fence{ - dir = 10 - }, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) -"mhq" = ( -/obj/structure/closet, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron, -/area/station/maintenance/starboard/upper) "mhx" = ( /obj/effect/turf_decal/bot, /obj/effect/landmark/secequipment, @@ -40467,6 +42082,24 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"miK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) "miS" = ( /obj/structure/table, /obj/item/stack/cable_coil{ @@ -40482,22 +42115,17 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"mjf" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "mjg" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"mjs" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) -"mjt" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/gas_mask, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/aft) "mjH" = ( /obj/structure/table/optable, /obj/machinery/newscaster/directional/east, @@ -40537,6 +42165,13 @@ /obj/item/flashlight, /turf/open/floor/iron, /area/station/service/chapel) +"mjY" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "mka" = ( /obj/machinery/computer/turbine_computer{ dir = 1; @@ -40546,16 +42181,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) -"mkr" = ( -/obj/structure/closet/secure_closet/hydroponics, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/newscaster/directional/south, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics) +"mkb" = ( +/obj/structure/rack, +/obj/item/clothing/head/costume/fancy, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) "mku" = ( /obj/effect/spawner/random/structure/grille, /obj/effect/decal/cleanable/glass, @@ -40574,37 +42204,12 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"mkM" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/fore) -"mkN" = ( -/obj/machinery/computer/records/medical/laptop{ - pixel_y = 1 - }, -/obj/structure/table/reinforced, -/obj/machinery/camera/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "mld" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"mle" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "mlo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40622,18 +42227,10 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"mlN" = ( -/obj/structure/railing{ - dir = 6 - }, -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ - id = "cantena_curtains" - }, -/turf/open/floor/wood, -/area/station/commons/lounge) +"mly" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/recharge_floor, +/area/station/maintenance/department/electrical) "mlO" = ( /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/east, @@ -40662,15 +42259,16 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"mmf" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +"mlT" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 8 }, -/obj/structure/railing{ - dir = 10 +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "mmh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -40703,6 +42301,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"mmw" = ( +/obj/machinery/oven/range, +/obj/effect/turf_decal/siding/white, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "mmA" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -40724,15 +42328,14 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/aft) -"mmC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +"mmG" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio7"; + name = "Xenobio Pen 7 Blast DOors"; + req_access = list("xenobiology") }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "mmR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40742,12 +42345,20 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"mnn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, -/obj/effect/turf_decal/stripes/line, -/obj/structure/chair/stool/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/fore) +"mnm" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/mine/eva/lower) +"mns" = ( +/obj/structure/lattice/catwalk, +/obj/structure/reagent_dispensers/watertank, +/turf/open/openspace, +/area/station/science/xenobiology) "mnu" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -40761,6 +42372,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"mnA" = ( +/obj/item/clothing/accessory/pocketprotector, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/item/camera{ + pixel_y = 4; + pixel_x = -3 + }, +/obj/effect/spawner/random/clothing/mafia_outfit, +/obj/effect/spawner/random/clothing/mafia_outfit, +/obj/effect/spawner/random/clothing/backpack, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "mnC" = ( /obj/structure/grille, /obj/structure/disposalpipe/segment{ @@ -40776,27 +42400,17 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"moc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ +"mnW" = ( +/obj/machinery/power/terminal{ dir = 8 }, -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 29 - }, -/turf/open/floor/iron/smooth, -/area/mine/eva/lower) -"mod" = ( -/obj/structure/closet/crate/internals, -/obj/machinery/camera{ - c_tag = "Cargo Bay B-1"; - dir = 6 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/storage) +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) +"moy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "moB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -40804,16 +42418,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"moE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/medical/treatment_center) "moF" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -40836,6 +42440,15 @@ /obj/structure/lattice/catwalk, /turf/open/openspace/icemoon, /area/station/science/server) +"moX" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "mpe" = ( /obj/structure/cable, /obj/machinery/computer/quantum_console, @@ -40880,41 +42493,27 @@ }, /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb) -"mpy" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "mpH" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/fitness) -"mpP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/command/bridge) -"mpR" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/disposal/bin{ - desc = "A pneumatic waste disposal unit. This one leads to the morgue."; - name = "corpse disposal" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) "mpU" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/hydroponics) +"mqa" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/port/greater) +"mqd" = ( +/turf/open/floor/iron/half, +/area/station/service/hydroponics) "mqe" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -40930,18 +42529,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"mqs" = ( -/obj/effect/turf_decal/bot, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 29 - }, -/turf/open/floor/iron/smooth, -/area/mine/eva) -"mqy" = ( -/obj/machinery/shower/directional/west, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "mqD" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/wood, @@ -40958,10 +42545,19 @@ dir = 4 }, /area/station/security/brig/entrance) -"mqO" = ( -/obj/machinery/power/port_gen/pacman, +"mqI" = ( +/obj/machinery/vending/boozeomat, /turf/open/floor/plating, -/area/station/maintenance/department/electrical) +/area/station/maintenance/port/aft) +"mqL" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio9"; + name = "Xenobio Pen 9 Blast DOors"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "mqR" = ( /obj/structure/chair{ dir = 8; @@ -40975,25 +42571,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/side, /area/station/science/research) -"mri" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle{ - dir = 4 - }, -/obj/structure/sign/warning/gas_mask/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/fore/lesser) +"mrk" = ( +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "mro" = ( /obj/structure/curtain/cloth, /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) -"mrw" = ( -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 4 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "mry" = ( /obj/structure/table, /obj/effect/spawner/random/trash/food_packaging, @@ -41050,10 +42636,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"msd" = ( -/obj/machinery/door/poddoor/incinerator_atmos_main, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) "msf" = ( /obj/item/kirbyplants/random, /obj/machinery/computer/security/telescreen/entertainment/directional/north, @@ -41062,13 +42644,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"msg" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) "msi" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -41103,6 +42678,27 @@ /obj/item/stack/ducts/fifty, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"msu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/spawner/random/trash/caution_sign, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) +"msE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"msG" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet2"; + name = "Unit 2" + }, +/turf/open/floor/iron/textured, +/area/station/commons/toilet) "msN" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/closed/wall/r_wall, @@ -41121,6 +42717,29 @@ /obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"mta" = ( +/obj/structure/rack, +/obj/item/lighter, +/obj/item/clothing/glasses/meson{ + pixel_y = 4 + }, +/obj/item/stock_parts/power_store/cell/high, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/computer_disk/engineering{ + pixel_y = 3; + pixel_x = 4 + }, +/obj/item/computer_disk/engineering{ + pixel_y = 3; + pixel_x = 4 + }, +/obj/item/computer_disk/engineering{ + pixel_y = 3; + pixel_x = 4 + }, +/obj/item/reagent_containers/pill/patch/aiuri, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "mtn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -41131,6 +42750,11 @@ dir = 1 }, /area/mine/eva/lower) +"mtq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/security/courtroom) "mts" = ( /obj/effect/turf_decal/loading_area{ dir = 4 @@ -41138,26 +42762,63 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"mtt" = ( -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored/graveyard) +"mty" = ( +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/seeds/tower, +/obj/item/seeds/chanter{ + pixel_y = 3; + pixel_x = 3 + }, +/obj/item/seeds/watermelon{ + pixel_y = -6; + pixel_x = 3 + }, +/obj/item/seeds/apple{ + pixel_y = 4; + pixel_x = 2 + }, +/obj/item/seeds/banana, +/obj/item/seeds/rose{ + pixel_y = -3; + pixel_x = -4 + }, +/obj/structure/noticeboard/directional/west, +/obj/item/paper/guides/jobs/hydroponics{ + pixel_y = 3; + pixel_x = -27 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "mtI" = ( /turf/closed/wall, /area/station/science/robotics/lab) -"mtN" = ( -/obj/effect/spawner/random/entertainment/arcade{ - dir = 4 +"mtS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/structure/sign/poster/random/directional/west, -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 +/obj/machinery/status_display/door_timer{ + pixel_x = -32; + id = "Cell 2"; + name = "Cell 2" }, -/turf/open/floor/iron/cafeteria, -/area/station/hallway/secondary/exit/departure_lounge) -"mtT" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/turf/open/floor/iron/textured, +/area/station/security/brig) +"mtV" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/dark/side, +/area/mine/eva) "mua" = ( /obj/structure/railing{ dir = 4 @@ -41198,6 +42859,20 @@ /obj/item/stack/cable_coil, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"muP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/sign/departments/rndserver/directional/south, +/turf/open/floor/iron/white, +/area/station/science/research) +"muX" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) "mvc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41242,6 +42917,9 @@ /obj/machinery/atmospherics/components/unary/passive_vent/layer2{ dir = 8 }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, /turf/open/floor/plating/snowed/icemoon, /area/station/ai_monitored/turret_protected/aisat_interior) "mwp" = ( @@ -41269,19 +42947,12 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mxc" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/science/ordnance) -"mxh" = ( +"mxg" = ( /obj/structure/cable, -/turf/open/floor/stone, -/area/station/commons/lounge) +/obj/machinery/light/small/dim/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "mxj" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Port Mix to East Ports" @@ -41297,6 +42968,21 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"mxF" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/fore) +"mxK" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "mxM" = ( /obj/machinery/camera/directional/north{ c_tag = "Central Hallway North" @@ -41321,13 +43007,34 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/east, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"mxY" = ( -/obj/structure/minecart_rail{ - dir = 9 +"mxR" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/structure/cable, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) +/turf/open/floor/wood, +/area/station/commons/lounge) +"mxX" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) +"mxZ" = ( +/obj/effect/landmark/start/hangover, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "mye" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment, @@ -41384,22 +43091,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"myS" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/camera/directional/south{ - c_tag = "Service - Botany Garden Access" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) +"myW" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "myX" = ( /obj/machinery/light/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41421,15 +43116,32 @@ /obj/structure/lattice/catwalk, /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) -"mza" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "mzb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/science/ordnance) +"mzf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light_switch/directional/north{ + pixel_y = 37 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/wood/large, +/area/station/service/bar) +"mzg" = ( +/obj/machinery/light/directional/west, +/obj/structure/closet/firecloset, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) +"mzl" = ( +/obj/structure/railing, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "mzr" = ( /obj/structure/table, /obj/item/exodrone{ @@ -41445,15 +43157,6 @@ dir = 8 }, /area/mine/eva) -"mzy" = ( -/obj/structure/sign/warning/electric_shock/directional/south, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/iron/smooth, -/area/station/maintenance/port/fore) "mzz" = ( /turf/open/floor/plating, /area/station/engineering/storage_shared) @@ -41484,6 +43187,28 @@ /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/textured_large, /area/station/security/brig/entrance) +"mzX" = ( +/obj/structure/disposalpipe/sorting/mail, +/obj/effect/mapping_helpers/mail_sorting/service/bar, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mzZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable/layer3, +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/aisat/hallway"; + name = "Chamber Hallway Turret Control"; + pixel_x = 32; + pixel_y = -24; + req_access = list("minisat") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "mAc" = ( /obj/machinery/door/airlock/maintenance{ name = "Mining Maintenance" @@ -41497,6 +43222,12 @@ "mAe" = ( /turf/open/floor/glass/reinforced, /area/station/security/lockers) +"mAn" = ( +/obj/effect/spawner/random/trash, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "mAM" = ( /obj/structure/ladder, /obj/machinery/light/small/red/directional/west, @@ -41537,6 +43268,34 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"mBk" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine, +/area/station/science/explab) +"mBm" = ( +/obj/machinery/door/airlock{ + id_tag = "Toilet1"; + name = "Unit 1" + }, +/turf/open/floor/iron/textured, +/area/station/commons/toilet) +"mBr" = ( +/obj/item/toy/plush/lizard_plushie{ + name = "Wines-And-Dines"; + pixel_x = 4 + }, +/obj/item/reagent_containers/cup/glass/bottle{ + pixel_x = -9 + }, +/obj/structure/sign/flag/tizira/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"mBs" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology) "mBB" = ( /obj/machinery/door/poddoor/preopen{ id = "ceprivacy"; @@ -41546,6 +43305,18 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/ce) +"mBL" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/requests_console/auto_name/directional/east, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "mBO" = ( /obj/structure/sign/poster/contraband/random/directional/east, /obj/machinery/light/small/dim/directional/west, @@ -41583,6 +43354,9 @@ }, /turf/open/floor/plating, /area/station/hallway/primary/starboard) +"mBV" = ( +/turf/open/misc/asteroid/snow/ice/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "mBX" = ( /obj/structure/table/wood, /obj/machinery/airalarm/directional/east, @@ -41591,6 +43365,27 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"mBY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) +"mCd" = ( +/obj/machinery/computer/operating{ + dir = 2 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "mCw" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ @@ -41604,12 +43399,38 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"mCx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airalarm/directional/south, +/obj/effect/mapping_helpers/dead_body_placer, +/obj/effect/turf_decal/trimline/neutral/end{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) +"mCz" = ( +/obj/structure/flora/rock/pile/icy/style_random, +/obj/machinery/light/small/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "mCK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/construction) +"mCP" = ( +/obj/machinery/light/small/red/directional/south, +/obj/structure/chair{ + dir = 1 + }, +/obj/item/radio/intercom/chapel/directional/east, +/turf/open/floor/wood/large, +/area/station/service/chapel) "mCT" = ( /obj/machinery/hydroponics/soil, /turf/open/floor/grass, @@ -41618,10 +43439,6 @@ /obj/machinery/telecomms/server/presets/common, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"mDg" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/maintenance/aft/lesser) "mDo" = ( /obj/structure/bed/double, /obj/item/bedsheet/black/double, @@ -41638,15 +43455,6 @@ dir = 4 }, /area/mine/eva) -"mDv" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Bridge East Access" - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "mDw" = ( /obj/structure/table/reinforced, /obj/effect/landmark/event_spawn, @@ -41656,9 +43464,23 @@ /obj/item/stamp/head/ce, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"mDy" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "mDX" = ( /turf/open/floor/engine/n2, /area/station/engineering/atmos) +"mEb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/flasher{ + pixel_y = -30; + id = "GulagCell 3" + }, +/turf/open/floor/iron, +/area/mine/laborcamp) "mEg" = ( /obj/structure/cable, /obj/machinery/holopad/secure, @@ -41695,11 +43517,22 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"mEz" = ( +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "mEB" = ( /obj/machinery/light/directional/south, /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"mEI" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "mEJ" = ( /turf/closed/wall/r_wall, /area/station/science/genetics) @@ -41715,18 +43548,49 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"mES" = ( -/obj/structure/sign/poster/random/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/iron/smooth, -/area/station/maintenance/fore/lesser) "mEU" = ( /obj/structure/chair/office/light{ dir = 4 }, /turf/open/floor/iron, /area/station/science/ordnance/testlab) +"mEW" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/west{ + id = "xenobio1"; + name = "Xenobio Pen 1 Blast Door"; + req_access = list("xenobiology") + }, +/obj/machinery/light/floor, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"mFb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/pen{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/folder/white{ + pixel_x = 2 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) "mFj" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -41767,14 +43631,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) -"mFR" = ( -/obj/structure/sign/plaques/kiddie/badger{ - pixel_y = 32 - }, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/icemoon/underground/explored) "mFU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41822,13 +43678,13 @@ /obj/structure/lattice/catwalk, /turf/open/openspace/icemoon, /area/station/science/server) -"mGF" = ( -/obj/effect/decal/cleanable/confetti, -/obj/structure/closet/crate/cardboard, -/obj/item/storage/cans/sixbeer, -/obj/effect/spawner/random/food_or_drink/cups, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"mGH" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/stairs/north, +/turf/open/floor/iron/stairs/medium, +/area/station/cargo/storage) "mGJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41841,10 +43697,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"mGV" = ( -/obj/machinery/keycard_auth/directional/south, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "mHd" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, @@ -41863,6 +43715,17 @@ /obj/machinery/brm, /turf/open/floor/iron, /area/mine/production) +"mHq" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "mHu" = ( /obj/machinery/atmospherics/components/tank, /turf/open/floor/iron/dark, @@ -41888,11 +43751,29 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"mIe" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "mIk" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, /turf/open/floor/plating, /area/station/engineering/atmos) +"mIs" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/bar/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/eighties, +/area/station/commons/lounge) "mIt" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -41920,17 +43801,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mIT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/cigarette{ - pixel_x = 6; - pixel_y = 12 - }, -/turf/open/floor/iron, -/area/mine/eva) "mJa" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/tile/yellow, @@ -41978,13 +43848,6 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/station/security/prison/rec) -"mJZ" = ( -/obj/structure/fence{ - dir = 4 - }, -/obj/structure/sign/nanotrasen, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "mKa" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41992,15 +43855,63 @@ dir = 8 }, /area/station/hallway/secondary/entry) +"mKh" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "mKq" = ( /obj/structure/closet/secure_closet/evidence, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark/textured_edge, /area/station/security/evidence) +"mKA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/structure/tank_holder/oxygen, +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"mKC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/aft) +"mKJ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/large, +/area/station/hallway/secondary/entry) +"mKO" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/breakroom) "mLa" = ( /obj/item/kirbyplants/random, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"mLd" = ( +/obj/effect/turf_decal/siding/green{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/kudzu/directional/north, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "mLm" = ( /obj/structure/disposalpipe/segment, /obj/structure/disposalpipe/segment{ @@ -42008,12 +43919,6 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/lesser) -"mLo" = ( -/obj/structure/rack, -/obj/item/crowbar, -/obj/item/picket_sign, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "mLt" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -42051,16 +43956,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"mLX" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/work) "mMb" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"mMi" = ( -/obj/effect/turf_decal/tile/neutral/diagonal_edge, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/kitchen/diagonal, -/area/station/service/kitchen) "mMk" = ( /obj/machinery/telecomms/message_server/preset, /turf/open/floor/iron/dark/telecomms, @@ -42080,10 +43990,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/carpet, /area/station/service/library) -"mMI" = ( -/obj/structure/secure_safe/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "mMM" = ( /turf/closed/wall/r_wall, /area/station/security/prison) @@ -42112,19 +44018,42 @@ }, /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb) -"mMZ" = ( +"mNi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"mNt" = ( /obj/structure/cable, -/obj/effect/turf_decal/box/red/corners{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/stripes/white/line{ dir = 1 }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) "mNy" = ( /obj/effect/turf_decal/tile/green{ dir = 8 }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"mNB" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "mNF" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 @@ -42143,6 +44072,10 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"mNP" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "mNY" = ( /turf/closed/wall/r_wall, /area/station/maintenance/port/aft) @@ -42179,16 +44112,6 @@ }, /turf/open/floor/iron, /area/station/cargo/office) -"mOH" = ( -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/commons/fitness) "mOL" = ( /obj/machinery/airalarm/directional/south, /obj/structure/disposalpipe/segment{ @@ -42214,10 +44137,41 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"mPl" = ( +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark/textured_half, +/area/station/service/hydroponics) +"mPp" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/poster/official/report_crimes/directional/north, +/turf/open/floor/iron, +/area/mine/laborcamp) "mPq" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"mPr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "mPv" = ( /obj/machinery/door/airlock/medical/glass{ name = "Medbay Storage" @@ -42227,13 +44181,6 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/white/smooth_large, /area/station/medical/storage) -"mPG" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "mPH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42252,22 +44199,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/chapel) -"mPO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/sign/warning/radiation/rad_area/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/morgue) -"mPQ" = ( -/obj/structure/table/wood, -/obj/effect/spawner/random/decoration/ornament, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "mQb" = ( /obj/structure/flora/grass/both/style_random, /turf/open/misc/asteroid/snow/icemoon, @@ -42297,17 +44228,6 @@ }, /turf/open/floor/iron/smooth, /area/mine/laborcamp/security) -"mQr" = ( -/obj/machinery/modular_computer/preset/id, -/obj/item/radio/intercom/directional/east, -/obj/machinery/camera{ - c_tag = "Chief Medical Office North"; - dir = 9; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/tile/blue/full, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/cmo) "mQG" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/iron/dark, @@ -42325,12 +44245,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"mRv" = ( -/obj/structure/chair/stool/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, -/area/station/commons/lounge) +"mRy" = ( +/obj/effect/landmark/start/hangover, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "mRG" = ( /obj/structure/table, /obj/item/book/manual/wiki/atmospherics, @@ -42352,15 +44271,6 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/hallway) -"mRN" = ( -/obj/structure/railing, -/obj/structure/closet, -/obj/effect/spawner/random/maintenance/four, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "mRU" = ( /obj/effect/decal/cleanable/insectguts, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -42368,31 +44278,10 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"mSv" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "sci-med-passthrough" - }, -/obj/machinery/door/airlock/research{ - name = "Research Access" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/iron/white, -/area/station/maintenance/aft/greater) -"mSH" = ( -/obj/structure/fence{ - dir = 1 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +"mRY" = ( +/obj/machinery/power/smes/engineering, +/turf/open/floor/plating, +/area/station/maintenance/department/electrical) "mSL" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -42409,10 +44298,35 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"mSP" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "QMLoad" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plating, +/area/station/cargo/storage) "mSQ" = ( /obj/structure/sign/warning/secure_area, /turf/closed/wall/ice, /area/icemoon/surface/outdoors/nospawn) +"mSX" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"mSY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/station/command/gateway) "mTc" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -42428,15 +44342,6 @@ }, /turf/open/floor/engine/air, /area/station/engineering/atmos) -"mTA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) "mTI" = ( /obj/structure/sink/kitchen/directional/south{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; @@ -42445,69 +44350,22 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/freezer, /area/mine/laborcamp) -"mTL" = ( -/obj/structure/closet/secure_closet/bar, -/obj/machinery/firealarm/directional/north{ - pixel_x = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/light_switch/directional/north{ - pixel_x = -5; - pixel_y = 28 - }, -/obj/item/vending_refill/cigarette, -/turf/open/floor/wood/parquet, -/area/station/service/bar/backroom) "mTS" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"mTW" = ( -/obj/structure/fluff/tram_rail{ - pixel_y = 17 - }, -/obj/structure/fluff/tram_rail, -/obj/structure/lattice/catwalk, -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/underground/explored) -"mTX" = ( -/obj/structure/barricade/wooden, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/morgue) -"mUf" = ( -/obj/structure/railing{ - dir = 9 - }, -/obj/machinery/button/door/directional/east{ - id = "drone_bay"; - name = "Shutter Control"; - pixel_y = -8 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "mUs" = ( /obj/machinery/light/directional/south, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"mUz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/insectguts, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/sign/warning/cold_temp/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) +"mUt" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored/graveyard) "mUE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -42515,20 +44373,6 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"mUW" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/spawner/random/trash/botanical_waste, -/obj/effect/spawner/random/food_or_drink/donkpockets, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"mVe" = ( -/obj/machinery/button/ignition/incinerator/atmos, -/turf/closed/wall/r_wall, -/area/station/maintenance/disposal/incinerator) -"mVm" = ( -/obj/structure/grille/broken, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "mVp" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, @@ -42552,15 +44396,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"mVI" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/work) "mVN" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/broken/directional/north, @@ -42568,20 +44403,20 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"mVW" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" +"mVS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/commons/dorms) +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "mWf" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -42690,6 +44525,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/science/ordnance/office) "mXi" = ( @@ -42718,19 +44556,6 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"mXD" = ( -/obj/structure/rack, -/obj/item/mecha_parts/mecha_equipment/drill, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/iron/smooth, -/area/mine/mechbay) -"mXH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/entry) "mXK" = ( /obj/structure/table, /obj/structure/reagent_dispensers/servingdish, @@ -42749,11 +44574,6 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"mXW" = ( -/obj/structure/flora/bush/flowers_pp/style_random, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) "mYh" = ( /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) @@ -42768,10 +44588,22 @@ }, /turf/open/floor/iron/white, /area/mine/laborcamp) -"mYn" = ( -/obj/machinery/duct, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +"mYp" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) "mYq" = ( /obj/machinery/requests_console/directional/north{ department = "Research Director's Desk"; @@ -42800,12 +44632,31 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/supply) +"mYA" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/kirbyplants/random, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) +"mYG" = ( +/obj/effect/turf_decal/bot, +/obj/structure/noticeboard/hop{ + pixel_y = 36 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "mYJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"mYR" = ( +/obj/machinery/fishing_portal_generator, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "mZf" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 5 @@ -42864,6 +44715,17 @@ }, /turf/open/floor/iron/white, /area/station/maintenance/aft/greater) +"mZI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/sign/warning/biohazard/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "mZJ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/radio/intercom/directional/north, @@ -42875,11 +44737,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness) -"mZS" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +"mZT" = ( +/obj/structure/table/wood, +/obj/item/cigarette/cigar{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/storage/box/matches, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) "mZV" = ( /obj/structure/rack, /obj/item/storage/toolbox/electrical{ @@ -42898,12 +44764,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"nah" = ( -/obj/machinery/chem_heater/withbuffer, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/yellow/full, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) "naq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -42924,6 +44784,16 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/storage) +"naF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "naP" = ( /obj/structure/chair/comfy/black{ dir = 4 @@ -42959,13 +44829,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"nbl" = ( -/obj/structure/minecart_rail{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) "nbm" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 6 @@ -42987,23 +44850,16 @@ dir = 1 }, /area/station/command/heads_quarters/rd) -"nbt" = ( -/obj/machinery/computer/security/hos, -/obj/machinery/requests_console/directional/north{ - department = "Head of Security's Desk"; - name = "Head of Security Requests Console" +"nbs" = ( +/obj/structure/fireplace{ + pixel_x = -32 }, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/information, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/machinery/button/door/directional/north{ - id = "hosspace"; - name = "Icemoon Shutters Control"; - pixel_x = -24 +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light_switch/directional/north{ + pixel_x = 9 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/carpet/royalblue, -/area/station/command/heads_quarters/hos) +/turf/open/floor/stone, +/area/mine/eva/lower) "nbw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43014,18 +44870,27 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"nbz" = ( +/obj/structure/chair/wood, +/obj/effect/mapping_helpers/no_atoms_ontop, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"nbB" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "nbC" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/medical/treatment_center) -"nbI" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +"nbG" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/station/service/chapel) "nbJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43040,57 +44905,31 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron/smooth, /area/mine/eva/lower) -"nbL" = ( -/obj/structure/table/wood, -/obj/item/camera, -/obj/item/taperecorder, -/obj/item/radio/intercom/directional/east, -/obj/structure/sign/painting/library_private{ - pixel_y = 32 +"nbK" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 }, -/obj/item/storage/photo_album/library, -/turf/open/floor/engine/cult, -/area/station/service/library) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Departure Lounge Holding Area" + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) "nbM" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2{ dir = 5 }, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance/freezerchamber) -"nbO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) -"nbP" = ( -/obj/structure/bonfire/prelit, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "nbT" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/commons/storage/primary) -"nbU" = ( -/obj/structure/rack, -/obj/item/circuitboard/machine/exoscanner{ - pixel_y = 3 - }, -/obj/item/circuitboard/machine/exoscanner, -/obj/item/circuitboard/machine/exoscanner{ - pixel_y = -3 - }, -/obj/item/radio/intercom/directional/south, -/obj/machinery/camera{ - c_tag = "Cargo Bay Drone Bay"; - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/drone_bay) "nbW" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -43113,29 +44952,30 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"ncc" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 1 +"nce" = ( +/obj/structure/sign/warning/fire/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"nch" = ( +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/table, -/obj/item/paper{ - pixel_y = 4 +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 6 }, -/obj/item/pen{ - pixel_x = -5 +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) -"ncd" = ( -/obj/effect/turf_decal/siding/white, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/obj/structure/sign/poster/official/safety_internals/directional/north, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 4 + }, +/area/station/ai_monitored/command/storage/eva) "nci" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43155,17 +44995,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/commons/locker) -"ncx" = ( -/obj/structure/table/wood, -/obj/item/soap/deluxe{ - pixel_y = 11 - }, -/obj/item/soap/deluxe{ - pixel_y = 6 - }, -/obj/item/soap/deluxe, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) "ncB" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Walkway" @@ -43179,14 +45008,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /turf/open/floor/iron, /area/station/security/brig/upper) -"ncO" = ( -/obj/machinery/shower/directional/east, -/obj/structure/sign/warning/gas_mask{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; - pixel_x = -29 - }, -/turf/open/floor/iron/smooth, -/area/mine/living_quarters) "ncR" = ( /turf/closed/wall/r_wall, /area/station/security/courtroom) @@ -43253,32 +45074,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"ndK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/conveyor{ - dir = 8; - id = "QMLoad" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/status_display/supply{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/station/cargo/storage) "ndO" = ( -/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/machinery/status_display/ai/directional/west, /turf/open/floor/wood, /area/station/service/library) "nea" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ id = "hosspace"; - name = "Space Shutters" + name = "Privacy Shutters" }, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) @@ -43294,16 +45099,13 @@ dir = 5 }, /area/station/security/prison) -"nek" = ( -/obj/machinery/flasher/directional/north{ - id = "Cell 1" - }, -/obj/structure/bed{ - dir = 1; - pixel_x = -2 - }, -/turf/open/floor/iron/smooth, -/area/station/security/brig) +"nej" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "neq" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue/half/contrasted, @@ -43322,13 +45124,11 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) -"neC" = ( -/obj/structure/chair{ - dir = 1; - name = "Prosecution" - }, -/turf/open/floor/wood, -/area/station/security/courtroom) +"neE" = ( +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "neF" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -43350,51 +45150,11 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) -"neM" = ( -/obj/machinery/hydroponics/soil, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"neQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "neR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /obj/machinery/meter, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"neV" = ( -/obj/effect/turf_decal/bot{ - dir = 1 - }, -/obj/structure/table, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/structure/cable, -/obj/item/mod/module/plasma_stabilizer, -/obj/item/stock_parts/power_store/cell/emproof{ - pixel_x = -4; - pixel_y = -1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/mod/module/signlang_radio, -/obj/item/mod/module/thermal_regulator, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) "nfd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/firealarm/directional/west, @@ -43439,21 +45199,29 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"nfG" = ( -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" +"nfE" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) -"nfK" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/station/maintenance/starboard/fore) +"nfF" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"nfS" = ( +/obj/machinery/door/morgue{ + name = "Confession Booth (Chaplain)"; + req_access = list("chapel_office"); dir = 4 }, -/obj/structure/cable, -/obj/machinery/light/floor, -/turf/open/floor/wood, -/area/station/commons/lounge) +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/service/chapel) "nfU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43463,25 +45231,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"nfW" = ( -/obj/machinery/computer/mecha{ - dir = 1 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/keycard_auth/directional/south, -/obj/machinery/camera/autoname/directional/south{ - c_tag = "Research Director's Office"; - network = list("ss13","rd") - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/station/command/heads_quarters/rd) -"ngh" = ( -/obj/structure/fence{ - dir = 4 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"ngb" = ( +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/atmospherics, +/obj/item/holosign_creator/atmos, +/obj/item/holosign_creator/atmos, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) "ngj" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 9 @@ -43500,6 +45256,17 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/mine/production) +"ngo" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8; + name = "Exfiltrate Port" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "ngM" = ( /obj/structure/lattice/catwalk, /obj/structure/fence/door{ @@ -43510,23 +45277,11 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"ngY" = ( -/obj/structure/sign/warning/cold_temp, -/turf/closed/wall, -/area/station/service/chapel) "ngZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"nhb" = ( -/obj/machinery/power/solar_control{ - id = "auxsolareast"; - name = "Port Bow Solar Control" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/solars/port/fore) "nhf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43537,16 +45292,6 @@ /obj/structure/mirror/directional/west, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) -"nhv" = ( -/obj/effect/spawner/random/structure/closet_maintenance, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/railing{ - dir = 10 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "nhw" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -43566,12 +45311,11 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/engine, /area/station/science/genetics) -"nhS" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) +"nhO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/grimy, +/area/station/maintenance/aft/greater) "nhT" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -43625,13 +45369,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"niC" = ( -/obj/structure/cable, -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/science/research) +"niE" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "niG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -43641,6 +45383,28 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/mine/eva/lower) +"niO" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/obj/machinery/reagentgrinder{ + pixel_y = 9; + pixel_x = 4 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) +"niU" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/aft) "niY" = ( /obj/effect/spawner/random/trash/bin, /turf/open/floor/plating, @@ -43656,39 +45420,47 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/engineering/atmos) -"njf" = ( -/obj/machinery/plate_press, -/turf/open/floor/iron/dark/smooth_half, -/area/station/security/prison/work) "nji" = ( /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"njj" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/station/service/kitchen) "njm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/transit_tube) -"njz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "njA" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"njD" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Gateway" + }, +/obj/structure/table, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/item/emergency_bed{ + pixel_x = -1 + }, +/obj/item/emergency_bed{ + pixel_x = 4 + }, +/obj/item/storage/medkit/regular{ + pixel_y = 1 + }, +/turf/open/floor/iron, +/area/station/command/gateway) "njJ" = ( /turf/closed/wall, /area/mine/laborcamp) -"njM" = ( -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "njO" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, @@ -43728,14 +45500,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) -"nkI" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/structure/tank_holder/oxygen, +"nkE" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, -/area/station/maintenance/port/aft) +/area/station/maintenance/starboard/fore) +"nkH" = ( +/obj/effect/turf_decal/stripes{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "nkO" = ( /obj/structure/table, /obj/item/storage/box/matches, @@ -43748,22 +45524,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/vault, /area/station/security/prison/rec) -"nla" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"nll" = ( -/obj/structure/table, -/obj/item/stack/sheet/iron/fifty{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/stack/sheet/plasteel/twenty{ - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage) "nlp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43779,17 +45539,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/construction) -"nlA" = ( -/obj/item/clothing/head/beanie/orange{ - pixel_y = 8 - }, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/shoes/wheelys/skishoes{ - pixel_y = -8 - }, -/obj/effect/decal/remains/human, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "nlJ" = ( /obj/structure/railing{ dir = 5 @@ -43802,14 +45551,6 @@ }, /turf/open/floor/glass/reinforced, /area/station/hallway/primary/starboard) -"nlN" = ( -/obj/structure/cable/multilayer/multiz, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/medical/chemistry) "nlO" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -43847,16 +45588,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"nmi" = ( -/obj/structure/closet/chefcloset, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/tlv_cold_room, -/obj/structure/sign/poster/official/cleanliness/directional/west, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) "nmj" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43904,12 +45635,6 @@ /obj/effect/spawner/random/contraband/cannabis, /turf/open/floor/grass, /area/station/security/prison/garden) -"nmu" = ( -/obj/structure/sign/warning/xeno_mining/directional/east, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/warehouse) "nmx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43924,23 +45649,6 @@ }, /turf/open/openspace, /area/station/science/ordnance/office) -"nmA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) "nmC" = ( /obj/machinery/iv_drip, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -43948,6 +45656,21 @@ }, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) +"nmD" = ( +/obj/structure/sign/departments/holy/directional/west, +/turf/open/openspace, +/area/station/service/chapel) +"nmH" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) "nmI" = ( /obj/machinery/light/directional/west, /turf/open/floor/iron/dark/textured, @@ -43966,15 +45689,13 @@ /obj/effect/landmark/navigate_destination/library, /turf/open/floor/wood, /area/station/service/library) -"nmO" = ( -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/obj/structure/railing/wooden_fence{ - dir = 8 +"nnj" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/wood, +/area/station/security/courtroom) "nnl" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, /obj/effect/spawner/structure/window/reinforced/plasma, @@ -43990,6 +45711,20 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"nnp" = ( +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + color = "#0000ff"; + dir = 8; + name = "Supply multi deck pipe adapter" + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + color = "#ff0000"; + dir = 8; + name = "Scrubbers multi deck pipe adapter" + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/engineering/lobby) "nnw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/closed/wall/r_wall, @@ -44006,20 +45741,14 @@ /obj/machinery/vending/assist, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"nnM" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil, -/obj/item/stock_parts/power_store/cell/high, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "nnR" = ( /obj/machinery/holopad, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) +"nof" = ( +/obj/machinery/newscaster/directional/east, +/turf/open/floor/stone, +/area/station/commons/lounge) "noi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/airalarm/directional/east, @@ -44036,11 +45765,6 @@ /obj/effect/turf_decal/tile/purple/anticorner/contrasted, /turf/open/floor/iron, /area/station/engineering/atmos) -"non" = ( -/obj/structure/stairs/south, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/medical/virology) "nor" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -44052,15 +45776,17 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"noF" = ( +"noJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/half/contrasted{ +/obj/structure/cable, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 4 }, -/obj/machinery/light/directional/east, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/poster/official/help_others/directional/north, /turf/open/floor/iron, -/area/station/command/heads_quarters/qm) +/area/station/commons/dorms) "noM" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -44073,11 +45799,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron, /area/station/engineering/storage_shared) -"noQ" = ( -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/structure/sign/warning/gas_mask/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "noR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44120,11 +45841,11 @@ /turf/open/floor/iron/showroomfloor, /area/station/security/warden) "npo" = ( -/obj/structure/extinguisher_cabinet/directional/north, /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 4 }, +/obj/machinery/light_switch/directional/north, /turf/open/floor/iron/white, /area/station/medical/psychology) "npq" = ( @@ -44204,16 +45925,28 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/security/prison) +"npP" = ( +/obj/machinery/door/airlock{ + id_tag = "commissarydoor"; + name = "Commissary" + }, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/commons/vacant_room/commissary) "npT" = ( /obj/structure/chair/office{ dir = 8 }, /turf/open/floor/iron/white, /area/station/science/explab) -"npZ" = ( -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/fore) "nqb" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/open/floor/plating/snowed/icemoon, @@ -44231,13 +45964,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"nqv" = ( -/obj/structure/fence{ - dir = 4 - }, -/obj/structure/sign/nanotrasen, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "nqw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44245,12 +45971,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/commons/storage/mining) -"nqy" = ( -/obj/structure/stairs/east, -/obj/structure/railing, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/iron/white, -/area/station/science/ordnance) "nqD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44259,13 +45979,6 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"nqI" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/requests_console/auto_name/directional/south, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "nqP" = ( /obj/machinery/camera/directional/north{ c_tag = "Research Division West"; @@ -44276,39 +45989,12 @@ dir = 10 }, /area/station/science/research) -"nqU" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/obj/effect/turf_decal/loading_area{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"nqX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) -"nrh" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "nrm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron/dark, /area/station/cargo/miningdock) -"nrq" = ( -/obj/effect/turf_decal/tile/red, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/textured, -/area/station/security/brig) "nrA" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 @@ -44358,19 +46044,24 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"nrJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"nsj" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "nsp" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"nsq" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "nsr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44381,22 +46072,17 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"nsu" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "nsv" = ( /obj/effect/turf_decal/stripes/corner, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"nsK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, -/obj/machinery/button/door/directional/south{ - id = "engsm"; - name = "Radiation Shutters Control"; - req_access = list("engineering") - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "nsL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44413,6 +46099,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) +"nsQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "nsZ" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/office) @@ -44428,10 +46121,18 @@ "ntl" = ( /turf/closed/wall/r_wall, /area/station/service/lawoffice) -"nto" = ( +"ntm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/cobweb, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat_interior) +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "ntq" = ( /obj/machinery/door/window/brigdoor/left/directional/north{ req_access = list("brig") @@ -44444,20 +46145,26 @@ }, /turf/open/floor/iron, /area/station/security/processing) -"ntx" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32 - }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/obj/structure/marker_beacon/burgundy, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"ntE" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/item/aquarium_kit, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/dark, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) "ntK" = ( /obj/structure/flora/rock/icy/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"ntO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/sign/warning/deathsposal/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "ntT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, @@ -44492,23 +46199,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/visit) -"nuM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ +"nuD" = ( +/obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/obj/machinery/door/airlock/multi_tile/public/glass{ - dir = 4; - name = "Arrivals Dock" +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) +/turf/open/floor/stone, +/area/station/service/bar/atrium) "nuN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44529,20 +46228,13 @@ /obj/structure/flora/bush/snow/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"nvc" = ( -/obj/machinery/smartfridge, -/turf/open/floor/iron/dark, -/area/station/service/kitchen) "nvh" = ( -/obj/machinery/vending/wardrobe/chef_wardrobe, -/obj/effect/turf_decal/siding/white/corner{ - dir = 8 +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics" }, -/obj/machinery/light/directional/north, -/obj/structure/sign/poster/contraband/moffuchis_pizza/directional/east, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/plating, +/area/station/engineering/atmos/storage) "nvr" = ( /obj/effect/turf_decal/weather/snow/corner, /obj/machinery/light/small/directional/north, @@ -44554,17 +46246,31 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"nvw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "nvx" = ( /obj/machinery/airalarm/directional/east, /obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/pen, /turf/open/floor/iron, /area/station/cargo/miningdock) +"nvy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/cargo/warehouse) +"nvB" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "nvE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/mop_bucket/janitorialcart{ @@ -44614,6 +46320,16 @@ }, /turf/open/floor/iron/white, /area/station/science/genetics) +"nwn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "nwr" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -44623,17 +46339,21 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) -"nwC" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 +"nwA" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/light/warm/directional/north, +/obj/effect/turf_decal/siding/white{ + dir = 8 }, -/obj/machinery/hydroponics/constructable, -/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"nwD" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "nwF" = ( /obj/structure/chair/sofa/bench{ dir = 4 @@ -44651,37 +46371,15 @@ dir = 9 }, /area/station/science/research) -"nxc" = ( -/turf/open/floor/glass, -/area/station/service/hydroponics) "nxe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/pink, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"nxj" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/turf_decal/loading_area/white, -/turf/open/floor/wood/large, -/area/station/service/bar/atrium) "nxm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) -"nxw" = ( -/obj/machinery/door/morgue{ - req_access = list("bar") - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) "nxD" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44700,6 +46398,10 @@ "nxM" = ( /turf/closed/wall, /area/station/maintenance/department/medical/morgue) +"nxP" = ( +/obj/structure/gulag_vent/ice, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "nxU" = ( /obj/machinery/status_display/evac/directional/east, /obj/structure/reagent_dispensers/fueltank, @@ -44717,25 +46419,34 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"nxY" = ( +/obj/machinery/button/door/directional/west{ + id = "Disposal Exit"; + name = "Disposal Vent Control"; + req_access = list("maint_tunnels") + }, +/obj/structure/chair/stool/directional/south{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/machinery/computer/pod/old/mass_driver_controller/trash{ + pixel_x = -36 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal) "nyg" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/random/directional/south, /turf/open/floor/plating, /area/station/construction) -"nyj" = ( -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Hydroponics" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/obj/machinery/duct, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/dark/textured_half, -/area/station/service/hydroponics) +"nyh" = ( +/obj/structure/sign/departments/maint/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "nyl" = ( /obj/machinery/door/morgue{ name = "Private Study"; @@ -44763,13 +46474,6 @@ "nyC" = ( /turf/open/floor/iron/dark/smooth_half, /area/station/service/chapel) -"nyE" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/obj/structure/flora/bush/flowers_br/style_random, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "nyH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44803,6 +46507,20 @@ /obj/structure/sink/directional/east, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"nyR" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/dark/side, +/area/mine/eva) +"nyT" = ( +/obj/machinery/digital_clock/directional/north, +/turf/open/floor/iron/grimy, +/area/station/hallway/secondary/entry) "nyX" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -44814,6 +46532,12 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"nyZ" = ( +/obj/structure/fence/corner{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "nza" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44827,17 +46551,17 @@ /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) "nzl" = ( -/obj/machinery/button/flasher{ - id = "transferflash"; - pixel_x = 23; - pixel_y = 9 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/item/radio/intercom/directional/east{ pixel_y = -6 }, /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) +"nzn" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/fore) "nzp" = ( /obj/effect/landmark/blobstart, /obj/effect/decal/cleanable/dirt, @@ -44860,12 +46584,6 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"nzt" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "nzy" = ( /obj/machinery/computer/atmos_control/mix_tank{ dir = 8 @@ -44875,6 +46593,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"nzA" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) "nzB" = ( /obj/effect/turf_decal/trimline/blue/warning{ dir = 4 @@ -44905,37 +46629,28 @@ dir = 1 }, /area/station/medical/chemistry) -"nzT" = ( -/obj/effect/turf_decal/trimline/white/end{ - dir = 8 +"nzN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) +/obj/effect/spawner/random/structure/tank_holder, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"nzU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "nzV" = ( /obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"nAa" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/cold_temp{ - pixel_x = 3; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/mine/eva/lower) -"nAf" = ( -/obj/structure/cable, -/obj/item/wrench, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "nAg" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -44953,6 +46668,22 @@ /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/dark/side, /area/station/security/prison) +"nAw" = ( +/obj/structure/closet/radiation, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/structure/noticeboard/ce{ + pixel_y = 36 + }, +/turf/open/floor/iron, +/area/station/engineering/main) +"nAx" = ( +/obj/structure/flora/grass/both/style_random, +/obj/item/stack/cable_coil/five, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "nAD" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -44996,6 +46727,7 @@ /obj/item/clothing/shoes/winterboots, /obj/item/clothing/suit/hooded/wintercoat, /obj/item/crowbar, +/obj/structure/sign/warning/cold_temp/directional/west, /turf/open/floor/iron, /area/station/service/chapel) "nBj" = ( @@ -45026,11 +46758,20 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) -"nBB" = ( -/obj/machinery/power/smes, +"nBt" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/aft) +/obj/item/stack/package_wrap{ + pixel_y = 2 + }, +/obj/item/book/manual/chef_recipes, +/obj/item/holosign_creator/robot_seat/restaurant, +/obj/structure/rack, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "nBE" = ( /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/weather/snow/corner{ @@ -45050,40 +46791,14 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) -"nBO" = ( -/obj/structure/disposalpipe/sorting/mail, -/obj/effect/mapping_helpers/mail_sorting/service/bar, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"nBQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/tank/air{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"nBZ" = ( -/obj/structure/stairs/south, -/turf/open/floor/stone, -/area/station/commons/lounge) -"nCa" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/shovel, -/obj/item/flashlight, -/obj/item/flashlight, -/obj/machinery/camera{ - c_tag = "Departure Lounge Emergency EVA"; - dir = 9 +"nBS" = ( +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/item/storage/fancy/candle_box{ + pixel_y = 5 }, -/obj/item/radio/off, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/white, -/area/station/hallway/secondary/exit/departure_lounge) +/turf/open/floor/iron/dark, +/area/station/service/chapel/office) "nCb" = ( /obj/structure/rack, /obj/item/reagent_containers/cup/bottle/lithium{ @@ -45102,6 +46817,19 @@ dir = 8 }, /area/station/medical/chem_storage) +"nCd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "nCh" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/directional/east, @@ -45123,14 +46851,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness) -"nCz" = ( -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "nCD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -45163,12 +46883,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"nCW" = ( -/obj/structure/table, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/security/brig/entrance) "nDd" = ( /obj/machinery/status_display/evac/directional/west, /obj/effect/turf_decal/stripes/corner, @@ -45177,24 +46891,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"nDi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, -/obj/structure/cable, -/obj/structure/closet/radiation, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal/incinerator) -"nDl" = ( -/obj/structure/railing/corner, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/tile/dark/half/contrasted, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) -"nDm" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "nDp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45220,20 +46916,6 @@ dir = 5 }, /area/station/maintenance/port/aft) -"nDz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable/layer3, -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/aisat/hallway"; - name = "Chamber Hallway Turret Control"; - pixel_x = 32; - pixel_y = -24; - req_access = list("minisat") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "nDA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45241,15 +46923,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"nDB" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/command/heads_quarters/rd) "nDE" = ( /turf/closed/wall/r_wall, /area/station/security/prison/garden) @@ -45279,6 +46952,10 @@ }, /turf/open/floor/iron/white/corner, /area/station/commons/storage/art) +"nEa" = ( +/obj/item/stack/cable_coil/five, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "nEc" = ( /obj/structure/table/glass, /obj/effect/decal/cleanable/dirt, @@ -45318,10 +46995,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"nEI" = ( -/obj/item/flashlight/lantern/on, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) +"nEC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/security/brig) "nEV" = ( /obj/machinery/vending/wardrobe/sec_wardrobe, /obj/structure/cable, @@ -45362,6 +47047,27 @@ }, /turf/open/floor/iron, /area/station/security/prison/mess) +"nFt" = ( +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=8"; + location = "Bar and Kitchen" + }, +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/textured, +/area/station/maintenance/starboard/fore) +"nFz" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + pixel_y = 2 + }, +/obj/structure/sign/warning/docking/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "nFF" = ( /obj/structure/table, /obj/item/assembly/signaler{ @@ -45383,6 +47089,14 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) +"nFG" = ( +/obj/structure/table, +/obj/item/relic, +/obj/effect/spawner/random/maintenance, +/obj/item/screwdriver, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) "nFL" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/access/all/engineering/external, @@ -45395,16 +47109,12 @@ "nFO" = ( /obj/structure/transit_tube/horizontal, /obj/structure/cable, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"nFQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/chair/wood{ +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ dir = 1 }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "nFU" = ( /obj/structure/chair/stool/directional/west, /obj/item/trash/energybar, @@ -45412,10 +47122,29 @@ /obj/structure/sign/poster/official/work_for_a_future/directional/south, /turf/open/floor/iron, /area/station/security/prison/work) -"nGk" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/rack, -/obj/effect/spawner/random/maintenance, +"nGd" = ( +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"nGo" = ( +/obj/machinery/vending/games, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) +"nGv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/table, +/obj/item/paper_bin/construction, +/obj/item/storage/crayons{ + pixel_y = -2; + pixel_x = -3 + }, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft/greater) "nGA" = ( @@ -45448,16 +47177,6 @@ /obj/effect/spawner/random/armory/barrier_grenades, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory/upper) -"nGQ" = ( -/obj/machinery/flasher/directional/north{ - id = "Cell 3" - }, -/obj/structure/bed{ - dir = 1; - pixel_x = -2 - }, -/turf/open/floor/iron/smooth, -/area/station/security/brig) "nGU" = ( /obj/structure/closet/secure_closet/security/sec, /obj/machinery/airalarm/directional/north, @@ -45465,10 +47184,23 @@ dir = 1 }, /area/station/security/lockers) -"nHc" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"nGY" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Mining B-2 Hallway"; + network = list("ss13", "mine") + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/mine/eva/lower) "nHe" = ( /obj/structure/closet/radiation, /obj/effect/turf_decal/tile/yellow{ @@ -45476,12 +47208,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"nHf" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/light/small/directional/south, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/dark, -/area/station/science/breakroom) "nHj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45506,18 +47232,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"nHX" = ( -/obj/structure/sign/departments/psychology/directional/south, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/machinery/camera{ - c_tag = "Medbay South"; - dir = 5; - network = list("ss13","medbay") +"nIb" = ( +/obj/structure/chair{ + dir = 1 }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "nId" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45525,13 +47245,6 @@ /obj/structure/barricade/wooden, /turf/open/floor/eighties/red, /area/station/security/prison/safe) -"nIe" = ( -/obj/item/stack/cable_coil, -/obj/structure/fence/corner{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "nIl" = ( /obj/structure/chair/stool/directional/north, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -45539,26 +47252,13 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"nIt" = ( -/obj/structure/stairs/west, -/turf/open/floor/iron/white, -/area/station/science/ordnance) "nIx" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/aft) -"nIY" = ( -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "nJd" = ( /obj/structure/grille, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"nJm" = ( -/obj/structure/fluff/fokoff_sign, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "nJo" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -45584,15 +47284,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/engine_equipment, /turf/open/floor/iron, /area/station/engineering/storage) -"nJq" = ( -/obj/structure/closet/athletic_mixed, -/obj/effect/landmark/start/hangover/closet, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron, -/area/station/commons/fitness) "nJy" = ( /obj/structure/chair/pew{ dir = 1 @@ -45601,6 +47292,18 @@ dir = 8 }, /area/station/service/chapel) +"nJH" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm2"; + name = "Dorm 2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms) "nJI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /obj/effect/turf_decal/siding/wideplating/corner{ @@ -45609,6 +47312,20 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"nJK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"nJL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor/border_only, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/mine/eva) "nJT" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -45621,28 +47338,20 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/science) -"nJZ" = ( -/obj/machinery/light/small/red/directional/south, -/obj/structure/chair{ - dir = 1 - }, -/obj/item/radio/intercom/chapel/directional/east, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "nKa" = ( /turf/closed/wall, /area/station/security/checkpoint/medical) -"nKj" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/rnd/production/circuit_imprinter, -/obj/machinery/requests_console/directional/east{ - department = "Engineering"; - name = "Engineering Requests Console" +"nKb" = ( +/obj/machinery/door/window/left/directional/west{ + name = "Secure Art Exhibition"; + req_access = list("library") }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) +/obj/effect/spawner/random/structure/table_fancy, +/obj/structure/sign/painting/library_secure{ + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/station/service/library) "nKk" = ( /obj/effect/turf_decal/siding/thinplating_new{ dir = 8 @@ -45662,6 +47371,12 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/cargo/lobby) +"nKw" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/smooth, +/area/station/engineering/lobby) "nKK" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 10 @@ -45719,41 +47434,31 @@ /obj/structure/mirror/broken/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"nLa" = ( -/obj/structure/flora/bush/lavendergrass/style_random, -/obj/structure/flora/bush/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) +"nKY" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "nLb" = ( /obj/machinery/blackbox_recorder, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"nLd" = ( -/obj/effect/turf_decal/siding/thinplating/dark, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "nLe" = ( /obj/effect/turf_decal/tile/dark/half/contrasted, /obj/machinery/light/floor, /turf/open/floor/iron/white, /area/station/medical/virology) -"nLs" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 10 +"nLB" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 }, -/obj/structure/sign/poster/official/random/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"nLE" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/maintenance/port/fore) "nLH" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, @@ -45795,6 +47500,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"nMv" = ( +/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{ + name = "Burn Chamber Interior Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "nMw" = ( /obj/structure/chair{ dir = 1 @@ -45813,30 +47526,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/research) -"nMC" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/toy/figure/chef, -/obj/machinery/camera/directional/north{ - c_tag = "Service - Coldroom" - }, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) -"nMD" = ( -/obj/structure/fence/door{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "nME" = ( /obj/item/clothing/head/utility/hardhat, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "nMH" = ( @@ -45864,6 +47558,13 @@ /obj/effect/gibspawner/human/bodypartless, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"nMT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/station/service/library) "nNe" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -45873,6 +47574,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"nNg" = ( +/mob/living/basic/goat/pete{ + desc = "Not known for their pleasant disposition. This one seems a bit more hardy to the cold."; + habitable_atmos = list("min_oxy"=1,"max_oxy"=0,"min_plas"=0,"max_plas"=1,"min_co2"=0,"max_co2"=5,"min_n2"=0,"max_n2"=0); + minimum_survivable_temperature = 150; + name = "Snowy Pete" + }, +/turf/open/misc/ice/coldroom, +/area/station/service/kitchen/coldroom) +"nNi" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "nNn" = ( /turf/closed/wall, /area/station/security/prison/rec) @@ -45898,17 +47614,13 @@ /obj/item/clothing/glasses/meson/engine, /turf/open/floor/iron/dark, /area/station/engineering/storage) -"nNy" = ( -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 29 +"nNu" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 }, -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/mine/mechbay) +/obj/structure/railing/corner, +/turf/open/floor/iron, +/area/station/cargo/storage) "nNB" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -45916,15 +47628,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/iron/dark, /area/station/medical/virology) -"nNI" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "nNM" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -45933,14 +47636,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nNU" = ( -/obj/machinery/chem_dispenser, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/yellow/full, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) +"nNZ" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor2"; + name = "Supply Dock Loading Door"; + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) +"nOa" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "nOb" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock" @@ -45950,11 +47665,25 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/processing) -"nOk" = ( -/obj/item/chair/wood, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/wood, -/area/station/maintenance/port/aft) +"nOh" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/cryo) +"nOj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/noticeboard/staff{ + pixel_y = 36 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "nOl" = ( /obj/structure/bed, /obj/machinery/airalarm/directional/north, @@ -45989,17 +47718,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/bridge) -"nOI" = ( -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/effect/landmark/start/assistant, -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/iron, -/area/station/commons/fitness) "nOQ" = ( /obj/machinery/suit_storage_unit/security, /obj/machinery/camera/directional/north{ @@ -46014,6 +47732,54 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"nPc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) +"nPo" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat/science{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/clothing/shoes/winterboots{ + pixel_x = -7; + pixel_y = -1 + }, +/obj/item/biopsy_tool{ + pixel_x = 8; + pixel_y = 3 + }, +/obj/item/gps/mining{ + pixel_x = -7; + pixel_y = -3 + }, +/obj/item/knife/combat/survival{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/machinery/light/directional/east, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) +"nPs" = ( +/obj/structure/bodycontainer/morgue, +/obj/machinery/camera/directional/south{ + c_tag = "Morgue South"; + network = list("ss13","medbay") + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "nPt" = ( /obj/structure/chair/stool/directional/east, /obj/effect/mapping_helpers/burnt_floor, @@ -46025,12 +47791,17 @@ /turf/open/floor/plating, /area/station/maintenance/aft/lesser) "nPS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/work) "nQd" = ( /obj/effect/turf_decal/trimline/green/filled/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46050,30 +47821,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"nQm" = ( -/obj/machinery/newscaster/directional/east, -/obj/machinery/light/directional/east, -/obj/machinery/camera/directional/east{ - c_tag = "Service - Hall" - }, -/obj/machinery/disposal/bin/tagger, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) -"nQq" = ( -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_y = 6 - }, -/obj/structure/table/glass, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/science/lab) +"nQj" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) +"nQr" = ( +/obj/structure/sign/warning/docking/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "nQu" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -46096,6 +47852,13 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) +"nQL" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "nQO" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=AIW"; @@ -46160,6 +47923,17 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/security/brig/upper) +"nRn" = ( +/obj/machinery/door/window/left/directional/south{ + req_access = list("kitchen"); + name = "The Ice Box" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "nRq" = ( /obj/structure/closet/crate, /obj/effect/spawner/random/bureaucracy/birthday_wrap, @@ -46186,37 +47960,33 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/lesser) -"nRx" = ( -/obj/machinery/washing_machine, -/obj/effect/turf_decal/siding/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 +"nRE" = ( +/obj/machinery/door/airlock/freezer{ + desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold."; + name = "The Ice Box" }, -/obj/structure/sign/poster/official/nanotrasen_logo/directional/east, -/turf/open/floor/iron, -/area/station/commons/dorms/laundry) -"nRy" = ( -/mob/living/basic/goat/pete{ - desc = "Not known for their pleasant disposition. This one seems a bit more hardy to the cold."; - habitable_atmos = list("min_oxy"=1,"max_oxy"=0,"min_plas"=0,"max_plas"=1,"min_co2"=0,"max_co2"=5,"min_n2"=0,"max_n2"=0); - minimum_survivable_temperature = 150; - name = "Snowy Pete" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/misc/ice/coldroom, -/area/station/service/kitchen/coldroom) -"nRO" = ( -/obj/structure/cable/multilayer/multiz, -/obj/structure/sign/poster/contraband/random/directional/north, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/security/prison/safe) +/area/station/service/kitchen/coldroom) "nRV" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood, +/area/station/service/library) +"nRW" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 4 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/structure/table, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_y = 6 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "nRX" = ( /turf/open/floor/iron/white/side{ dir = 10 @@ -46299,14 +48069,11 @@ /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"nSX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/small/broken/directional/north, +"nSU" = ( +/obj/structure/sign/poster/random/directional/north, +/obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/maintenance/starboard/aft) "nTp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46314,18 +48081,6 @@ /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/textured_large, /area/station/security/brig/entrance) -"nTA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "nTK" = ( /obj/structure/table/glass, /obj/machinery/barsign{ @@ -46361,14 +48116,6 @@ "nTO" = ( /turf/closed/wall/r_wall, /area/mine/laborcamp/security) -"nTP" = ( -/obj/item/food/grown/potato{ - pixel_y = 4 - }, -/obj/structure/rack, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "nTV" = ( /obj/structure/table/reinforced, /obj/item/screwdriver{ @@ -46380,6 +48127,13 @@ /obj/effect/turf_decal/tile/red/full, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) +"nTX" = ( +/obj/structure/flora/grass/both/style_random, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "nUg" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -46404,16 +48158,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/smooth_half, /area/station/ai_monitored/command/storage/eva) -"nUI" = ( -/obj/machinery/computer/records/security, -/obj/machinery/light_switch/directional/north{ - pixel_x = -16 - }, -/obj/machinery/computer/security/telescreen/normal/directional/north, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/security/brig/entrance) "nUJ" = ( /obj/machinery/flasher/directional/east{ id = "brigentry" @@ -46453,6 +48197,10 @@ }, /turf/open/floor/carpet, /area/station/service/library) +"nVx" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/textured, +/area/station/service/hydroponics) "nVB" = ( /obj/effect/turf_decal/trimline/dark/warning{ dir = 4 @@ -46463,30 +48211,23 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"nVO" = ( -/obj/structure/table, +"nVJ" = ( /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 4 }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/fore) +/obj/structure/cable, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "nVR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria{ dir = 5 }, /area/station/maintenance/port/aft) -"nVZ" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Office" - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) +"nWe" = ( +/obj/machinery/light/small/directional/north, +/turf/open/openspace, +/area/station/science/research) "nWf" = ( /obj/structure/chair{ dir = 1 @@ -46504,6 +48245,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"nWG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "nWH" = ( /turf/closed/wall, /area/station/maintenance/department/cargo) @@ -46512,6 +48261,14 @@ /obj/machinery/holopad, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"nWM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/mining_weather_monitor/directional/north, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/entry) "nXb" = ( /turf/closed/wall, /area/icemoon/surface/outdoors/nospawn) @@ -46534,20 +48291,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"nXp" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/table/glass, -/obj/item/storage/box/monkeycubes, -/turf/open/floor/iron, -/area/station/science/xenobiology) -"nXs" = ( -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance{ - name = "Kitchen Maintenance" - }, -/turf/open/floor/plating, -/area/station/service/kitchen) "nXH" = ( /obj/structure/bodycontainer/crematorium{ id = "crematoriumChapel" @@ -46575,6 +48318,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/security/prison/visit) +"nYm" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "nYn" = ( /obj/structure/closet/secure_closet/personal/cabinet, /turf/open/floor/carpet, @@ -46585,25 +48335,10 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"nYN" = ( -/turf/open/floor/wood, -/area/station/commons/lounge) -"nYR" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 9 - }, -/obj/structure/reagent_dispensers/watertank/high, -/obj/item/reagent_containers/cup/watering_can, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"nYY" = ( -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +"nYz" = ( +/obj/structure/flora/rock/pile/icy/style_random, +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "nYZ" = ( /obj/item/storage/bag/trash, /turf/open/floor/plating, @@ -46638,14 +48373,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/checkpoint/supply) -"nZi" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/work) "nZA" = ( /obj/structure/table, /obj/item/stock_parts/subspace/amplifier, @@ -46653,10 +48380,30 @@ /obj/item/stock_parts/subspace/amplifier, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"nZC" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron, +/area/mine/laborcamp) "nZH" = ( /obj/structure/lattice/catwalk, /turf/open/openspace, /area/station/engineering/atmos/storage) +"nZN" = ( +/obj/structure/rack, +/obj/item/crowbar/red, +/obj/item/wrench, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat/maint) "nZU" = ( /obj/machinery/door/airlock/maintenance{ name = "Firefighting Equipment" @@ -46676,38 +48423,14 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"oac" = ( -/obj/effect/turf_decal/siding/thinplating/dark/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/button/door/directional/north{ - id = "botany_apiary"; - name = "Bee Protection Shutters" - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"oas" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ +"oad" = ( +/obj/structure/railing{ dir = 4 }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +/turf/open/floor/iron/stairs/medium{ + dir = 1 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) +/area/station/security/prison) "oaG" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 9 @@ -46726,18 +48449,6 @@ }, /turf/open/floor/iron/white/corner, /area/mine/living_quarters) -"oaJ" = ( -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/machinery/requests_console/auto_name/directional/east, -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "oaP" = ( /obj/machinery/door/airlock/research{ name = "Crater Observation Room" @@ -46747,6 +48458,12 @@ "oaQ" = ( /obj/structure/transit_tube, /obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "oaR" = ( @@ -46763,6 +48480,25 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"obb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) +"obe" = ( +/obj/structure/fence/corner{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "obj" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -46770,15 +48506,35 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"obr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "surgery"; - name = "Surgery Shutter" +"obl" = ( +/obj/effect/spawner/random/structure/crate_abandoned, +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Chapel Electrical Maintenace Upper" + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) +"obo" = ( +/obj/machinery/light_switch/directional/north{ + pixel_x = -7 }, -/obj/structure/sign/warning/no_smoking/circle/directional/east, +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/high/empty, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) +"obt" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, -/area/station/medical/surgery/aft) +/area/station/maintenance/starboard/fore) "obu" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -46793,6 +48549,18 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron, /area/station/security/prison/work) +"obF" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio1"; + name = "Xenobio Pen 1 Blast Door" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) "obG" = ( /obj/effect/turf_decal/trimline/blue/corner{ dir = 8 @@ -46814,14 +48582,29 @@ dir = 1 }, /area/station/engineering/atmos/storage/gas) -"obT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, +"obQ" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, +/obj/machinery/modular_computer/preset/civilian{ + dir = 8 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) +"obU" = ( +/obj/machinery/light_switch/directional/north{ + pixel_x = 6 + }, +/obj/machinery/button/door/directional/north{ + id = "botany_chasm_and_wolf_shutters"; + name = "Exterior Shutters"; + pixel_x = -4 + }, +/turf/open/floor/iron/dark/smooth_half, /area/station/service/hydroponics) "obZ" = ( /obj/machinery/camera/directional/east{ @@ -46830,16 +48613,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"ocd" = ( -/obj/machinery/igniter/incinerator_ordmix, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) -"ocp" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "ocu" = ( /obj/effect/turf_decal/bot_white, /obj/structure/cable, @@ -46852,6 +48625,31 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"ocJ" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/storage/box/syringes{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology) +"ocS" = ( +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/obj/structure/fluff/tram_rail, +/obj/structure/lattice/catwalk, +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "ocY" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/spawner/random/engineering/tracking_beacon, @@ -46868,33 +48666,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/science/xenobiology) -"odf" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box/red, -/obj/machinery/airalarm/directional/east, -/obj/effect/mapping_helpers/airalarm/mixingchamber_access, -/obj/effect/mapping_helpers/airalarm/link{ - chamber_id = "ordnanceburn" - }, -/obj/effect/mapping_helpers/airalarm/tlv_no_checks, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) -"odi" = ( -/obj/item/toy/snowball{ - pixel_x = 5; - pixel_y = -1 - }, -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"odm" = ( -/obj/structure/stairs/east, -/turf/open/floor/iron/white, -/area/station/science/ordnance) "odw" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, @@ -46914,21 +48685,25 @@ /obj/item/radio/intercom/prison/directional/east, /turf/open/floor/carpet/red, /area/station/security/prison/work) +"odF" = ( +/obj/structure/railing, +/turf/open/openspace, +/area/station/service/kitchen/coldroom) "odN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"odR" = ( +/turf/open/floor/iron/white/corner{ + dir = 4 + }, +/area/station/science/research) "odW" = ( /obj/structure/railing{ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"odZ" = ( -/obj/machinery/door/airlock/hatch, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "oed" = ( /obj/machinery/door/window/right/directional/east{ name = "Robotics Surgery"; @@ -46950,25 +48725,10 @@ "oex" = ( /turf/open/openspace/icemoon/keep_below, /area/station/maintenance/department/medical/morgue) -"oeB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/plastic, -/area/station/commons/dorms/laundry) "oeM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"oeP" = ( -/obj/structure/table, -/obj/item/food/chococoin, -/obj/structure/sign/warning/gas_mask{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; - pixel_x = 30 - }, -/turf/open/floor/iron/smooth, -/area/mine/eva) "oeT" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -46986,26 +48746,28 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"ofm" = ( -/obj/structure/bodycontainer/morgue, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"ofr" = ( -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/item/paper_bin{ - pixel_y = 4 +"ofc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"ofi" = ( +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 8 }, -/obj/item/folder/white{ - pixel_x = -4; - pixel_y = 4 +/obj/machinery/bluespace_vendor/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"ofl" = ( +/obj/structure/chair{ + desc = "Aw geez, I wonder what the chef's cooking up in there!"; + dir = 1; + name = "The Peanut's Gallery" }, -/obj/item/pen{ - pixel_x = -4 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, /turf/open/floor/iron, -/area/station/science/xenobiology) +/area/station/hallway/primary/starboard) "ofz" = ( /obj/structure/ore_box, /obj/effect/turf_decal/bot, @@ -47035,6 +48797,25 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"ofR" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "ogd" = ( /obj/structure/chair/office{ dir = 8 @@ -47049,8 +48830,17 @@ /turf/open/floor/iron, /area/station/science/xenobiology) "ogu" = ( -/turf/open/floor/iron/dark/smooth_half, -/area/station/service/hydroponics) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plastic, +/area/station/commons/dorms/laundry) "ogy" = ( /obj/machinery/door/airlock/maintenance{ name = "EVA Maintenance" @@ -47086,11 +48876,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"ohk" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +"ohb" = ( +/obj/machinery/medical_kiosk, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/sign/departments/medbay/alt/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "ohp" = ( /turf/open/floor/glass, /area/station/maintenance/department/medical/central) @@ -47110,15 +48903,23 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"ohP" = ( -/obj/structure/table/wood, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/box/white/corners{ - dir = 4 +"ohI" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 }, -/turf/open/floor/iron/dark, -/area/station/service/bar) +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) +"ohO" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/lattice/catwalk, +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) "ohS" = ( /obj/structure/railing{ dir = 8 @@ -47132,6 +48933,14 @@ }, /turf/open/openspace, /area/station/security/prison) +"ohU" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "oic" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47168,19 +48977,6 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"oir" = ( -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio10"; - name = "Xenobio Pen 10 Blast Door" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/electric_shock, -/turf/open/floor/plating, -/area/station/science/xenobiology) "oiy" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/service) @@ -47188,16 +48984,10 @@ /obj/structure/urinal/directional/north, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"oiB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Chemistry Lab Utilities" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/medical/central) +"oiC" = ( +/obj/effect/spawner/random/engineering/canister, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "oiD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47213,20 +49003,31 @@ dir = 4 }, /area/station/hallway/secondary/entry) -"oiK" = ( -/obj/machinery/door/airlock{ - id_tag = "commissarydoor"; - name = "Commissary" +"oiI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/junction/flip{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/commons/vacant_room/commissary) +/obj/item/kirbyplants/random, +/obj/item/radio/intercom/directional/south, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) +"oiM" = ( +/obj/structure/dresser, +/obj/structure/mirror/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Backstage" + }, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "oiO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47242,22 +49043,27 @@ /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"oiW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"oiU" = ( +/obj/structure/closet/crate, +/obj/item/food/canned/beans, +/obj/item/food/canned/beans, +/obj/item/food/canned/beans, +/obj/item/reagent_containers/cup/glass/waterbottle{ + pixel_x = 7; + pixel_y = 6 }, -/obj/machinery/camera{ - c_tag = "Medbay Psychology"; - dir = 6; - network = list("ss13","medbay"); - pixel_y = -22 +/obj/item/reagent_containers/cup/glass/waterbottle{ + pixel_x = 7; + pixel_y = 6 }, -/obj/machinery/newscaster/directional/east, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 4 +/obj/item/reagent_containers/cup/glass/waterbottle{ + pixel_x = 7; + pixel_y = 6 }, -/turf/open/floor/iron/white, -/area/station/medical/psychology) +/mob/living/basic/mouse/white, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) "oiX" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -47267,6 +49073,16 @@ /obj/machinery/pdapainter/medbay, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) +"oiZ" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/vending/wardrobe/science_wardrobe, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) +"oje" = ( +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "ojf" = ( /obj/structure/lattice/catwalk, /turf/open/lava/plasma/ice_moon, @@ -47293,17 +49109,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"ojy" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "ojF" = ( /obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/iron/checker, /area/station/science/lab) -"ojP" = ( -/obj/machinery/door/firedoor/heavy, -/obj/structure/sign/warning/firing_range/directional/west, -/turf/open/floor/iron/white/corner{ - dir = 4 - }, -/area/station/science/research) "ojW" = ( /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -47316,23 +49134,22 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) -"okf" = ( -/obj/structure/bodycontainer/morgue, -/obj/machinery/camera{ - c_tag = "Morgue South"; - dir = 5; - network = list("ss13","medbay") +"okc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "mining-aux-mechbay-external" }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"okk" = ( -/obj/structure/cable, -/obj/structure/sign/departments/aisat/directional/east, -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/corner, -/area/station/engineering/storage_shared) +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Mining Mech Bay External Airlock"; + opacity = 0 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/turf/open/floor/iron/large, +/area/mine/mechbay) "okl" = ( /obj/structure/chair{ dir = 8 @@ -47361,6 +49178,11 @@ }, /turf/open/floor/iron, /area/station/security/warden) +"okz" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/hallway/primary/central/fore) "okG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -47385,22 +49207,6 @@ "olf" = ( /turf/open/floor/carpet, /area/station/commons/dorms) -"olt" = ( -/obj/structure/chair/sofa/bench/right{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) -"olH" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain) "olI" = ( /obj/structure/table/glass, /obj/item/book/manual/wiki/medicine{ @@ -47414,10 +49220,14 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"olO" = ( -/obj/structure/fence, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored/graveyard) +"olM" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight/lamp{ + start_on = 0 + }, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "olQ" = ( /obj/structure/sign/nanotrasen{ pixel_y = 32 @@ -47425,6 +49235,16 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) +"olR" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/engineering/flashlight, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/lesser) "olV" = ( /obj/machinery/light/small/directional/west, /obj/structure/cable, @@ -47464,6 +49284,11 @@ "omk" = ( /turf/open/floor/glass/reinforced, /area/station/security/office) +"omo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/medical/cryo) "omG" = ( /obj/structure/table, /obj/item/flashlight/lamp, @@ -47493,15 +49318,12 @@ }, /turf/open/floor/plating, /area/station/security/prison/safe) -"omS" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Kitchen Maintenance" - }, -/obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) +"omT" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high/empty, +/turf/open/floor/iron/dark, +/area/station/engineering/storage) "ond" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47548,11 +49370,38 @@ }, /turf/open/floor/plating, /area/station/security/courtroom) +"onP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "onQ" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"onT" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "ooa" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, @@ -47575,23 +49424,9 @@ "ooo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/processor/slime, +/obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) -"oor" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/door/airlock/multi_tile/public/glass{ - dir = 4; - name = "Arrivals Dock" - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) "oot" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 4 @@ -47601,6 +49436,26 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"ooy" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) +"ooG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "ooL" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 4 @@ -47624,6 +49479,19 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) +"ooV" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "ooW" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/reinforced/middle{ @@ -47651,6 +49519,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) +"opt" = ( +/obj/structure/closet/athletic_mixed, +/obj/effect/landmark/start/hangover/closet, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) "opu" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/structure/disposalpipe/segment{ @@ -47658,14 +49535,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"opw" = ( -/obj/machinery/computer/pod/old/mass_driver_controller/chapelgun{ - pixel_x = 24 +"opy" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/kirbyplants/random/fullysynthetic{ + pixel_x = 10; + pixel_y = 19 }, -/turf/open/floor/iron/dark/smooth_edge{ - dir = 1 +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Mining Break Room"; + network = list("ss13", "mine") }, -/area/station/service/chapel) +/turf/open/floor/stone, +/area/mine/eva/lower) "opB" = ( /obj/structure/table, /obj/item/raw_anomaly_core/random{ @@ -47680,24 +49563,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) -"opD" = ( -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/iron/white, -/area/station/science/ordnance) -"opH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 +"opE" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/starboard) +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "opI" = ( /obj/machinery/microwave{ pixel_y = 7 @@ -47711,6 +49583,9 @@ }, /turf/open/floor/iron, /area/station/science/ordnance/testlab) +"opP" = ( +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "opS" = ( /obj/machinery/vending/wardrobe/sec_wardrobe, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -47719,6 +49594,12 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) +"opU" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing/corner/end/flip, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "oqb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/power/apc/auto_name/directional/west, @@ -47732,22 +49613,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer1, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) -"oqd" = ( -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas{ - pixel_x = -8; - pixel_y = 4 - }, -/obj/structure/table, -/obj/machinery/door_buttons/access_button, -/obj/item/clothing/mask/gas{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/science/xenobiology) "oqg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -47755,15 +49620,6 @@ }, /turf/open/floor/wood, /area/station/commons/dorms) -"oqj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating/corner{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plastic, -/area/station/commons/dorms/laundry) "oqz" = ( /obj/effect/turf_decal/tile/green{ dir = 4 @@ -47771,13 +49627,6 @@ /obj/effect/turf_decal/tile/dark_green, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"oqB" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/box/red/corners{ - dir = 1 - }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "oqC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47788,6 +49637,16 @@ /obj/effect/landmark/start/station_engineer, /turf/open/floor/iron, /area/station/engineering/main) +"oqE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance" + }, +/turf/open/floor/plating, +/area/station/service/kitchen/coldroom) "oqJ" = ( /obj/structure/sign/warning/docking/directional/north, /obj/structure/flora/grass/green/style_random, @@ -47805,6 +49664,9 @@ }, /turf/open/openspace, /area/station/science/xenobiology) +"oqN" = ( +/turf/open/floor/iron/grimy, +/area/station/service/chapel/office) "oqT" = ( /obj/machinery/airalarm/directional/south, /obj/effect/decal/cleanable/dirt, @@ -47815,23 +49677,10 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron/white, /area/station/medical/break_room) -"ork" = ( -/obj/structure/fence/door{ - dir = 4 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) -"oro" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/structure/railing/corner, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/ordnance/office) +"oqY" = ( +/obj/effect/spawner/random/structure/closet_private, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "orq" = ( /obj/machinery/light/small/directional/west, /obj/machinery/button/door/directional/south{ @@ -47847,12 +49696,19 @@ /obj/machinery/recharge_station, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"oru" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"ort" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/firedoor{ + dir = 8 }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) "orv" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -47889,28 +49745,12 @@ dir = 4 }, /area/mine/living_quarters) -"orU" = ( -/obj/machinery/vending/coffee, -/obj/structure/sign/poster/random/directional/east, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "orV" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/stripes/line, /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"orZ" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/item/radio/intercom/directional/east, -/obj/machinery/camera/directional/north{ - c_tag = "Service - Atrium" - }, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/wood/large, -/area/station/service/bar/atrium) "osd" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -47955,10 +49795,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/port/aft) -"osN" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/maintenance/fore) "osO" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -47973,8 +49809,17 @@ /obj/structure/closet/emcloset{ anchored = 1 }, +/obj/structure/sign/warning/cold_temp/directional/south, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"otf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/medium, +/area/station/commons/dorms/laundry) "ots" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/hollow/reinforced/middle, @@ -48013,6 +49858,25 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"otM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/contraband/cc64k_ad/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/port/fore) +"otW" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sink/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) "oua" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48039,6 +49903,18 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/treatment_center) +"ouq" = ( +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Mining B-1 Crater Observatory Access"; + network = list("ss13", "mine") + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/mine/living_quarters) "ous" = ( /obj/machinery/door/airlock/security/glass{ name = "N2O Storage" @@ -48051,12 +49927,34 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore) +"ouK" = ( +/obj/machinery/space_heater, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore/lesser) "ouP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"ouU" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) +"ouW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/musician/piano/random_piano, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "ouX" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -48081,11 +49979,35 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ovx" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/requests_console/directional/west{ + department = "Head of Personnel's Desk"; + name = "Head of Personnel's Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/information, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "ovy" = ( /obj/structure/closet, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"ovz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants/random/dead, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"ovB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "ovP" = ( /turf/open/genturf/orange, /area/icemoon/underground/unexplored/no_rivers) @@ -48100,11 +50022,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/lockers) -"ovZ" = ( -/obj/structure/table/wood, -/obj/item/paper/crumpled, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "owf" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/decal/cleanable/dirt, @@ -48141,11 +50058,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"oxe" = ( -/obj/machinery/computer/cargo/request, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) +"owK" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "oxh" = ( /obj/machinery/light/directional/south, /obj/effect/decal/cleanable/dirt, @@ -48171,22 +50093,16 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"oxN" = ( -/obj/machinery/light_switch/directional/north{ - pixel_x = -7 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "oxO" = ( /turf/open/floor/plating, /area/station/maintenance/aft/lesser) "oxR" = ( /obj/structure/transit_tube/crossing/horizontal, /obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "oxU" = ( @@ -48214,6 +50130,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/command/meeting_room) +"oyd" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "oyj" = ( /obj/structure/table, /obj/item/storage/box, @@ -48286,6 +50211,13 @@ }, /turf/open/floor/iron/dark, /area/station/security/mechbay) +"oyM" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "oyW" = ( /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat/hallway) @@ -48296,12 +50228,30 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"oyY" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "ozb" = ( /obj/structure/table/reinforced, /obj/item/folder/white, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"ozk" = ( +/obj/machinery/door/airlock{ + name = "Unisex Showers" + }, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/textured, +/area/station/commons/toilet) "ozo" = ( /obj/effect/landmark/carpspawn, /turf/open/misc/asteroid/snow/icemoon, @@ -48312,23 +50262,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"ozx" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/structure/minecart_rail{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south{ - frequency = 1453; - name = "Kitchen Intercom" - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "ozA" = ( /obj/structure/closet/secure_closet/research_director, /obj/effect/turf_decal/stripes/line{ @@ -48348,23 +50281,13 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "ozH" = ( -/obj/machinery/button/door/directional/east{ - id = "commissarydoor"; - name = "Commissary Door Lock"; - normaldoorcontrol = 1; - specialfunctions = 4 - }, /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 }, +/obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"ozM" = ( -/obj/structure/railing/corner, -/obj/structure/sign/warning/biohazard/directional/west, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "ozN" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -48372,6 +50295,23 @@ /obj/structure/bed/medical/emergency, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"ozU" = ( +/obj/structure/table/glass, +/obj/machinery/door/window/right/directional/north{ + name = "Hydroponics Desk"; + req_access = list("hydroponics") + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/desk_bell{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "ozV" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -48380,12 +50320,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"ozW" = ( -/obj/structure/railing/wooden_fence{ - dir = 10 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "ozX" = ( /obj/machinery/hydroponics/soil, /turf/open/floor/grass, @@ -48429,16 +50363,25 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"oAz" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = 32; - pixel_y = 32 +"oAm" = ( +/obj/structure/railing/wooden_fence{ + dir = 10 }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 4 +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) +"oAs" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/item/analyzer, +/obj/item/pipe_dispenser, +/obj/item/flashlight, +/obj/machinery/incident_display/delam/directional/north, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "oAA" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -48490,6 +50433,13 @@ }, /turf/open/floor/iron/dark, /area/mine/eva/lower) +"oBq" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 9 + }, +/obj/machinery/meter, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "oBs" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Security"; @@ -48513,25 +50463,50 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) +"oBD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/cup/bucket{ + pixel_y = 10; + pixel_x = -4 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "oBI" = ( /obj/machinery/light/floor, /turf/open/floor/carpet, /area/station/service/library) -"oBJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/mapping_helpers/burnt_floor, -/obj/structure/railing{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "oBQ" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) +"oBV" = ( +/obj/item/paper/fluff/jobs/security/beepsky_mom, +/obj/machinery/light/small/dim/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"oBZ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"oCo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/mine/laborcamp) "oCs" = ( /obj/structure/table, /obj/item/radio/headset/headset_med{ @@ -48560,10 +50535,6 @@ /obj/item/stack/cable_coil/five, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"oCw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/fore) "oCA" = ( /obj/structure/closet/secure_closet/cytology, /obj/machinery/button/door/directional/north{ @@ -48580,6 +50551,11 @@ }, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) +"oCE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "oCF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48601,6 +50577,17 @@ dir = 1 }, /area/station/security/prison) +"oDb" = ( +/obj/item/popsicle_stick{ + pixel_y = 1; + pixel_x = -9 + }, +/obj/item/popsicle_stick{ + pixel_y = 3; + pixel_x = -2 + }, +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "oDd" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48630,14 +50617,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"oDk" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/central) "oDn" = ( /obj/machinery/door/airlock/atmos/glass, /obj/structure/cable, @@ -48664,10 +50643,36 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"oDw" = ( +/obj/structure/table, +/obj/item/petri_dish{ + pixel_y = 15; + pixel_x = -5 + }, +/obj/item/petri_dish{ + pixel_y = 10; + pixel_x = 6 + }, +/obj/item/petri_dish{ + pixel_y = -6; + pixel_x = -1 + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "oDB" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/mine/laborcamp) +"oDD" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/effect/landmark/start/botanist, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "oDH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/side{ @@ -48691,12 +50696,6 @@ }, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) -"oEe" = ( -/obj/machinery/duct, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "oEj" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -48721,20 +50720,71 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/engineering/main) -"oEC" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/starboard/fore) +"oEy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = 3; + pixel_y = -8 + }, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -3; + pixel_y = -8 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = -6 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = -7 + }, +/obj/structure/sign/warning/no_smoking/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay Chemistry Lab - East"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/medical/chemistry) +"oEB" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"oED" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Xenobiology Test Chamber"; + network = list("ss13","test","rd","xeno") + }, +/obj/machinery/light/directional/west, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) +"oEE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) "oEF" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/end, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/aft) -"oEH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "oEX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48742,6 +50792,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"oFc" = ( +/obj/structure/sign/warning/directional/north, +/turf/open/openspace/icemoon, +/area/icemoon/surface/outdoors/nospawn) "oFd" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 1 @@ -48751,29 +50805,14 @@ /area/station/science/ordnance) "oFl" = ( /obj/machinery/light/small/dim/directional/west, +/obj/structure/sign/warning/cold_temp/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"oFp" = ( -/obj/structure/sign/warning/docking/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/mine/laborcamp) "oFx" = ( /obj/machinery/airalarm/directional/south, /obj/machinery/holopad/secure, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"oFB" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/starboard) "oFI" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 6 @@ -48819,6 +50858,14 @@ }, /turf/open/floor/plating, /area/station/cargo/drone_bay) +"oGj" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/smartfridge/petri/preloaded, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "oGm" = ( /obj/machinery/power/solar_control{ dir = 1; @@ -48828,6 +50875,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"oGr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4{ + dir = 1; + name = "Can In" + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) "oGs" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -48870,6 +50927,18 @@ dir = 8 }, /area/station/security/prison) +"oGC" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/service/hydroponics) "oGF" = ( /obj/structure/closet/crate/bin, /obj/effect/decal/cleanable/dirt, @@ -48881,6 +50950,33 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"oGJ" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Labor Camp External West"; + network = list("labor") + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/labor_camp) +"oGN" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"oGO" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/structure/bed/medical/anchored{ + dir = 8 + }, +/obj/item/bedsheet/medical{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "oGQ" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -48888,6 +50984,18 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) +"oHf" = ( +/obj/machinery/vending/autodrobe, +/obj/machinery/airalarm/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"oHg" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "oHh" = ( /obj/machinery/shower/directional/north, /obj/structure/window/reinforced/spawner/directional/west, @@ -48916,28 +51024,40 @@ "oHK" = ( /turf/closed/wall/r_wall, /area/station/science/lab) +"oHR" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "oHV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/service/chapel) -"oHY" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/machinery/status_display/shuttle{ - pixel_x = -32; - shuttle_id = "arrival" - }, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/stripes/corner{ +"oIj" = ( +/obj/effect/turf_decal/siding/wood/end{ dir = 1 }, -/turf/open/floor/iron/white/corner{ - dir = 1 +/mob/living/carbon/human/species/monkey/punpun, +/obj/item/kirbyplants/organic/plant11, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"oIt" = ( +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"oIv" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Labor Camp External North"; + network = list("labor") }, -/area/station/hallway/secondary/entry) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "oIB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -48980,17 +51100,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"oIQ" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/duct, -/obj/machinery/newscaster/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "oIR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/maintenance/four, @@ -49006,16 +51115,16 @@ /obj/structure/flora/bush/snow/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"oJD" = ( -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) -"oJH" = ( -/obj/structure/marker_beacon/burgundy, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"oJo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/start/mime, +/turf/open/floor/wood, +/area/station/commons/lounge) +"oJv" = ( +/obj/item/clothing/under/costume/skeleton, +/obj/item/clothing/head/helmet/skull, +/turf/open/floor/plating, +/area/station/medical/morgue) "oJP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/dark_green, @@ -49031,14 +51140,6 @@ dir = 1 }, /area/station/command/gateway) -"oKu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/warning/docking/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "oKv" = ( /obj/item/trash/popcorn, /turf/open/floor/plating, @@ -49067,6 +51168,13 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) +"oKX" = ( +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/landmark/start/cook, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/turf/open/floor/iron/kitchen/diagonal, +/area/station/service/kitchen) "oKY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/plating, @@ -49082,6 +51190,15 @@ "oLg" = ( /turf/open/floor/iron/white/corner, /area/station/science/research) +"oLi" = ( +/obj/effect/landmark/start/botanist, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/service/hydroponics) "oLj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49089,6 +51206,14 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/mine/laborcamp) +"oLm" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Garden" + }, +/obj/machinery/status_display/ai/directional/east, +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "oLn" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -49162,11 +51287,6 @@ /obj/machinery/air_sensor/mix_tank, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"oLO" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/gas_mask, -/turf/open/floor/plating, -/area/station/maintenance/solars/port/fore) "oMa" = ( /obj/structure/marker_beacon/burgundy, /obj/effect/turf_decal/weather/snow/corner{ @@ -49174,16 +51294,11 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"oMd" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external/glass{ - name = "Supply Door Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/plating, -/area/station/cargo/storage) +"oMj" = ( +/obj/structure/flora/bush/sunny/style_random, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "oMk" = ( /obj/machinery/camera/directional/south{ c_tag = "Cargo Bay South" @@ -49234,14 +51349,6 @@ "oMT" = ( /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"oNy" = ( -/obj/effect/spawner/random/structure/crate_abandoned, -/obj/machinery/light/small/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Chapel Electrical Maintenace Upper" - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/fore) "oNA" = ( /obj/effect/turf_decal/bot, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -49261,19 +51368,6 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron, /area/station/science/explab) -"oNN" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/multi_tile/public/glass{ - name = "Atrium" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/landmark/navigate_destination/kitchen, -/turf/open/floor/iron/dark/textured_half, -/area/station/service/bar/atrium) "oNO" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/meter, @@ -49294,6 +51388,30 @@ /obj/structure/sign/warning/fire/directional/north, /turf/open/floor/glass/reinforced, /area/station/science/ordnance/office) +"oOc" = ( +/obj/machinery/vending/wardrobe/gene_wardrobe, +/obj/structure/sign/departments/genetics/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/genetics) +"oOg" = ( +/obj/effect/spawner/random/medical/patient_stretcher, +/obj/effect/decal/cleanable/blood/gibs/torso, +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/window/reinforced/tinted/spawner/directional/north, +/turf/open/floor/plating, +/area/station/security/prison/safe) +"oOh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast Door" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/xenobiology) "oOo" = ( /obj/structure/closet/firecloset, /obj/machinery/light/directional/west, @@ -49303,36 +51421,26 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/white, /area/station/science/research) -"oOt" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 +"oOw" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/fore) -"oOx" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/airlock_controller/incinerator_atmos{ - pixel_x = -24 +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"oOB" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/engine, -/area/station/maintenance/disposal/incinerator) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "oOD" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"oOO" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/secure_area/directional/south, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat_interior) "oOP" = ( /obj/effect/turf_decal/siding/thinplating_new/corner, /obj/effect/turf_decal/stripes/line{ @@ -49350,63 +51458,56 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva) -"oPa" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall/r_wall, -/area/station/security/prison/work) -"oPd" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/bar) "oPl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron, /area/station/security/courtroom) +"oPm" = ( +/obj/structure/closet/secure_closet/hydroponics, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) "oPn" = ( /obj/structure/closet/secure_closet/injection, /obj/machinery/airalarm/directional/north, /obj/item/soap/nanotrasen, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"oPr" = ( -/obj/effect/landmark/start/bartender, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) -"oPv" = ( -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/aisat/service"; - name = "Service Bay Turret Control"; - pixel_x = 27; - req_access = list("minisat") +"oPt" = ( +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/area/station/science/ordnance) +"oPu" = ( +/obj/machinery/igniter/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) +"oPC" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) -"oPw" = ( -/obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/starboard/lesser) "oPI" = ( /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) +"oPO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "oPP" = ( /obj/machinery/computer/scan_consolenew{ dir = 4 @@ -49417,6 +51518,9 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/lobby) +"oQc" = ( +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored/graveyard) "oQn" = ( /obj/structure/chair/sofa/corp/left{ dir = 8 @@ -49457,33 +51561,9 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"oQE" = ( -/obj/effect/turf_decal/trimline/neutral/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/warning{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/neutral/mid_joiner, -/obj/machinery/space_heater, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron/dark/smooth_corner{ - dir = 4 - }, -/area/station/ai_monitored/command/storage/eva) -"oQN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/security/courtroom) "oQY" = ( /turf/open/floor/iron/white, /area/station/medical/virology) -"oRf" = ( -/obj/structure/flora/rock/pile/icy/style_random, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) "oRk" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -49499,6 +51579,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/structure/table/glass, /obj/machinery/light/cold/directional/east, +/obj/machinery/firealarm/directional/east, /turf/open/floor/iron/white, /area/station/medical/cryo) "oRy" = ( @@ -49520,12 +51601,25 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) +"oRH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "oRM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/port) +"oRZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) "oSa" = ( /obj/machinery/door/airlock/public/glass{ id_tag = "gulag3"; @@ -49543,10 +51637,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/textured, /area/station/security/office) -"oSw" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/maintenance/disposal/incinerator) "oSy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -49558,20 +51648,17 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/lockers) -"oSD" = ( -/obj/structure/stairs/south, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) -"oSQ" = ( -/obj/machinery/camera{ - c_tag = "Medbay Stasis Center North"; - network = list("ss13","medbay") +"oSK" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 +/obj/machinery/door/airlock/external/glass{ + name = "Supply Door Airlock"; + dir = 4 }, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) "oSR" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -49629,33 +51716,22 @@ }, /turf/open/floor/engine, /area/station/science/explab) -"oTe" = ( -/obj/structure/table/wood, -/obj/item/trapdoor_remote/preloaded{ - pixel_x = -5; - pixel_y = 2 - }, -/obj/item/gavelblock{ - pixel_x = 5 +"oTi" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/effect/turf_decal/stripes/line, +/obj/structure/sign/warning/cold_temp/directional/east, +/turf/open/floor/plating, +/area/mine/mechbay) +"oTu" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/green{ + dir = 4 }, -/turf/open/floor/wood, -/area/station/security/courtroom) -"oTg" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) -"oTh" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm1"; - name = "Dorm 1" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/commons/dorms) "oTx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49685,6 +51761,39 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"oUb" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"oUh" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"oUp" = ( +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen/diagonal, +/area/station/service/kitchen) +"oUw" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering Lobby" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/lobby) "oUL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49713,20 +51822,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"oVn" = ( -/obj/effect/turf_decal/box/red/corners{ - dir = 4 - }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) -"oVr" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/coin{ - pixel_x = -7 - }, -/obj/effect/spawner/random/clothing/bowler_or_that, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "oVt" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -49749,6 +51844,15 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) +"oVD" = ( +/obj/structure/rack, +/obj/item/storage/box/evidence, +/obj/item/storage/box/evidence, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/textured, +/area/station/security/brig) "oVG" = ( /obj/machinery/door/airlock/public/glass{ name = "Art Storage" @@ -49803,12 +51907,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"oWu" = ( -/obj/structure/closet/wardrobe/grey, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/sign/calendar/directional/west, -/turf/open/floor/iron, -/area/station/commons/locker) "oWN" = ( /obj/machinery/requests_console/auto_name/directional/east, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -49820,17 +51918,19 @@ /obj/item/stack/sheet/iron/fifty, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"oWV" = ( -/obj/structure/sign/warning/cold_temp/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/fore) -"oXc" = ( +"oXb" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/lobby) "oXd" = ( /obj/machinery/light/small/directional/east, /obj/effect/decal/cleanable/dirt, @@ -49882,19 +51982,14 @@ /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) -"oXs" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/machinery/camera{ - c_tag = "Virology Hallway"; - dir = 10; - network = list("ss13","medbay") +"oXx" = ( +/obj/machinery/mass_driver/trash{ + dir = 1 }, -/obj/effect/landmark/start/hangover, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/virology) +/obj/effect/turf_decal/stripes/line, +/obj/structure/sign/warning/cold_temp/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/disposal) "oXB" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -49904,6 +51999,18 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"oXE" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"oXF" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/mine/mechbay) "oXJ" = ( /obj/machinery/newscaster/directional/north, /obj/item/kirbyplants/random, @@ -49915,19 +52022,6 @@ dir = 1 }, /area/station/hallway/primary/starboard) -"oXT" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 8 - }, -/obj/item/storage/box/syringes{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron, -/area/station/science/xenobiology) "oXX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49952,13 +52046,13 @@ /obj/machinery/microwave, /turf/open/floor/iron, /area/station/security/courtroom) -"oYm" = ( -/obj/structure/stairs/north, -/obj/structure/railing{ - dir = 4 +"oYn" = ( +/obj/machinery/newscaster/directional/west, +/obj/structure/table/glass, +/turf/open/floor/iron/cafeteria{ + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/area/station/science/research) "oYu" = ( /obj/machinery/status_display/evac/directional/south, /obj/effect/turf_decal/tile/green, @@ -49967,44 +52061,35 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"oYw" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 +"oYD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/machinery/button/door/directional/east{ + id = "xenobio11"; + name = "Xenobio Pen 11 Blast DOors"; + req_access = list("xenobiology") }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/service/hydroponics) -"oYC" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "oYI" = ( /obj/effect/spawner/random/vending/colavend, /turf/open/floor/wood, /area/station/command/meeting_room) +"oYN" = ( +/obj/structure/table, +/obj/item/hand_tele{ + pixel_x = 3; + pixel_y = 13 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron, +/area/station/command/teleporter) "oZd" = ( /obj/structure/fence/corner{ dir = 9 }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"oZk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "botany_chasm_and_wolf_shutters" - }, -/turf/open/floor/plating, -/area/station/service/hydroponics) "oZn" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -50023,12 +52108,9 @@ dir = 4 }, /area/station/security/prison) -"oZD" = ( -/obj/machinery/door/window/left/directional/west{ - req_access = list("hydroponics"); - name = "Hydroponics Equipment" - }, -/turf/open/floor/iron/half, +"oZG" = ( +/obj/machinery/duct, +/turf/open/floor/iron/dark, /area/station/service/hydroponics) "oZL" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -50064,6 +52146,15 @@ dir = 1 }, /area/station/security/prison/safe) +"pau" = ( +/obj/structure/table/wood, +/obj/item/pai_card, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) +"paw" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "paF" = ( /obj/structure/table, /obj/item/clothing/suit/hooded/wintercoat/science, @@ -50093,9 +52184,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/locker) -"pba" = ( -/turf/open/floor/stone, -/area/station/service/bar/atrium) "pbk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50131,18 +52219,12 @@ /turf/open/floor/iron, /area/station/construction) "pbF" = ( -/obj/effect/turf_decal/siding/wideplating/dark{ +/obj/structure/chair/sofa/right/brown, +/obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, -/obj/item/seeds/berry, -/obj/machinery/light/small/dim/directional/south, -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/station/maintenance/starboard/fore) -"pbH" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron, -/area/station/science/ordnance/testlab) +/turf/open/floor/wood/large, +/area/station/commons/lounge) "pbI" = ( /obj/machinery/computer/records/security{ dir = 8 @@ -50156,8 +52238,19 @@ /area/station/security/office) "pbQ" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "rd_office_shutters"; + name = "Privacy Shutters" + }, /turf/open/floor/plating, /area/station/command/heads_quarters/rd) +"pbS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "pbW" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50165,6 +52258,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"pcb" = ( +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "pcc" = ( /obj/item/stack/spacecash/c10{ pixel_x = 4; @@ -50185,27 +52285,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) -"pcj" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Drone Bay" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/brown/corner{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/general, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) -"pco" = ( -/obj/effect/decal/cleanable/blood/tracks, -/obj/structure/fence/cut/large{ - dir = 8 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "pcr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ dir = 8 @@ -50217,6 +52296,20 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos/storage/gas) +"pcx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/commons/dorms) "pcB" = ( /obj/structure/chair/pew{ dir = 1 @@ -50244,6 +52337,22 @@ /obj/item/coin/silver, /turf/open/floor/iron, /area/station/commons/dorms) +"pcM" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance" + }, +/turf/open/floor/plating, +/area/station/service/kitchen) +"pcT" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) "pdc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -50258,6 +52367,21 @@ "pdf" = ( /turf/open/floor/plating, /area/station/maintenance/port/greater) +"pdg" = ( +/obj/structure/table, +/obj/item/electronics/apc, +/obj/item/electronics/airlock, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) +"pdm" = ( +/obj/machinery/chem_dispenser, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/yellow/full, +/obj/item/radio/intercom/directional/north, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/pharmacy) "pdx" = ( /obj/item/kirbyplants/organic/plant10, /turf/open/floor/sepia, @@ -50273,15 +52397,23 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) -"pdC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar{ +"pdB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/directional/south, +/obj/structure/mirror/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"pdD" = ( +/obj/effect/spawner/random/entertainment/arcade{ dir = 4 }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/red/opposingcorners{ + dir = 1 + }, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/secondary/exit/departure_lounge) "pdK" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /turf/open/floor/iron/dark/textured, @@ -50290,30 +52422,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/engine, /area/station/science/explab) -"pdR" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Cargo Bay Receiving Dock" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor"; - name = "Loading Doors"; - pixel_y = -8; - req_access = list("cargo") - }, -/obj/machinery/button/door/directional/west{ - id = "QMLoaddoor2"; - name = "Loading Doors"; - pixel_y = 8; - req_access = list("cargo") - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "pdT" = ( /obj/structure/chair/sofa/corp/right{ dir = 8 @@ -50344,6 +52452,7 @@ /area/station/commons/dorms) "pec" = ( /obj/machinery/vending/cart, +/obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) "pee" = ( @@ -50358,6 +52467,12 @@ /obj/effect/mapping_helpers/airlock/access/all/science/research, /turf/open/floor/iron/dark, /area/station/science/explab) +"peq" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue, +/obj/structure/sign/departments/security/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/fore) "pez" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark/textured_edge{ @@ -50376,10 +52491,18 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"peP" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "peV" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"peX" = ( +/obj/structure/stairs/east, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "pfe" = ( /turf/closed/wall, /area/station/hallway/primary/fore) @@ -50388,43 +52511,30 @@ /obj/structure/grille/broken, /turf/open/openspace/icemoon/keep_below, /area/icemoon/underground/explored) -"pfn" = ( -/obj/structure/sign/poster/official/work_for_a_future/directional/north, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/prison/visit) "pfw" = ( /obj/structure/flora/grass/green/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"pfy" = ( -/obj/effect/turf_decal/stripes/line{ +"pfz" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/stairs/medium{ dir = 1 }, -/obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4{ - dir = 8; - name = "Air Out" - }, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/virology) "pfD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"pfJ" = ( -/obj/structure/sink/directional/east, -/obj/machinery/button/door/directional/west{ - id = "xenobio2"; - name = "Xenobio Pen 2 Blast Door"; - req_access = list("xenobiology") +"pfE" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/machinery/light/floor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "pfO" = ( /obj/structure/chair/stool/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50436,6 +52546,15 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/maintenance/department/electrical) +"pgc" = ( +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) +"pgg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/iv_drip, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "pgo" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 10 @@ -50452,11 +52571,19 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark/smooth_large, /area/station/cargo/bitrunning/den) -"pgv" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/service/bar) +"pgt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/hallway/secondary/entry) "pgw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/requests_console/directional/south{ @@ -50518,27 +52645,19 @@ }, /turf/open/floor/iron/white, /area/station/medical/break_room) -"phl" = ( -/obj/structure/minecart_rail{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) "phr" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, /obj/machinery/door/airlock/hydroponics/glass{ - name = "Apiary" + name = "Hydroponics" }, -/turf/open/floor/iron/dark/textured_half{ +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark/textured_half, /area/station/service/hydroponics) "phu" = ( /obj/structure/chair/sofa/bench/left{ @@ -50554,11 +52673,27 @@ dir = 5 }, /area/station/hallway/secondary/entry) -"phB" = ( -/obj/machinery/vending/coffee, -/obj/structure/sign/poster/official/science/directional/south, +"phw" = ( +/obj/machinery/modular_computer/preset/civilian{ + dir = 8 + }, /turf/open/floor/iron/dark, -/area/station/science/breakroom) +/area/station/engineering/lobby) +"phz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"phA" = ( +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "phK" = ( /obj/effect/spawner/random/contraband/prison, /turf/open/floor/plating, @@ -50588,13 +52723,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"pie" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Engineering Access" - }, -/obj/structure/closet/radiation, -/turf/open/floor/iron/dark, -/area/station/engineering/main) "pig" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50650,17 +52778,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/mine/laborcamp/security) -"piI" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/camera{ - c_tag = "Medbay Stasis Center South"; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "piL" = ( /obj/machinery/door/window/brigdoor/security/cell/left/directional/west{ id = "Cell 2"; @@ -50671,35 +52788,18 @@ dir = 1 }, /area/station/security/brig) -"piM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) "piP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) +"piT" = ( +/obj/machinery/status_display/ai/directional/east, +/obj/structure/chair/sofa/left/brown, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "piV" = ( -/obj/machinery/button/door/directional/south{ - id = "Cargo_Store_In"; - name = "Shutter Control"; - pixel_x = -23 - }, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) "pja" = ( @@ -50732,16 +52832,6 @@ /obj/structure/chair, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"pjk" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1 - }, -/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "pjl" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/engineering_all, @@ -50767,16 +52857,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"pjz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/warning/cold_temp/directional/south, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/fore/lesser) "pjF" = ( /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ color = "#ff0000"; @@ -50790,17 +52870,42 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"pjM" = ( -/obj/structure/closet, -/obj/effect/spawner/random/clothing/costume, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/effect/spawner/random/clothing/gloves, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"pjZ" = ( -/obj/structure/closet/crate/freezer/blood, +"pkf" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/bed/medical/emergency, +/obj/machinery/iv_drip, +/obj/machinery/light/small/directional/west, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/white, -/area/station/medical/cryo) +/area/station/medical/medbay/central) +"pkg" = ( +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/sign/departments/science/directional/west, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"pkq" = ( +/obj/structure/railing/wooden_fence{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"pkz" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/structure/sink/directional/south, +/obj/machinery/camera/directional/north{ + c_tag = "Virology Break Room"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark, +/area/station/medical/virology) "pkN" = ( /obj/structure/railing, /obj/effect/mapping_helpers/burnt_floor, @@ -50843,11 +52948,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/maintenance/port/greater) -"ply" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/caution_sign, +"plI" = ( +/obj/structure/chair/stool, /turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/area/station/maintenance/starboard/fore) "plN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -50868,16 +52972,19 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"plX" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"pme" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 }, -/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/dark, -/area/station/science/ordnance) +/area/station/service/hydroponics) +"pmi" = ( +/obj/structure/cable, +/obj/structure/sign/warning/engine_safety/directional/north, +/turf/open/floor/iron, +/area/station/engineering/main) "pmn" = ( /obj/effect/spawner/random/trash/caution_sign, /turf/open/floor/plating, @@ -50890,6 +52997,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"pmA" = ( +/obj/structure/minecart_rail{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "pna" = ( /obj/machinery/door/poddoor/preopen{ id = "Engineering"; @@ -50918,21 +53037,23 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/tcommsat/computer) -"pnq" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/flora/grass/brown/style_random, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) "pns" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/duct, +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/bar{ dir = 1 }, -/obj/item/flashlight{ - pixel_y = 3; - pixel_x = -4 - }, /turf/open/floor/iron, -/area/station/maintenance/starboard/fore) +/area/station/service/kitchen/coldroom) +"pnw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "pnz" = ( /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, @@ -50963,6 +53084,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/mine/laborcamp) +"pnK" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron, +/area/station/science/explab) "pnR" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat_interior) @@ -50988,22 +53115,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) -"pog" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/north, -/obj/machinery/light_switch/directional/north{ - pixel_x = 6 - }, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/dorms/laundry) "pou" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, @@ -51018,6 +53129,15 @@ "poy" = ( /turf/open/floor/carpet/green, /area/station/service/library) +"poC" = ( +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/structure/railing/wooden_fence{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "poK" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -51027,17 +53147,22 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron, /area/station/commons/locker) -"poV" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, +"poL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron, -/area/station/service/bar) -"poY" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/area/station/hallway/primary/central) +"poO" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "ppc" = ( /obj/item/trash/syndi_cakes, /obj/effect/turf_decal/stripes/red/line{ @@ -51082,9 +53207,14 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"pps" = ( -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"ppz" = ( +/obj/machinery/computer/rdconsole{ + dir = 1 + }, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/command/heads_quarters/rd) "ppD" = ( /obj/structure/chair/office{ dir = 8 @@ -51092,6 +53222,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"ppH" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/chair/sofa/right/brown{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "ppK" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/tile/yellow{ @@ -51118,6 +53256,13 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"ppY" = ( +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "pqc" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 6 @@ -51150,17 +53295,6 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron, /area/mine/living_quarters) -"pqK" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"pqZ" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/item/storage/box/matches, -/obj/effect/spawner/random/entertainment/cigar, -/turf/open/floor/iron, -/area/station/service/bar) "pra" = ( /turf/open/floor/iron/dark, /area/station/science/robotics/lab) @@ -51185,10 +53319,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"prF" = ( -/obj/machinery/telecomms/server/presets/security, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) "prH" = ( /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -51198,6 +53328,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) +"prX" = ( +/obj/machinery/light/cold/directional/east, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "psb" = ( /turf/closed/wall/ice, /area/icemoon/underground/explored) @@ -51222,6 +53356,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage_shared) +"psu" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Engineering Access" + }, +/obj/structure/closet/radiation, +/obj/structure/sign/warning/radiation/rad_area/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/main) "psv" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51277,30 +53419,40 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"ptk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/departments/vault/directional/north{ - pixel_x = 32 +"ptp" = ( +/obj/structure/bookcase/random, +/turf/open/floor/iron/grimy, +/area/station/maintenance/aft/greater) +"ptr" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ + pixel_x = 7; + pixel_y = 20 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/port) -"ptv" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/obj/item/taperecorder{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 6 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/secure_safe/hos{ + pixel_x = 28; + pixel_y = 6 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/hos) "ptB" = ( /obj/machinery/modular_computer/preset/id{ dir = 8 }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) -"ptO" = ( -/obj/machinery/barsign, -/turf/closed/wall, -/area/station/service/bar/atrium) "ptQ" = ( /obj/structure/disposalpipe/trunk/multiz/down, /obj/effect/turf_decal/stripes/line, @@ -51310,6 +53462,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"ptS" = ( +/obj/structure/sign/painting/library{ + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/station/service/library) "ptY" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -51352,17 +53510,39 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/plating, /area/station/engineering/atmos) -"puB" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance{ - name = "Medbay Maintenance" +"puw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/preopen{ + id = "xenobio3"; + name = "Xenobio Pen 3 Blast Door" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/xenobiology) +"puz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"puF" = ( +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/medical/cmo, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"puL" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/station/maintenance/aft/greater) +/area/station/maintenance/starboard/aft) "puN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51393,6 +53573,18 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark, /area/station/cargo/drone_bay) +"puY" = ( +/obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) +"puZ" = ( +/obj/structure/railing/wooden_fence{ + dir = 1 + }, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "pve" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -51404,6 +53596,17 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"pvi" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/cup/watering_can, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "pvm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51450,14 +53653,16 @@ }, /turf/open/floor/eighties/red, /area/station/security/prison/safe) -"pvU" = ( -/obj/item/toy/snowball{ - pixel_x = 6; - pixel_y = -5 +"pvP" = ( +/obj/item/radio/intercom/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/light/small/directional/south, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/smooth_half, +/area/station/service/hydroponics) "pvY" = ( /obj/machinery/computer/order_console/mining, /obj/machinery/light_switch/directional/north, @@ -51497,6 +53702,12 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/smooth_large, /area/station/security/processing) +"pwr" = ( +/obj/structure/sign/warning{ + pixel_y = 48 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "pwv" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ color = "#0000ff"; @@ -51506,16 +53717,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"pwz" = ( -/obj/machinery/duct, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"pwC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/chapel) "pwF" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -51545,14 +53746,6 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"pxg" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/closet, -/obj/item/bodybag, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/turf/open/floor/plating, -/area/station/maintenance/department/chapel) "pxi" = ( /obj/machinery/door/window/left/directional/west{ name = "Mass Driver"; @@ -51572,10 +53765,13 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"pxu" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/floor/engine, -/area/station/science/explab) +"pxp" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/emcloset, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "pxL" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -51617,6 +53813,24 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/checkpoint/supply) +"pyl" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/structure/sign/flag/terragov/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness) +"pyn" = ( +/obj/item/storage/photo_album/chapel, +/obj/structure/noticeboard/directional/west, +/obj/machinery/light/small/directional/west, +/obj/structure/rack/skeletal, +/turf/open/floor/iron/grimy, +/area/station/service/chapel/office) "pyr" = ( /obj/machinery/griddle, /turf/open/floor/iron/cafeteria, @@ -51627,6 +53841,17 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"pyA" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "pyD" = ( /obj/machinery/shower/directional/north, /obj/structure/window/reinforced/spawner/directional/east, @@ -51635,14 +53860,14 @@ }, /turf/open/floor/iron/freezer, /area/station/maintenance/starboard/fore) +"pyE" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/west, +/obj/machinery/fax/auto_name, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "pyG" = ( -/obj/machinery/button/door/directional/east{ - id = "armory"; - name = "Armory Shutters"; - pixel_x = -9; - pixel_y = 30; - req_access = list("armory") - }, /obj/structure/rack, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -51732,6 +53957,19 @@ /obj/item/book/manual/wiki/detective, /turf/open/floor/carpet/blue, /area/station/security/prison/work) +"pzx" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/item/seeds/carrot, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/green{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/mine/laborcamp) "pzC" = ( /obj/machinery/firealarm/directional/north, /obj/effect/turf_decal/siding/yellow{ @@ -51739,18 +53977,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"pzD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/mine/laborcamp) "pzV" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -51778,16 +54004,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/science/ordnance) -"pAn" = ( -/obj/effect/turf_decal/siding/white/corner{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/machinery/status_display/ai/directional/south, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/chem_master/condimaster, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "pAN" = ( /obj/structure/ladder, /obj/effect/decal/cleanable/dirt, @@ -51802,15 +54018,12 @@ dir = 4 }, /area/mine/production) -"pAW" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/railing/corner/end{ - dir = 4 +"pAX" = ( +/obj/structure/chair/plastic{ + dir = 8 }, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, /area/station/maintenance/starboard/fore) "pAZ" = ( /obj/effect/spawner/structure/window/reinforced, @@ -51825,17 +54038,27 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) +"pBs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) +"pBv" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 1 + }, +/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "pBA" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/treatment_center) -"pBB" = ( -/obj/structure/sign/warning/cold_temp/directional/east, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "pBE" = ( /turf/closed/wall, /area/station/cargo/bitrunning/den) @@ -51854,14 +54077,16 @@ /obj/structure/flora/tree/jungle/small/style_random, /turf/open/floor/grass, /area/station/security/warden) -"pBS" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/siding/white{ - dir = 1 +"pBR" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 }, -/obj/item/kirbyplants/organic/applebush, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "pBV" = ( /obj/structure/chair/office/light, /turf/open/floor/iron/dark, @@ -51884,11 +54109,25 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"pCp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/button/flasher{ + pixel_y = -26; + id = "visitorflash" + }, +/turf/open/floor/iron, +/area/station/security/prison/visit) "pCE" = ( /obj/machinery/firealarm/directional/east, /obj/structure/filingcabinet, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"pCG" = ( +/obj/structure/fence/corner{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "pCI" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -51925,14 +54164,6 @@ dir = 1 }, /area/station/science/lab) -"pDl" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/security/glass{ - name = "Permabrig Visitation" - }, -/obj/effect/mapping_helpers/airlock/access/any/security/brig, -/turf/open/floor/iron, -/area/station/security/prison/visit) "pDt" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -51949,6 +54180,17 @@ }, /turf/open/floor/iron, /area/mine/laborcamp/security) +"pDA" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/fore) "pDB" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -51969,6 +54211,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) +"pDL" = ( +/obj/structure/sign/departments/psychology/directional/south, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "pDQ" = ( /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, @@ -51985,6 +54234,14 @@ "pDW" = ( /turf/open/floor/plating, /area/mine/laborcamp/security) +"pEc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "pEg" = ( /obj/machinery/light/small/directional/east, /obj/structure/table, @@ -52066,12 +54323,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/mess) -"pEY" = ( -/obj/structure/table, -/obj/item/plant_analyzer, -/obj/item/stock_parts/power_store/cell/high, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "pFg" = ( /obj/structure/chair{ dir = 8 @@ -52082,18 +54333,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"pFl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) +"pFv" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "pFV" = ( /obj/structure/railing/corner, /turf/open/floor/iron/smooth, @@ -52123,12 +54367,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"pGg" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "pGo" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -52138,19 +54376,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"pGp" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Research Break Room" - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/turf/open/floor/iron/dark, -/area/station/science/breakroom) "pGt" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 5 @@ -52158,11 +54383,20 @@ /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) "pGy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/siding/white{ + dir = 1 }, +/obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) +/area/station/hallway/secondary/entry) +"pGG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/random/directional/south, +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "pGJ" = ( /obj/structure/sign/poster/contraband/random/directional/north, /obj/effect/mapping_helpers/burnt_floor, @@ -52177,6 +54411,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/medical/virology) +"pGT" = ( +/obj/machinery/photocopier, +/turf/open/floor/wood, +/area/station/service/library) "pGW" = ( /obj/machinery/camera/directional/west{ c_tag = "MiniSat External SouthEast"; @@ -52231,30 +54469,24 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"pHS" = ( -/obj/structure/rack, -/obj/item/reagent_containers/cup/bottle/fluorine{ - pixel_x = 7; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/bottle/epinephrine{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/bottle/iodine{ - pixel_x = 1 - }, -/obj/structure/sign/warning/chem_diamond/directional/west, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 +"pHW" = ( +/obj/machinery/atmospherics/components/tank, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/area/station/medical/chem_storage) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "pHX" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"pIh" = ( +/obj/structure/bookcase, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "pIj" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -52273,26 +54505,25 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"pIt" = ( -/obj/structure/sign/warning/no_smoking/directional/east, -/turf/open/floor/iron/white/side{ - dir = 10 - }, -/area/station/science/research) +"pIu" = ( +/obj/structure/table, +/obj/item/binoculars, +/obj/machinery/computer/security/telescreen/ordnance/directional/north, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "pIw" = ( /obj/machinery/vending/wardrobe/curator_wardrobe, -/turf/open/floor/engine/cult, -/area/station/service/library) -"pJb" = ( -/obj/structure/sign/nanotrasen{ +/obj/structure/sign/painting/library_private{ pixel_x = -32 }, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 6 - }, -/obj/structure/marker_beacon/burgundy, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/turf/open/floor/engine/cult, +/area/station/service/library) +"pIy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/starboard/upper) "pJc" = ( /obj/machinery/component_printer, /obj/machinery/camera/directional/west{ @@ -52303,11 +54534,21 @@ dir = 4 }, /area/station/science/explab) -"pJq" = ( -/obj/structure/statue/snow/snowman{ - name = "Steve" +"pJi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/misc/asteroid/snow/coldroom, +/obj/item/flashlight{ + pixel_y = 3; + pixel_x = -4 + }, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) +"pJm" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) "pJu" = ( /obj/effect/spawner/structure/window/reinforced, @@ -52377,16 +54618,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"pKo" = ( -/obj/structure/disposalpipe/segment{ +"pKl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/bar/backroom) +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/plating, +/area/station/medical/morgue) "pKu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -52427,21 +54666,27 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"pKX" = ( +/obj/structure/railing, +/obj/structure/closet, +/obj/effect/spawner/random/maintenance/four, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "pKY" = ( /obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"pLa" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"pLe" = ( -/obj/structure/sign/warning/xeno_mining, -/turf/closed/wall/ice, +"pLg" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/openspace/icemoon/keep_below, /area/icemoon/surface/outdoors/nospawn) +"pLh" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/smooth, +/area/mine/eva) "pLn" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52454,17 +54699,6 @@ dir = 8 }, /area/station/hallway/secondary/entry) -"pLo" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchencounter"; - name = "Kitchen Counter Shutters" - }, -/obj/machinery/door/firedoor, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "pLr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -52482,18 +54716,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"pLu" = ( -/obj/structure/sink/kitchen/directional/south, -/obj/effect/turf_decal/siding/thinplating/dark/corner, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "pLv" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, @@ -52515,14 +54737,16 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"pLx" = ( -/obj/machinery/computer/security{ - dir = 4 +"pLS" = ( +/obj/machinery/mineral/stacking_machine{ + output_dir = 2; + stack_amt = 10 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/computer/security/telescreen/prison/directional/north, -/turf/open/floor/iron/showroomfloor, -/area/station/security/warden) +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal) "pLZ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -52543,11 +54767,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/smooth_large, /area/station/security/processing) -"pMh" = ( -/obj/structure/table/wood/poker, -/obj/item/storage/wallet/random, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "pMq" = ( /obj/machinery/camera/directional/south{ c_tag = "Atmospherics Storage Room - South" @@ -52588,16 +54807,21 @@ "pMF" = ( /turf/open/floor/iron/white, /area/station/science/xenobiology) +"pMM" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"pMN" = ( +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "pMY" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/xenobiology) -"pNi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "pNm" = ( /turf/closed/wall/r_wall, /area/station/security/execution/education) @@ -52611,22 +54835,6 @@ }, /turf/open/floor/carpet, /area/station/command/meeting_room) -"pNy" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/machinery/camera{ - c_tag = "Virology Module South"; - dir = 4; - network = list("ss13","medbay") - }, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/mask/breath/medical, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/iron/white, -/area/station/medical/virology) "pNz" = ( /obj/structure/closet/secure_closet/warden, /obj/machinery/light/small/directional/east, @@ -52654,27 +54862,6 @@ dir = 1 }, /area/station/engineering/lobby) -"pNY" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/table/glass, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_x = -3; - pixel_y = 9 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "pNZ" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/disposalpipe/segment, @@ -52690,12 +54877,6 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/security/prison/safe) -"pOl" = ( -/obj/structure/flora/tree/pine/style_random{ - pixel_x = -15 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "pOo" = ( /obj/machinery/airalarm/directional/north, /obj/structure/closet/secure_closet/personal/cabinet, @@ -52712,26 +54893,21 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"pOC" = ( -/obj/machinery/computer/order_console/cook{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/tile/bar{ - dir = 1 +"pOH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access" }, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) -"pOK" = ( -/obj/structure/disposalpipe/segment{ +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, +/obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/smooth_half, -/area/station/service/hydroponics) +/turf/open/floor/iron, +/area/station/command/teleporter) "pOL" = ( /turf/open/floor/iron/white, /area/station/science/ordnance) @@ -52742,6 +54918,12 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"pPg" = ( +/obj/structure/stairs/west, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/service/hydroponics) "pPl" = ( /obj/item/stack/ore/silver, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52764,30 +54946,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"pPD" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/firealarm/directional/east, -/obj/structure/closet/l3closet/virology, -/obj/machinery/camera{ - c_tag = "Virology Airlock"; - dir = 9; - network = list("ss13","medbay") - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"pPE" = ( -/obj/machinery/modular_computer/preset/id, -/obj/machinery/computer/security/telescreen/vault/directional/north, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "pPK" = ( /obj/structure/stairs/east, /turf/open/floor/iron/dark/textured, @@ -52839,6 +54997,13 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"pQl" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cytology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "pQo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -52878,11 +55043,13 @@ /obj/item/pen, /turf/open/floor/iron/dark, /area/station/service/chapel/office) -"pQG" = ( -/obj/structure/cable/multilayer/multiz, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) +"pQD" = ( +/obj/effect/turf_decal/siding/wood/corner, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "pQK" = ( /obj/structure/closet/secure_closet/evidence, /turf/open/floor/iron/dark/textured_edge{ @@ -52907,25 +55074,18 @@ "pRj" = ( /turf/closed/wall, /area/station/maintenance/port/aft) -"pRB" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Security - Lower Brig Hallway" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) -"pRG" = ( -/obj/effect/spawner/random/entertainment/arcade{ - dir = 4 +"pRs" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/tile/red/opposingcorners{ +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ dir = 1 }, -/turf/open/floor/iron/cafeteria, -/area/station/hallway/secondary/exit/departure_lounge) +/turf/open/floor/iron/dark/smooth_half, +/area/station/medical/morgue) "pRL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52933,7 +55093,6 @@ /turf/open/floor/iron/cafeteria, /area/station/commons/storage/art) "pRX" = ( -/obj/structure/secure_safe/directional/south, /obj/machinery/light/directional/south, /obj/structure/disposalpipe/segment{ dir = 4 @@ -52945,10 +55104,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/freezer, /area/mine/laborcamp) -"pSd" = ( -/obj/machinery/digital_clock/directional/east, -/turf/open/floor/iron/grimy, -/area/station/hallway/secondary/entry) "pSk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -52961,16 +55116,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"pSn" = ( -/obj/machinery/seed_extractor, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 1 +"pSq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/turf/open/floor/iron/dark, -/area/mine/laborcamp) +/turf/open/floor/wood/large, +/area/station/commons/lounge) "pSu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -52989,48 +55140,35 @@ "pSz" = ( /turf/open/openspace, /area/station/maintenance/starboard/upper) -"pSP" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Chapel External Airlock"; - opacity = 0 +"pSA" = ( +/obj/machinery/seed_extractor, +/obj/machinery/camera/directional/north{ + c_tag = "Security - Permabrig Forestry"; + network = list("ss13","prison") }, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/any/service/chapel_office, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/obj/machinery/newscaster/directional/north, /turf/open/floor/iron, -/area/station/service/chapel) -"pSX" = ( -/obj/structure/closet/crate{ - name = "Le Caisee D'abeille" - }, -/obj/item/honey_frame, -/obj/item/honey_frame, -/obj/item/honey_frame, -/obj/item/queen_bee/bought, -/obj/item/clothing/suit/hooded/bee_costume, -/obj/machinery/status_display/evac/directional/north, -/obj/effect/turf_decal/siding/thinplating/dark/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 +/area/station/security/prison/garden) +"pSF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/stool/directional/east, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"pSK" = ( +/obj/effect/turf_decal/weather/snow/corner{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/warm/directional/north, -/obj/item/seeds/sunflower, -/obj/effect/spawner/random/food_or_drink/seed, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/obj/effect/turf_decal/weather/snow/corner, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "pTd" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -53052,6 +55190,37 @@ }, /turf/open/floor/iron/dark, /area/station/security/brig/entrance) +"pTi" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/door/directional/north{ + id = "botany_apiary"; + name = "Bee Protection Shutters" + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"pTy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "pTB" = ( /obj/effect/turf_decal/tile/brown{ dir = 8 @@ -53072,6 +55241,11 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/textured, /area/station/security/warden) +"pTT" = ( +/obj/machinery/smartfridge/extract/preloaded, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "pTU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner{ @@ -53091,6 +55265,24 @@ "pTY" = ( /turf/open/floor/iron/white/side, /area/station/science/explab) +"pUa" = ( +/obj/structure/marker_beacon/cerulean, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"pUi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) "pUn" = ( /obj/structure/sink/directional/west, /obj/effect/turf_decal/stripes/line{ @@ -53108,6 +55300,21 @@ }, /turf/open/floor/iron/white, /area/station/science/genetics) +"pUX" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) +"pVg" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/stairs/north, +/turf/open/floor/iron, +/area/mine/eva/lower) +"pVj" = ( +/obj/structure/stairs/east, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "pVl" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -53131,6 +55338,11 @@ }, /turf/open/floor/iron, /area/station/tcommsat/computer) +"pVD" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/generic/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "pVH" = ( /turf/closed/wall/mineral/wood, /area/station/maintenance/aft/lesser) @@ -53177,36 +55389,41 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"pWi" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - desc = "An outlet for the pneumatic disposal system. This one seems designed for rapid corpse disposal."; - dir = 1; - name = "rapid corpse mover 9000" - }, -/obj/effect/turf_decal/stripes/line{ +"pWp" = ( +/obj/structure/railing/corner{ dir = 8 }, -/obj/structure/window/spawner/directional/west, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/obj/structure/fence{ + dir = 2 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "pWu" = ( /obj/docking_port/stationary/syndicate/northeast{ dir = 8 }, /turf/open/genturf, /area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) -"pWG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 +"pWE" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"pWJ" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, -/area/station/medical/morgue) +/area/station/service/hydroponics) "pWY" = ( /obj/structure/table/glass, /obj/structure/extinguisher_cabinet/directional/east, @@ -53249,16 +55466,27 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"pXq" = ( +/obj/machinery/button/door/directional/east{ + id = "xenobio6"; + name = "Xenobio Pen 6 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"pXt" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/camera/directional/north{ + c_tag = "Research Division Server Room"; + network = list("ss13","rd") + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/openspace/icemoon, +/area/station/science/server) "pXv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"pXy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "pXB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -53306,6 +55534,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) +"pYn" = ( +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/prison/directional/north, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/machinery/fax{ + fax_name = "Law Office"; + name = "Law Office Fax Machine" + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) "pYz" = ( /obj/structure/railing/corner, /obj/machinery/door/firedoor/border_only, @@ -53323,13 +55561,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"pYD" = ( -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/commons/fitness) "pYF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53341,6 +55572,9 @@ /area/station/cargo/storage) "pZh" = ( /obj/effect/spawner/random/vending/snackvend, +/obj/structure/sign/nanotrasen{ + pixel_x = 32 + }, /turf/open/floor/wood, /area/station/command/meeting_room) "pZm" = ( @@ -53356,15 +55590,22 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) -"pZA" = ( +"pZB" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Chemistry Access" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ - dir = 8 + dir = 1 }, -/obj/machinery/light/directional/west, -/obj/item/kirbyplants/random/dead/research_director, -/obj/machinery/computer/security/telescreen/rd/directional/west, -/turf/open/floor/iron/smooth_half, -/area/station/command/heads_quarters/rd) +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/effect/turf_decal/tile/yellow/full, +/turf/open/floor/iron/large, +/area/station/medical/treatment_center) "pZD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53379,15 +55620,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/engineering/storage) -"pZO" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/structure/steam_vent, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "pZY" = ( /mob/living/simple_animal/hostile/asteroid/polarbear{ move_force = 999; @@ -53395,6 +55627,11 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"pZZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "qab" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input{ dir = 8 @@ -53402,25 +55639,17 @@ /turf/open/floor/engine/plasma, /area/station/engineering/atmos) "qad" = ( -/obj/machinery/requests_console/auto_name/directional/south, -/obj/structure/bodycontainer/morgue/beeper_off{ - dir = 1 +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/obj/machinery/light/directional/east, +/obj/structure/sign/departments/science/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "qai" = ( /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/plating/snowed/icemoon, /area/station/maintenance/port/aft) -"qal" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/landmark/event_spawn, -/obj/machinery/holopad, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/stone, -/area/station/commons/lounge) "qam" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/box, @@ -53432,11 +55661,22 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"qaD" = ( -/obj/machinery/light_switch/directional/north, -/obj/structure/sign/poster/official/help_others/directional/west, -/turf/open/floor/iron/checker, -/area/station/commons/storage/emergency/port) +"qaz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor/heavy{ + dir = 4 + }, +/obj/machinery/door/airlock/research{ + name = "Ordnance Launch Room" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) "qaE" = ( /obj/effect/turf_decal/arrows/red{ dir = 8 @@ -53474,6 +55714,26 @@ /obj/structure/closet/wardrobe/mixed, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"qaS" = ( +/obj/machinery/door/airlock/wood{ + name = "Backstage" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/commons/lounge) "qaU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/firealarm/directional/west, @@ -53492,19 +55752,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) -"qbd" = ( -/obj/structure/railing/corner{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/effect/turf_decal/tile/dark/half/contrasted, /turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) +/area/station/science/ordnance/office) "qbh" = ( /obj/structure/chair/stool/directional/south, /obj/machinery/camera/directional/west{ @@ -53512,6 +55764,29 @@ }, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"qbk" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Security Checkpoint" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brigoutpost" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/brig/entrance) +"qbp" = ( +/obj/effect/turf_decal/tile/purple/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "qbq" = ( /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -53540,64 +55815,33 @@ /turf/open/floor/wood, /area/station/commons/dorms) "qbG" = ( -/obj/machinery/door/airlock/external, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "chem-morgue-airlock" - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/medical/morgue) -"qbM" = ( -/obj/structure/ore_container/food_trough/raptor_trough, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "qbO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"qbU" = ( -/obj/structure/sign/warning/electric_shock/directional/south, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "qbW" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/three, /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"qbY" = ( -/obj/item/clothing/accessory/pocketprotector, -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/camera{ - pixel_y = 4; - pixel_x = -3 - }, -/obj/effect/spawner/random/clothing/mafia_outfit, -/obj/effect/spawner/random/clothing/mafia_outfit, -/obj/effect/spawner/random/clothing/backpack, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "qca" = ( /obj/structure/chair/office{ dir = 8 }, /turf/open/floor/iron, /area/station/tcommsat/computer) -"qci" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/gas_mask, +"qch" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment, +/obj/structure/railing/corner/end/flip, /turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat_interior) +/area/station/maintenance/starboard/fore) "qck" = ( /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) @@ -53610,6 +55854,25 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron, /area/station/cargo/miningdock) +"qcI" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/table/reinforced, +/obj/item/stack/wrapping_paper{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/stack/package_wrap{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/dest_tagger, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "qcL" = ( /obj/effect/turf_decal/siding/yellow/end{ dir = 8 @@ -53628,16 +55891,14 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/range) -"qdx" = ( -/obj/structure/stairs/north{ - dir = 4 - }, -/turf/open/floor/iron/stairs/old{ +"qdq" = ( +/obj/structure/railing, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/area/station/engineering/atmos/mix) +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "qdC" = ( -/obj/structure/table, /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 }, @@ -53669,6 +55930,22 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/carpet/red, /area/station/security/prison/work) +"qdI" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Central Hallway South-West" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "qdK" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -53705,6 +55982,11 @@ /obj/machinery/microwave, /turf/open/floor/stone, /area/mine/eva/lower) +"qes" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/textured, +/area/station/service/hydroponics) "qeF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53751,17 +56033,6 @@ dir = 8 }, /area/station/service/chapel) -"qeW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/stool/bar/directional/north, -/obj/structure/cable, -/turf/open/floor/eighties, -/area/station/commons/lounge) "qfh" = ( /turf/open/floor/iron/recharge_floor, /area/station/science/robotics/mechbay) @@ -53776,23 +56047,56 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"qfj" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) -"qfr" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/cigarette_pack, -/obj/effect/spawner/random/entertainment/lighter, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "qfs" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/safe) +"qfy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 8 + }, +/obj/machinery/door/window/right/directional/west{ + name = "Corpse Arrivals" + }, +/obj/structure/window/spawner/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/trimline/neutral/filled/end{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) +"qfz" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/landmark/start/bartender, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/event_spawn, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/bar) +"qfA" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Research Division Access"; + network = list("ss13","rd") + }, +/obj/structure/sink/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) "qfE" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 4 @@ -53802,30 +56106,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"qfI" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ +"qfG" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/white{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"qfJ" = ( -/obj/machinery/airalarm/directional/west, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/machinery/duct, -/turf/open/floor/iron, /area/station/commons/fitness) "qgm" = ( /obj/machinery/meter/monitored/waste_loop, @@ -53835,41 +56121,32 @@ /obj/effect/turf_decal/siding/wideplating/corner, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"qgn" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Departure Lounge Holding Area"; - dir = 9 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "qgu" = ( /obj/structure/cable, /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) +"qgv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/service/chapel) +"qgH" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "qgO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/processing) -"qgQ" = ( -/obj/structure/railing/wooden_fence{ - dir = 8 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"qgT" = ( -/obj/effect/spawner/random/structure/closet_private, +"qhb" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/trash/crushed_can, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/starboard/lesser) "qhd" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -53880,25 +56157,20 @@ /mob/living/basic/bot/cleanbot, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/service) -"qhp" = ( -/obj/structure/sign/warning/gas_mask/directional/south, -/obj/effect/spawner/random/trash/grille_or_waste, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"qhi" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/spawner/random/trash/mopbucket, /turf/open/floor/plating, -/area/station/maintenance/department/medical/morgue) -"qhF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Dormitory" - }, -/obj/effect/landmark/navigate_destination, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 +/area/station/maintenance/starboard/lesser) +"qhI" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/directional/west{ + c_tag = "Atmospherics - South West" }, -/turf/open/floor/iron/dark/textured, -/area/station/commons/dorms) +/turf/open/floor/iron, +/area/station/engineering/atmos) "qhL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -53921,11 +56193,12 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark/side, /area/station/security/processing) -"qhQ" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) +"qhR" = ( +/obj/structure/fence/corner{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "qhS" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -53933,12 +56206,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/prison) -"qhV" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "qig" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53947,39 +56214,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"qit" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) -"qiA" = ( -/obj/machinery/chem_master/condimaster{ - desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; - name = "HoochMaster Deluxe" +"qiv" = ( +/obj/structure/railing, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 6 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/bar) +/turf/open/floor/wood/large, +/area/station/hallway/primary/starboard) "qiF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva/lower) -"qiG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/commons/fitness) "qiJ" = ( /obj/structure/closet/secure_closet/freezer/kitchen/maintenance, /obj/effect/spawner/random/contraband/prison, @@ -53994,10 +56240,19 @@ /turf/open/floor/iron, /area/station/command/heads_quarters/qm) "qiL" = ( -/obj/machinery/door/airlock/hatch, -/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/obj/structure/rack, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/shovel, +/obj/item/flashlight, +/obj/item/flashlight, +/obj/item/radio/off, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Departure Lounge Emergency EVA" + }, +/turf/open/floor/iron/white, +/area/station/hallway/secondary/exit/departure_lounge) "qiN" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/iron/dark, @@ -54007,15 +56262,9 @@ /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, +/obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) -"qiT" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "qjb" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 10 @@ -54027,9 +56276,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"qjd" = ( -/turf/open/misc/ice/coldroom, -/area/station/service/kitchen/coldroom) "qjg" = ( /obj/effect/landmark/observer_start, /obj/effect/turf_decal/plaque{ @@ -54052,18 +56298,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer, /area/station/maintenance/starboard/fore) -"qjm" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Bridge West Access" - }, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"qjn" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/fore) "qjp" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/thinplating_new, @@ -54082,12 +56316,6 @@ /obj/machinery/holopad/secure, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) -"qjC" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "qjF" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -54095,6 +56323,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"qjJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) "qjO" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -54111,15 +56346,21 @@ }, /turf/open/floor/plating, /area/mine/eva) -"qkc" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"qjW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/trunk/multiz/down, -/turf/open/floor/iron/dark, -/area/station/medical/medbay/aft) +/obj/effect/landmark/event_spawn, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"qkg" = ( +/mob/living/basic/pet/penguin/baby/permanent, +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = -3 + }, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "qku" = ( /obj/structure/chair/comfy/beige{ dir = 4 @@ -54162,6 +56403,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/lockers) +"qkR" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/chem_master, +/obj/machinery/light/small/directional/west, +/turf/open/floor/glass/reinforced, +/area/station/medical/treatment_center) "qkT" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -54169,6 +56416,11 @@ /obj/effect/landmark/start/station_engineer, /turf/open/floor/iron, /area/station/engineering/engine_smes) +"qlf" = ( +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/structure/sign/warning/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "qlk" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -54199,6 +56451,33 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"qlD" = ( +/obj/structure/cable, +/obj/structure/table, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) +"qlE" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "qlG" = ( /obj/structure/table, /obj/item/stack/sheet/glass/fifty{ @@ -54227,18 +56506,17 @@ /obj/structure/cable, /turf/open/floor/iron/textured, /area/station/hallway/secondary/entry) -"qlS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/wood{ - dir = 1 - }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "qlU" = ( /obj/structure/closet/crate, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"qmh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "qmi" = ( /turf/open/floor/iron, /area/station/cargo/lobby) @@ -54248,6 +56526,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig/entrance) +"qmq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "qmt" = ( /turf/closed/wall, /area/mine/eva/lower) @@ -54260,36 +56546,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"qmT" = ( -/obj/structure/bed{ - dir = 4 - }, -/obj/item/bedsheet/brown{ - dir = 4 - }, -/obj/machinery/button/door/directional/north{ - id = "miningdorm_B"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 23; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/stellar, -/area/mine/production) "qmU" = ( /obj/machinery/duct, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/plating, /area/station/medical/virology) -"qmV" = ( -/obj/structure/sign/warning/gas_mask, -/turf/closed/wall/r_wall, -/area/station/hallway/secondary/exit/departure_lounge) "qna" = ( /obj/machinery/camera/directional/east{ c_tag = "Security - Permabrig Chapel"; @@ -54329,12 +56591,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/dark, /area/station/medical/virology) -"qnv" = ( -/obj/structure/closet/crate/grave, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/icemoon/underground/explored/graveyard) "qnC" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/ce) @@ -54370,20 +56626,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"qod" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchencounter"; - name = "Kitchen Counter Shutters" - }, -/obj/machinery/door/firedoor, -/obj/structure/desk_bell{ - pixel_x = -4; - pixel_y = 3 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "qoi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -54395,26 +56637,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/wood/parquet, /area/station/service/library) -"qon" = ( -/obj/machinery/door/airlock/wood{ - name = "Backstage" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/commons/lounge) "qoK" = ( /obj/structure/flora/rock/style_random, /obj/structure/window/reinforced/spawner/directional/south, @@ -54429,14 +56651,6 @@ /obj/effect/spawner/random/structure/crate_abandoned, /turf/open/floor/plating, /area/station/security/prison/safe) -"qoZ" = ( -/obj/effect/turf_decal/trimline/white/arrow_ccw, -/obj/effect/turf_decal/trimline/white/arrow_cw{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) "qpb" = ( /obj/machinery/disposal/bin{ desc = "A pneumatic waste disposal unit. This one leads to the morgue."; @@ -54461,24 +56675,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/starboard/fore) -"qpp" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Quartermaster's Office" - }, -/obj/machinery/status_display/supply{ - pixel_x = -32 +"qpm" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/structure/desk_bell{ + pixel_x = -3 }, -/obj/structure/table, -/obj/item/coin/silver, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, -/obj/item/computer_disk/quartermaster, -/obj/item/clipboard, -/obj/effect/turf_decal/tile/brown/half/contrasted{ +/turf/open/floor/iron, +/area/station/service/bar) +"qpo" = ( +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ dir = 8 }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) +/area/station/medical/chemistry) "qpr" = ( /obj/effect/turf_decal/trimline/dark_blue/line, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -54502,7 +56712,7 @@ }, /obj/machinery/light_switch/directional/west{ pixel_x = -34; - pixel_y = 7 + pixel_y = 6 }, /obj/machinery/button/door/directional/west{ id = "gene_desk_shutters"; @@ -54546,15 +56756,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/wood, /area/station/service/library) -"qpQ" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Service - Electrical Maintenace Upper" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/fore) "qpR" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, @@ -54564,19 +56765,6 @@ /obj/machinery/recharge_station, /turf/open/floor/wood, /area/station/command/meeting_room) -"qpU" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/structure/reagent_dispensers/plumbed{ - name = "dormitory reservoir" - }, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/turf_decal/delivery/white{ - color = "#307db9" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/textured, -/area/station/maintenance/fore) "qpZ" = ( /obj/structure/table, /obj/item/folder/blue{ @@ -54597,18 +56785,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"qqh" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8; - name = "Exfiltrate Port" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/mix) -"qqn" = ( -/obj/structure/tank_dispenser/oxygen, -/turf/open/floor/iron/smooth, -/area/mine/eva/lower) "qqv" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/two, @@ -54639,15 +56815,6 @@ dir = 1 }, /area/station/security/office) -"qre" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/vending/wardrobe/hydro_wardrobe, -/turf/open/floor/iron, -/area/station/service/hydroponics) "qrg" = ( /obj/item/bodypart/head, /obj/effect/decal/cleanable/blood, @@ -54676,42 +56843,29 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"qrm" = ( -/obj/structure/sign/warning/gas_mask, -/turf/closed/wall/r_wall, -/area/station/engineering/storage_shared) -"qrq" = ( -/obj/structure/toilet/greyscale{ - cistern_open = 1; - dir = 1 - }, -/obj/effect/spawner/random/entertainment/cigar, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/toilet) -"qrF" = ( -/obj/machinery/duct, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ +"qrr" = ( +/obj/structure/light_construct/directional/south, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/station/maintenance/port/aft) +"qrB" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/obj/structure/cable, +/obj/effect/landmark/start/mime, +/turf/open/floor/wood/parquet, +/area/station/service/theater) "qrJ" = ( /obj/machinery/ticket_machine/directional/east, /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/central) -"qrM" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) +"qrP" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "qrQ" = ( /obj/structure/railing{ dir = 8 @@ -54733,16 +56887,12 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/service/chapel) -"qsh" = ( -/obj/structure/plaque/static_plaque/golden/commission/icebox, -/obj/effect/landmark/navigate_destination/dockarrival, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/entry) -"qsq" = ( -/obj/structure/sign/warning/directional/south, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/underground/explored) +"qsa" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "qsy" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -54750,35 +56900,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) -"qsG" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/sign/warning/secure_area/directional/west, -/obj/structure/closet/emcloset, -/turf/open/floor/iron/white, -/area/station/medical/virology) "qsQ" = ( /obj/machinery/stasis, /obj/machinery/defibrillator_mount/directional/north, /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"qsR" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/rack, -/obj/item/clothing/gloves/latex, -/turf/open/floor/plating, -/area/station/security/prison/safe) -"qsY" = ( -/obj/effect/turf_decal/tile/neutral{ +"qtd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "qtj" = ( /turf/closed/wall, /area/station/engineering/storage) @@ -54802,22 +56936,10 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/security/prison/garden) -"qtG" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Fitness Room South" - }, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = -7 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/commons/fitness) +"qtD" = ( +/obj/structure/sign/warning/directional/south, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "qtH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -54834,10 +56956,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"qtS" = ( -/obj/machinery/light/directional/north, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "qud" = ( /obj/machinery/conveyor_switch/oneway{ id = "mining_internal"; @@ -54858,33 +56976,10 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/service/chapel) -"quw" = ( -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/structure/closet/crate/hydroponics, -/obj/item/wrench, -/obj/item/wrench, -/obj/item/grenade/chem_grenade/antiweed{ - pixel_x = 3; - pixel_y = 1 - }, -/obj/item/grenade/chem_grenade/antiweed, -/obj/item/shovel/spade, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_y = 3 - }, -/obj/item/cultivator, -/obj/item/shovel/spade, -/obj/item/reagent_containers/cup/watering_can, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics) +"quy" = ( +/obj/structure/flora/grass/both/style_random, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "quB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -54895,9 +56990,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"quJ" = ( -/turf/open/floor/stone, -/area/station/commons/lounge) "quK" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -54907,6 +56999,23 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) +"quS" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"quW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/warning/docking/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "quY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -54928,6 +57037,10 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"qvx" = ( +/obj/item/food/grown/carrot, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "qvE" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/machinery/light/small/directional/east, @@ -54946,9 +57059,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"qvN" = ( -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "qvQ" = ( /obj/structure/closet/secure_closet/atmospherics, /turf/open/floor/iron/dark, @@ -55017,11 +57127,13 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"qwn" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/vending/cigarette, +"qwo" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass/fifty, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, /turf/open/floor/iron, -/area/station/commons/locker) +/area/station/engineering/atmos/storage) "qwB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood, @@ -55030,53 +57142,15 @@ /obj/structure/grille, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"qwJ" = ( -/obj/machinery/computer/rdconsole{ - dir = 1 - }, -/obj/machinery/button/door/directional/south{ - id = "Biohazard"; - name = "Biohazard Shutter Control"; - pixel_x = -6; - req_access = list("research") +"qwN" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Research Division North"; + network = list("ss13","rd") }, -/obj/machinery/button/door/directional/south{ - id = "rnd2"; - name = "Research Lab Shutter Control"; - pixel_x = 6; - req_access = list("research") - }, -/obj/machinery/button/door/directional/south{ - id = "xenobiomain"; - name = "Xenobiology Containment Blast Door"; - pixel_x = -6; - pixel_y = -34; - req_access = list("xenobiology") - }, -/obj/machinery/button/door/directional/south{ - id = "misclab"; - name = "Test Chamber Blast Doors"; - pixel_x = 6; - pixel_y = -34; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white/corner{ - dir = 8 - }, -/area/station/command/heads_quarters/rd) -"qwN" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Research Division North"; - network = list("ss13","rd") - }, -/turf/open/floor/iron/white/side{ - dir = 9 +/turf/open/floor/iron/white/side{ + dir = 9 }, /area/station/science/research) -"qwO" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "qwX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/decal/cleanable/dirt, @@ -55139,31 +57213,28 @@ /obj/machinery/holopad, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"qxv" = ( -/obj/machinery/disposal/bin{ - desc = "A pneumatic waste disposal unit. This one leads to the frozen exterior of the moon."; - name = "deathsposal unit" +"qxG" = ( +/obj/effect/turf_decal/trimline/green/filled/warning{ + dir = 1 }, -/obj/structure/disposalpipe/trunk{ - dir = 4 +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/sign/warning/deathsposal/directional/north, -/obj/structure/sign/warning/fire/directional/west, -/obj/effect/turf_decal/tile/green/full, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/virology) -"qxy" = ( -/obj/effect/turf_decal/siding/yellow/corner{ +/obj/structure/disposalpipe/trunk/multiz/down, +/obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/engineering/lobby) +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "qxI" = ( /turf/open/floor/plastic, /area/station/commons/dorms/laundry) +"qxN" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "qxQ" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron, @@ -55173,6 +57244,26 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"qya" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/item/stock_parts/power_store/cell/emproof, +/obj/item/stock_parts/power_store/cell/emproof{ + pixel_x = 6; + pixel_y = -2 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = 10 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/engine_smes) "qyn" = ( /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -55180,6 +57271,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/server) +"qyH" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/requests_console/auto_name/directional/south, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "qyI" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ @@ -55213,23 +57311,11 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/miningdock) -"qyZ" = ( -/obj/structure/table, -/obj/machinery/light/small/dim/directional/west, -/obj/item/camera{ - pixel_y = 9; - pixel_x = -2 - }, -/obj/item/reagent_containers/cup/glass/waterbottle/empty{ - pixel_y = 5; - pixel_x = 4 - }, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) -"qzq" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/r_wall, -/area/mine/mechbay) +"qzn" = ( +/obj/structure/chair/sofa/bench/right, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "qzs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55244,6 +57330,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"qzy" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "qzF" = ( /obj/item/poster/random_contraband, /obj/effect/spawner/random/maintenance/two, @@ -55266,18 +57366,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"qzU" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "qzV" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -55293,13 +57381,12 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"qAq" = ( -/obj/structure/closet/toolcloset, -/obj/machinery/status_display/evac/directional/south, -/obj/structure/sign/poster/official/random/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/engineering/storage) +"qAh" = ( +/obj/structure/railing/wooden_fence{ + dir = 5 + }, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "qAB" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp, @@ -55310,26 +57397,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"qAP" = ( +/obj/machinery/shower/directional/east, +/turf/open/floor/iron/smooth, +/area/mine/living_quarters) "qAQ" = ( /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"qAS" = ( -/obj/item/stack/rods/fifty, -/obj/structure/rack, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stack/cable_coil{ - amount = 5 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 10 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/north, -/turf/open/floor/iron, -/area/station/maintenance/department/electrical) "qAT" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ @@ -55345,15 +57419,13 @@ /obj/machinery/telecomms/server/presets/supply, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"qBd" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm3"; - name = "Dorm 3" +"qBi" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/commons/dorms) +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "qBj" = ( /obj/structure/cable, /turf/open/floor/iron/white, @@ -55373,6 +57445,9 @@ /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/engine/air, /area/station/engineering/atmos) +"qCu" = ( +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "qCA" = ( /obj/structure/table/wood, /turf/open/floor/wood, @@ -55401,11 +57476,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"qCJ" = ( -/obj/structure/sign/warning/directional/north, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/service/chapel) "qCP" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/porta_turret/ai{ @@ -55420,37 +57490,27 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"qCY" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "mining-aux-mechbay-external" - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Mining Mech Bay External Airlock"; - opacity = 0 +"qDm" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/meter/layer4, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"qDA" = ( +/obj/structure/bed{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/item/bedsheet/brown{ + dir = 4 }, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/turf/open/floor/iron/large, -/area/mine/mechbay) -"qDj" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 1; - name = "Gas to Filter" - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter) -"qDk" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/turf/open/floor/carpet/donk, +/area/mine/production) "qDD" = ( /obj/machinery/washing_machine, /obj/effect/decal/cleanable/dirt, @@ -55472,15 +57532,19 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"qDS" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/cable, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/aft) "qEa" = ( /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"qEh" = ( -/obj/structure/girder, -/obj/structure/grille, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) "qEj" = ( /obj/structure/table/glass, /obj/item/assembly/igniter, @@ -55511,6 +57575,11 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"qEn" = ( +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "qEu" = ( /obj/effect/turf_decal/siding/brown{ dir = 4 @@ -55523,14 +57592,6 @@ /obj/structure/tank_holder/oxygen/yellow, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"qEv" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "qEz" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -55613,13 +57674,26 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"qFD" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +"qFA" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/area/station/maintenance/fore) +"qFC" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/structure/sign/warning/no_smoking/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) +"qFE" = ( +/obj/machinery/door/window/left/directional/west{ + name = "Fitness Ring" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) "qFJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/holopad, @@ -55628,6 +57702,11 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/customs/auxiliary) +"qFO" = ( +/obj/structure/flora/bush/flowers_yw/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "qFW" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -55658,17 +57737,6 @@ /obj/item/gps/mining, /turf/open/floor/iron/smooth, /area/mine/eva) -"qGh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/obj/structure/cable, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) "qGJ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -55699,8 +57767,6 @@ "qGW" = ( /obj/machinery/light/small/directional/south, /obj/structure/reagent_dispensers/watertank, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/checker, /area/station/commons/storage/emergency/port) @@ -55709,6 +57775,9 @@ dir = 1 }, /obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) "qHj" = ( @@ -55741,11 +57810,17 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/science/breakroom) -"qHs" = ( -/obj/structure/flora/bush/flowers_yw/style_random, -/obj/structure/flora/bush/fullgrass/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics) +"qHt" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "qHz" = ( /obj/machinery/light_switch/directional/west, /obj/machinery/disposal/bin{ @@ -55759,15 +57834,12 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) -"qHD" = ( -/obj/machinery/computer/prisoner/management, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 8 +"qHA" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/command/bridge) +/area/station/medical/virology) "qHO" = ( -/obj/machinery/bluespace_vendor/directional/south, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -55803,6 +57875,20 @@ }, /turf/open/floor/iron, /area/station/security/prison/garden) +"qIx" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "qIB" = ( /obj/effect/turf_decal/caution/stand_clear, /obj/machinery/door/poddoor/shutters/window{ @@ -55822,15 +57908,14 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) -"qII" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"qIP" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 }, -/obj/machinery/duct, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/dark, -/area/station/engineering/atmos/hfr_room) +/area/station/cargo/miningdock) "qIU" = ( /turf/open/floor/iron, /area/station/commons/dorms) @@ -55844,20 +57929,58 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"qJi" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/structure/sign/warning/radiation/directional/north, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) "qJv" = ( /obj/effect/turf_decal/siding/wood, /obj/item/cigbutt, /turf/open/floor/wood/large, /area/mine/eva/lower) -"qJy" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ +"qJB" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/closet/crate/hydroponics, +/obj/item/wrench, +/obj/item/wrench, +/obj/item/grenade/chem_grenade/antiweed{ + pixel_x = 3; + pixel_y = 1 + }, +/obj/item/grenade/chem_grenade/antiweed, +/obj/item/shovel/spade, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_y = 3 + }, +/obj/item/cultivator, +/obj/item/shovel/spade, +/obj/item/reagent_containers/cup/watering_can, +/obj/machinery/airalarm/directional/north, /turf/open/floor/iron, -/area/station/service/bar) +/area/station/service/hydroponics) +"qJC" = ( +/obj/machinery/seed_extractor, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/siding/green{ + dir = 9 + }, +/turf/open/floor/iron/dark, +/area/mine/laborcamp) "qJT" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating/snowed/icemoon, @@ -55894,18 +58017,24 @@ /obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/plating, /area/station/security/prison/safe) -"qKk" = ( -/obj/structure/railing/corner{ +"qKn" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + dir = 4 }, -/turf/open/floor/iron/dark/side{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/mine/eva/lower) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron, +/area/station/command/bridge) "qKq" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -55923,21 +58052,6 @@ /obj/machinery/atmospherics/components/tank, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"qKw" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/grown/log/tree, -/obj/item/grown/log/tree{ - pixel_y = 5; - pixel_x = 7 - }, -/obj/item/grown/log/tree{ - pixel_x = 7 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "qKx" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/effect/turf_decal/bot, @@ -55954,18 +58068,6 @@ }, /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb) -"qKH" = ( -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/effect/spawner/structure/window/hollow/reinforced/end, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/morgue) -"qKJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/smooth_large, -/area/station/hallway/secondary/entry) "qKQ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -55984,15 +58086,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/brig) -"qLf" = ( -/obj/structure/sign/painting/library{ - pixel_y = 32 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/service/library) "qLg" = ( /obj/effect/spawner/random/contraband/narcotics, /obj/structure/sign/poster/contraband/syndiemoth/directional/west, @@ -56068,13 +58161,15 @@ "qLY" = ( /turf/closed/wall/r_wall, /area/station/science/xenobiology) -"qMf" = ( -/obj/effect/turf_decal/tile/blue{ +"qMk" = ( +/obj/structure/railing{ dir = 1 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/structure/stairs/west, +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/science/cytology) "qMm" = ( /obj/structure/bookcase/random/adult, /turf/open/floor/wood, @@ -56089,26 +58184,16 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"qMD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/maintenance/fore) +"qMF" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/service/bar) "qMH" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) -"qMI" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "qMN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -56121,26 +58206,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/engineering/supermatter) -"qMO" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/corner{ - dir = 8 - }, -/obj/effect/landmark/start/botanist, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"qMS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/chair/wood{ - dir = 1 - }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "qMT" = ( /turf/closed/wall, /area/station/commons/lounge) @@ -56185,6 +58250,10 @@ dir = 10 }, /area/station/science/lab) +"qNt" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "qNu" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/freezer, @@ -56211,27 +58280,46 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/engineering/atmos) +"qNK" = ( +/obj/item/radio/intercom/prison/directional/west, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) "qNV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) -"qNX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance{ - name = "Xenobiology Maintenance" - }, +"qNZ" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, -/area/station/maintenance/aft/greater) +/area/station/maintenance/solars/starboard/fore) +"qOj" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/aft) "qOl" = ( /turf/open/floor/wood, /area/station/maintenance/port/aft) +"qOu" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"qOx" = ( +/obj/structure/lattice, +/obj/structure/sign/departments/maint/alt/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "qOy" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -56239,10 +58327,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/service) -"qOB" = ( -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "qOD" = ( /obj/effect/turf_decal/caution/stand_clear, /obj/effect/turf_decal/siding/dark_blue, @@ -56255,6 +58339,12 @@ }, /turf/open/floor/iron/textured_half, /area/station/ai_monitored/command/storage/eva) +"qOG" = ( +/obj/structure/table/wood, +/obj/item/plate, +/obj/effect/spawner/random/trash/bacteria, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "qOH" = ( /obj/effect/landmark/blobstart, /obj/structure/lattice/catwalk, @@ -56275,10 +58365,39 @@ dir = 1 }, /area/station/security/processing) -"qOW" = ( -/obj/structure/sign/warning/biohazard/directional/west, -/turf/open/openspace, -/area/station/medical/medbay/aft) +"qPb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/light_switch/directional/north{ + pixel_y = 38 + }, +/turf/open/floor/plastic, +/area/station/commons/dorms/laundry) +"qPc" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "qPm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56319,12 +58438,6 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"qPu" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "qPw" = ( /obj/structure/table, /obj/machinery/chem_dispenser/drinks/beer{ @@ -56332,15 +58445,10 @@ }, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"qPD" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) +"qPE" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "qPI" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 4 @@ -56357,13 +58465,16 @@ "qPL" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/exit/departure_lounge) -"qPQ" = ( +"qPV" = ( /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 6 }, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "qPX" = ( /obj/structure/sink/directional/west, /obj/structure/mirror/directional/east, @@ -56389,6 +58500,12 @@ "qQf" = ( /turf/closed/wall, /area/station/maintenance/fore/lesser) +"qQk" = ( +/obj/structure/fence/cut/large{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "qQo" = ( /turf/closed/wall, /area/station/cargo/office) @@ -56424,22 +58541,25 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, /turf/open/floor/iron, /area/station/hallway/primary/central) "qQN" = ( /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"qQV" = ( -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/fore) "qRk" = ( /obj/item/chair/wood, /turf/open/floor/carpet, /area/station/maintenance/space_hut/cabin) +"qRo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "qRq" = ( /obj/structure/rack, /obj/item/electronics/apc, @@ -56466,49 +58586,43 @@ /obj/structure/flora/tree/pine/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"qRF" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks/beer, +"qRE" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/bar) +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/starboard) "qRO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron, /area/station/science/ordnance) -"qRR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/random/directional/south, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "qSb" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/dark/textured, /area/station/security/prison/workout) -"qSe" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "qSh" = ( /obj/structure/sink/directional/east, /obj/structure/mirror/directional/west, /obj/effect/landmark/start/assistant, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"qSi" = ( -/obj/structure/railing/wooden_fence, -/obj/item/flashlight/lantern/on, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "qSj" = ( /obj/structure/table/wood, /obj/item/folder/blue, @@ -56559,13 +58673,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/sepia, /area/station/security/prison/rec) -"qSC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "qSE" = ( /obj/machinery/door/poddoor/preopen{ id = "misclab"; @@ -56589,11 +58696,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/white, /area/station/medical/virology) -"qSP" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) "qST" = ( /obj/structure/table/reinforced, /obj/item/pipe_dispenser, @@ -56601,31 +58703,23 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"qSU" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/box/red/corners{ - dir = 4 - }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "qSY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"qTj" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/sign/warning/pods/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/white/corner{ - dir = 1 +"qTa" = ( +/obj/machinery/portable_atmospherics/pipe_scrubber, +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/area/station/hallway/secondary/entry) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/open/floor/iron/showroomfloor, +/area/station/engineering/atmos) +"qTf" = ( +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "qTm" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -56638,14 +58732,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"qTp" = ( -/obj/structure/table/wood, -/obj/item/clothing/mask/fakemoustache, -/obj/item/cigarette/pipe, -/obj/item/clothing/glasses/monocle, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "qTs" = ( /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) @@ -56679,18 +58765,15 @@ /obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"qUe" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 +"qUf" = ( +/obj/machinery/firealarm/directional/east, +/obj/item/storage/box/bodybags{ + pixel_x = 2; + pixel_y = 2 }, +/obj/structure/rack, /turf/open/floor/iron/dark, -/area/station/engineering/atmos/hfr_room) -"qUo" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/closet, -/obj/effect/spawner/random/maintenance/two, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/service/chapel) "qUr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56707,17 +58790,27 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) +"qUI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "qUL" = ( /obj/structure/closet/emcloset, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"qUM" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) +"qUQ" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) "qUS" = ( /obj/structure/railing/corner{ dir = 8 @@ -56786,13 +58879,6 @@ }, /turf/open/floor/iron/smooth, /area/station/maintenance/port/lesser) -"qVG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/commons/fitness) "qVJ" = ( /obj/machinery/disposal/bin, /obj/machinery/light_switch/directional/south, @@ -56801,30 +58887,32 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/hos) +"qVK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/medium, +/area/station/commons/dorms/laundry) "qVN" = ( /obj/structure/table/glass, /obj/item/stock_parts/matter_bin, /obj/effect/spawner/random/food_or_drink/booze, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"qWf" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/siding/white{ +"qVZ" = ( +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) +"qWe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 }, -/obj/machinery/deepfryer, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) -"qWh" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "qWn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -56904,20 +58992,13 @@ /obj/machinery/light/small/directional/south, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"qXp" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Research Division Access"; - network = list("ss13","rd") - }, -/obj/structure/sink/directional/west, -/obj/effect/turf_decal/stripes/line{ +"qXt" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/siding/yellow{ dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/research) +/turf/open/floor/iron, +/area/station/engineering/lobby) "qXF" = ( /obj/machinery/computer/station_alert, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -56927,10 +59008,6 @@ /obj/structure/flora/bush/jungle/c/style_random, /turf/open/floor/grass, /area/station/medical/virology) -"qXY" = ( -/obj/effect/spawner/random/trash, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "qYb" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ @@ -56955,6 +59032,24 @@ }, /turf/open/floor/iron, /area/station/science/robotics/lab) +"qYx" = ( +/obj/item/trapdoor_remote/preloaded{ + pixel_y = 17; + name = "corpse trapdoor remote" + }, +/obj/structure/rack{ + pixel_y = 12; + pixel_x = -1 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/turf_decal/caution/red{ + pixel_y = -14 + }, +/obj/structure/noticeboard/cmo{ + pixel_y = 36 + }, +/turf/open/floor/iron/white/textured, +/area/station/medical/medbay/central) "qYz" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -56972,18 +59067,16 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) -"qYC" = ( -/obj/machinery/door/window/right/directional/south{ - req_access = list("kitchen"); - name = "The Ice Box" +"qYF" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 }, -/obj/structure/sign/warning/cold_temp/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/structure/sign/departments/chemistry/directional/north, +/obj/structure/railing/corner{ dir = 1 }, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "qYP" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -57003,6 +59096,12 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"qYR" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "qYV" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/machinery/door/firedoor, @@ -57013,11 +59112,25 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"qYW" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "qYZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/newscaster/directional/south, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"qZg" = ( +/obj/structure/table/wood, +/obj/structure/reagent_dispensers/beerkeg, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "qZh" = ( /obj/structure/table, /obj/item/folder/white, @@ -57035,6 +59148,11 @@ }, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) +"qZG" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "qZN" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/freezerchamber) @@ -57053,6 +59171,12 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/textured, /area/mine/mechbay) +"qZZ" = ( +/obj/structure/marker_beacon/yellow, +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/graveyard) "rab" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -57087,10 +59211,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) -"raq" = ( -/obj/structure/fence/corner, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "ras" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering/glass{ @@ -57130,6 +59250,11 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/command/teleporter) +"raQ" = ( +/mob/living/basic/pet/penguin/baby/permanent, +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "raT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, @@ -57156,13 +59281,6 @@ /obj/structure/closet, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"rbh" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "rbm" = ( /obj/machinery/camera/directional/east{ c_tag = "MiniSat External NorthWest"; @@ -57171,10 +59289,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"rbp" = ( -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "rbs" = ( /obj/effect/turf_decal/tile/yellow, /obj/machinery/light/directional/east, @@ -57184,23 +59298,19 @@ /turf/closed/wall, /area/station/command/heads_quarters/qm) "rbE" = ( -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "rbT" = ( /obj/structure/ore_box, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"rbU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "botany_apiary"; - name = "Apiary Shutters" - }, -/turf/open/floor/plating, -/area/station/service/hydroponics) "rbY" = ( /obj/structure/table/reinforced, /obj/item/pipe_dispenser, @@ -57237,84 +59347,45 @@ }, /turf/open/floor/iron, /area/station/science/explab) -"rcx" = ( -/obj/machinery/light/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/displaycase, -/obj/effect/turf_decal/tile/dark/fourcorners, -/turf/open/floor/iron, -/area/mine/living_quarters) -"rcD" = ( -/turf/open/floor/carpet/lone, -/area/station/service/chapel) "rcE" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/hallway/primary/central) -"rcN" = ( -/obj/effect/turf_decal/siding/yellow{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/engineering/lobby) -"rcO" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall/r_wall, -/area/station/ai_monitored/turret_protected/ai) "rcP" = ( /obj/effect/turf_decal/bot_white/right, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/gateway) -"rcU" = ( -/obj/structure/table/optable, -/obj/effect/decal/cleanable/xenoblood, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"rcS" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/structure/marker_beacon/burgundy, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "rcY" = ( /obj/structure/fence{ dir = 4 }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"rdl" = ( -/obj/machinery/button/door/directional/east{ - id = "misclab"; - name = "Test Chamber Blast Doors"; - pixel_y = 6; - req_access = list("xenobiology") - }, -/obj/machinery/button/door/directional/east{ - id = "xenobiomain"; - name = "Xenobiology Containment Blast Door"; - pixel_y = -6; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rdn" = ( /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) -"rdq" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/spawner/random/trash/mopbucket, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"rdv" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 +"rds" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + id = "minecraft_shutter"; + name = "Cart Access" + }, /turf/open/floor/iron/dark, /area/station/service/hydroponics) "rdw" = ( @@ -57328,6 +59399,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) +"rdJ" = ( +/obj/structure/fence/corner{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "rea" = ( /obj/structure/table, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -57335,6 +59412,23 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/miningdock) +"reb" = ( +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "ree" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57357,12 +59451,45 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"reu" = ( -/obj/structure/fence/corner{ - dir = 8 +"rep" = ( +/obj/structure/table, +/obj/machinery/button/door{ + pixel_x = -6; + pixel_y = -1; + req_access = list("rd"); + id = "misclab"; + name = "Specimen Chamber Control" }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/machinery/button/door{ + pixel_x = -6; + pixel_y = 9; + req_access = list("rd"); + id = "xenobiomain"; + name = "Xenobiology Control" + }, +/obj/machinery/button/door{ + pixel_x = 6; + pixel_y = -1; + req_access = list("rd"); + id = "rd_office_shutters"; + name = "Privacy Control" + }, +/obj/machinery/button/door{ + pixel_x = 6; + pixel_y = 9; + id = "rnd2"; + name = "Ordnance Control"; + req_access = list("rd") + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/command/heads_quarters/rd) +"res" = ( +/obj/structure/ladder, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/engineering/lobby) "rex" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 8 @@ -57401,13 +59528,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/science/xenobiology) -"reX" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "rfh" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -57417,16 +59537,6 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/hallway) -"rfj" = ( -/obj/structure/frame/computer{ - dir = 1 - }, -/obj/item/radio/intercom/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/fore) "rfo" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57434,10 +59544,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/psychology) -"rft" = ( -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) "rfu" = ( /turf/closed/wall/r_wall, /area/station/security/prison/rec) @@ -57446,6 +59552,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"rfQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "rfR" = ( /obj/machinery/telecomms/bus/preset_two, /turf/open/floor/circuit/telecomms/mainframe, @@ -57454,16 +59566,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"rfW" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/commons/dorms) -"rgi" = ( -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/department/medical/central) "rgl" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment, @@ -57500,6 +59602,13 @@ /obj/item/stack/package_wrap, /turf/open/floor/wood/large, /area/mine/eva/lower) +"rgq" = ( +/obj/structure/minecart_rail{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "rgs" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -57522,34 +59631,19 @@ "rgE" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/hfr_room) -"rgM" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/machinery/computer/security/telescreen/entertainment/directional/south, -/turf/open/floor/iron, -/area/station/commons/dorms) "rhf" = ( /obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, /obj/machinery/door/poddoor/preopen{ id = "hosspace"; - name = "Space Shutters" + name = "Privacy Shutters" }, -/obj/structure/cable, /turf/open/floor/plating, /area/station/command/heads_quarters/hos) -"rhi" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/ordnance/office) +"rhv" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/fore) "rhF" = ( /obj/machinery/camera/directional/north{ c_tag = "Security - Permabrig Observation North"; @@ -57557,24 +59651,20 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"rhP" = ( -/obj/machinery/flasher/directional/north{ - id = "Cell 2" - }, -/obj/structure/bed{ - dir = 1; - pixel_x = -2 - }, -/turf/open/floor/iron/smooth, -/area/station/security/brig) -"rhS" = ( -/obj/structure/disposalpipe/segment, +"rhG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) +"rhJ" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "rhY" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/box/red, @@ -57614,59 +59704,55 @@ /turf/open/floor/iron, /area/station/security/brig/upper) "riB" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/machinery/door/airlock{ - name = "Bar" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 +/obj/machinery/computer/records/security, +/obj/machinery/computer/security/telescreen/normal/directional/north, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 }, -/area/station/service/bar) +/area/station/security/brig/entrance) "riL" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/living_quarters) -"riM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/table, -/obj/item/food/grown/carrot, -/obj/item/food/grown/carrot{ - pixel_y = 4; - pixel_x = -2 +"riW" = ( +/obj/item/toy/snowball{ + pixel_x = 9; + pixel_y = 1 }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) -"riT" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/plating/snowed/icemoon, -/area/station/maintenance/port/aft) +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "rja" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/paper/carbon, /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron, /area/mine/living_quarters) -"rjh" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/iron/dark, -/area/station/engineering/main) -"rji" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/chair/wood{ +"rjb" = ( +/obj/structure/railing{ dir = 1 }, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) +"rjd" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/isolation/directional/south, +/obj/item/clothing/suit/jacket/straight_jacket, +/obj/item/clothing/suit/jacket/straight_jacket{ + pixel_x = 6 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Permabrig Prep"; + network = list("ss13","prison"); + view_range = 5 + }, +/obj/structure/cable, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/smooth, +/area/station/security/execution/transfer) "rjr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/plating, @@ -57679,17 +59765,6 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"rjC" = ( -/obj/vehicle/ridden/wheelchair{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/end, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/large, -/area/station/medical/medbay/aft) "rjE" = ( /obj/structure/fluff/tram_rail{ pixel_y = 17 @@ -57697,43 +59772,18 @@ /obj/structure/fluff/tram_rail, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"rjH" = ( -/obj/machinery/camera/directional/west{ - c_tag = "MiniSat Antechamber"; - network = list("minisat"); - start_active = 1 - }, -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/aisat/atmos"; - name = "Atmospherics Turret Control"; - pixel_x = -27; - req_access = list("minisat") - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "rjK" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ dir = 1 }, +/obj/effect/turf_decal/bot/right, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) "rjP" = ( /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"rjT" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio3"; - name = "Xenobio Pen 3 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rkc" = ( /obj/effect/turf_decal/siding/yellow, /obj/effect/turf_decal/siding/yellow{ @@ -57741,16 +59791,34 @@ }, /turf/open/floor/iron, /area/station/engineering/storage) -"rkd" = ( -/obj/effect/spawner/random/structure/chair_flipped, -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/plaques/kiddie/perfect_drone{ - pixel_x = 32 +"rkh" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/iron/checker, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rkk" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/winterboots/ice_boots/eva{ + pixel_y = 2 + }, +/obj/item/clothing/suit/hooded/wintercoat/eva{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/delivery/red, +/obj/machinery/camera/directional/north{ + c_tag = "Arrivals Emergency EVA" + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) "rkl" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -57760,10 +59828,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"rkm" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"rkp" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "rkt" = ( /obj/structure/cable, /obj/machinery/light/directional/east, @@ -57773,6 +59846,30 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"rkz" = ( +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"rkH" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/solars/starboard/aft) +"rkI" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Office" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "rkK" = ( /obj/machinery/suit_storage_unit/cmo, /turf/open/floor/iron/dark, @@ -57791,14 +59888,26 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"rlb" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 +"rkV" = ( +/obj/structure/railing, +/obj/item/storage/toolbox/mechanical{ + pixel_y = 3 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/item/multitool{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/assembly/signaler{ + pixel_x = 5; + pixel_y = 4 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "rlf" = ( /obj/effect/spawner/random/structure/steam_vent, /obj/structure/cable, @@ -57809,35 +59918,45 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"rlA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +"rlq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/medical/morgue) -"rlE" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/computer/slot_machine{ - name = "two-armed bandit" +/obj/structure/railing, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) +"rlt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/service/chapel) +"rlu" = ( +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark, +/area/station/science/breakroom) +"rlB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"rlH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/engineering/tracking_beacon, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/landmark/blobstart, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"rlL" = ( -/obj/machinery/light_switch/directional/north{ - pixel_x = -7 +/area/station/maintenance/starboard/lesser) +"rlE" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/white{ + dir = 8 }, -/obj/structure/table, -/obj/item/stock_parts/power_store/cell/high/empty, -/obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "rlS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57849,18 +59968,6 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/station/commons/dorms) -"rlX" = ( -/obj/structure/closet/secure_closet/chemical, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/turf/open/floor/iron/white, -/area/station/maintenance/port/fore) "rmn" = ( /obj/structure/chair/stool/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -57868,21 +59975,6 @@ }, /turf/open/floor/carpet, /area/station/commons/dorms) -"rmp" = ( -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white, -/area/station/science/ordnance) -"rms" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/paper_bin{ - pixel_y = 6 - }, -/obj/item/taperecorder{ - pixel_x = 9 - }, -/turf/open/floor/iron/dark, -/area/station/science/explab) "rmv" = ( /obj/structure/rack, /obj/item/wrench, @@ -57907,44 +59999,18 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron/dark/textured_half, /area/mine/mechbay) -"rmG" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_exterior{ - name = "Burn Chamber Exterior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine/vacuum, -/area/station/science/ordnance/burnchamber) -"rmM" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/command/meeting_room) -"rmR" = ( -/obj/effect/spawner/random/trash/mess, +"rmP" = ( /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rmU" = ( -/obj/effect/spawner/random/trash/graffiti, -/obj/structure/sign/poster/contraband/free_drone/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "rmZ" = ( /obj/machinery/iv_drip, /obj/structure/mirror/broken/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"rnb" = ( -/obj/effect/turf_decal/tile/red, -/turf/open/floor/iron/textured, -/area/station/security/brig) -"rng" = ( -/obj/machinery/light/cold/directional/west, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "rnh" = ( /obj/machinery/door/airlock{ name = "Observatory Access" @@ -57959,6 +60025,12 @@ /obj/structure/railing, /turf/open/floor/iron, /area/mine/production) +"rnp" = ( +/obj/machinery/door/poddoor/incinerator_atmos_main{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) "rns" = ( /obj/structure/table/reinforced, /obj/item/aicard{ @@ -57976,11 +60048,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"rnu" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/floor/engine, -/area/station/science/explab) "rnx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57997,18 +60064,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"roa" = ( -/obj/structure/toilet{ - pixel_y = 8 - }, -/obj/machinery/button/door/directional/north{ - id = "Lakeview_Bathroom"; - pixel_x = 22; - pixel_y = -10; - req_access = list("robotics") - }, -/turf/open/floor/iron/freezer, -/area/mine/eva/lower) "roj" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58022,13 +60077,41 @@ /obj/machinery/telecomms/processor/preset_one, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"roq" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/closet, -/obj/effect/spawner/random/clothing/gloves, -/obj/effect/spawner/random/trash/janitor_supplies, -/turf/open/floor/plating, -/area/station/maintenance/department/chapel) +"ros" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/hallway/secondary/service) +"rou" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Research Break Room" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/breakroom) "rox" = ( /obj/structure/table, /obj/effect/spawner/round_default_module, @@ -58067,10 +60150,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/science/explab) -"roW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) "roX" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -58080,16 +60159,6 @@ /obj/structure/closet/athletic_mixed, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"rpi" = ( -/turf/closed/wall/ice, -/area/icemoon/underground/explored/graveyard) -"rpu" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "rpC" = ( /obj/structure/railing{ dir = 1 @@ -58113,22 +60182,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/engineering/engine_smes) -"rpG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"rpJ" = ( -/obj/structure/minecart_rail{ - dir = 10 - }, -/obj/structure/cable, -/obj/structure/sign/warning/directional/south, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) "rpK" = ( /obj/structure/chair/pew/left{ dir = 1 @@ -58197,15 +60250,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) -"rqn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/south, -/obj/structure/rack, -/obj/machinery/camera/directional/south{ - c_tag = "Chapel Electrical Maintenace Lower" - }, -/turf/open/floor/iron/smooth, -/area/station/maintenance/department/chapel) +"rqk" = ( +/obj/effect/spawner/random/trash/graffiti, +/obj/structure/sign/poster/contraband/free_drone/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rqD" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -58219,13 +60268,6 @@ }, /turf/open/floor/plating, /area/station/engineering/engine_smes) -"rqG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/lounge) "rqH" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/leather, @@ -58245,20 +60287,24 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/lobby) -"rqQ" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Service - Kitchen" - }, -/obj/effect/turf_decal/siding/white{ - dir = 8 +"rqN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) +"rqR" = ( +/obj/machinery/biogenerator, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 4 }, -/obj/machinery/airalarm/directional/east, -/obj/structure/table, -/obj/machinery/processor{ - pixel_y = 6 +/obj/effect/turf_decal/siding/green{ + dir = 5 }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/turf/open/floor/iron/dark, +/area/mine/laborcamp) "rqY" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -58266,26 +60312,22 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/dark, /area/station/medical/virology) -"rra" = ( -/obj/machinery/modular_computer/preset/cargochat/service, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/siding/dark, -/turf/open/floor/iron/checker, -/area/station/hallway/secondary/service) -"rrf" = ( -/obj/structure/table/wood, -/obj/item/storage/crayons, -/obj/item/storage/fancy/candle_box{ - pixel_y = 5 +"rrg" = ( +/obj/structure/table/glass, +/obj/item/storage/bag/plants/portaseeder, +/obj/item/plant_analyzer, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rrh" = ( +/obj/structure/fence/post{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/service/chapel/office) -"rrl" = ( -/obj/item/stack/sheet/mineral/wood, -/obj/effect/decal/cleanable/generic, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "rrn" = ( /obj/structure/closet/emcloset, /obj/structure/sign/poster/contraband/random/directional/north, @@ -58300,19 +60342,39 @@ }, /turf/open/floor/glass/reinforced, /area/station/hallway/primary/starboard) -"rrL" = ( -/obj/effect/turf_decal/siding/wood{ +"rrB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) +"rrR" = ( +/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/duct, -/turf/open/floor/wood/large, -/area/station/service/bar) +/obj/effect/turf_decal/box/white{ + color = "#52B4E9" + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/trimline/neutral/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "rrV" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end, /turf/open/floor/plating, /area/mine/eva) +"rsf" = ( +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rsh" = ( +/obj/structure/sign/poster/contraband/the_big_gas_giant_truth/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "rsw" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -58324,6 +60386,34 @@ dir = 1 }, /area/station/hallway/secondary/entry) +"rsy" = ( +/obj/item/training_toolbox{ + pixel_y = 5 + }, +/obj/structure/table, +/obj/item/training_toolbox{ + pixel_y = -2 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Holodeck Control" + }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/commons/fitness) +"rsG" = ( +/obj/item/toy/snowball{ + pixel_x = -11; + pixel_y = -2 + }, +/obj/structure/sign/warning/secure_area{ + pixel_y = 32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "rsL" = ( /obj/structure/cable, /turf/open/floor/circuit, @@ -58349,6 +60439,18 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) +"rsV" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm1"; + name = "Dorm 1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms) "rsW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/green/visible, @@ -58357,6 +60459,19 @@ "rsY" = ( /turf/closed/wall/r_wall, /area/mine/eva) +"rtf" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"rth" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) "rtn" = ( /obj/structure/chair/comfy/black, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58379,6 +60494,7 @@ "rtq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/oil, +/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) "rtt" = ( @@ -58392,6 +60508,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"rtw" = ( +/obj/structure/reagent_dispensers/cooking_oil, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "rty" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58457,23 +60577,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"ruQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"ruX" = ( -/obj/structure/closet/lasertag/red, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron, -/area/station/commons/fitness) "ruZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable/layer3, @@ -58498,13 +60601,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"rvO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/item/kirbyplants/organic/plant2, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "rvS" = ( /obj/structure/rack, /obj/item/poster/random_contraband, @@ -58512,12 +60608,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"rvW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/port/greater) "rvZ" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron, @@ -58530,33 +60620,24 @@ }, /turf/open/openspace, /area/station/engineering/atmos/storage) -"rwk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - color = "#ff0000"; - dir = 4; - name = "Scrubbers multi deck pipe adapter" +"rwn" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel" }, -/turf/open/floor/plating, -/area/station/medical/chemistry) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) "rwt" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 6 }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"rwu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/sign/poster/official/random/directional/south, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron/dark/textured_edge{ - dir = 1 - }, -/area/station/security/prison) "rwB" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ @@ -58581,11 +60662,14 @@ /obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron, /area/mine/laborcamp) -"rwW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/gas_mask, -/turf/open/floor/plating, -/area/station/hallway/secondary/entry) +"rwZ" = ( +/obj/structure/sign/departments/botany/directional/east, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "rxa" = ( /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible{ dir = 1 @@ -58608,6 +60692,14 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"rxx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/camera/directional/east{ + c_tag = "Atmospherics - HFR Decontamination Chamber" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/hfr_room) "rxz" = ( /obj/structure/girder, /turf/open/floor/plating/snowed/icemoon, @@ -58619,23 +60711,8 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"rxM" = ( -/obj/machinery/door/poddoor/preopen{ - id = "xenobio8"; - name = "Xenobio Pen 8 Blast Door" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/electric_shock, -/turf/open/floor/plating, -/area/station/science/xenobiology) -"rxV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, +"rxJ" = ( +/turf/open/floor/glass, /area/station/service/hydroponics) "rxW" = ( /turf/closed/mineral/random/snow, @@ -58643,17 +60720,6 @@ "rxY" = ( /turf/closed/wall, /area/station/service/bar/backroom) -"rya" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/hop, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/station/command/heads_quarters/hop) "ryf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58661,6 +60727,31 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"ryl" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "Cargo_Store_In"; + name = "Cargo Warehouse Shutters" + }, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"ryn" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/rnd/production/techfab/department/service, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/siding/dark, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) "ryu" = ( /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) @@ -58679,6 +60770,10 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) +"ryJ" = ( +/obj/machinery/light/small/directional/east, +/turf/open/openspace, +/area/station/service/hydroponics) "ryM" = ( /obj/structure/rack, /obj/item/pickaxe, @@ -58692,12 +60787,6 @@ /obj/effect/turf_decal/delivery/red, /turf/open/floor/iron/textured, /area/station/hallway/secondary/entry) -"ryX" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "rzj" = ( /obj/structure/table, /obj/item/stack/sheet/iron/fifty{ @@ -58707,25 +60796,6 @@ /obj/item/stack/sheet/iron/fifty, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"rzm" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall, -/area/station/cargo/lobby) -"rzq" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/siding/thinplating/dark/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "rzz" = ( /obj/machinery/door/airlock/command{ name = "Server Room" @@ -58772,17 +60842,14 @@ /obj/machinery/digital_clock/directional/south, /turf/open/openspace, /area/station/medical/medbay/lobby) -"rzY" = ( -/obj/structure/table/wood, -/obj/item/raptor_dex{ - pixel_y = 13 - }, -/obj/item/raptor_dex{ - pixel_y = 7 - }, -/obj/item/raptor_dex, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) +"rzV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "rAr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -58796,23 +60863,6 @@ }, /turf/open/floor/iron, /area/mine/laborcamp/security) -"rAx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) "rAA" = ( /obj/machinery/pdapainter, /turf/open/floor/iron, @@ -58829,15 +60879,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"rAL" = ( -/obj/structure/rack, -/obj/item/crowbar/red, -/obj/item/wrench, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat/maint) "rAO" = ( /obj/structure/closet/emcloset, /turf/open/floor/plating, @@ -58857,6 +60898,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"rAY" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/service/bar) "rAZ" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark/smooth_large, @@ -58872,12 +60921,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos) -"rBp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/service/library) "rBv" = ( /obj/structure/chair/stool/directional/north, /obj/item/storage/toolbox/artistic{ @@ -58885,14 +60928,27 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"rBy" = ( -/obj/structure/closet/crate, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/item/stack/license_plates/empty/fifty, -/obj/item/stack/license_plates/empty/fifty, -/obj/item/stack/license_plates/empty/fifty, -/turf/open/floor/iron/dark/smooth_half, -/area/station/security/prison/work) +"rBz" = ( +/obj/machinery/computer/order_console/cook{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) +"rBJ" = ( +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/structure/rack, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "rBL" = ( /obj/machinery/light/directional/west, /turf/open/openspace, @@ -58930,6 +60986,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/locker) +"rCs" = ( +/obj/structure/table, +/obj/item/food/deadmouse{ + pixel_y = 18; + pixel_x = 13 + }, +/obj/structure/microscope, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "rCu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/landmark/start/hangover, @@ -59068,41 +61133,6 @@ dir = 10 }, /area/mine/eva) -"rDq" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/table, -/obj/item/clothing/head/utility/welding{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/clothing/head/utility/welding{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/clothing/head/utility/welding, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/sign/poster/official/safety_internals/directional/east, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) -"rDH" = ( -/obj/structure/flora/grass/green/style_random, -/mob/living/basic/pet/penguin/emperor{ - name = "Club" - }, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) -"rDI" = ( -/obj/item/toy/plush/lizard_plushie{ - name = "Wines-And-Dines"; - pixel_x = 4 - }, -/obj/item/reagent_containers/cup/glass/bottle{ - pixel_x = -9 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "rDJ" = ( /obj/structure/ladder{ name = "upper dispenser access" @@ -59111,9 +61141,12 @@ /turf/open/floor/iron/dark/textured_large, /area/station/medical/treatment_center) "rDN" = ( -/obj/structure/no_effect_signpost, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/bar{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "rDO" = ( /obj/structure/table, /obj/item/storage/box/lights/mixed, @@ -59129,18 +61162,6 @@ "rDZ" = ( /turf/open/floor/engine, /area/station/science/explab) -"rEd" = ( -/obj/machinery/modular_computer/preset/research{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/sign/plaques/kiddie/gameoflife{ - pixel_x = -32 - }, -/turf/open/floor/iron/smooth_corner, -/area/station/command/heads_quarters/rd) "rEe" = ( /obj/structure/closet{ name = "evidence closet 4" @@ -59161,18 +61182,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"rEj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) -"rEn" = ( -/obj/structure/railing/wooden_fence{ - dir = 4 - }, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) +"rEo" = ( +/obj/structure/dresser, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/captain) "rEp" = ( /obj/structure/table, /obj/item/hand_labeler, @@ -59182,17 +61196,31 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"rEt" = ( -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 +"rEq" = ( +/obj/structure/beebox, +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark/corner, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 }, -/obj/effect/turf_decal/siding/white{ - dir = 8 +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 9 }, -/turf/open/floor/iron, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, /area/station/service/hydroponics) +"rEr" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "QMLoad" + }, +/obj/machinery/door/poddoor{ + id = "QMLoaddoor"; + name = "Supply Dock Loading Door"; + dir = 4 + }, +/turf/open/floor/plating, +/area/station/cargo/storage) "rEx" = ( /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark, @@ -59204,12 +61232,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"rEH" = ( -/obj/item/chair/stool/bar{ - pixel_y = -2 +"rEM" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "rEP" = ( @@ -59219,21 +61249,21 @@ }, /turf/open/floor/iron/dark/side, /area/station/security/processing) +"rES" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) "rEU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"rEY" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchencounter"; - name = "Kitchen Counter Shutters" - }, -/obj/structure/displaycase/forsale/kitchen, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "rFb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -59246,6 +61276,12 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/mining) +"rFh" = ( +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva/lower) "rFD" = ( /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, @@ -59264,6 +61300,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/fore) +"rFU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "rGd" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -59274,6 +61316,15 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/engine/cult, /area/station/service/library) +"rGf" = ( +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "rGh" = ( /obj/machinery/recharge_station, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -59312,6 +61363,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"rGY" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/table, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/office) "rHc" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -59319,6 +61375,9 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"rHi" = ( +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "rHk" = ( /obj/machinery/exodrone_launcher, /obj/item/exodrone{ @@ -59334,21 +61393,17 @@ /obj/effect/turf_decal/trimline/yellow/mid_joiner, /turf/open/floor/iron/smooth_large, /area/station/cargo/drone_bay) -"rHo" = ( +"rHx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/random/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"rHr" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/machinery/duct, +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/virology) +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) "rHz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -59371,11 +61426,6 @@ /obj/effect/spawner/random/food_or_drink/snack/lizard, /turf/open/floor/iron, /area/station/security/prison/mess) -"rHI" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/medical/virology) "rHQ" = ( /obj/machinery/computer/message_monitor{ dir = 4 @@ -59385,23 +61435,6 @@ }, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) -"rHR" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Chapel Maintenance External Airlock"; - opacity = 0 - }, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/maintenance/department/chapel) "rHZ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -59416,14 +61449,12 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/cryo) -"rIr" = ( -/obj/machinery/vending/cigarette, -/obj/structure/sign/departments/telecomms/directional/west, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +"rIz" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/smooth, +/area/station/maintenance/fore/lesser) "rIF" = ( /obj/effect/turf_decal/trimline/dark_blue/line, /obj/machinery/camera/directional/south{ @@ -59432,16 +61463,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) -"rII" = ( -/obj/machinery/vending/wardrobe/atmos_wardrobe, -/obj/effect/turf_decal/stripes/end, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/showroomfloor, -/area/station/engineering/atmos) -"rIS" = ( -/obj/structure/flora/rock/icy/style_random, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) +"rIH" = ( +/obj/structure/chair/stool/directional/south, +/obj/structure/sign/poster/official/work_for_a_future/directional/west, +/turf/open/floor/iron, +/area/station/security/prison/visit) "rIU" = ( /turf/open/floor/iron/white, /area/station/science/robotics/lab) @@ -59455,6 +61481,19 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, /area/station/engineering/main) +"rJc" = ( +/obj/structure/minecart_rail{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/machinery/light/small/red/directional/north, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "rJe" = ( /obj/machinery/door/window/left/directional/east{ name = "Containment Pen 1"; @@ -59487,18 +61526,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/maintenance/fore/lesser) -"rJX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/textured, -/area/station/service/hydroponics) "rKs" = ( /obj/structure/chair/stool/directional/south, -/obj/structure/sign/poster/official/work_for_a_future/directional/north, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /obj/machinery/light/small/dim/directional/west, +/obj/structure/sign/poster/official/work_for_a_future/directional/west, /turf/open/floor/iron, /area/mine/laborcamp) "rKv" = ( @@ -59509,26 +61544,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"rKQ" = ( -/obj/structure/mineral_door/wood{ - name = "Maintenance Bar" - }, -/turf/open/floor/wood, -/area/station/maintenance/port/aft) -"rKX" = ( -/obj/machinery/camera{ - c_tag = "Surgery B"; - network = list("ss13","medbay"); - pixel_x = 22 - }, -/obj/machinery/vending/wallmed/directional/south, -/obj/structure/cable, -/obj/structure/table/glass, -/obj/item/stack/sticky_tape/surgical, -/obj/item/stack/medical/bone_gel, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron/white, -/area/station/medical/surgery/aft) "rKZ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/effect/turf_decal/stripes/line{ @@ -59538,6 +61553,12 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron, /area/station/science/xenobiology) +"rLl" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "rLo" = ( /turf/open/floor/plating, /area/station/cargo/miningdock) @@ -59553,6 +61574,21 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/cargo/office) +"rLL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 8 + }, +/obj/machinery/holopad, +/obj/effect/landmark/start/depsec/medical, +/obj/machinery/computer/security/telescreen/med_sec/directional/east, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/checkpoint/medical) "rLX" = ( /obj/item/target, /obj/item/target/syndicate, @@ -59566,10 +61602,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/range) -"rMm" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/openspace, -/area/station/service/bar/atrium) "rMr" = ( /obj/structure/chair{ dir = 8 @@ -59620,6 +61652,7 @@ /obj/item/pen, /obj/effect/turf_decal/tile/blue/full, /obj/machinery/light/small/directional/north, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/command/heads_quarters/cmo) "rMY" = ( @@ -59653,6 +61686,13 @@ dir = 4 }, /area/mine/living_quarters) +"rNn" = ( +/obj/structure/flora/grass/brown/style_random, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "rNz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59669,6 +61709,15 @@ }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"rNK" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/science/ordnance) "rNQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -59679,12 +61728,13 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"rNV" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/segment, -/obj/structure/railing/corner/end/flip, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"rNZ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "rOb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59698,6 +61748,25 @@ /obj/structure/closet/toolcloset, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"rOv" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment, +/obj/structure/railing/corner/end, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"rOw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Kitchen Maintenance" + }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/service/kitchen/coldroom) +"rOx" = ( +/obj/structure/flora/rock/pile/icy/style_random, +/turf/open/misc/asteroid/snow/coldroom, +/area/station/service/kitchen/coldroom) "rOA" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -59730,18 +61799,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/mine/eva) -"rOH" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/structure/sink/directional/south, -/obj/machinery/camera{ - c_tag = "Virology Break Room"; - dir = 1; - network = list("ss13","medbay") +"rOL" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/iron/dark, -/area/station/medical/virology) +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "rOU" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, @@ -59751,25 +61817,6 @@ /obj/structure/closet/toolcloset, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"rPn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/obj/machinery/camera{ - c_tag = "Atmospherics - South East"; - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer1{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos) -"rPp" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/fake_stairs/wood/directional/north, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "rPL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -59782,6 +61829,19 @@ "rQf" = ( /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"rQh" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Chapel Maintenance External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) "rQl" = ( /obj/structure/lattice/catwalk, /obj/structure/railing/corner, @@ -59855,6 +61915,30 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"rRd" = ( +/obj/item/storage/toolbox/electrical{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/machinery/button/door/directional/east{ + id = "eva_shutters"; + req_access = list("command") + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/light_switch/directional/east{ + pixel_y = -6 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/storage/toolbox/emergency, +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "rRk" = ( /obj/structure/table, /obj/item/storage/belt/utility, @@ -59874,29 +61958,30 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) -"rRs" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ +"rRn" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/warehouse) +"rRt" = ( +/obj/effect/turf_decal/tile/bar{ dir = 4 }, -/obj/machinery/camera/directional/east{ - c_tag = "Service - Botany Upper Entrance" - }, -/obj/structure/table/glass, -/obj/machinery/fax/auto_name, /turf/open/floor/iron, -/area/station/service/hydroponics) -"rRu" = ( -/obj/structure/table/wood, -/obj/item/toy/mecha/honk{ - pixel_y = 12 +/area/station/hallway/primary/starboard) +"rRA" = ( +/obj/structure/ladder{ + name = "chemistry lab access" }, -/obj/structure/sign/poster/contraband/random/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/grimy, -/area/station/service/theater) +/obj/effect/turf_decal/stripes/end, +/obj/structure/sign/departments/chemistry/directional/north, +/obj/effect/turf_decal/tile/yellow/full, +/obj/machinery/door/window/left/directional/south{ + name = "Chemistry Lab Access Hatch"; + req_access = list("plumbing") + }, +/turf/open/floor/iron/white/textured_large, +/area/station/medical/treatment_center) "rRM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59904,6 +61989,17 @@ /obj/machinery/light/floor, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) +"rRN" = ( +/obj/structure/railing, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) +"rRT" = ( +/obj/structure/cable, +/obj/structure/minecart_rail{ + dir = 1 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "rSe" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/costume, @@ -59922,11 +62018,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"rSu" = ( -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/science/xenobiology) "rSx" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -59963,28 +62054,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) -"rSQ" = ( -/obj/item/toy/snowball{ - pixel_x = -11; - pixel_y = -2 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"rST" = ( -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "rSW" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, +/obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"rTs" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "rTt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60016,16 +62089,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/security/processing) -"rUa" = ( -/obj/structure/cable/multilayer/multiz, -/obj/effect/turf_decal/stripes/line{ +"rTZ" = ( +/obj/machinery/light/floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/railing/corner/end/flip{ dir = 1 }, -/obj/structure/sign/nanotrasen{ - pixel_y = -32 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/turf/open/floor/iron, +/area/station/cargo/storage) "rUb" = ( /obj/structure/railing, /obj/machinery/flasher/portable, @@ -60043,15 +62116,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"rUv" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/white/corner{ - dir = 4 - }, -/area/station/hallway/secondary/entry) "rUy" = ( /obj/machinery/navbeacon{ codes_txt = "delivery;dir=8"; @@ -60060,6 +62124,9 @@ /obj/effect/turf_decal/bot, /obj/machinery/light/small/directional/east, /mob/living/simple_animal/bot/mulebot, +/obj/machinery/status_display/supply{ + pixel_x = 32 + }, /turf/open/floor/iron, /area/station/cargo/storage) "rUz" = ( @@ -60073,6 +62140,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"rUQ" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/beakers{ + pixel_y = 7 + }, +/obj/item/assembly/igniter{ + pixel_y = -3 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/medical/chem_storage) "rUR" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -60135,16 +62214,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"rVt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/spawner/random/engineering/toolbox, -/obj/effect/spawner/random/engineering/toolbox, -/obj/effect/turf_decal/siding/wood, -/obj/effect/spawner/random/trash/janitor_supplies, -/turf/open/floor/iron/grimy, -/area/station/commons/vacant_room/office) "rVA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60170,6 +62239,13 @@ /obj/item/storage/backpack, /turf/open/floor/plastic, /area/station/commons/dorms/laundry) +"rVE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "rVV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -60184,14 +62260,23 @@ /obj/structure/cable, /turf/open/floor/iron, /area/mine/laborcamp) -"rWh" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" +"rWg" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/stamp/head/cmo, +/obj/item/clothing/neck/stethoscope, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/camera/directional/north{ + c_tag = "Chief Medical Office South"; + network = list("ss13","medbay") }, -/area/icemoon/underground/explored/graveyard) +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/cmo) +"rWm" = ( +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "rWn" = ( /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, @@ -60202,15 +62287,39 @@ }, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"rWA" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 +"rWH" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Chemistry Lab Utilities" }, -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/access/any/security/general, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/turf/open/floor/iron/smooth, +/area/station/maintenance/department/medical/central) +"rWI" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/obj/structure/table/glass, +/obj/machinery/light/small/directional/east, +/obj/machinery/firealarm/directional/east, +/obj/item/food/grown/poppy{ + pixel_y = -1; + pixel_x = 3 + }, +/obj/item/food/grown/poppy/geranium{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/item/food/grown/poppy/lily{ + pixel_x = -2 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "rWO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -60305,34 +62414,28 @@ }, /turf/open/floor/iron/large, /area/station/commons/storage/primary) -"rXB" = ( +"rXw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/door/airlock/maintenance{ + name = "Bar Maintenance" + }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, -/obj/structure/minecart_rail/railbreak, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) -"rXD" = ( -/obj/machinery/button/door/directional/east{ - id = "xenobio7"; - name = "Xenobio Pen 7 Blast DOors"; - req_access = list("xenobiology") +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"rXN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Teleport Access" +/turf/open/floor/plating, +/area/station/commons/lounge) +"rXP" = ( +/obj/item/pickaxe/improvised{ + pixel_x = 7 }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, -/turf/open/floor/iron, -/area/station/command/teleporter) +/turf/open/misc/asteroid/snow/coldroom, +/area/icemoon/underground/explored) "rXX" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -60343,11 +62446,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/security/processing) -"rXY" = ( -/obj/item/kirbyplants/random/dead, -/obj/machinery/light/small/broken/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "rYq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60377,6 +62475,11 @@ dir = 8 }, /area/mine/living_quarters) +"rYA" = ( +/obj/structure/flora/grass/green/style_random, +/obj/structure/sign/warning/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "rYB" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -60384,6 +62487,18 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"rYE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "rYG" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -60398,10 +62513,6 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"rYZ" = ( -/obj/machinery/modular_computer/preset/civilian, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "rZa" = ( /obj/structure/table, /turf/open/floor/plating, @@ -60421,16 +62532,16 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) -"rZP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, -/area/station/commons/lounge) "rZR" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) +"rZY" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "rZZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/blue/filled/warning{ @@ -60443,6 +62554,57 @@ dir = 4 }, /area/station/service/chapel) +"sav" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/service/bar) +"saC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/fore) +"saF" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"saO" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/storage) +"saR" = ( +/obj/structure/closet, +/obj/item/bodybag, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"saX" = ( +/obj/machinery/button/door/directional/west{ + id = "executionfireblast"; + name = "Transfer Area Lockdown"; + pixel_y = -6; + req_access = list("brig") + }, +/obj/structure/railing, +/obj/machinery/door/window/left/directional/south, +/obj/machinery/button/flasher{ + pixel_x = -24; + pixel_y = 5; + id = "executionflash" + }, +/turf/open/floor/plating/icemoon, +/area/station/security/execution/education) "sbc" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -60471,26 +62633,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"sbf" = ( -/obj/structure/sign/plaques/kiddie/devils_tooth{ - pixel_y = 32 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "sbi" = ( /obj/machinery/newscaster/directional/north, /obj/machinery/photocopier, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"sbv" = ( -/obj/structure/closet/secure_closet/personal{ - anchored = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/directional/south, -/obj/structure/sign/clock/directional/south, -/turf/open/floor/iron, -/area/station/commons/locker) "sby" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -60524,26 +62671,24 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) -"sbO" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/decal/cleanable/dirt, -/obj/item/seeds/onion, -/obj/effect/turf_decal/tile/green/anticorner/contrasted, -/turf/open/floor/iron/dark, -/area/mine/laborcamp) +"sbP" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "sbU" = ( /obj/machinery/vending/cigarette, /turf/open/floor/iron/dark, /area/mine/eva) -"sbZ" = ( -/obj/machinery/door/airlock/external{ - name = "External Access" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 +"sbY" = ( +/obj/structure/table, +/obj/item/newspaper, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) +/obj/structure/secure_safe/directional/east, +/turf/open/floor/iron, +/area/station/commons/vacant_room/commissary) "sca" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -60552,6 +62697,14 @@ }, /turf/open/floor/plating, /area/station/science/genetics) +"scb" = ( +/obj/structure/toilet/greyscale{ + cistern_open = 1; + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/toilet) "scl" = ( /obj/structure/bookcase/random, /turf/open/floor/carpet/red, @@ -60573,14 +62726,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"scr" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/structure/sign/warning/gas_mask/directional/south, -/obj/machinery/light/warm/directional/south, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "scu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -60601,19 +62746,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/tcommsat/computer) -"scG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sink/directional/south, -/obj/structure/mirror/directional/north, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) -"scQ" = ( -/obj/structure/tank_holder/oxygen, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/vault, -/area/station/security/prison/rec) "scV" = ( /obj/machinery/camera/directional/north{ c_tag = "Security - Detective's Office" @@ -60622,15 +62754,12 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"sdc" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/r_wall, -/area/mine/eva) -"sdk" = ( -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/station/service/chapel) +"sdf" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance/two, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) "sdl" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 5 @@ -60641,13 +62770,38 @@ /area/station/science/ordnance) "sdr" = ( /obj/structure/transit_tube/horizontal, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"sds" = ( +/obj/structure/fence/corner{ + dir = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "sdE" = ( /obj/structure/chair/pew/left, /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/security/prison/rec) +"sdF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/item/grown/log/tree, +/obj/item/grown/log/tree{ + pixel_y = 5; + pixel_x = 7 + }, +/obj/item/grown/log/tree{ + pixel_x = 7 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "sdW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -60678,10 +62832,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"sed" = ( -/obj/structure/flora/rock/icy/style_random, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "sen" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -60691,17 +62841,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/courtroom) -"seB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/commons/fitness) "seH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60711,13 +62850,27 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"seN" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/dark/side{ +"seL" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/assembly/infra{ + pixel_x = 3 + }, +/obj/item/assembly/igniter{ + pixel_y = -2 + }, +/obj/effect/turf_decal/trimline/neutral/warning, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/item/assembly/signaler, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/area/station/service/chapel) +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark/smooth_edge, +/area/station/ai_monitored/command/storage/eva) "seR" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -60741,17 +62894,29 @@ /obj/structure/cable, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"sfd" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/bottle/fluorine{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bottle/epinephrine{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bottle/iodine{ + pixel_x = 1 + }, +/obj/structure/sign/warning/chem_diamond/directional/west, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/medical/chem_storage) "sfr" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, /turf/open/floor/iron/large, /area/station/hallway/secondary/entry) -"sft" = ( -/obj/machinery/holopad, -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/turf_decal/bot_white, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "sfv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, @@ -60769,31 +62934,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"sfz" = ( -/obj/structure/railing, -/obj/item/storage/toolbox/mechanical{ - pixel_y = 3 - }, -/obj/item/multitool{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/assembly/signaler{ - pixel_x = 5; - pixel_y = 4 - }, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 +"sfF" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Security - Lower Hallway North"; + network = list("ss13","prison") }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) -"sfD" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light/directional/east, +/obj/structure/sign/warning/electric_shock/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "sfY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60805,12 +62957,6 @@ dir = 5 }, /area/station/science/research) -"sgz" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "sgA" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60829,6 +62975,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"sgL" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/station/command/heads_quarters/rd) "sgT" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue{ @@ -60888,6 +63041,7 @@ /obj/effect/turf_decal/trimline/brown/filled/end{ dir = 1 }, +/obj/structure/sign/warning/no_smoking/circle/directional/south, /turf/open/floor/iron, /area/station/medical/medbay/aft) "shB" = ( @@ -60898,6 +63052,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"shF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "shG" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -60908,17 +63067,21 @@ /obj/structure/transit_tube/curved{ dir = 8 }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"shT" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/weather/snow/corner{ dir = 1 }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/cafeteria{ +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"shR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/area/station/hallway/secondary/entry) +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "sil" = ( /obj/machinery/door/airlock/public/glass{ name = "Art Gallery" @@ -60931,18 +63094,6 @@ /obj/item/storage/toolbox/emergency, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"siv" = ( -/obj/structure/sign/warning/electric_shock/directional/east, -/obj/machinery/camera/directional/east{ - c_tag = "Security - Lower Hallway North"; - network = list("ss13","prison") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red, -/obj/machinery/light/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/central/fore) "six" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -60958,14 +63109,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"siz" = ( -/obj/machinery/holopad, -/obj/machinery/duct, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/large, -/area/station/engineering/lobby) "siI" = ( /obj/machinery/space_heater, /obj/effect/decal/cleanable/dirt, @@ -60974,47 +63117,67 @@ "sjb" = ( /turf/closed/wall/r_wall, /area/station/cargo/drone_bay) +"sjd" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Service External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"sjh" = ( +/obj/structure/fence/door/opened, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "sjk" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 6 }, /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/pumproom) -"sjx" = ( -/obj/effect/turf_decal/trimline/yellow/end{ - dir = 1 - }, -/obj/machinery/exodrone_launcher, -/obj/item/fuel_pellet, -/obj/effect/turf_decal/trimline/yellow/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/mid_joiner{ +"sjl" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/railing/corner, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron/cafeteria{ dir = 8 }, -/obj/effect/turf_decal/trimline/yellow/mid_joiner{ - dir = 1 +/area/station/science/ordnance/office) +"sjp" = ( +/obj/effect/spawner/random/structure/chair_flipped, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/plaques/kiddie/perfect_drone{ + pixel_x = 32 }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/smooth_large, -/area/station/cargo/drone_bay) -"sjU" = ( -/obj/structure/sign/warning/docking/directional/east, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"sjX" = ( +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) +"sjz" = ( +/obj/structure/chair/sofa/bench/left, /obj/effect/turf_decal/stripes/line{ - dir = 8 + dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/white/corner{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/medical/treatment_center) +/area/station/hallway/secondary/entry) "skc" = ( /obj/machinery/door/airlock/external{ name = "Port Docking Bay 1"; @@ -61046,20 +63209,10 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/storage/gas) -"skw" = ( -/obj/machinery/computer/security/qm, -/obj/machinery/requests_console/directional/west{ - department = "Quartermaster's Desk"; - name = "Quartermaster's Desk Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) +"skr" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "skx" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ dir = 4 @@ -61067,42 +63220,19 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"skH" = ( -/obj/structure/disposalpipe/segment, +"skI" = ( +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/white/corner{ - dir = 4 - }, -/obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white/textured_half, -/area/station/service/kitchen) +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "skJ" = ( /obj/structure/grille/broken, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"skQ" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) -"skU" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/holopad, -/obj/effect/turf_decal/box/white{ - color = "#52B4E9" - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "skW" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, @@ -61141,6 +63271,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"slh" = ( +/obj/structure/table, +/obj/item/flashlight, +/obj/item/flashlight{ + pixel_y = 13 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "sll" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -61155,6 +63293,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) +"sln" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "slp" = ( /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -61164,19 +63311,19 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) -"slx" = ( -/obj/structure/sign/warning/fire/directional/west, -/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ - dir = 8 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/station/medical/virology) "slD" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) +"slP" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/captain) "slX" = ( /obj/structure/fans/tiny, /obj/effect/turf_decal/stripes/red/box, @@ -61205,6 +63352,17 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/commons/locker) +"smp" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/structure/sign/clock/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms/laundry) "smr" = ( /obj/machinery/door/airlock/engineering{ name = "Port Bow Solar Access" @@ -61233,24 +63391,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel) -"smI" = ( -/obj/structure/chair{ - dir = 1; - name = "Command Station" - }, -/obj/machinery/button/door{ - id = "bridge blast"; - name = "Bridge Blast Door Control"; - pixel_x = 28; - pixel_y = -2; - req_access = list("command") - }, -/obj/machinery/keycard_auth{ - pixel_x = 29; - pixel_y = 8 - }, -/turf/open/floor/iron, -/area/station/command/bridge) +"sna" = ( +/obj/item/kirbyplants/fern, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "snd" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 1 @@ -61289,14 +63434,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"snv" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "riot"; - name = "Security Shutters" - }, -/turf/open/floor/glass/reinforced, -/area/station/hallway/primary/fore) "snw" = ( /obj/structure/table, /obj/machinery/microwave, @@ -61332,15 +63469,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"snR" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "snW" = ( /obj/machinery/computer/atmos_control/oxygen_tank{ dir = 1 @@ -61358,6 +63486,21 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) +"sop" = ( +/obj/structure/table, +/obj/structure/frame/machine, +/obj/item/stack/cable_coil/five, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"soq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/iron/dark/side, +/area/mine/eva/lower) "sou" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61367,6 +63510,20 @@ }, /turf/open/floor/iron/white, /area/station/maintenance/aft/greater) +"soz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Research Division Lobby"; + network = list("ss13","rd") + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "soA" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers{ @@ -61381,6 +63538,17 @@ /obj/effect/turf_decal/trimline/green/filled/corner, /turf/open/floor/iron/white, /area/station/medical/virology) +"soE" = ( +/obj/structure/reagent_dispensers/plumbed{ + name = "service reservoir" + }, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/turf_decal/delivery/white{ + color = "#307db9" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/textured, +/area/station/maintenance/starboard/fore) "soF" = ( /obj/effect/turf_decal/trimline/dark_red/corner{ dir = 8 @@ -61397,6 +63565,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) +"soI" = ( +/obj/machinery/door/window/left/directional/east{ + name = "Fitness Ring" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/white{ + dir = 6 + }, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) "soK" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 9 @@ -61414,6 +63594,12 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) +"soR" = ( +/obj/machinery/icecream_vat, +/obj/structure/sign/clock/directional/north, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "spg" = ( /obj/structure/table, /obj/item/storage/box/monkeycubes{ @@ -61440,14 +63626,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) -"spj" = ( -/obj/effect/turf_decal/tile/neutral/diagonal_edge, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/landmark/start/cook, -/turf/open/floor/iron/kitchen/diagonal, -/area/station/service/kitchen) "spv" = ( /obj/structure/window/reinforced/plasma/spawner/directional/east, /obj/structure/cable, @@ -61455,26 +63633,16 @@ /obj/machinery/power/energy_accumulator/tesla_coil/anchored, /turf/open/floor/engine, /area/station/engineering/supermatter) -"spV" = ( -/obj/machinery/recharger, -/obj/structure/sign/warning/biohazard/directional/east, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 1 - }, +"spy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, -/area/station/command/gateway) -"spW" = ( -/obj/structure/sign/painting/library_secure{ - pixel_x = 32 - }, -/obj/machinery/door/window/left/directional/west{ - name = "Secure Art Exhibition"; - req_access = list("library") - }, -/obj/effect/spawner/random/structure/table_fancy, -/turf/open/floor/wood, -/area/station/service/library) +/area/station/commons/fitness) +"spz" = ( +/obj/structure/chair/wood, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "sqb" = ( /obj/item/coin/iron{ pixel_y = -5 @@ -61504,12 +63672,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"sqq" = ( -/obj/structure/table, -/obj/item/electronics/apc, -/obj/item/electronics/airlock, -/turf/open/floor/plating, -/area/station/engineering/storage/tech) "sqt" = ( /turf/open/floor/iron/dark, /area/station/science/ordnance/office) @@ -61525,17 +63687,6 @@ dir = 8 }, /area/station/service/chapel) -"sqH" = ( -/obj/machinery/door/airlock/research/glass/incinerator/ordmix_interior{ - name = "Burn Chamber Interior Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/airlock_controller/incinerator_ordmix{ - pixel_x = 24 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/engine, -/area/station/science/ordnance/burnchamber) "sqN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61543,11 +63694,6 @@ /obj/structure/grille/broken, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"sqU" = ( -/obj/machinery/newscaster/directional/west, -/obj/machinery/keycard_auth/directional/south, -/turf/open/floor/wood, -/area/station/command/heads_quarters/captain) "sqW" = ( /obj/structure/marker_beacon/burgundy{ name = "landing marker" @@ -61605,6 +63751,21 @@ /obj/structure/cable, /turf/closed/wall/r_wall, /area/station/maintenance/port/aft) +"srw" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) +"sry" = ( +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/medical/morgue) "srB" = ( /obj/machinery/airalarm/directional/west, /obj/effect/landmark/start/bitrunner, @@ -61612,35 +63773,9 @@ /obj/effect/decal/cleanable/robot_debris, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/bitrunning/den) -"srG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"srM" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/virology) "srP" = ( /turf/closed/wall, /area/station/science/breakroom) -"srU" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/junction{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "srW" = ( /obj/structure/table, /obj/item/assembly/prox_sensor{ @@ -61673,13 +63808,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/office) -"ssg" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Cargo Bay North" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/cargo/storage) "ssh" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ dir = 4 @@ -61690,27 +63818,23 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"ssm" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/closet/firecloset, -/obj/structure/sign/warning/gas_mask/directional/west, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) +"ssj" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/icemoon, +/area/icemoon/underground/explored) "ssq" = ( /obj/structure/table/wood, /obj/item/camera_film, /obj/item/camera_film, /turf/open/floor/wood, /area/station/service/library) -"ssr" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall/r_wall, -/area/station/engineering/storage/tech) -"ssu" = ( -/obj/structure/gulag_vent/ice, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +"sst" = ( +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 4 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "ssv" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/thinplating_new/corner, @@ -61724,6 +63848,13 @@ dir = 1 }, /area/station/ai_monitored/command/storage/eva) +"ssH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "ssM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61738,10 +63869,6 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) -"stb" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/white, -/area/station/science/ordnance) "sth" = ( /obj/item/radio/intercom/directional/east, /obj/structure/disposalpipe/trunk{ @@ -61784,16 +63911,6 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"stB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/fore) "stD" = ( /obj/machinery/door/poddoor/preopen{ id = "atmos"; @@ -61807,13 +63924,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"stI" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "stJ" = ( /obj/structure/flora/grass/brown/style_random, /turf/open/misc/asteroid/snow/icemoon, @@ -61862,17 +63972,26 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"sup" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/gas_mask, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"sus" = ( -/obj/structure/table, -/obj/effect/spawner/random/maintenance/two, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/fore) +"sul" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) +"suo" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster/directional/west, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap{ + pixel_y = 3 + }, +/obj/item/storage/photo_album/bar, +/obj/item/toy/figure/bartender, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "suA" = ( /obj/structure/closet/crate/coffin, /obj/effect/decal/cleanable/dirt, @@ -61880,6 +63999,15 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"suF" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/stairs/south, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/commons/lounge) "suL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61928,6 +64056,13 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) +"svx" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "svy" = ( /obj/effect/decal/cleanable/oil, /obj/item/stack/ore/glass, @@ -61936,13 +64071,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_large, /area/station/cargo/warehouse) -"svz" = ( -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 9 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) "svF" = ( /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) @@ -61956,6 +64084,17 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"svR" = ( +/obj/machinery/computer/records/security, +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/obj/structure/fireaxecabinet/directional/north, +/turf/open/floor/iron, +/area/station/command/bridge) +"svV" = ( +/obj/machinery/space_heater, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/central) "swa" = ( /obj/machinery/light/directional/east, /turf/open/floor/engine, @@ -61972,12 +64111,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/range) -"swe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "swf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62029,6 +64162,7 @@ /obj/machinery/power/terminal, /obj/machinery/light/small/directional/east, /obj/structure/cable, +/obj/structure/sign/warning/electric_shock/directional/east, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) "swu" = ( @@ -62046,13 +64180,6 @@ "swF" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/aisat_interior) -"swI" = ( -/obj/machinery/medical_kiosk, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "swK" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62078,12 +64205,18 @@ }, /turf/open/floor/plating, /area/station/cargo/warehouse) -"sxe" = ( -/obj/structure/fence{ - dir = 4 +"sxs" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/closet/crate/freezer/blood, +/turf/open/floor/iron/white, +/area/station/medical/cryo) +"sxt" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 6 }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) "sxu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62100,6 +64233,7 @@ /area/station/medical/medbay/aft) "sxF" = ( /obj/structure/chair/stool/directional/north, +/obj/structure/sign/warning/electric_shock/directional/west, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) "sxO" = ( @@ -62109,15 +64243,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"sxQ" = ( -/obj/structure/sign/warning/electric_shock/directional/east, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"sxT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/security/prison/rec) "sxY" = ( /obj/structure/cable/multilayer/multiz, /obj/structure/window/reinforced/spawner/directional/south, @@ -62131,28 +64256,12 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/science/research) -"syd" = ( -/obj/machinery/duct, -/obj/machinery/firealarm/directional/south, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) "syh" = ( /obj/structure/chair/pew/right{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"sym" = ( -/obj/structure/plasticflaps, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/turf/open/floor/plating, -/area/station/cargo/storage) "syn" = ( /obj/effect/turf_decal/tile/neutral/diagonal_centre, /obj/machinery/atmospherics/pipe/multiz/violet/visible{ @@ -62161,6 +64270,26 @@ /obj/effect/turf_decal/tile/dark_green/diagonal_edge, /turf/open/floor/iron/dark/diagonal, /area/station/engineering/atmos/mix) +"sys" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) +"syv" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/treatment_center) "syw" = ( /obj/structure/fence/corner{ dir = 4 @@ -62175,11 +64304,49 @@ dir = 8 }, /area/station/security/prison) +"syC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/commons/fitness) "syE" = ( /obj/effect/turf_decal/trimline/green/filled/corner, /obj/effect/turf_decal/trimline/blue/corner, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"syG" = ( +/obj/structure/fence{ + dir = 2; + pixel_y = 0 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"syI" = ( +/obj/effect/turf_decal/siding/white/end{ + dir = 8 + }, +/obj/structure/table, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 8; + pixel_x = 3 + }, +/obj/item/food/grown/eggplant{ + pixel_y = 5; + pixel_x = 5 + }, +/obj/item/food/grown/mushroom/chanterelle{ + pixel_y = 3 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "syL" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -62205,14 +64372,6 @@ /obj/effect/spawner/structure/window/hollow/reinforced/end, /turf/open/floor/plating, /area/station/medical/morgue) -"szj" = ( -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/floor/iron/stairs/old{ - dir = 8 - }, -/area/station/hallway/primary/starboard) "szo" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -62222,25 +64381,11 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"szt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/structure/sign/clock/directional/south, -/turf/open/floor/iron, -/area/station/commons/fitness) "szu" = ( /obj/structure/sign/poster/official/obey/directional/north, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"szz" = ( -/obj/machinery/newscaster/directional/north, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) "szD" = ( /obj/effect/turf_decal/trimline/green/filled/end, /obj/effect/decal/cleanable/dirt, @@ -62253,14 +64398,6 @@ /obj/structure/sign/warning/cold_temp/directional/north, /turf/open/floor/iron/smooth, /area/station/cargo/warehouse) -"szK" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "szR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62278,13 +64415,13 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/commons/dorms/laundry) -"sAa" = ( -/obj/structure/stairs/north, -/obj/structure/railing{ - dir = 4 +"sAd" = ( +/obj/structure/fence/post{ + dir = 8; + pixel_y = 0 }, -/turf/open/floor/iron, -/area/mine/eva/lower) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "sAj" = ( /obj/machinery/photocopier, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -62293,6 +64430,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/security/office) +"sAt" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/food_or_drink/snack, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "sAu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -62305,14 +64448,6 @@ /obj/machinery/vending/cigarette, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"sAI" = ( -/obj/machinery/camera{ - c_tag = "Morgue Hallway" - }, -/obj/effect/landmark/start/hangover, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "sAR" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -62325,6 +64460,11 @@ "sAS" = ( /turf/closed/wall, /area/station/commons/storage/art) +"sBd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "sBi" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -62353,14 +64493,18 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/iron, /area/station/security/prison/workout) -"sBx" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/lattice/catwalk, -/turf/open/openspace, -/area/station/science/xenobiology) "sBy" = ( /turf/closed/wall, /area/station/service/theater) +"sBH" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Security - Lower Brig Hallway" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "sBJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/showroomfloor, @@ -62379,14 +64523,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) -"sBY" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/spawner/random/trash/crushed_can{ - pixel_y = 10 - }, -/turf/open/floor/iron, -/area/station/service/bar) "sCa" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 5 @@ -62394,6 +64530,16 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/dark/textured, /area/station/security/prison/rec) +"sCb" = ( +/obj/structure/minecart_rail{ + dir = 6 + }, +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) "sCm" = ( /obj/machinery/power/terminal{ dir = 1 @@ -62420,6 +64566,21 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"sCz" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "chem-morgue-airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/obj/machinery/door/airlock/external{ + name = "Lower Medical External Access"; + dir = 8 + }, +/turf/open/floor/plating, +/area/station/medical/morgue) "sCA" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -62436,6 +64597,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"sCK" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/surface/outdoors/nospawn) "sCQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62445,14 +64610,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"sCX" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "sCZ" = ( /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"sDd" = ( +/obj/effect/landmark/start/hangover, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "sDg" = ( /obj/effect/turf_decal/siding/purple/corner{ dir = 1 @@ -62474,14 +64640,10 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"sDM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +"sDB" = ( +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/science/cytology) "sDQ" = ( /obj/item/radio/intercom/prison/directional/north, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -62500,13 +64662,21 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"sEg" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +"sDV" = ( +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; + name = "AI Upload Turret Control"; + pixel_y = -25 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Bridge Center" + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/sign/poster/random/directional/west, -/turf/open/floor/iron/large, -/area/station/hallway/secondary/entry) +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron, +/area/station/command/bridge) "sEi" = ( /turf/open/floor/carpet, /area/station/service/library) @@ -62527,10 +64697,6 @@ }, /turf/open/floor/plating, /area/mine/living_quarters) -"sEv" = ( -/obj/item/flashlight/lantern/on, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "sEz" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -62572,11 +64738,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"sEI" = ( -/obj/machinery/light/small/dim/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/medical/morgue) "sEK" = ( /obj/structure/table/glass, /obj/item/stack/medical/gauze{ @@ -62595,6 +64756,13 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) +"sEN" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 8 + }, +/obj/structure/sign/warning/biohazard/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/station/medical/virology) "sEO" = ( /obj/machinery/light/floor, /turf/open/floor/iron/smooth, @@ -62651,14 +64819,12 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"sFN" = ( -/obj/structure/sign/warning/electric_shock/directional/south, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 +"sFJ" = ( +/obj/structure/fence/post{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "sFS" = ( /obj/structure/railing/corner{ dir = 8 @@ -62674,37 +64840,11 @@ dir = 1 }, /area/station/ai_monitored/command/storage/eva) -"sGf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/door/window/brigdoor/right/directional/west{ - name = "Medbay Access"; - req_access = list("medical") - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "sGk" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/sign/poster/random/directional/south, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"sGn" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "sGp" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -62730,6 +64870,10 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/mining) +"sGw" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/genturf/blue, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "sGE" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 4 @@ -62739,6 +64883,15 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/mine/living_quarters) +"sGG" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Cart Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/kitchen, +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/obj/structure/barricade/wooden/snowed, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "sGH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62764,19 +64917,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"sGM" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/east, -/obj/structure/sign/warning/directional/east, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/port/lesser) +"sGL" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) +"sGT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "sGZ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"sHa" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/bureaucracy/briefcase, +/obj/item/taperecorder/empty, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "sHc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/medical/glass{ @@ -62790,38 +64949,36 @@ /obj/effect/turf_decal/tile/yellow/full, /turf/open/floor/iron/large, /area/station/medical/pharmacy) +"sHe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/airlock/engineering{ + name = "Utilities Room" + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "sHh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/chapel) -"sHi" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 6 - }, -/turf/open/floor/iron/checker, -/area/station/hallway/secondary/service) "sHl" = ( /obj/machinery/vending/coffee, /obj/item/radio/intercom/directional/south, /turf/open/floor/stone, /area/mine/eva/lower) "sHs" = ( -/obj/effect/turf_decal/tile/neutral/diagonal_edge, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/kitchen/diagonal, -/area/station/service/kitchen) -"sHy" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/commons/storage/primary) +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) +"sHt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/caution_sign, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "sHC" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62856,32 +65013,22 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"sHV" = ( -/obj/machinery/atmospherics/components/tank/air{ - initialize_directions = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "sHX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/mine/mechbay) -"sIg" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"sIp" = ( -/obj/structure/closet/radiation, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 - }, -/obj/machinery/light/directional/north, +"sIb" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/light/warm/directional/north, +/obj/machinery/digital_clock/directional/north, /turf/open/floor/iron, -/area/station/engineering/main) +/area/station/service/bar) +"sIl" = ( +/obj/structure/flora/bush/flowers_yw/style_random, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics) "sIt" = ( /turf/closed/wall, /area/station/maintenance/central/lesser) @@ -62923,39 +65070,23 @@ /obj/structure/cable, /turf/open/floor/plating, /area/mine/storage) -"sIX" = ( -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, -/obj/machinery/door/airlock/hydroponics/glass{ - name = "Garden" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 +"sIZ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/turf/open/floor/iron/textured, -/area/station/service/hydroponics) +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "sJe" = ( /obj/machinery/deepfryer, /obj/machinery/light/warm/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"sJg" = ( -/obj/effect/turf_decal/siding/white{ - dir = 4 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "sJi" = ( /obj/machinery/vending/donksofttoyvendor, /turf/open/floor/iron/dark/textured, /area/station/security/prison/safe) -"sJn" = ( -/obj/structure/closet/emcloset, -/obj/structure/sign/warning/gas_mask/directional/west, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/miningdock) "sJq" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/tile/yellow{ @@ -62981,21 +65112,6 @@ }, /turf/open/floor/plating/icemoon, /area/station/security/execution/education) -"sJu" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/spawner/random/trash/graffiti{ - pixel_y = 32 - }, -/obj/effect/mapping_helpers/burnt_floor, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "sJA" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -63004,29 +65120,29 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"sJC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sink/directional/south, +/obj/structure/mirror/directional/north, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "sJH" = ( /turf/closed/wall, /area/mine/living_quarters) -"sJP" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/rack, -/obj/item/controller{ - pixel_x = -7 - }, -/obj/item/compact_remote{ - pixel_x = -7 - }, -/obj/item/compact_remote{ - pixel_x = -7 - }, -/obj/item/integrated_circuit/loaded/speech_relay{ - pixel_x = 7 +"sJI" = ( +/obj/structure/closet/crate/wooden, +/obj/item/camera_film{ + pixel_x = -4; + pixel_y = 4 }, -/obj/item/integrated_circuit/loaded/hello_world{ - pixel_x = 7 +/obj/item/camera, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/iron/white/corner, -/area/station/science/explab) +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) "sJR" = ( /obj/machinery/door/airlock/security/glass{ name = "Labor Camp Airlock" @@ -63065,6 +65181,11 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood, /area/station/command/meeting_room) +"sKT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron, +/area/station/security/prison/workout) "sKW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -63091,25 +65212,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/security/processing) -"sLm" = ( -/obj/structure/chair/sofa/left/brown{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"sLy" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "sLD" = ( /obj/structure/table/reinforced, /obj/item/stack/sheet/iron/fifty, @@ -63158,6 +65260,11 @@ dir = 1 }, /area/station/security/prison) +"sMy" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "sML" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -63173,6 +65280,12 @@ dir = 1 }, /area/station/security/office) +"sNj" = ( +/obj/machinery/light_switch/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "sNr" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "permainner"; @@ -63225,6 +65338,13 @@ /obj/structure/marker_beacon/burgundy, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"sNF" = ( +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = -4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "sNI" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -63232,22 +65352,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) -"sNQ" = ( +"sNL" = ( +/obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/mapping_helpers/airlock/access/any/security/general, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"sOd" = ( +/obj/structure/table, +/obj/item/stack/cable_coil, +/obj/effect/turf_decal/bot, /turf/open/floor/iron, -/area/station/command/bridge) +/area/station/engineering/atmos/storage) "sOm" = ( /obj/structure/railing{ dir = 4 @@ -63288,11 +65407,6 @@ }, /turf/open/floor/iron, /area/station/cargo/office) -"sON" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "sOO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -63303,12 +65417,6 @@ /obj/item/kitchen/fork/plastic, /turf/open/floor/iron, /area/station/security/prison/mess) -"sOX" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/lesser) "sOY" = ( /obj/structure/table/glass, /obj/item/hemostat, @@ -63316,6 +65424,15 @@ /obj/item/storage/bag/trash, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"sPq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "rnd2"; + name = "Research Lab Shutters" + }, +/turf/open/floor/plating, +/area/station/science/ordnance/office) "sPA" = ( /obj/structure/rack, /obj/item/storage/bag/ore, @@ -63327,6 +65444,18 @@ /obj/item/clothing/suit/hooded/wintercoat, /turf/open/floor/iron, /area/mine/laborcamp) +"sPE" = ( +/obj/machinery/conveyor{ + id = "mining_internal" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/mine/production) "sPG" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -63334,26 +65463,18 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"sPK" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = -6 - }, -/obj/machinery/button/door{ - id = "BrigLock"; - name = "Cell Shutters"; - pixel_x = 7; - pixel_y = 9 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/security/warden) -"sPS" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +"sPJ" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/medbay/aft) "sPV" = ( /obj/machinery/door/airlock/atmos/glass, /obj/machinery/door/firedoor/heavy, @@ -63402,32 +65523,56 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"sRc" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +"sQI" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 1 }, -/obj/effect/turf_decal/siding/white{ +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) +"sQS" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"sRu" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 10 }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, -/area/station/commons/fitness) -"sRf" = ( -/obj/effect/turf_decal/siding/wood{ +/area/station/service/hydroponics) +"sRw" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, /obj/structure/cable, -/turf/open/floor/wood/parquet, -/area/station/service/theater) -"sRp" = ( -/obj/structure/fence, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 +/turf/open/floor/iron, +/area/station/service/bar) +"sRz" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Service - Coldroom" }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/service/kitchen/coldroom) "sRI" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -63467,16 +65612,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison/workout) -"sSA" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/surface/outdoors/nospawn) -"sSE" = ( -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron/white/side{ - dir = 1 - }, -/area/station/science/research) "sSF" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -63485,6 +65620,19 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) +"sSN" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Engineering External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "Engineering-External" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/smooth, +/area/station/engineering/lobby) "sSO" = ( /obj/machinery/light/small/directional/south, /obj/structure/closet/secure_closet/brig{ @@ -63505,10 +65653,25 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"sSS" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) +"sSX" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table, +/obj/item/paper{ + pixel_y = 4 + }, +/obj/item/pen{ + pixel_x = -5 + }, +/turf/open/floor/iron, +/area/station/service/kitchen/coldroom) +"sTb" = ( +/obj/structure/railing/wooden_fence, +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "sTe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ @@ -63537,6 +65700,19 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/fore) +"sTl" = ( +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/structure/minecart_rail{ + dir = 1 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "sTn" = ( /obj/structure/table, /obj/machinery/newscaster/directional/north, @@ -63560,6 +65736,30 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) +"sTA" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/sepia, +/area/station/service/library) +"sTH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"sTL" = ( +/obj/structure/fireplace{ + pixel_x = 0 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/stone, +/area/station/commons/lounge) "sTO" = ( /obj/machinery/door/airlock{ name = "Unisex Restroom" @@ -63573,20 +65773,6 @@ /obj/structure/microscope, /turf/open/floor/iron/grimy, /area/station/security/prison/work) -"sTV" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Teleporter Maintenance" - }, -/obj/structure/sign/warning/secure_area/directional/west, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "sUb" = ( /obj/machinery/door/airlock/security/glass{ name = "Permabrig Visitation" @@ -63596,15 +65782,6 @@ /obj/effect/mapping_helpers/airlock/access/any/security/brig, /turf/open/floor/iron, /area/station/security/prison/visit) -"sUi" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "sUv" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -63621,6 +65798,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/structure/sign/warning/cold_temp/directional/east, /turf/open/floor/iron/smooth, /area/mine/eva) "sUN" = ( @@ -63643,24 +65821,16 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"sVf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 +"sVi" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Research Break Room" }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/door/firedoor{ dir = 8 }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/genetics) +/turf/open/floor/iron/dark, +/area/station/science/breakroom) "sVm" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 1 @@ -63671,6 +65841,11 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) +"sVA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "sVL" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -63678,8 +65853,26 @@ /area/station/engineering/atmos) "sVN" = ( /obj/item/screwdriver, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"sVW" = ( +/obj/effect/decal/cleanable/garbage, +/obj/item/reagent_containers/spray/chemsprayer/party{ + pixel_x = 1 + }, +/obj/item/clothing/head/costume/festive{ + pixel_y = -3; + pixel_x = -5 + }, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "sWl" = ( /obj/machinery/door/airlock/command{ name = "Chief Medical Officer" @@ -63719,19 +65912,40 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, /turf/open/floor/iron/textured_half, /area/mine/production) -"sWS" = ( -/obj/structure/railing, -/obj/effect/turf_decal/siding/white, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ - id = "cantena_curtains" +"sWN" = ( +/obj/structure/chair{ + dir = 1; + name = "Prosecution" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, /turf/open/floor/wood, -/area/station/commons/lounge) +/area/station/security/courtroom) +"sWO" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "sWU" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, /area/mine/production) +"sXa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "sXb" = ( /obj/machinery/status_display/ai/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -63753,48 +65967,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"sXf" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/table/reinforced, -/obj/item/stack/wrapping_paper{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/stack/package_wrap{ - pixel_x = -1; - pixel_y = -1 - }, -/obj/item/dest_tagger, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/sorting) "sXk" = ( /obj/effect/mapping_helpers/broken_floor, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/maintenance/fore/lesser) -"sXC" = ( -/obj/structure/table, -/obj/machinery/button/ignition{ - id = "testigniter"; - pixel_x = -6; - pixel_y = 2 - }, -/obj/machinery/button/door{ - id = "testlab"; - name = "Test Chamber Blast Doors"; - pixel_x = 4; - pixel_y = 2; - req_access = list("xenobiology") - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/science/explab) "sXK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63818,15 +65996,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) -"sXU" = ( -/obj/structure/table/wood/poker, -/obj/item/toy/cards/deck{ - pixel_y = 13; - pixel_x = 6 - }, -/obj/effect/spawner/random/entertainment/cigarette, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "sYe" = ( /obj/structure/table/wood, /obj/item/clothing/under/suit/red, @@ -63839,19 +66008,24 @@ pixel_y = 4 }, /obj/machinery/light/small/directional/north, +/obj/structure/sign/painting/large/library_private{ + dir = 1 + }, /turf/open/floor/engine/cult, /area/station/service/library) -"sYu" = ( -/obj/machinery/door/firedoor, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 +"sYz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/item/radio/intercom/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/machinery/camera/directional/south{ + c_tag = "Mining B-1 Hallway North"; + network = list("ss13", "mine") + }, +/turf/open/floor/iron/dark/side, +/area/mine/eva) "sYA" = ( /obj/structure/fluff/tram_rail{ pixel_y = 17 @@ -63883,6 +66057,10 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"sZB" = ( +/obj/structure/noticeboard/directional/north, +/turf/open/openspace, +/area/station/service/bar/atrium) "sZD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63948,6 +66126,23 @@ /obj/effect/turf_decal/tile/green/half/contrasted, /turf/open/floor/iron, /area/station/security/prison/garden) +"tav" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/library) +"tay" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/textured_half, +/area/station/service/bar/atrium) +"taC" = ( +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "taN" = ( /obj/item/radio/intercom/directional/west, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -63975,35 +66170,33 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"tbd" = ( -/obj/item/radio/intercom/directional/south, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark/smooth_half, -/area/station/service/hydroponics) "tbh" = ( /turf/open/floor/iron/half{ dir = 1 }, /area/station/engineering/atmos) -"tbE" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/landmark/start/bartender, -/obj/effect/turf_decal/siding/wood{ +"tbl" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, +/obj/structure/sign/departments/lawyer/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) +"tbH" = ( +/obj/structure/table/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, +/area/station/command/heads_quarters/ce) +"tbL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/wood/large, /area/station/service/bar) -"tbK" = ( -/obj/effect/spawner/random/trash/grille_or_waste, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "tbN" = ( /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /obj/machinery/door/airlock/engineering{ @@ -64020,18 +66213,6 @@ "tbQ" = ( /turf/open/floor/iron/grimy, /area/station/maintenance/aft/greater) -"tbR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/hallway/secondary/entry) "tbX" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -64056,6 +66237,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/dark, /area/station/medical/virology) +"tcL" = ( +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/rack, +/obj/item/stack/ducts/fifty, +/obj/item/storage/box/swab, +/obj/effect/spawner/random/contraband/permabrig_gear, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/grimy, +/area/station/security/prison/work) "tcQ" = ( /obj/machinery/camera/directional/west{ c_tag = "Security - Permabrig Recreation"; @@ -64074,13 +66264,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"tda" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 +"tcX" = ( +/obj/structure/railing, +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) +/area/station/science/ordnance) "tdb" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -64089,6 +66279,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"tdc" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/food_or_drink/refreshing_beverage, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "tdp" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -64103,13 +66298,20 @@ }, /turf/open/floor/plating, /area/station/medical/pharmacy) -"tdL" = ( -/obj/structure/stairs/south, -/obj/structure/railing{ +"tdI" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner{ dir = 8 }, -/turf/open/floor/iron/white, -/area/station/medical/virology) +/obj/structure/railing/corner, +/obj/structure/sign/warning/directional/north, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) +"tdK" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/sign/departments/engineering/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "tdR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -64118,39 +66320,47 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/service/chapel) -"tec" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "botany_apiary"; - name = "Apiary Shutters" +"tdU" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/service/hydroponics) -"ted" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/box/white{ - color = "#52B4E9" +/obj/machinery/barsign/directional/north, +/turf/open/floor/iron, +/area/station/service/bar) +"tdY" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/power_store/cell/high, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) +/turf/open/floor/iron/dark, +/area/station/commons/storage/primary) +"tec" = ( +/obj/structure/cable, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "tei" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/carpet/red, /area/station/security/prison/work) -"tej" = ( -/obj/structure/fence, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) -"tes" = ( -/obj/effect/spawner/random/trash/graffiti{ - pixel_y = -30 +"teq" = ( +/obj/structure/railing, +/obj/structure/rack, +/obj/structure/cable, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/effect/spawner/random/armory/dragnet, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory/upper) "teE" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/poddoor/shutters{ @@ -64171,6 +66381,17 @@ dir = 4 }, /area/station/security/brig/entrance) +"teQ" = ( +/obj/machinery/chem_master{ + name = "CytoMaster 5000" + }, +/obj/item/swab{ + pixel_y = 10; + pixel_x = -2 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "teZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64179,23 +66400,24 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"tfm" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/aft) -"tfu" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall, -/area/station/maintenance/starboard/fore) +"tfk" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"tfl" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + desc = "Used to grind things up into raw materials and liquids."; + pixel_y = 5 + }, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/science/xenobiology) "tfx" = ( /obj/machinery/portable_atmospherics/canister/water_vapor, /turf/open/floor/iron, /area/station/service/janitor) -"tfG" = ( -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "tfM" = ( /obj/structure/chair/office/light{ dir = 1 @@ -64234,8 +66456,20 @@ /obj/effect/turf_decal/tile/brown/opposingcorners{ dir = 1 }, +/obj/machinery/button/door/directional/east{ + id = "commissarydoor"; + name = "Commissary Door Lock"; + normaldoorcontrol = 1; + specialfunctions = 4; + pixel_x = 35 + }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"tgj" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/trash/janitor_supplies, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "tgn" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -64245,6 +66479,13 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"tgv" = ( +/obj/machinery/skill_station, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/requests_console/auto_name/directional/north, +/turf/open/floor/iron/sepia, +/area/station/service/library) "tgx" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -64270,6 +66511,19 @@ "thA" = ( /turf/open/genturf/blue, /area/icemoon/underground/unexplored/rivers/deep/shoreline) +"thC" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/open/floor/plating, +/area/station/engineering/engine_smes) "thD" = ( /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, @@ -64306,6 +66560,15 @@ /obj/effect/turf_decal/tile/purple/half/contrasted, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"thP" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/decal/cleanable/ash, +/obj/item/rack_parts, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "thW" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/wood, @@ -64341,46 +66604,13 @@ dir = 10 }, /area/station/science/lab) -"tie" = ( -/obj/structure/rack, -/obj/item/clothing/suit/utility/beekeeper_suit, -/obj/item/clothing/head/utility/beekeeper_head, -/obj/item/melee/flyswatter, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ - dir = 4 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"til" = ( -/obj/item/radio/intercom/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/mine/eva) -"tip" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Fitness" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ +"tii" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/commons/fitness) +/obj/item/kirbyplants/organic/plant2, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "tis" = ( /obj/structure/window/reinforced/fulltile, /obj/structure/transit_tube/horizontal, @@ -64390,12 +66620,39 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/chapel) +"tiI" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/fitness) +"tiT" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "tiV" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/iron, /area/station/service/chapel) +"tiX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plastic, +/area/station/commons/dorms/laundry) "tiY" = ( /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/weather/snow/corner{ @@ -64414,6 +66671,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/engineering/atmos/storage) +"tjf" = ( +/obj/structure/fence/door, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "tjk" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -64435,10 +66696,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"tjA" = ( -/obj/machinery/smartfridge, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +"tjv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "tjC" = ( /obj/machinery/airalarm/directional/south, /obj/effect/turf_decal/tile/red/half/contrasted, @@ -64446,13 +66712,38 @@ dir = 1 }, /area/station/security/prison) +"tjG" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/item/gun/ballistic/shotgun/doublebarrel, +/obj/structure/rack, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/box/red, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "tjH" = ( /obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/siding/yellow, +/obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron/half{ dir = 1 }, /area/station/engineering/storage) +"tjM" = ( +/obj/structure/table/wood, +/obj/item/soap/deluxe{ + pixel_y = 11 + }, +/obj/item/soap/deluxe{ + pixel_y = 6 + }, +/obj/item/soap/deluxe, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "tjN" = ( /obj/structure/closet/secure_closet/personal{ anchored = 1 @@ -64482,46 +66773,46 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"tku" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ +"tkp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/machinery/door/airlock/multi_tile/public/glass{ - dir = 4; - name = "Auxiliary Dock" +/turf/open/floor/iron/cafeteria{ + dir = 8 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/secondary/entry) +/area/station/science/ordnance/office) "tkP" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 }, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) -"tkS" = ( -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/white/side{ - dir = 9 - }, -/area/station/science/research) +"tkT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/light/small/dim/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "tkU" = ( /turf/open/lava/plasma/ice_moon, /area/icemoon/surface/outdoors/nospawn) -"tkY" = ( -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 4 - }, -/obj/structure/minecart_rail{ - dir = 1 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) +"tkX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) +"tla" = ( +/obj/structure/marker_beacon/jade, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"tlf" = ( +/obj/structure/railing, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "tlh" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64544,6 +66835,19 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/command/storage/eva) +"tlt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/status_display/door_timer{ + pixel_x = -32; + id = "Cell 3"; + name = "Cell 3" + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "tlA" = ( /obj/machinery/light/small/directional/south, /obj/item/radio/intercom/directional/south, @@ -64596,10 +66900,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) -"tmb" = ( -/obj/structure/stairs/west, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "tml" = ( /obj/structure/grille, /turf/open/floor/plating, @@ -64608,6 +66908,13 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron, /area/station/hallway/primary/port) +"tmy" = ( +/obj/machinery/plate_press, +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/security/prison/work) "tmA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64671,6 +66978,14 @@ /obj/item/folder/yellow, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"tnu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/item/rack_parts, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "tny" = ( /obj/structure/disposalpipe/segment, /obj/item/radio/intercom/directional/east, @@ -64680,17 +66995,20 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"tnz" = ( -/obj/structure/table, -/obj/item/plate, -/obj/item/food/piedough, -/obj/effect/spawner/random/food_or_drink/cake_ingredients, -/obj/effect/turf_decal/siding/white{ +"tnD" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 }, -/obj/item/kitchen/rollingpin, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) +/obj/structure/bed{ + dir = 1 + }, +/obj/effect/spawner/random/bedsheet{ + dir = 1 + }, +/obj/effect/spawner/random/contraband/permabrig_gear, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/iron/white, +/area/station/security/prison/safe) "tnI" = ( /obj/effect/turf_decal/trimline/dark_blue/line{ dir = 10 @@ -64698,14 +67016,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) -"tnJ" = ( -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "tnO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -64716,6 +67026,14 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/fore) +"toi" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/machinery/status_display/evac/directional/south, +/obj/structure/chair/sofa/left/brown{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "too" = ( /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/grass, @@ -64742,16 +67060,12 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "toT" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/machinery/status_display/evac/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 +/obj/effect/turf_decal/siding/wood, +/obj/structure/railing/corner{ + dir = 4 }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) +/turf/open/floor/stone, +/area/station/service/bar/atrium) "toV" = ( /obj/structure/table, /obj/item/stock_parts/subspace/ansible, @@ -64771,6 +67085,13 @@ /obj/machinery/holopad, /turf/open/floor/iron/large, /area/station/command/gateway) +"tpc" = ( +/obj/effect/spawner/random/trash/graffiti{ + pixel_y = -30 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "tpd" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -64801,11 +67122,12 @@ "tpH" = ( /turf/closed/wall, /area/station/security/execution/education) -"tpK" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/turf/open/floor/wood, -/area/station/security/courtroom) +"tpO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "tpX" = ( /obj/item/storage/box/bodybags, /obj/structure/extinguisher_cabinet/directional/west, @@ -64818,14 +67140,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/white/textured, /area/station/security/medical) -"tpZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "tqk" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -64836,17 +67150,40 @@ /obj/item/key/janitor, /turf/open/floor/iron, /area/station/service/janitor) -"tqr" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/machinery/hydroponics/constructable, -/obj/machinery/status_display/ai/directional/south, +"tqs" = ( +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/area/station/science/ordnance/office) +"tqy" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/space_heater, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/medical/morgue) +"tqJ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/power/apc/auto_name/directional/north{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "tqQ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, /turf/open/floor/iron, /area/station/hallway/primary/central) "tqR" = ( @@ -64866,16 +67203,16 @@ "trm" = ( /turf/open/floor/plating, /area/station/science/ordnance/testlab) -"trn" = ( -/obj/structure/table, -/obj/item/stock_parts/power_store/cell/high, -/obj/machinery/cell_charger{ - pixel_y = 5 - }, -/turf/open/floor/iron/white/corner{ - dir = 4 +"tro" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Aft Primary Hallway South"; + pixel_y = -22 }, -/area/station/science/explab) +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/departments/engineering/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "tru" = ( /obj/structure/chair/pew/left{ dir = 1 @@ -64904,6 +67241,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) +"tsc" = ( +/obj/machinery/light/directional/north, +/obj/structure/sign/warning/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "tsh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64927,15 +67269,28 @@ /turf/open/openspace/icemoon, /area/station/science/server) "tsu" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/cigarette, +/obj/effect/spawner/random/entertainment/lighter, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) +"tsz" = ( +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/warning{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/machinery/space_heater, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/sign/poster/official/get_your_legs/directional/north, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 4 }, -/obj/machinery/light/floor, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/area/station/ai_monitored/command/storage/eva) "tsH" = ( /obj/machinery/door/airlock/security/glass{ name = "Interrogation" @@ -64947,19 +67302,11 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/dark/textured, /area/station/security/interrogation) -"tsK" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/structure/bed{ - dir = 1 - }, -/obj/effect/spawner/random/bedsheet{ - dir = 1 - }, -/obj/effect/spawner/random/contraband/permabrig_gear, -/turf/open/floor/iron/white, -/area/station/security/prison/safe) +"tsP" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit/departure_lounge) "tsQ" = ( /obj/machinery/door/airlock/public/glass{ name = "Public Mining Storage" @@ -64987,20 +67334,6 @@ /obj/machinery/door/airlock/freezer, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) -"tts" = ( -/obj/item/chair/wood, -/obj/item/toy/plush/moth{ - name = "Ariadne" - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"ttv" = ( -/obj/structure/sign/painting/library{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/station/service/library) "ttw" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/smooth_large, @@ -65013,17 +67346,16 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/security/prison/rec) -"ttO" = ( -/obj/structure/closet/secure_closet/medical2, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/button/door/directional/south{ - id = "surgery"; - name = "Surgery Shutter Control" +"ttI" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm5"; + name = "Cabin 1" }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted, -/turf/open/floor/iron/white, -/area/station/medical/surgery/aft) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/station/commons/dorms) "ttT" = ( /obj/machinery/door/airlock/mining/glass{ id_tag = "innercargo"; @@ -65073,6 +67405,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"tuy" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/button/ignition{ + id = "testigniter"; + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/station/science/explab) "tuz" = ( /obj/structure/cable, /obj/structure/table, @@ -65090,12 +67432,36 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) +"tuD" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/door/airlock/multi_tile/public/glass{ + dir = 4; + name = "Auxiliary Dock" + }, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) "tuH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/prisoner, /turf/open/floor/iron, /area/station/security/prison/mess) +"tuQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/service/chapel) "tva" = ( /obj/machinery/light/small/directional/south, /turf/open/openspace, @@ -65110,6 +67476,10 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) +"tvk" = ( +/obj/structure/sign/warning/docking/directional/north, +/turf/open/lava/plasma/ice_moon, +/area/icemoon/underground/explored) "tvm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -65122,6 +67492,13 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"tvt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "tvv" = ( /obj/machinery/door/airlock/command/glass{ name = "Research Director" @@ -65136,10 +67513,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/rd, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) -"tvx" = ( -/obj/structure/sign/warning/biohazard, -/turf/closed/wall/r_wall, -/area/station/maintenance/aft/greater) "tvF" = ( /obj/effect/turf_decal/delivery, /obj/structure/cable, @@ -65174,17 +67547,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"twb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"twn" = ( +/obj/machinery/vending/wardrobe/chef_wardrobe, +/obj/effect/turf_decal/siding/white/corner{ dir = 8 }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/mine/laborcamp) +/obj/machinery/light/directional/north, +/obj/structure/sign/poster/contraband/moffuchis_pizza/directional/east, +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "twt" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -65196,17 +67568,6 @@ /obj/machinery/holopad, /turf/open/floor/carpet/red, /area/station/security/prison/work) -"twx" = ( -/obj/effect/turf_decal/siding/wideplating_new/light, -/obj/item/trash/bee, -/obj/machinery/light/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/sign/poster/official/moth_piping/directional/west, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) "twK" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -65216,37 +67577,6 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) -"twP" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = -6 - }, -/obj/machinery/button/door{ - id = "Secure Gate"; - name = "Cell Shutters"; - pixel_x = 7; - pixel_y = 9 - }, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = 7; - req_access = list("brig") - }, -/obj/structure/cable, -/turf/open/floor/iron/showroomfloor, -/area/station/security/warden) -"twS" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock/freezer{ - desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold."; - name = "The Ice Box" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) "twU" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron/freezer, @@ -65277,15 +67607,14 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/construction, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"txd" = ( +"txf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/warning/cold_temp/directional/west, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/turf/open/floor/iron/dark, +/area/station/service/chapel) "txj" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -65297,6 +67626,12 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"txm" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "txo" = ( /obj/effect/turf_decal/siding/yellow/end{ dir = 4 @@ -65305,17 +67640,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/plating, /area/station/medical/treatment_center) -"txv" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/machinery/vending/hydronutrients, -/turf/open/floor/iron, -/area/station/service/hydroponics) "txE" = ( /obj/item/cigbutt, /obj/effect/decal/cleanable/dirt, @@ -65323,6 +67647,19 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"txH" = ( +/obj/machinery/vending/wallmed/directional/south, +/obj/structure/cable, +/obj/structure/table/glass, +/obj/item/stack/sticky_tape/surgical, +/obj/item/stack/medical/bone_gel, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/machinery/camera/directional/south{ + c_tag = "Surgery B"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/surgery/aft) "txI" = ( /obj/structure/closet/wardrobe/black, /turf/open/floor/plating, @@ -65335,6 +67672,10 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) +"txX" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/security/prison/garden) "tyb" = ( /obj/effect/turf_decal/bot, /obj/machinery/holopad, @@ -65408,6 +67749,28 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"tzP" = ( +/obj/structure/table, +/obj/item/hand_labeler, +/obj/item/storage/box/shipping, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/commons/storage/art) +"tzR" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/caution/stand_clear{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/neutral/filled/end{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "tAg" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 @@ -65424,11 +67787,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/commons/storage/mining) -"tAt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/fore) "tAx" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/structure/disposalpipe/segment, @@ -65441,15 +67799,6 @@ dir = 4 }, /area/station/service/chapel) -"tAK" = ( -/obj/machinery/computer/security/telescreen/interrogation/directional/north, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark/corner{ - dir = 8 - }, -/area/station/security/processing) "tAL" = ( /obj/structure/table, /obj/machinery/light/small/directional/south, @@ -65458,6 +67807,10 @@ }, /turf/open/floor/iron/white, /area/mine/laborcamp) +"tAN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "tAO" = ( /obj/machinery/space_heater, /obj/effect/mapping_helpers/burnt_floor, @@ -65473,9 +67826,32 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron, /area/station/cargo/miningdock) +"tAT" = ( +/obj/structure/stairs/east, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/service/kitchen/coldroom) +"tBq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/sign/warning/radiation/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "tBs" = ( /turf/closed/wall, /area/station/maintenance/department/chapel) +"tBw" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/commons/fitness) "tBL" = ( /obj/machinery/computer/atmos_control/nitrogen_tank{ dir = 1 @@ -65483,11 +67859,6 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/engineering/atmos) -"tBP" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/secure_area/directional/west, -/turf/open/floor/engine, -/area/station/science/explab) "tBR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -65500,18 +67871,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"tBW" = ( -/obj/structure/railing{ - dir = 5 - }, -/obj/structure/sign/warning/biohazard/directional/west, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"tBY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "tCe" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -65524,10 +67883,12 @@ /obj/structure/sign/warning, /turf/closed/wall/r_wall, /area/icemoon/surface/outdoors/nospawn) -"tCr" = ( -/obj/structure/grille, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"tCk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "tCu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -65556,24 +67917,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) -"tCG" = ( -/obj/effect/turf_decal/loading_area{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "tCL" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/work) -"tCO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/mine/eva) "tCR" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -65583,14 +67932,6 @@ }, /turf/open/floor/plating, /area/station/security/interrogation) -"tCV" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Security - Permabrig Observation Prep"; - network = list("ss13","prison") - }, -/obj/structure/sign/poster/official/safety_internals/directional/west, -/turf/open/floor/vault, -/area/station/security/prison/rec) "tCW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /obj/machinery/meter, @@ -65639,16 +67980,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"tDA" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) "tDL" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -65663,6 +67994,10 @@ /obj/effect/landmark/start/lawyer, /turf/open/floor/wood, /area/station/security/courtroom) +"tDS" = ( +/obj/effect/spawner/random/trash/bin, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "tDU" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -65681,12 +68016,10 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"tEd" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +"tEe" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "tEi" = ( /obj/structure/sink/directional/south, /turf/open/floor/iron, @@ -65701,42 +68034,11 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) -"tEn" = ( -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high, -/obj/item/radio/intercom/directional/north, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "tEs" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Holodeck Door" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "holodeck" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron/textured, -/area/station/commons/fitness) -"tEu" = ( -/obj/structure/table, -/obj/item/hand_labeler, -/obj/item/storage/box/shipping, -/obj/structure/sign/poster/official/fruit_bowl/directional/south, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/commons/storage/art) +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "tEw" = ( /turf/open/genturf/blue, /area/icemoon/underground/unexplored/rivers) @@ -65744,30 +68046,6 @@ /obj/structure/ore_box, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) -"tEK" = ( -/obj/structure/table, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = -1; - pixel_y = 1 - }, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "tEL" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/stripes/line{ @@ -65775,6 +68053,17 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"tEO" = ( +/obj/structure/closet, +/obj/machinery/light/small/directional/north, +/obj/machinery/button/door/directional/north{ + id = "miningdorm_A"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/turf/open/floor/carpet/donk, +/area/mine/production) "tEZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, @@ -65788,17 +68077,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"tFe" = ( +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/effect/landmark/start/cook, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/kitchen/diagonal, +/area/station/service/kitchen) "tFs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"tFt" = ( -/obj/effect/spawner/random/trash/mess, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) "tFw" = ( /obj/machinery/camera/directional/north{ c_tag = "Central Hallway North-West" @@ -65815,13 +68107,47 @@ dir = 8 }, /area/station/science/lab) +"tFI" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Fitness Maintenance" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/fore) "tFV" = ( /obj/structure/cable, /obj/machinery/light/directional/south, /obj/structure/closet/secure_closet/psychology, /obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/white, /area/station/medical/psychology) +"tFY" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/virology{ + autoclose = 0; + frequency = 1449; + id_tag = "virology_airlock_interior"; + name = "Virology Interior Airlock" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, +/obj/effect/mapping_helpers/airlock/access/all/medical/virology, +/obj/effect/turf_decal/tile/green/full, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/virology) "tGi" = ( /obj/effect/turf_decal/stripes/end, /obj/machinery/door/airlock/external, @@ -65850,6 +68176,30 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"tGz" = ( +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Apiary" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/hydroponics) +"tGA" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/security/prison) "tGB" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -65861,6 +68211,15 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"tGE" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/stairs/south, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/commons/lounge) "tGF" = ( /obj/machinery/camera/directional/east{ c_tag = "Bridge East" @@ -65876,6 +68235,15 @@ dir = 1 }, /area/station/engineering/lobby) +"tGJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/security/prison) "tGP" = ( /obj/machinery/conveyor{ id = "gulag" @@ -65883,12 +68251,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/laborcamp) -"tHe" = ( -/obj/structure/bodycontainer/morgue{ - dir = 8 +"tHb" = ( +/obj/effect/spawner/random/structure/musician/piano/random_piano, +/obj/machinery/button/curtain{ + pixel_x = -32; + id = "cantena_curtains" }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/turf/open/floor/wood, +/area/station/commons/lounge) "tHi" = ( /obj/structure/filingcabinet, /obj/machinery/requests_console/directional/west{ @@ -65911,23 +68281,16 @@ /obj/effect/turf_decal/trimline/blue/filled/warning, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"tHB" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/structure/sign/warning/pods/directional/west, -/obj/structure/cable, -/turf/open/floor/iron/white/corner{ - dir = 8 - }, -/area/station/hallway/secondary/entry) -"tHF" = ( -/obj/structure/sign/nanotrasen, -/obj/structure/fence/post{ - dir = 8 +"tHw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) +"tHJ" = ( +/obj/structure/mannequin/skeleton, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "tHK" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/railing{ @@ -65972,13 +68335,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) -"tIc" = ( -/obj/structure/sign/warning/electric_shock/directional/south, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 1 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "tIf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65992,6 +68348,7 @@ /area/station/maintenance/port/fore) "tIq" = ( /obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) "tIu" = ( @@ -66002,6 +68359,7 @@ dir = 4 }, /obj/structure/sink/directional/west, +/obj/structure/sign/warning/biohazard/directional/east, /turf/open/floor/iron/white, /area/station/medical/virology) "tIw" = ( @@ -66018,13 +68376,21 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/dark, /area/station/service/chapel) -"tIL" = ( -/obj/structure/table, -/obj/machinery/light/small/directional/west, -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/random/engineering/material_cheap, -/turf/open/floor/iron/smooth, -/area/station/maintenance/starboard/fore) +"tIC" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"tIM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/mine/eva/lower) "tIS" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 6 @@ -66042,28 +68408,29 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"tJi" = ( -/obj/structure/bookcase{ - name = "Holy Bookcase" +"tJh" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/item/kirbyplants/random, +/obj/machinery/light/warm/directional/south, +/obj/machinery/digital_clock/directional/south, +/obj/structure/railing/corner{ + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"tJl" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/fence/cut/large{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "tJu" = ( /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/port) -"tJv" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/iron/showroomfloor, -/area/station/engineering/atmos) "tJD" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 5 @@ -66103,6 +68470,13 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"tJK" = ( +/obj/structure/transit_tube/horizontal, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "tJN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66115,42 +68489,22 @@ /obj/item/clothing/mask/gas, /turf/open/floor/plating, /area/station/command/teleporter) -"tJV" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/beakers{ - pixel_y = 7 - }, -/obj/item/assembly/igniter{ - pixel_y = -3 - }, -/turf/open/floor/iron/dark/textured_edge{ - dir = 4 - }, -/area/station/medical/chem_storage) -"tJZ" = ( +"tJY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/white/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/white/line, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/fore) -"tKf" = ( -/obj/structure/closet, -/obj/machinery/light/small/directional/north, -/obj/structure/sign/poster/official/random/directional/east, -/turf/open/floor/carpet/donk, -/area/mine/production) +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "tKi" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/lobby) +"tKm" = ( +/obj/structure/ore_container/food_trough/raptor_trough, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "tKq" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -66168,13 +68522,47 @@ /obj/structure/chair/pew/left, /turf/open/floor/wood, /area/station/security/prison/rec) +"tKD" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/structure/sign/warning/secure_area/directional/north, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) +"tKH" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "tKI" = ( /turf/closed/wall, /area/station/maintenance/port/greater) +"tKJ" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/trash/cigbutt, +/obj/effect/spawner/random/trash/graffiti{ + pixel_y = 32 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "tKN" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"tKO" = ( +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/science/ordnance/testlab) "tKV" = ( /obj/structure/table_frame, /obj/effect/decal/cleanable/glass, @@ -66189,6 +68577,19 @@ /obj/effect/turf_decal/tile/green/anticorner/contrasted, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"tKY" = ( +/obj/structure/rack, +/obj/item/soap{ + pixel_y = -2 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Ordnance Lower Mix Lab"; + network = list("ss13","rd") + }, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "tKZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66198,21 +68599,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"tLc" = ( -/obj/machinery/door/airlock/external{ - glass = 1; - name = "Public Mining Storage"; - opacity = 0 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/structure/sign/warning/cold_temp/directional/north, -/turf/open/floor/iron/dark, -/area/mine/storage) "tLe" = ( /obj/machinery/cryo_cell, /obj/effect/turf_decal/stripes/line{ @@ -66228,6 +68614,17 @@ /obj/structure/flora/rock/pile/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"tLm" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/cafeteria{ + dir = 5 + }, +/area/station/hallway/secondary/entry) "tLp" = ( /obj/machinery/computer/records/medical{ dir = 4 @@ -66245,6 +68642,22 @@ "tLF" = ( /turf/closed/wall, /area/station/hallway/primary/starboard) +"tLI" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) +"tLL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) "tLM" = ( /obj/machinery/camera/directional/south{ c_tag = "Robotics Lab - South"; @@ -66279,6 +68692,10 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"tMc" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "tMe" = ( /obj/machinery/computer/mechpad{ dir = 1 @@ -66315,21 +68732,16 @@ "tMO" = ( /turf/closed/wall, /area/station/medical/break_room) +"tMS" = ( +/obj/structure/sign/warning/fire/directional/north, +/turf/open/openspace, +/area/station/engineering/atmos/storage) "tMY" = ( /obj/item/reagent_containers/cup/glass/bottle/vodka/badminka, /obj/structure/closet, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"tNb" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/structure/railing/corner/end/flip{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "tNd" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/effect/turf_decal/siding/green{ @@ -66357,11 +68769,24 @@ /obj/effect/turf_decal/tile/dark/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/virology) +"tNw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "tNx" = ( /obj/structure/cable, /obj/machinery/light/floor, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"tNz" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "tND" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 4 @@ -66373,45 +68798,20 @@ dir = 10 }, /area/mine/living_quarters) -"tNH" = ( -/obj/structure/railing, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 6 - }, -/turf/open/floor/wood/large, -/area/station/hallway/primary/starboard) "tNJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"tNN" = ( -/obj/structure/flora/tree/pine/style_random, -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) -"tNY" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/lobby) -"tOe" = ( -/obj/effect/spawner/random/structure/closet_maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"tOf" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio1"; - name = "Xenobio Pen 1 Blast Door" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +"tOb" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/light/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Medbay Chemistry Lab - South"; + network = list("ss13","medbay") }, -/obj/structure/sign/warning/electric_shock, -/turf/open/floor/plating, -/area/station/science/xenobiology) +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "tOi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66421,6 +68821,14 @@ }, /turf/open/floor/iron, /area/station/command/gateway) +"tOk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/obj/structure/cable, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/turf/open/floor/iron, +/area/station/engineering/storage_shared) "tOq" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -66437,63 +68845,22 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) -"tOC" = ( -/obj/effect/spawner/random/trash/hobo_squat, -/obj/effect/decal/cleanable/dirt/dust, +"tOE" = ( +/obj/structure/cable/multilayer/multiz, +/obj/structure/sign/warning/electric_shock/directional/north, /turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/area/station/security/prison/safe) "tOF" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /turf/open/floor/carpet, /area/station/command/meeting_room) -"tOO" = ( -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/obj/machinery/light/directional/west, -/obj/machinery/camera{ - c_tag = "Medbay Mid-South"; - dir = 5; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/structure/table/glass, -/obj/machinery/fax{ - fax_name = "Medical"; - name = "Medical Fax Machine" - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) "tOX" = ( /obj/machinery/light/small/broken/directional/south, /obj/item/trash/energybar, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"tPx" = ( -/obj/structure/table, -/obj/item/multitool/circuit{ - pixel_x = -8 - }, -/obj/item/multitool/circuit{ - pixel_x = -4 - }, -/obj/item/multitool/circuit, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 8; - pixel_y = 9 - }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 8; - pixel_y = -2 - }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/science/explab) "tPz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/side{ @@ -66519,6 +68886,27 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) +"tPL" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) +"tPT" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "tPV" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, @@ -66545,16 +68933,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/storage) -"tQE" = ( -/obj/effect/turf_decal/siding/brown/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "tQM" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -66582,6 +68960,44 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"tRo" = ( +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/starboard) +"tRq" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/item/toy/plush/moth{ + name = "Theseus" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/sign/flag/mothic/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tRP" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Hydroponics Maintenance" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/turf/open/floor/plating, +/area/station/service/hydroponics) "tRX" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -66595,54 +69011,50 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) -"tSd" = ( -/obj/machinery/door/airlock/external, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/any/security/general, -/obj/effect/mapping_helpers/airlock/access/any/engineering/external, -/turf/open/floor/plating, -/area/station/maintenance/fore) +"tSb" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/bluespace_vendor/directional/north, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "tSi" = ( /obj/machinery/suit_storage_unit/security, /turf/open/floor/iron/smooth, /area/station/security/brig/upper) +"tSj" = ( +/obj/structure/fence/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "tSs" = ( /obj/item/flashlight/lantern{ start_on = 1 }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"tSt" = ( -/obj/structure/sign/painting/library, -/turf/closed/wall, -/area/station/service/library) "tSx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) -"tSy" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 +"tSF" = ( +/obj/machinery/door/window/left/directional/west{ + req_one_access = list("bar", "kitchen"); + name = "Deliveries" }, -/turf/open/floor/iron/dark, -/area/station/service/chapel) -"tSK" = ( -/obj/machinery/chem_mass_spec, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white{ dir = 8 }, -/obj/structure/sign/warning/no_smoking/directional/west, -/turf/open/floor/iron/white, -/area/station/medical/pharmacy) -"tSO" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/textured, +/area/station/service/kitchen/coldroom) "tTc" = ( /obj/item/storage/bag/plants/portaseeder, /obj/structure/table/glass, @@ -66653,15 +69065,25 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) -"tTw" = ( -/obj/structure/stairs/east, -/obj/structure/railing, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +"tTK" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "tTL" = ( /obj/structure/chair, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"tTO" = ( +/obj/structure/fence/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "tTV" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -66684,24 +69106,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) -"tUm" = ( -/obj/machinery/door/window/left/directional/west{ - req_one_access = list("bar", "kitchen"); - name = "Deliveries" - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, -/obj/effect/turf_decal/siding/white{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/textured, -/area/station/service/kitchen/coldroom) "tUn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -66738,6 +69142,10 @@ specialfunctions = 4 }, /obj/machinery/photobooth/security, +/obj/machinery/button/flasher{ + id = "transferflash"; + pixel_y = 34 + }, /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) "tUC" = ( @@ -66745,6 +69153,13 @@ /obj/machinery/light/floor, /turf/open/floor/iron/white, /area/mine/living_quarters) +"tUG" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/four, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/construction) "tUK" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle{ dir = 4 @@ -66757,21 +69172,12 @@ /turf/open/floor/iron/white, /area/station/science/xenobiology) "tUO" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/turf/open/floor/iron, -/area/station/command/bridge) +/obj/structure/sign/painting/large/library{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/service/library) "tUV" = ( /obj/structure/railing{ dir = 8 @@ -66784,6 +69190,12 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"tVd" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "tVf" = ( /turf/closed/wall, /area/station/security/prison) @@ -66794,6 +69206,15 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/science/server) +"tVx" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "tVA" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/radiation, @@ -66801,17 +69222,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"tVB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/light/dim/directional/south, -/obj/machinery/requests_console/directional/south{ - department = "Medbay"; - name = "Medbay Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/white, -/area/station/medical/cryo) +"tVF" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "tWc" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/spawner/random/trash/soap, @@ -66826,6 +69241,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) +"tWj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/grimy, +/area/station/service/bar/backroom) "tWp" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -66858,6 +69284,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/mine/mechbay) +"tWJ" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/turf/open/floor/carpet/lone, +/area/station/service/chapel) "tWK" = ( /obj/structure/cable, /turf/open/floor/plating/snowed/icemoon, @@ -66873,44 +69305,18 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security/prison/work) -"tWY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/door/airlock/maintenance{ - name = "Kitchen Maintenance" - }, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) -"tWZ" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "tXb" = ( /obj/structure/table, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"tXd" = ( -/obj/machinery/seed_extractor, -/obj/machinery/camera/directional/north{ - c_tag = "Security - Permabrig Forestry"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/prison/garden) -"tXg" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +"tXc" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/landmark/start/paramedic, +/obj/structure/cable, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "tXh" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -66919,6 +69325,11 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"tXk" = ( +/obj/machinery/shower/directional/west, +/obj/structure/fluff/shower_drain, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet) "tXs" = ( /obj/structure/ladder, /obj/machinery/light/small/red/directional/west, @@ -66935,6 +69346,19 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"tXM" = ( +/obj/machinery/hydroponics/constructable, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/item/plant_analyzer, +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/green{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/mine/laborcamp) "tXV" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/camera/directional/north{ @@ -66959,6 +69383,17 @@ }, /turf/open/floor/iron/dark, /area/station/science/server) +"tYt" = ( +/obj/effect/turf_decal/tile/neutral/diagonal_edge, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen/diagonal, +/area/station/service/kitchen) +"tYu" = ( +/obj/effect/spawner/random/trash/hobo_squat, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "tYz" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66981,6 +69416,28 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/security/prison/garden) +"tYF" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/spawner/random/engineering/atmospherics_portable, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"tYS" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"tYW" = ( +/obj/machinery/light/directional/west, +/obj/structure/chair, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "tYZ" = ( /obj/machinery/door/airlock/external{ name = "External Airlock" @@ -67003,62 +69460,26 @@ /obj/item/shovel/spade, /turf/open/floor/grass, /area/station/maintenance/starboard/aft) -"tZe" = ( -/obj/machinery/vending/wardrobe/gene_wardrobe, -/obj/structure/sign/poster/official/random/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/genetics) -"tZf" = ( -/obj/structure/cable, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "tZm" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"tZo" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "tZp" = ( /obj/structure/ladder, +/obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) -"tZG" = ( -/obj/machinery/meter, -/obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/pink/visible{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/storage) -"tZO" = ( -/obj/machinery/modular_computer/preset/civilian{ - dir = 8 - }, -/obj/structure/sign/poster/official/build/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/lobby) -"tZR" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "packageSort2" - }, -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/station/cargo/sorting) +"tZv" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "tZZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /turf/open/floor/iron, /area/station/hallway/primary/central) "uab" = ( @@ -67072,6 +69493,18 @@ /obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, /turf/open/floor/iron/dark/textured_large, /area/station/ai_monitored/turret_protected/ai_upload) +"uag" = ( +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "uah" = ( /obj/machinery/light_switch/directional/west, /obj/structure/cable, @@ -67097,6 +69530,12 @@ }, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"uap" = ( +/obj/structure/fence/cut/large{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "uar" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67135,35 +69574,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) -"ubi" = ( -/turf/open/misc/asteroid/snow/coldroom, -/area/icemoon/underground/explored) "ubk" = ( /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"ubo" = ( -/obj/machinery/status_display/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_x = -32 - }, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Prison Blast Door" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/iron/textured, -/area/station/security/brig) -"ubp" = ( -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "ubq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, @@ -67191,28 +69605,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"ubG" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/medium, +/area/mine/eva/lower) "ubH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/locker) -"ubI" = ( -/obj/structure/ladder{ - name = "upper dispenser access" - }, -/obj/structure/sign/warning/no_smoking/directional/east, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron/dark/textured_large, -/area/station/medical/chemistry) -"ubK" = ( -/obj/machinery/computer/holodeck{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/fitness) "ubY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67245,11 +69648,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"ucD" = ( -/obj/machinery/plate_press, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/dark/smooth_half, -/area/station/security/prison/work) +"ucu" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ucN" = ( /turf/closed/wall/r_wall, /area/station/security/detectives_office) @@ -67257,20 +69665,6 @@ /obj/structure/sign/warning/electric_shock, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) -"udf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "udj" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/structure/cable, @@ -67288,15 +69682,19 @@ /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "udA" = ( -/obj/structure/training_machine, -/obj/item/target, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 +/obj/effect/turf_decal/tile/blue, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/status_display/evac/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron, -/area/station/commons/fitness) +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/station/hallway/secondary/entry) "udK" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -67317,22 +69715,6 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/departmental, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"udQ" = ( -/obj/structure/table, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance, -/obj/item/computer_disk/ordnance, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/command/heads_quarters/rd) -"udR" = ( -/obj/structure/cable, -/obj/structure/minecart_rail{ - dir = 1 - }, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) "uee" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -67345,14 +69727,12 @@ /obj/structure/cable, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"uek" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/potato{ - name = "\improper Beepsky's emergency battery" +"uen" = ( +/obj/structure/fence/door{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/fore) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "uep" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67363,6 +69743,13 @@ /obj/structure/flora/tree/pine/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"uet" = ( +/obj/machinery/keycard_auth/wall_mounted/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/hos) "uey" = ( /obj/machinery/power/supermatter_crystal/engine, /turf/open/floor/engine, @@ -67380,6 +69767,10 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"ueF" = ( +/obj/structure/sign/departments/holy/directional/east, +/turf/open/openspace, +/area/station/service/chapel) "ueP" = ( /obj/structure/table, /obj/structure/reagent_dispensers/servingdish, @@ -67406,6 +69797,11 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"ufb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/engine, +/area/station/science/explab) "uff" = ( /obj/machinery/firealarm/directional/north, /turf/open/floor/iron, @@ -67416,11 +69812,6 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) -"ufw" = ( -/obj/machinery/door/firedoor, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "ufF" = ( /obj/structure/table, /obj/item/storage/box/prisoner{ @@ -67442,14 +69833,6 @@ }, /turf/open/floor/sepia, /area/station/security/prison/rec) -"uge" = ( -/obj/structure/closet/secure_closet/engineering_electrical, -/obj/machinery/status_display/evac/directional/east, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/main) "ugi" = ( /obj/machinery/light/small/directional/east, /obj/machinery/computer/order_console/bitrunning{ @@ -67474,6 +69857,10 @@ /obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"ugA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/fore) "ugG" = ( /obj/structure/table, /obj/item/clothing/gloves/color/fyellow, @@ -67486,19 +69873,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/maintenance/department/electrical) -"ugI" = ( -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "ugP" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -67513,6 +69887,24 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/engineering/atmos) +"ugX" = ( +/obj/machinery/door/airlock{ + id_tag = "Dorm3"; + name = "Dorm 3" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/dorms) +"ugZ" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) "uhb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/brown{ @@ -67521,14 +69913,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) -"uhs" = ( -/obj/structure/railing/corner, -/obj/machinery/camera/directional/south{ - c_tag = "Mining B-1 Hallway North" - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/mine/eva) "uht" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -67560,6 +69944,16 @@ }, /turf/open/floor/iron/white/side, /area/mine/living_quarters) +"uhF" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "uhH" = ( /obj/machinery/door/airlock/engineering{ name = "Chemistry Lab Utilities" @@ -67571,15 +69965,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uhX" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/sign/warning/deathsposal/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "uif" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67599,44 +69984,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"uil" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/duct, -/obj/effect/turf_decal/siding/dark{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/checker, -/area/station/hallway/secondary/service) -"uin" = ( -/obj/structure/sign/warning/fire/directional/south, -/obj/effect/turf_decal/stripes/corner{ +"uii" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/dark_green/arrow_ccw, -/obj/machinery/atmospherics/pipe/smart/simple/violet/visible/layer1{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage) -"uiq" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/drinks, -/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron/dark, -/area/station/service/bar) -"uiv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/area/station/medical/morgue) "uiF" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -67654,19 +70009,6 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uiM" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall/r_wall, -/area/station/ai_monitored/command/nuke_storage) -"uiV" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/parquet, -/area/station/service/bar/backroom) "uja" = ( /turf/closed/wall, /area/station/commons/toilet) @@ -67676,10 +70018,6 @@ }, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"ujp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "ujs" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -67692,6 +70030,12 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/smooth, /area/station/engineering/lobby) +"ujK" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "ujP" = ( /obj/structure/table, /obj/machinery/computer/security/telescreen/research, @@ -67716,34 +70060,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/service/chapel) -"uks" = ( -/obj/machinery/door/airlock/command{ - name = "Conference Room" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/command/general, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/station/command/meeting_room) -"ukt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"ukv" = ( -/obj/machinery/computer/exoscanner_control{ - dir = 1 - }, -/obj/machinery/light_switch/directional/east{ - pixel_x = 22; - pixel_y = 8 - }, -/turf/open/floor/iron/dark, -/area/station/cargo/drone_bay) "ukz" = ( /obj/machinery/duct, /obj/structure/disposalpipe/segment{ @@ -67766,6 +70082,32 @@ }, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) +"ukJ" = ( +/obj/effect/turf_decal/trimline/neutral/warning, +/obj/effect/turf_decal/trimline/neutral/mid_joiner, +/obj/item/flashlight{ + pixel_y = 9 + }, +/obj/item/flashlight{ + pixel_y = 9 + }, +/obj/item/flashlight{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = -3; + pixel_y = 5 + }, +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark/smooth_edge, +/area/station/ai_monitored/command/storage/eva) "ukN" = ( /obj/structure/table, /obj/machinery/door/poddoor/shutters{ @@ -67777,6 +70119,19 @@ /obj/machinery/door/window/left/directional/south, /turf/open/floor/iron, /area/station/security/prison/visit) +"ukR" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Teleporter Maintenance" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "ukV" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_containers/blood/random, @@ -67813,6 +70168,13 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/commons/dorms) +"ulm" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "ult" = ( /turf/closed/wall/r_wall, /area/station/science/robotics/lab) @@ -67822,13 +70184,29 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/security/prison/safe) -"ulE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 +"ulL" = ( +/obj/machinery/modular_computer/preset/id, +/obj/effect/turf_decal/tile/blue/full, +/obj/machinery/camera/directional/north{ + c_tag = "Chief Medical Office North"; + network = list("ss13","medbay") }, -/turf/open/floor/iron, -/area/station/science/ordnance) +/obj/machinery/button/door/directional/east{ + id = "cmoprivacy"; + name = "CMO Shutter Control"; + req_access = list("cmo") + }, +/obj/machinery/keycard_auth/wall_mounted/directional/east{ + pixel_x = 37 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/cmo) +"ulR" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "uma" = ( /obj/item/chisel, /obj/item/storage/toolbox/artistic, @@ -67836,17 +70214,16 @@ /obj/item/storage/crayons, /turf/open/floor/sepia, /area/station/security/prison/rec) -"umb" = ( -/obj/structure/sign/warning/docking/directional/south, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"umc" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"umg" = ( +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"umh" = ( +/turf/closed/wall/ice, +/area/icemoon/surface/outdoors/nospawn) "uml" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67860,6 +70237,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"umv" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/research) "umz" = ( /obj/effect/turf_decal/siding/yellow{ dir = 1 @@ -67880,13 +70268,15 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"umF" = ( -/obj/structure/stairs/north, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/chapel) +"umD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) +"umM" = ( +/obj/effect/landmark/start/clown, +/turf/open/floor/wood, +/area/station/commons/lounge) "umR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -67934,13 +70324,14 @@ /obj/machinery/gulag_teleporter, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) -"unM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ +"unG" = ( +/obj/machinery/computer/station_alert{ dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/storage) +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/computer/security/telescreen/ce/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "unO" = ( /obj/item/paper_bin{ pixel_x = -3; @@ -67949,18 +70340,8 @@ /obj/item/clipboard, /obj/item/pen/red, /obj/structure/table, -/turf/open/floor/iron, -/area/station/cargo/office) -"unT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/official/random/directional/west, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/mine/eva) +/turf/open/floor/iron, +/area/station/cargo/office) "uog" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -68017,33 +70398,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"uoF" = ( -/obj/machinery/pdapainter/engineering, -/obj/machinery/button/door/directional/west{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_y = 10; - req_access = list("engineering") - }, -/obj/machinery/button/door/directional/west{ - id = "Secure Storage"; - name = "Engineering Secure Storage"; - req_access = list("engine_equip") - }, -/obj/machinery/button/door/directional/west{ - id = "Engineering"; - name = "Engineering Lockdown"; - pixel_y = -10; - req_access = list("engineering") - }, -/obj/effect/turf_decal/tile/neutral/full, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/ce) -"uoS" = ( -/obj/machinery/vending/games, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison) "uoT" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/structure/table, @@ -68057,6 +70411,22 @@ /obj/effect/turf_decal/trimline/blue/filled/corner, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"uoY" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchencounter"; + name = "Kitchen Counter Shutters" + }, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "upa" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, @@ -68084,12 +70454,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison) -"upx" = ( -/obj/machinery/light_switch/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) +"upB" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/turf/open/floor/iron, +/area/station/security/prison/visit) "upH" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -68109,6 +70477,17 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"upU" = ( +/obj/structure/table/wood, +/obj/item/raptor_dex{ + pixel_y = 13 + }, +/obj/item/raptor_dex{ + pixel_y = 7 + }, +/obj/item/raptor_dex, +/turf/open/misc/hay/icemoon, +/area/icemoon/underground/explored) "upV" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, @@ -68152,13 +70531,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) -"uqV" = ( -/obj/structure/sign/warning/directional/east{ - desc = "A sign warning of a sudden drop below."; - name = "SUDDEN DROP sign" - }, -/turf/open/openspace/icemoon/keep_below, -/area/icemoon/surface/outdoors/nospawn) +"uqX" = ( +/obj/effect/decal/remains/human, +/obj/item/pickaxe/improvised, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/labor_camp) "urd" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron, @@ -68173,6 +70550,22 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"urk" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/preopen{ + id = "Biohazard"; + name = "Biohazard Containment Door" + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron/dark/textured, +/area/station/science/research) +"urm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/wood, +/area/station/security/prison/rec) "uro" = ( /obj/machinery/requests_console/directional/east{ department = "Telecomms Admin"; @@ -68183,6 +70576,13 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron, /area/station/tcommsat/computer) +"urp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "urw" = ( /obj/structure/railing/corner{ dir = 4 @@ -68210,6 +70610,24 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/research) +"urQ" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/machinery/light/small/directional/west, +/obj/item/stack/package_wrap{ + pixel_y = 3 + }, +/obj/item/hand_labeler, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"usm" = ( +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "uso" = ( /obj/structure/closet/crate/trashcart, /obj/effect/spawner/random/contraband/prison, @@ -68222,19 +70640,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) -"usz" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"usP" = ( -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) "usS" = ( /obj/structure/bed{ dir = 1 @@ -68249,37 +70654,12 @@ dir = 10 }, /area/station/security/prison/safe) -"utn" = ( -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/structure/table/glass, -/obj/item/seeds/tower, -/obj/item/seeds/chanter{ - pixel_y = 3; - pixel_x = 3 - }, -/obj/item/seeds/watermelon{ - pixel_y = -6; - pixel_x = 3 - }, -/obj/item/seeds/apple{ - pixel_y = 4; - pixel_x = 2 - }, -/obj/item/seeds/banana, -/obj/item/seeds/rose{ - pixel_y = -3; - pixel_x = -4 - }, -/obj/structure/noticeboard/directional/west, -/obj/item/paper/guides/jobs/hydroponics{ - pixel_y = 3; - pixel_x = -27 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) +"usU" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/iron/grimy, +/area/station/commons/vacant_room/office) "utr" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -68303,27 +70683,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"utG" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/wood/parquet, -/area/station/service/bar/backroom) "utR" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"utW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/fore) "uub" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Port to Fuel Pipe" @@ -68335,10 +70700,6 @@ /obj/effect/spawner/random/techstorage/tcomms_all, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"uuh" = ( -/obj/structure/noticeboard/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "uum" = ( /obj/machinery/door/airlock/public/glass{ name = "Chapel" @@ -68382,17 +70743,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage) +"uuO" = ( +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "uuP" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/office) -"uvi" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/medical/cryo) "uvk" = ( /obj/structure/window/reinforced/plasma/spawner/directional/west, /obj/structure/cable, @@ -68403,6 +70763,14 @@ "uvt" = ( /turf/closed/wall, /area/station/science/robotics/mechbay) +"uvu" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/ai_monitored/turret_protected/aisat/maint) "uvv" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/corner{ @@ -68410,6 +70778,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"uvA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "botany_chasm_and_wolf_shutters" + }, +/turf/open/floor/plating, +/area/station/service/hydroponics) "uvM" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -68426,13 +70804,9 @@ /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat/hallway) "uwd" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 8 - }, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/icemoon/underground/explored/graveyard) +/obj/item/chair/wood, +/turf/open/floor/wood, +/area/station/maintenance/port/aft) "uwj" = ( /obj/machinery/duct, /obj/structure/disposalpipe/segment, @@ -68456,6 +70830,17 @@ dir = 8 }, /area/station/security/brig/entrance) +"uwE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, +/obj/effect/mapping_helpers/mail_sorting/service/theater, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "uwH" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -68486,6 +70871,21 @@ /obj/effect/mapping_helpers/airlock/access/all/service/janitor, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"uwR" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Xenobiology External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) +"uwT" = ( +/turf/closed/wall/r_wall, +/area/station/science/cytology) "uxd" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 4 @@ -68511,11 +70911,14 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/cargo/office) -"uxp" = ( -/turf/open/floor/iron/stairs/medium{ - dir = 4 +"uxm" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/area/station/engineering/lobby) +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "uxx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output{ dir = 1 @@ -68529,26 +70932,35 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"uxG" = ( +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/aisat/service"; + name = "Service Bay Turret Control"; + pixel_x = 27; + req_access = list("minisat") + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "uxK" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"uxU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"uxZ" = ( -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 6 +"uyo" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Courtroom" }, -/turf/open/floor/plating, -/area/station/maintenance/fore/lesser) -"uye" = ( -/obj/item/kirbyplants/random/dead, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/item/radio/intercom/directional/north, +/obj/structure/chair{ + name = "Defense" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/security/courtroom) "uyq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68575,13 +70987,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark/textured, /area/station/medical/treatment_center) -"uyU" = ( -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron, -/area/station/engineering/atmos/storage) "uyV" = ( /obj/item/target/alien/anchored, /obj/effect/turf_decal/stripes/line{ @@ -68599,6 +71004,24 @@ }, /turf/open/floor/iron, /area/station/commons/dorms/laundry) +"uza" = ( +/obj/machinery/camera/directional/west{ + c_tag = "MiniSat Antechamber"; + network = list("minisat"); + start_active = 1 + }, +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/aisat/atmos"; + name = "Atmospherics Turret Control"; + pixel_x = -27; + req_access = list("minisat") + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "uzd" = ( /obj/structure/rack, /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp{ @@ -68606,6 +71029,16 @@ }, /turf/open/floor/iron/smooth, /area/mine/mechbay) +"uze" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "uzf" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/effect/turf_decal/bot, @@ -68616,12 +71049,44 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"uzr" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/table/glass, +/obj/machinery/fax{ + fax_name = "Medical"; + name = "Medical Fax Machine" + }, +/obj/machinery/camera/directional/west{ + c_tag = "Medbay Mid-South"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "uzs" = ( /obj/structure/rack, /obj/item/pickaxe, /obj/effect/turf_decal/tile/dark/fourcorners, /turf/open/floor/iron, /area/mine/living_quarters) +"uzu" = ( +/obj/machinery/door/airlock/wood{ + name = "Bar Backroom" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/turf/open/floor/iron/dark/textured_half, +/area/station/service/bar/backroom) "uzB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -68656,21 +71121,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/commons/storage/primary) -"uAx" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) "uAE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68692,6 +71142,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) +"uAL" = ( +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"uAP" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 4 + }, +/area/station/service/hydroponics) "uBi" = ( /turf/closed/wall, /area/station/ai_monitored/turret_protected/ai) @@ -68706,34 +71168,14 @@ /obj/structure/railing{ dir = 9 }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) "uBA" = ( /turf/closed/wall, /area/station/engineering/atmos/project) -"uBD" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/trash/food_packaging, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"uBL" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/official/random/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/cafeteria{ - dir = 5 - }, -/area/station/hallway/secondary/entry) "uBP" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, @@ -68816,26 +71258,19 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/lobby) +"uCM" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/mob/living/carbon/human/species/monkey, +/obj/machinery/camera/directional/north{ + c_tag = "Virology Pen"; + network = list("ss13","medbay") + }, +/turf/open/floor/grass, +/area/station/medical/virology) "uCN" = ( /obj/structure/grille/broken, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"uCU" = ( -/obj/machinery/button/flasher{ - id = "executionflash"; - pixel_x = -24; - pixel_y = 5 - }, -/obj/machinery/button/door/directional/west{ - id = "executionfireblast"; - name = "Transfer Area Lockdown"; - pixel_y = -6; - req_access = list("brig") - }, -/obj/structure/railing, -/obj/machinery/door/window/left/directional/south, -/turf/open/floor/plating/icemoon, -/area/station/security/execution/education) "uDc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68882,18 +71317,14 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"uDr" = ( -/obj/item/stamp{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/stamp/denied{ - pixel_x = 4; - pixel_y = -2 +"uDv" = ( +/obj/effect/turf_decal/siding/white{ + dir = 8 }, -/obj/structure/table, -/turf/open/floor/iron, -/area/station/cargo/office) +/obj/structure/sink/kitchen/directional/west, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "uDy" = ( /obj/item/book/bible, /obj/structure/cable, @@ -68902,13 +71333,6 @@ /obj/structure/table/wood, /turf/open/floor/iron/dark, /area/station/security/prison/rec) -"uDC" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm/directional/north, -/obj/item/book/bible, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "uDE" = ( /obj/structure/table, /obj/item/folder/yellow, @@ -68933,6 +71357,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"uEf" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "uEk" = ( /obj/structure/closet/wardrobe/miner, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -68951,10 +71382,6 @@ /obj/effect/turf_decal/tile/blue/full, /turf/open/floor/iron/large, /area/station/medical/treatment_center) -"uEA" = ( -/obj/structure/closet/crate, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "uEI" = ( /obj/structure/railing/corner{ dir = 4 @@ -68983,11 +71410,30 @@ /turf/open/floor/plating, /area/station/security/processing) "uFg" = ( -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "Prison Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/status_display/door_timer{ + pixel_x = -32; + id = "Cell 1"; + name = "Cell 1" + }, +/turf/open/floor/iron/textured, +/area/station/security/brig) "uFh" = ( /turf/open/floor/plating, /area/station/construction) +"uFt" = ( +/obj/structure/railing/corner, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "uFz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/holopad, @@ -68996,6 +71442,22 @@ }, /turf/open/floor/iron/white, /area/station/medical/psychology) +"uFE" = ( +/obj/machinery/vending/boozeomat, +/turf/open/floor/iron, +/area/station/service/bar) +"uFF" = ( +/obj/machinery/disposal/bin{ + desc = "A pneumatic waste disposal unit. This one leads to the frozen exterior of the moon."; + name = "deathsposal unit" + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/sign/warning/deathsposal/directional/north, +/obj/effect/turf_decal/tile/green/full, +/turf/open/floor/iron/white/smooth_large, +/area/station/medical/virology) "uFH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69009,17 +71471,35 @@ /obj/machinery/holopad, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) -"uGe" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/structure/sign/picture_frame/portrait/bar{ - pixel_x = 32 +"uFS" = ( +/obj/structure/cable, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/fore) +"uFV" = ( +/obj/structure/tank_dispenser{ + pixel_x = -1 }, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 8 +/obj/machinery/camera/directional/north{ + c_tag = "Atmospherics Monitoring" + }, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron, -/area/station/service/bar) +/area/station/engineering/atmos/storage/gas) +"uGe" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "uGl" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69036,7 +71516,7 @@ /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/plating/snowed/icemoon, +/turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) "uGq" = ( /obj/structure/cable, @@ -69064,10 +71544,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/main) -"uGY" = ( -/obj/structure/bookcase, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "uHc" = ( /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 8 @@ -69086,16 +71562,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore) -"uHS" = ( -/obj/structure/disposaloutlet{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 +"uHN" = ( +/obj/machinery/newscaster/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 }, -/obj/structure/sign/warning/gas_mask/directional/north, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) +/turf/open/floor/iron, +/area/station/hallway/primary/central) "uHV" = ( /obj/structure/disposalpipe/trunk/multiz{ dir = 1 @@ -69108,6 +71581,13 @@ "uIg" = ( /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"uIh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "uIj" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -69120,13 +71600,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"uIz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable/multilayer/multiz, -/turf/open/floor/plating, -/area/station/engineering/lobby) "uIC" = ( /obj/machinery/door/airlock/security{ aiControlDisabled = 1; @@ -69158,20 +71631,63 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"uIJ" = ( +/obj/structure/ladder{ + name = "chemistry lab access" + }, +/obj/effect/turf_decal/stripes/end, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay Chemistry Lab - North"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/medical/chemistry) "uIM" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uIS" = ( -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +"uIQ" = ( +/obj/structure/table, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/glass, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/scanning_module, +/obj/item/stock_parts/scanning_module, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/item/multitool, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/turf/open/floor/iron/white/side{ + dir = 10 + }, +/area/station/science/lab) "uIV" = ( /obj/machinery/meter, /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"uJd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/mine/eva/lower) +"uJi" = ( +/obj/structure/rack, +/obj/item/crowbar/large/old, +/obj/effect/turf_decal/tile/dark/fourcorners, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/iron, +/area/mine/living_quarters) "uJn" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -69196,19 +71712,32 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"uJI" = ( -/obj/structure/table/wood, -/obj/structure/noticeboard/directional/north, -/obj/item/flashlight/lantern, +"uJN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/service/chapel) +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) +"uJR" = ( +/turf/open/floor/plating, +/area/station/engineering/main) "uJX" = ( /obj/structure/closet/firecloset, /obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/tile/red/half, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) +"uKc" = ( +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/graveyard) "uKj" = ( /obj/machinery/portable_atmospherics/canister/anesthetic_mix, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -69217,31 +71746,6 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white, /area/station/medical/cryo) -"uKx" = ( -/obj/structure/closet, -/obj/item/clothing/suit/hooded/wintercoat{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/shoes/wheelys/skishoes{ - pixel_y = -8 - }, -/obj/effect/spawner/random/maintenance, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) -"uKJ" = ( -/obj/machinery/newscaster/directional/east, -/obj/structure/sink/directional/west, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/security/prison/work) "uKM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -69268,28 +71772,28 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"uKR" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) "uKW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/execution/education) +"uKY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash/grille_or_waste, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "uLe" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter) -"uLp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "bridge blast"; - name = "Bridge Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/iron, -/area/station/command/bridge) -"uLr" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall/r_wall, -/area/station/engineering/storage_shared) "uLC" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 @@ -69305,24 +71809,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"uLJ" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/item/kirbyplants/organic/plant10, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"uLR" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "uLX" = ( /obj/machinery/door/airlock{ name = "Port Emergency Storage" @@ -69333,36 +71819,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/commons/storage/emergency/port) -"uLZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small/dim/directional/north, -/obj/effect/decal/cleanable/vomit/old, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"uMj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants/random/dead, -/turf/open/floor/iron, -/area/station/maintenance/starboard/fore) "uMm" = ( /turf/open/floor/iron/white/corner{ dir = 4 }, /area/station/hallway/secondary/entry) -"uMq" = ( -/obj/structure/sign/warning/cold_temp{ - pixel_x = -29 +"uMp" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 }, -/obj/structure/sign/warning/gas_mask{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; - pixel_x = 30 +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/mine/storage) +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/vending/hydronutrients, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"uMs" = ( +/obj/structure/sign/warning/fire/directional/north, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "uMx" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -69408,15 +71884,10 @@ "uMN" = ( /turf/open/openspace, /area/station/commons/storage/mining) -"uNp" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) +"uMW" = ( +/obj/structure/sign/warning/directional/west, +/turf/open/openspace/icemoon, +/area/icemoon/surface/outdoors/nospawn) "uNq" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -69426,32 +71897,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"uNu" = ( -/obj/effect/turf_decal/siding/yellow/corner{ - dir = 8 - }, -/obj/effect/turf_decal/siding/yellow/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/large, -/area/station/engineering/storage) -"uNw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/item/trash/raisins, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) "uNE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat/hallway) -"uNG" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 5 - }, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +"uNN" = ( +/obj/effect/spawner/random/trash/bin, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "uNV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -69473,16 +71928,6 @@ "uOb" = ( /turf/closed/wall/r_wall, /area/station/security/prison/toilet) -"uOe" = ( -/obj/machinery/door/window/left/directional/west{ - name = "Fitness Ring" - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/siding/white{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) "uOf" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm_A"; @@ -69510,48 +71955,24 @@ "uOj" = ( /turf/open/floor/iron, /area/station/command/gateway) -"uOk" = ( -/obj/machinery/turretid{ - control_area = "/area/station/ai_monitored/turret_protected/aisat_interior"; - name = "Antechamber Turret Control"; - pixel_y = -24; - req_access = list("minisat") - }, -/obj/machinery/light/small/directional/south, -/obj/machinery/camera/motion/directional/south{ - c_tag = "MiniSat Foyer"; - network = list("minisat") - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) +"uOm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/south, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/iron, +/area/station/maintenance/starboard/fore) "uOn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"uOq" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/structure/railing/corner, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"uOy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) -"uOz" = ( -/obj/structure/marker_beacon/yellow, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/icemoon/underground/explored/graveyard) +"uOs" = ( +/obj/structure/bed/dogbed, +/obj/effect/decal/cleanable/blood/gibs/body, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "uOE" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 @@ -69569,28 +71990,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) -"uOW" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/landmark/start/paramedic, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) -"uPa" = ( -/obj/machinery/disposal/bin, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/iron, -/area/station/science/xenobiology) "uPh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/button/door/directional/south{ +/obj/machinery/light_switch/directional/north, +/obj/machinery/button/door/directional/north{ + pixel_y = 37; id = "Mining_launch"; - name = "Mech Bay Door Control"; - pixel_x = 8; - pixel_y = 23 + name = "Mech Bay Door Control" }, -/obj/machinery/light_switch/directional/north, /turf/open/floor/iron/textured, /area/mine/mechbay) "uPk" = ( @@ -69610,11 +72018,6 @@ /obj/structure/closet/crate/bin, /turf/open/floor/iron/dark, /area/mine/eva/lower) -"uPx" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/iron/smooth, -/area/station/maintenance/fore/lesser) "uPB" = ( /obj/structure/table/wood, /obj/machinery/recharger, @@ -69643,10 +72046,32 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"uPT" = ( +/obj/machinery/light/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "uPY" = ( -/obj/structure/noticeboard/directional/east, +/obj/item/stack/sheet/mineral/wood, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"uQc" = ( +/obj/structure/table, +/obj/machinery/fax/auto_name, +/obj/item/radio/intercom/directional/east, /turf/open/floor/wood, -/area/station/command/meeting_room) +/area/station/hallway/secondary/service) +"uQj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/psychology) "uQl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -69656,6 +72081,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/locker) +"uQv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/chair, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "uQx" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -69669,6 +72105,13 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron/textured, /area/station/security/brig) +"uQR" = ( +/obj/machinery/light_switch/directional/east, +/obj/structure/sign/warning/biohazard/directional/north, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/xenobiology) "uQV" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -69765,45 +72208,9 @@ dir = 4 }, /obj/machinery/meter, +/obj/machinery/newscaster/directional/east, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"uSE" = ( -/obj/structure/table/glass, -/obj/machinery/door/window/right/directional/north{ - name = "Hydroponics Desk"; - req_access = list("hydroponics") - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/desk_bell{ - pixel_x = 1; - pixel_y = 3 - }, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"uSS" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/stripes/box, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/turf/open/floor/iron/white, -/area/station/medical/medbay/aft) -"uTc" = ( -/obj/machinery/chem_heater/withbuffer, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/yellow/full, -/turf/open/floor/iron/white/smooth_large, -/area/station/medical/pharmacy) -"uTf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "uTk" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69826,11 +72233,34 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) +"uTq" = ( +/obj/machinery/restaurant_portal/restaurant, +/obj/effect/turf_decal/delivery/red, +/turf/open/floor/wood/parquet, +/area/station/service/bar/atrium) "uTr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"uTu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"uTx" = ( +/obj/machinery/air_sensor/ordnance_burn_chamber, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "uTI" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -69851,12 +72281,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"uTL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron/white, -/area/station/science/robotics/lab) +"uTV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/toolcloset, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "uTX" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/item/kirbyplants/random, @@ -69864,40 +72293,65 @@ dir = 4 }, /area/station/service/chapel) -"uUn" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) -"uUq" = ( -/obj/effect/spawner/structure/window/hollow/reinforced/middle, +"uUp" = ( +/obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"uUu" = ( -/obj/structure/sign/nanotrasen{ - pixel_x = -32 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 +"uUs" = ( +/obj/machinery/computer/records/medical/laptop{ + pixel_y = 1 }, -/area/station/hallway/secondary/entry) -"uUw" = ( -/obj/structure/table/wood, -/obj/machinery/airalarm/directional/west, -/obj/machinery/fax/auto_name, -/turf/open/floor/iron/grimy, -/area/station/service/bar/backroom) +/obj/structure/table/reinforced, +/obj/machinery/camera/directional/north, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "uUH" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer1{ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"uUM" = ( +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/bluespace_vendor/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) "uUT" = ( /turf/closed/wall, /area/mine/mechbay) +"uVb" = ( +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/turf/closed/wall, +/area/station/service/hydroponics) +"uVf" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/airalarm/mixingchamber_access, +/obj/effect/mapping_helpers/airalarm/link{ + chamber_id = "ordnanceburn" + }, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/airlock_controller/incinerator_ordmix{ + pixel_y = 27 + }, +/obj/machinery/button/ignition/incinerator/ordmix{ + pixel_y = 39; + pixel_x = -6 + }, +/obj/machinery/button/door/incinerator_vent_ordmix{ + pixel_y = 39; + pixel_x = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uVj" = ( /obj/effect/turf_decal/arrows/white, /obj/effect/turf_decal/stripes/line{ @@ -69913,6 +72367,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/atmos) +"uVr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "uVu" = ( /obj/machinery/space_heater, /obj/structure/window/reinforced/spawner/directional/east, @@ -69933,20 +72396,11 @@ dir = 1 }, /area/station/security/lockers) -"uWf" = ( -/obj/structure/railing/corner/end{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"uWp" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall, -/area/station/maintenance/aft/greater) +"uWo" = ( +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/commons/dorms) "uWw" = ( /obj/structure/railing/corner{ dir = 1 @@ -69956,22 +72410,43 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) +"uWy" = ( +/obj/structure/table/wood, +/obj/machinery/reagentgrinder{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -6 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/box/white/corners{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/bar) "uWE" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) +"uWS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/turf/open/floor/wood/large, +/area/station/service/bar) "uWW" = ( /obj/structure/closet/cardboard, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"uXh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/cafeteria{ - dir = 8 - }, -/area/station/science/ordnance/office) +"uXd" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/duct, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/bar) "uXk" = ( /turf/open/misc/dirt/dark{ initial_gas_mix = "ICEMOON_ATMOS" @@ -69983,20 +72458,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/electrical) -"uXy" = ( -/obj/machinery/light_switch/directional/east, -/obj/structure/table, -/obj/item/paper_bin/construction, -/obj/item/stack/pipe_cleaner_coil/random, -/obj/item/stack/pipe_cleaner_coil/random, -/obj/item/stack/pipe_cleaner_coil/random, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/commons/storage/art) "uXC" = ( /obj/structure/table/reinforced, /obj/item/tank/internals/emergency_oxygen/engi{ @@ -70024,15 +72485,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/freezer, /area/mine/laborcamp) -"uYm" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/red/filled/warning{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "uYq" = ( /obj/machinery/navbeacon{ codes_txt = "delivery;dir=2"; @@ -70049,6 +72501,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"uYE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "uYF" = ( /obj/structure/railing{ dir = 6 @@ -70082,6 +72544,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"uZu" = ( +/obj/structure/table/wood, +/obj/item/camera, +/obj/item/taperecorder, +/obj/item/radio/intercom/directional/east, +/obj/item/storage/photo_album/library, +/turf/open/floor/engine/cult, +/area/station/service/library) "uZB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/extinguisher_cabinet/directional/east, @@ -70089,6 +72559,12 @@ dir = 9 }, /area/station/science/research) +"uZC" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/random/maintenance/three, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "uZD" = ( /obj/machinery/recharge_station, /obj/machinery/airalarm/directional/north, @@ -70144,22 +72620,20 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"vao" = ( -/obj/structure/rack, -/obj/item/storage/box/evidence, -/obj/item/storage/box/evidence, -/obj/machinery/button/door{ - id = "Trial Transfer"; - name = "Trial Transfer Lockdown"; - pixel_x = -7; - pixel_y = -23; - req_access = list("brig") +"vap" = ( +/obj/structure/fence{ + dir = 8 }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/textured, -/area/station/security/brig) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"var" = ( +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/structure/sign/departments/holy/directional/east, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "vav" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -70178,13 +72652,30 @@ dir = 1 }, /obj/machinery/light/small/directional/west, +/obj/item/radio/intercom/directional/south, /turf/open/floor/wood, /area/station/service/library) +"vaL" = ( +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/knife/kitchen{ + pixel_y = 2 + }, +/obj/effect/turf_decal/siding/white{ + dir = 10 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "vaM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron/dark/side, /area/mine/eva) +"vaW" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/station/maintenance/fore) "vaZ" = ( /obj/item/book/manual/wiki/plumbing{ pixel_x = 4; @@ -70257,13 +72748,6 @@ /obj/structure/railing, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"vbI" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/structure/chair/stool/directional/north, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "vbO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /obj/item/kirbyplants/random, @@ -70293,24 +72777,52 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"vcf" = ( +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Chapel Maintenance External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/plating, +/area/station/maintenance/department/chapel) +"vch" = ( +/obj/machinery/door/morgue{ + name = "Relic Closet"; + req_access = list("chapel_office"); + dir = 4 + }, +/turf/open/floor/cult, +/area/station/service/chapel/office) "vcj" = ( /turf/closed/wall/r_wall, /area/mine/storage) -"vcH" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 9 +"vcx" = ( +/obj/machinery/newscaster/directional/east, +/obj/structure/sink/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/obj/machinery/meter, -/obj/machinery/button/ignition/incinerator/ordmix{ - pixel_x = 8; - pixel_y = 32 +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 }, -/obj/machinery/button/door/incinerator_vent_ordmix{ - pixel_x = -8; - pixel_y = 32 +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/iron/cafeteria, +/area/station/security/prison/work) +"vcD" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/siding/white{ + dir = 5 }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/obj/effect/turf_decal/siding/white, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/service/kitchen/coldroom) "vcO" = ( /obj/machinery/vending/wardrobe/chap_wardrobe, /turf/open/floor/iron/dark, @@ -70371,27 +72883,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/service) -"vdM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Ordnance Launch Room" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/iron/white, -/area/station/science/ordnance/office) -"vdO" = ( -/obj/machinery/newscaster/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "vdW" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/decal/cleanable/dirt, @@ -70400,12 +72891,15 @@ }, /turf/open/floor/iron/grimy, /area/station/security/prison/work) -"vek" = ( -/obj/effect/turf_decal/weather/snow/corner, -/obj/machinery/light/small/directional/north, -/obj/structure/sign/departments/maint/directional/north, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +"vei" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/engineering/atmos) "ven" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -70416,11 +72910,6 @@ "vep" = ( /turf/closed/wall, /area/station/maintenance/disposal/incinerator) -"veq" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/purple, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "ver" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/burgundy{ @@ -70428,14 +72917,16 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"ves" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/grimy, -/area/station/maintenance/aft/greater) "vey" = ( /turf/closed/wall, /area/station/command/heads_quarters/captain) +"veH" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/command/meeting_room) "veK" = ( /turf/open/floor/iron/white, /area/mine/living_quarters) @@ -70455,16 +72946,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"veX" = ( -/obj/machinery/camera{ - c_tag = "Research Division Server Room"; - dir = 5; - name = "science camera"; - network = list("ss13","rd") - }, -/obj/structure/lattice/catwalk, -/turf/open/openspace/icemoon, -/area/station/science/server) "vfe" = ( /obj/machinery/atmospherics/components/unary/passive_vent, /obj/effect/turf_decal/stripes/line{ @@ -70473,10 +72954,15 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) -"vfg" = ( -/obj/structure/stairs/north, -/turf/open/floor/iron, -/area/station/cargo/storage) +"vfj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/firedoor/heavy{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "vfm" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/smooth, @@ -70501,27 +72987,34 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) -"vfw" = ( -/obj/structure/railing/corner/end/flip, -/obj/effect/turf_decal/siding/white{ - dir = 4 +"vfH" = ( +/obj/structure/closet/crate{ + name = "Le Caisee D'abeille" }, -/obj/structure/sink/kitchen/directional/south, -/obj/structure/mirror/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Service - Coldroom Access" +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/honey_frame, +/obj/item/queen_bee/bought, +/obj/item/clothing/suit/hooded/bee_costume, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 }, -/obj/effect/turf_decal/tile/bar{ - dir = 4 +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 }, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 5 }, -/obj/effect/mapping_helpers/mail_sorting/service/kitchen, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) +/obj/machinery/light/warm/directional/north, +/obj/item/seeds/sunflower, +/obj/effect/spawner/random/food_or_drink/seed, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Botany Apiary" + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "vfI" = ( /obj/machinery/door/window/right/directional/south{ name = "Ordnance Freezer Chamber Access"; @@ -70543,18 +73036,24 @@ "vfW" = ( /turf/open/floor/iron, /area/station/commons/fitness) +"vfZ" = ( +/obj/structure/ladder{ + name = "chemistry lab access" + }, +/obj/machinery/door/window/right/directional/east{ + req_access = list("medical"); + name = "Morgue Access Hatch" + }, +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/dark/textured_large, +/area/station/medical/morgue) "vgf" = ( /obj/structure/grille, /turf/open/floor/plating, /area/station/science/xenobiology) -"vgj" = ( -/obj/structure/filingcabinet, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) "vgu" = ( /obj/structure/table, /obj/item/toy/plush/beeplushie{ @@ -70580,6 +73079,10 @@ /obj/item/stack/cable_coil, /turf/open/floor/iron/smooth, /area/mine/eva) +"vgK" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/turf/closed/wall/r_wall, +/area/station/science/ordnance/burnchamber) "vgM" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -70598,31 +73101,22 @@ /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"vgU" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/starboard/fore) -"vhm" = ( -/obj/structure/sign/poster/random/directional/west, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/service/chapel) -"vhA" = ( -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ - dir = 8 +"vgW" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/turf/open/floor/iron/white, +/area/station/medical/virology) "vhB" = ( /obj/structure/chair/plastic, /obj/effect/turf_decal/bot_red, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"vhF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore) "vhL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70649,13 +73143,16 @@ dir = 6 }, /area/station/science/research) -"viE" = ( -/obj/structure/cable, -/obj/structure/sign/warning/gas_mask/directional/south, -/obj/machinery/light/small/dim/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"vij" = ( +/obj/machinery/computer/prisoner/management, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "viH" = ( /obj/machinery/power/emitter/welded{ dir = 4 @@ -70669,10 +73166,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) -"viR" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine/xenobio, -/area/station/science/xenobiology) "viV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/window/reinforced/spawner/directional/south, @@ -70685,28 +73178,40 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/construction) +"vjg" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore) "vjh" = ( /turf/closed/wall/r_wall, /area/mine/laborcamp) -"vjj" = ( -/obj/effect/spawner/structure/window, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "rnd2"; - name = "Research Lab Shutters" - }, -/turf/open/floor/plating, -/area/station/science/research) "vjk" = ( /obj/machinery/atmospherics/components/binary/crystallizer{ dir = 4 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/project) -"vjx" = ( -/obj/machinery/telecomms/server/presets/engineering, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) +"vjq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"vjA" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Service - Kitchen" + }, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/table, +/obj/machinery/processor{ + pixel_y = 6 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "vjJ" = ( /obj/structure/table, /obj/machinery/light/directional/north, @@ -70714,10 +73219,32 @@ /obj/effect/turf_decal/tile/green/full, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/virology) -"vjM" = ( -/obj/machinery/light/floor, +"vjN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/sign/warning/cold_temp/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay Cryogenics"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/dark/textured, +/area/station/medical/cryo) +"vjQ" = ( +/obj/structure/cable, +/obj/machinery/duct, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, /turf/open/floor/iron, -/area/station/cargo/storage) +/area/station/engineering/lobby) "vjS" = ( /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron/white, @@ -70733,6 +73260,11 @@ }, /turf/open/floor/iron/white/textured, /area/station/command/heads_quarters/ce) +"vkC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/iron/smooth, +/area/station/maintenance/fore/lesser) "vkD" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -70769,49 +73301,31 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/construction) -"vkO" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "vkW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"vlb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/siding/yellow/corner{ - dir = 4 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = 12 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/engineering/storage_shared) -"vle" = ( -/obj/item/radio/intercom/chapel/directional/east, -/obj/structure/chair, -/obj/machinery/light/small/red/directional/north, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "vlf" = ( /obj/structure/disposalpipe/junction/yjunction{ dir = 8 }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"vlz" = ( -/turf/open/openspace, -/area/station/service/kitchen/coldroom) +"vlF" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/stairs/north, +/turf/open/floor/iron, +/area/mine/eva/lower) +"vlH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/directional/north, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron, +/area/station/security/prison/visit) "vlL" = ( /obj/machinery/computer/cargo/request, /turf/open/floor/iron, @@ -70836,17 +73350,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining, /turf/open/floor/iron/smooth, /area/mine/mechbay) -"vlU" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/white{ - dir = 6 - }, -/obj/machinery/reagentgrinder{ - pixel_y = 9; - pixel_x = 4 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "vlZ" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -70855,11 +73358,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/mine/storage) -"vme" = ( -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "vmj" = ( /obj/structure/chair{ dir = 1; @@ -70881,10 +73379,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"vmp" = ( -/obj/machinery/shower/directional/east, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "vmr" = ( /obj/structure/musician/piano, /turf/open/floor/wood, @@ -70903,6 +73397,23 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"vmw" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock{ + name = "Law Office" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/service/lawyer, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) "vmx" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70931,6 +73442,23 @@ /obj/structure/cable, /turf/open/floor/iron/large, /area/station/hallway/secondary/entry) +"vmK" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/test_chamber/directional/north, +/turf/open/floor/iron, +/area/station/science/explab) +"vmO" = ( +/obj/structure/table, +/obj/machinery/light/small/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/random/engineering/material_cheap, +/turf/open/floor/iron/smooth, +/area/station/maintenance/starboard/fore) "vmP" = ( /obj/effect/spawner/structure/window/hollow/reinforced/end, /turf/open/floor/plating, @@ -70954,6 +73482,21 @@ }, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) +"vmW" = ( +/obj/structure/table/wood, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"vne" = ( +/obj/item/clothing/head/beanie/orange{ + pixel_y = 8 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/wheelys/skishoes{ + pixel_y = -8 + }, +/obj/effect/decal/remains/human, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "vng" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70967,22 +73510,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"vns" = ( -/obj/machinery/firealarm/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/camera{ - c_tag = "Departure Lounge West"; - dir = 10 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/hallway/secondary/exit/departure_lounge) "vnt" = ( /obj/machinery/computer/station_alert{ dir = 8 @@ -70995,20 +73522,37 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage/gas) -"vnK" = ( -/obj/effect/turf_decal/siding/white, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 +"vnw" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Fitness Room South" }, -/obj/structure/table/glass, -/obj/machinery/light/small/directional/west, -/obj/item/stack/package_wrap{ - pixel_y = 3 +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 }, -/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -7 + }, +/obj/item/kirbyplants/random, /turf/open/floor/iron, -/area/station/service/hydroponics) +/area/station/commons/fitness) +"vnA" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/textured_half, +/area/station/service/kitchen) "vnN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -71019,12 +73563,14 @@ }, /turf/open/floor/iron/textured, /area/station/medical/chem_storage) -"vnS" = ( -/obj/structure/fence/cut/large{ - dir = 8 +"vnW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/machinery/light_switch/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "vnY" = ( /obj/structure/closet/crate/critter, /turf/open/floor/plating, @@ -71056,14 +73602,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"voA" = ( -/obj/machinery/button/flasher{ - id = "cell4"; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron, -/area/station/security/brig/upper) "voH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71107,39 +73645,24 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/smooth, /area/station/security/execution/transfer) -"vpl" = ( -/obj/effect/turf_decal/siding/brown{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt{ - pixel_x = -9 - }, -/obj/structure/sign/warning/gas_mask/directional/west, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "vpn" = ( /obj/vehicle/sealed/mecha/ripley/paddy/preset, /obj/structure/cable, /turf/open/floor/iron/recharge_floor, /area/station/security/mechbay) +"vpx" = ( +/obj/structure/sign/departments/evac/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "vpJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/door/airlock/engineering{ - name = "Utilities Room" +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "vpR" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, @@ -71208,7 +73731,6 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "vra" = ( -/obj/machinery/firealarm/directional/west, /obj/machinery/modular_computer/preset/cargochat/cargo{ dir = 4 }, @@ -71222,21 +73744,14 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/security/courtroom) -"vrr" = ( -/obj/machinery/computer/operating{ - dir = 8 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "vrw" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "pharmacy_shutters3"; - name = "Pharmacy Shutters" +/obj/machinery/button/door/directional/west{ + id = "xenobio3"; + name = "Xenobio Pen 3 Blast Door"; + req_access = list("xenobiology") }, -/turf/open/floor/plating, -/area/station/service/kitchen) +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "vrC" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71245,6 +73760,15 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) +"vrD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron, +/area/station/commons/dorms) "vrG" = ( /turf/open/floor/iron, /area/station/security/prison/mess) @@ -71278,6 +73802,11 @@ /obj/effect/turf_decal/trimline/red/line, /turf/open/floor/iron/dark/textured, /area/station/security/range) +"vsx" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, +/turf/open/floor/plating, +/area/station/maintenance/fore) "vsz" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -71285,6 +73814,10 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"vsF" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/surface/outdoors/nospawn) "vsI" = ( /obj/structure/marker_beacon/burgundy, /turf/open/floor/plating/snowed/icemoon, @@ -71323,28 +73856,40 @@ /obj/structure/table, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"vtg" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "hopqueue"; + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "vtj" = ( /obj/machinery/air_sensor/carbon_tank, /turf/open/floor/engine/co2, /area/station/engineering/atmos) -"vto" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/newscaster/directional/north, -/obj/effect/turf_decal/siding/wood, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Service - Bar" - }, -/turf/open/floor/iron, -/area/station/service/bar) "vtr" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/item/kirbyplants/random, /turf/open/floor/wood, /area/station/maintenance/aft/greater) +"vtu" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/coroner, +/obj/machinery/door/airlock/external{ + name = "Graveyard Access"; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/medical/morgue) "vtv" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -71358,6 +73903,9 @@ }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/mining_weather_monitor/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, /turf/open/floor/iron, /area/station/hallway/primary/central) "vtA" = ( @@ -71366,34 +73914,33 @@ dir = 10 }, /area/station/science/research) -"vtW" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/space_heater, +"vtO" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, -/area/station/medical/morgue) -"vtZ" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/cup/glass/bottle/vodka/badminka{ - pixel_x = 7; - pixel_y = 20 - }, +/area/station/maintenance/aft/greater) +"vtR" = ( +/obj/item/storage/briefcase, +/obj/structure/rack, +/obj/item/camera/detective, /obj/item/taperecorder{ - pixel_x = -5; - pixel_y = 1 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = 7; - pixel_y = 8 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = 6 + pixel_x = -5 }, -/obj/structure/secure_safe/hos{ - pixel_x = 35 +/obj/structure/cable, +/obj/structure/detectiveboard/directional/west, +/turf/open/floor/carpet, +/area/station/security/detectives_office) +"vuf" = ( +/obj/machinery/shower/directional/west, +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/hos) +/turf/open/floor/iron/textured, +/area/station/engineering/atmos) "vuh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71447,18 +73994,6 @@ /obj/structure/cable, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) -"vvf" = ( -/obj/structure/chair{ - pixel_y = -2 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/food_packaging, -/obj/structure/sign/poster/official/random/directional/west, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/storage_shared) "vvh" = ( /turf/open/floor/iron, /area/station/hallway/primary/fore) @@ -71470,17 +74005,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"vvn" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/item/radio/intercom/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Service - Atrium Entrance" - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "vvu" = ( /obj/structure/railing, /obj/effect/turf_decal/trimline/neutral/warning{ @@ -71535,6 +74059,48 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/science/robotics/mechbay) +"vvT" = ( +/obj/structure/table, +/obj/machinery/button/ticket_machine{ + pixel_x = -6; + pixel_y = -1; + req_access = list("hop") + }, +/obj/machinery/button/photobooth{ + pixel_y = -1; + pixel_x = 6; + req_access = list("hop") + }, +/obj/machinery/button/door/directional/south{ + id = "hop"; + name = "Privacy Shutters"; + pixel_x = -6; + req_access = list("hop") + }, +/obj/machinery/button/door/directional/south{ + id = "hopqueue"; + name = "Queue Shutters"; + pixel_x = 6; + req_access = list("hop") + }, +/obj/machinery/button/flasher{ + pixel_y = 9; + id = "hopflash"; + req_access = list("hop") + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) +"vvU" = ( +/obj/item/beacon, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/mine/eva) "vvX" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -71544,6 +74110,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"vwi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood/large, +/area/station/commons/vacant_room/office) "vwj" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Port Mix to West Ports" @@ -71561,11 +74136,13 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/lawoffice) -"vwr" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +"vws" = ( +/obj/structure/chair/sofa/bench{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "vwt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -71573,16 +74150,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth, /area/station/security/holding_cell) -"vww" = ( -/obj/structure/sign/warning/directional/west, -/turf/open/openspace/icemoon, -/area/icemoon/surface/outdoors/nospawn) "vwC" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 9 }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"vwD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "vwE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71598,7 +74181,7 @@ /area/station/security/prison/rec) "vwG" = ( /obj/machinery/vending/security{ - onstation_override = 1 + all_products_free = 0 }, /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -71667,6 +74250,11 @@ /obj/effect/turf_decal/tile/yellow/opposingcorners, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) +"vxx" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/smooth, +/area/mine/eva/lower) "vxO" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/siding/wood, @@ -71683,14 +74271,17 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron/large, /area/station/engineering/atmos) -"vxY" = ( -/obj/effect/turf_decal/siding/wood{ +"vxW" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, +/obj/structure/chair/office{ dir = 8 }, -/obj/structure/cable, -/obj/effect/landmark/start/mime, -/turf/open/floor/wood/parquet, -/area/station/service/theater) +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron, +/area/station/commons/fitness) "vyb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71717,6 +74308,29 @@ "vym" = ( /turf/closed/wall, /area/station/construction) +"vyp" = ( +/obj/structure/bonfire, +/obj/item/melee/roastingstick, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) +"vyq" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/camera/directional/north{ + c_tag = "Virology Hallway"; + network = list("ss13","medbay") + }, +/obj/machinery/door_buttons/access_button{ + pixel_x = 35; + idDoor = "virology_airlock_exterior"; + idSelf = "virology_airlock_control"; + name = "Virology Access Button"; + req_access = list("virology") + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "vyt" = ( /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/maint) @@ -71731,10 +74345,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/engine, /area/station/science/explab) -"vyy" = ( -/obj/structure/reagent_dispensers/cooking_oil, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) +"vyz" = ( +/obj/structure/sign/warning/test_chamber/directional/north, +/turf/open/floor/glass/reinforced, +/area/station/science/ordnance/office) "vyI" = ( /obj/structure/railing{ dir = 1 @@ -71743,12 +74357,6 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) -"vyN" = ( -/obj/structure/closet/crate/miningcar, -/obj/effect/spawner/random/exotic/snow_gear, -/obj/effect/spawner/random/exotic/snow_gear, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "vyO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71760,6 +74368,16 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"vyW" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/machinery/camera/directional/south{ + network = list("ss13","medbay"); + c_tag = "Medbay Stasis Center North" + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "vzb" = ( /obj/structure/rack, /obj/effect/spawner/random/clothing/costume, @@ -71783,10 +74401,16 @@ dir = 1 }, /area/station/science/research) +"vzp" = ( +/obj/machinery/light/warm/directional/north, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/rec) "vzs" = ( /obj/structure/filingcabinet, /obj/structure/cable, /obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/white, /area/station/medical/psychology) "vzw" = ( @@ -71797,21 +74421,29 @@ "vzD" = ( /turf/closed/wall, /area/station/maintenance/starboard/aft) -"vzI" = ( -/obj/structure/sign/directions/engineering{ - desc = "A sign that shows there are doors here. There are doors everywhere!"; - icon_state = "doors"; - name = "WARNING: EXTERNAL AIRLOCK"; - pixel_x = 32 +"vzG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 }, -/turf/closed/wall/r_wall, -/area/mine/production) -"vzN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/medical/cryo) +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/mine/eva/lower) +"vzH" = ( +/obj/machinery/oven/range, +/obj/effect/turf_decal/siding/white/corner, +/obj/machinery/light/directional/north, +/obj/machinery/button/door/directional/north{ + id = "kitchencounter"; + name = "Counter Shutters Control"; + req_access = list("kitchen") + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "vzS" = ( /obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, /obj/structure/disposalpipe/sorting/mail{ @@ -71834,18 +74466,6 @@ /obj/machinery/newscaster/directional/west, /turf/open/floor/iron/recharge_floor, /area/station/science/robotics/mechbay) -"vAj" = ( -/obj/effect/turf_decal/bot, -/obj/structure/closet/crate, -/obj/structure/sign/warning/cold_temp{ - pixel_x = -29 - }, -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 2; - pixel_y = -32 - }, -/turf/open/floor/iron/smooth, -/area/mine/living_quarters) "vAm" = ( /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -71859,19 +74479,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"vAo" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm5"; - name = "Cabin 1" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/commons/dorms) "vAq" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/department/medical/morgue) +"vAr" = ( +/obj/machinery/light/floor, +/obj/structure/railing/corner/end{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "vAt" = ( /obj/structure/table, /obj/item/book/manual/wiki/security_space_law{ @@ -71896,17 +74514,18 @@ /obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"vAO" = ( -/obj/structure/bodycontainer/morgue/beeper_off{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "vAP" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/science/genetics) +"vAS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "vAU" = ( /obj/machinery/light/small/directional/east, /obj/machinery/camera/directional/east{ @@ -71926,15 +74545,6 @@ }, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/service) -"vAW" = ( -/obj/effect/turf_decal/tile/neutral/diagonal_edge, -/obj/effect/landmark/start/cook, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron/kitchen/diagonal, -/area/station/service/kitchen) "vAY" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -71947,24 +74557,6 @@ dir = 1 }, /area/station/hallway/primary/port) -"vBa" = ( -/obj/structure/table, -/obj/item/storage/crayons, -/obj/item/trash/candle{ - pixel_y = 12 - }, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) -"vBg" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/warning/gas_mask{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals."; - pixel_x = 3; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/mine/eva/lower) "vBh" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -71982,18 +74574,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) -"vBt" = ( -/obj/machinery/door/airlock/freezer{ - desc = "The freezer where the chef keeps all the stuff that needs to be kept cold. Ice cold."; - name = "The Ice Box" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/service/kitchen/coldroom) "vBu" = ( /obj/machinery/space_heater, /obj/machinery/camera/directional/south{ @@ -72020,23 +74600,17 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"vBD" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/light/directional/south, -/obj/machinery/camera{ - c_tag = "Medbay Lobby"; - dir = 5; - network = list("ss13","medbay") - }, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "vBG" = ( /turf/closed/wall, /area/station/command/heads_quarters/cmo) +"vCm" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "vCn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72105,6 +74679,7 @@ pixel_y = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron, /area/station/science/xenobiology) "vDx" = ( @@ -72122,16 +74697,10 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) -"vDQ" = ( -/obj/effect/spawner/random/decoration/flower, -/obj/structure/flora/rock/pile/icy/style_random, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"vEh" = ( -/obj/structure/frame/machine, -/obj/item/stack/cable_coil/five, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +"vEc" = ( +/obj/machinery/door/poddoor/incinerator_ordmix, +/turf/open/floor/engine/vacuum, +/area/station/science/ordnance/burnchamber) "vEw" = ( /obj/machinery/camera/directional/west{ c_tag = "Atmospherics Access" @@ -72148,17 +74717,18 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"vEC" = ( -/obj/structure/disposalpipe/segment{ +"vEG" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/stool/bar/directional/north, -/turf/open/floor/eighties, -/area/station/commons/lounge) +/obj/machinery/door/airlock/external/glass{ + name = "Supply Door Airlock"; + pixel_y = 0; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/general, +/turf/open/floor/plating, +/area/station/cargo/storage) "vEJ" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -72172,16 +74742,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/smooth_half, /area/station/maintenance/department/medical/central) -"vEQ" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/structure/sign/warning/chem_diamond/directional/west, -/obj/structure/bed/medical/emergency, -/obj/machinery/iv_drip, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "vEU" = ( /obj/machinery/door/airlock/external{ glass = 1; @@ -72197,15 +74757,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/iron/smooth, /area/station/cargo/drone_bay) -"vFb" = ( -/obj/structure/table/wood, -/obj/item/cigarette/cigar{ - pixel_x = 7; - pixel_y = 10 - }, -/obj/item/storage/box/matches, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/captain) "vFg" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -72236,6 +74787,16 @@ /obj/structure/cable, /turf/open/floor/iron/textured, /area/station/security/brig) +"vFT" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "vFW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -72250,11 +74811,11 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/virology, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"vGi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/cold_temp, +"vGw" = ( +/obj/structure/transit_tube/station/reverse, +/obj/structure/sign/warning/secure_area/directional/north, /turf/open/floor/plating, -/area/station/maintenance/port/aft) +/area/station/ai_monitored/turret_protected/aisat_interior) "vGy" = ( /obj/machinery/camera/directional/east{ c_tag = "Xenobiology Pens Observation - Starboard Aft"; @@ -72291,14 +74852,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/tcommsat/computer) -"vHe" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/trash/botanical_waste, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "vHf" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -72313,6 +74866,15 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"vHo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "vHq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72333,34 +74895,25 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/exit/departure_lounge) +"vHJ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) "vHK" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 }, /turf/open/floor/iron, /area/station/cargo/sorting) -"vHM" = ( -/obj/structure/rack, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 8 - }, -/obj/effect/spawner/random/armory/rubbershot, -/turf/open/floor/iron/dark/textured, -/area/station/ai_monitored/security/armory) "vHR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry) -"vHT" = ( -/obj/structure/fence/post{ - dir = 8 - }, -/obj/structure/sign/nanotrasen, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "vHU" = ( /obj/item/radio/intercom/prison/directional/south, /obj/effect/turf_decal/tile/red/half/contrasted, @@ -72396,6 +74949,24 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"vIm" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + glass = 1; + name = "Chapel External Airlock"; + opacity = 0 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/chapel_office, +/obj/effect/mapping_helpers/airlock/access/any/engineering/external, +/turf/open/floor/iron, +/area/station/service/chapel) +"vIu" = ( +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/medical/chemistry) "vIH" = ( /obj/structure/closet{ name = "evidence closet 1" @@ -72403,13 +74974,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark/textured_edge, /area/station/security/evidence) -"vIL" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "vIZ" = ( /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -72422,6 +74986,23 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) +"vJl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/mob/living/carbon/human/species/monkey, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/grass, +/area/station/medical/virology) +"vJv" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "vJB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -72439,6 +75020,13 @@ }, /turf/open/floor/plating, /area/station/engineering/storage/tech) +"vJJ" = ( +/obj/structure/closet/secure_closet/bar, +/obj/machinery/light/small/directional/north, +/obj/item/vending_refill/cigarette, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/wood/parquet, +/area/station/service/bar/backroom) "vJS" = ( /obj/structure/chair/sofa/corp/right{ dir = 4; @@ -72449,9 +75037,6 @@ /turf/open/floor/iron/dark, /area/station/science/breakroom) "vJY" = ( -/obj/structure/railing/corner{ - dir = 8 - }, /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Research Director Observation"; req_access = list("rd") @@ -72473,13 +75058,56 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/locker) -"vKT" = ( +"vKy" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/suit/utility/radiation, +/obj/item/clothing/head/utility/radiation, +/obj/item/geiger_counter, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/clothing/glasses/meson, +/obj/machinery/button/door/directional/north{ + id = "engsm"; + name = "Radiation Shutters Control"; + req_access = list("engineering") + }, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) +"vKD" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/hallway/secondary/entry) +"vKR" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable, -/turf/open/floor/plating/snowed/coldroom, -/area/station/service/kitchen/coldroom) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/curtain/cloth/fancy/mechanical/start_closed{ + id = "cantena_curtains" + }, +/turf/open/floor/wood, +/area/station/commons/lounge) +"vKZ" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/status_display/evac/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "vLj" = ( /obj/machinery/suit_storage_unit/rd, /obj/effect/turf_decal/stripes/line{ @@ -72488,48 +75116,19 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/smooth_half, /area/station/command/heads_quarters/rd) -"vLo" = ( -/obj/effect/landmark/generic_maintenance_landmark, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +"vLY" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/closet/l3closet/virology, +/obj/effect/turf_decal/tile/green/fourcorners, +/turf/open/floor/iron/white, +/area/station/medical/virology) "vMa" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"vMc" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Gateway" - }, -/obj/structure/table, -/obj/structure/sign/warning/biohazard/directional/west, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/siding/thinplating/dark/corner{ - dir = 8 - }, -/obj/item/emergency_bed{ - pixel_x = -1 - }, -/obj/item/emergency_bed{ - pixel_x = 4 - }, -/obj/item/storage/medkit/regular{ - pixel_y = 1 - }, -/turf/open/floor/iron, -/area/station/command/gateway) -"vMf" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/obj/structure/railing/corner{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "vMl" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -72548,14 +75147,6 @@ /obj/structure/cable/layer3, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) -"vMN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/item/flashlight/lamp{ - start_on = 0 - }, -/turf/open/floor/wood, -/area/station/maintenance/aft/greater) "vMY" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -72594,29 +75185,11 @@ /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/closed/wall/r_wall, /area/station/engineering/atmos/mix) -"vNK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/port/fore) -"vNM" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) -"vOd" = ( -/obj/item/wrench, -/obj/machinery/atmospherics/components/binary/pump/off/supply/visible/layer4{ - dir = 1; - name = "Air In" - }, -/obj/effect/landmark/generic_maintenance_landmark, -/obj/effect/landmark/blobstart, -/turf/open/floor/plating, -/area/station/maintenance/fore) +"vNU" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "vOw" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/red{ @@ -72624,6 +75197,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"vOy" = ( +/obj/structure/fake_stairs/wood/directional/north, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "vOD" = ( /obj/machinery/status_display/ai/directional/north, /obj/effect/turf_decal/tile/dark_green{ @@ -72641,6 +75219,15 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"vPc" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Security Post - Engineering" + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red, +/obj/machinery/computer/security/telescreen/engine/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) "vPh" = ( /obj/machinery/light/directional/north, /obj/machinery/digital_clock/directional/north, @@ -72709,12 +75296,19 @@ /turf/open/floor/iron, /area/mine/production) "vQz" = ( -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 +/obj/machinery/turretid{ + control_area = "/area/station/ai_monitored/turret_protected/aisat_interior"; + name = "Antechamber Turret Control"; + pixel_y = -24; + req_access = list("minisat") }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating/snowed/icemoon, -/area/icemoon/underground/explored) +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/motion/directional/south{ + c_tag = "MiniSat Foyer"; + network = list("minisat") + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "vQG" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 10 @@ -72739,6 +75333,9 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/cargo/lobby) +"vRn" = ( +/turf/open/floor/iron/stairs/medium, +/area/station/cargo/storage) "vRo" = ( /obj/machinery/shower/directional/north, /obj/effect/turf_decal/trimline/blue/line{ @@ -72814,36 +75411,6 @@ "vSi" = ( /turf/closed/wall, /area/mine/eva) -"vSu" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/firealarm/directional/north{ - pixel_x = -4 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = 5; - pixel_y = 28 - }, -/turf/open/floor/wood/large, -/area/station/service/bar) -"vSw" = ( -/obj/structure/table, -/obj/machinery/firealarm/directional/north, -/obj/item/stack/sheet/iron/five, -/obj/item/stack/cable_coil/five, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/vacant_room/commissary) -"vSx" = ( -/obj/structure/sign/warning/chem_diamond/directional/south, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "vSE" = ( /obj/machinery/door/window/right/directional/east{ name = "Bar Access" @@ -72911,6 +75478,26 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"vTh" = ( +/obj/structure/fence/post{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"vTm" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/duct, +/obj/effect/turf_decal/siding/dark{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/checker, +/area/station/hallway/secondary/service) "vTo" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 1 @@ -72925,6 +75512,19 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"vTq" = ( +/obj/effect/spawner/random/contraband/prison, +/obj/structure/closet/crate, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/siding/dark{ + dir = 10 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/security/prison/work) "vTJ" = ( /obj/structure/table, /obj/item/toy/plush/slimeplushie{ @@ -72952,24 +75552,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"vUn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ - color = "#0000ff"; - dir = 8; - name = "Supply multi deck pipe adapter" - }, -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - color = "#ff0000"; - dir = 8; - name = "Scrubbers multi deck pipe adapter" - }, -/obj/structure/cable/multilayer/multiz, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "vUr" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -72982,12 +75564,13 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/sepia, /area/station/security/prison/rec) -"vUz" = ( -/obj/structure/table, -/obj/item/clothing/suit/apron/chef, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"vUI" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 5 + }, +/turf/open/floor/iron/grimy, +/area/station/hallway/secondary/entry) "vUW" = ( /obj/item/stack/cable_coil{ amount = 7; @@ -73007,18 +75590,20 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/gateway) +"vVl" = ( +/obj/structure/table/wood, +/obj/item/soap/nanotrasen, +/obj/item/clothing/head/costume/sombrero/green, +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/grimy, +/area/station/commons/lounge) "vVw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/hangover, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"vVA" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "vVH" = ( /turf/closed/wall, /area/station/security/prison/safe) @@ -73075,14 +75660,18 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/chemistry, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vWo" = ( -/obj/machinery/light_switch/directional/north, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/explab) "vWr" = ( /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"vWy" = ( +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/large, +/area/station/engineering/storage) "vWz" = ( /turf/closed/wall, /area/mine/storage) @@ -73128,21 +75717,12 @@ /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"vXe" = ( -/obj/structure/aquarium/lawyer, -/turf/open/floor/wood, -/area/station/service/lawoffice) "vXh" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"vXm" = ( -/obj/structure/grille/broken, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "vXn" = ( /obj/structure/table, /obj/item/food/pie/cream, @@ -73172,70 +75752,20 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/mine/living_quarters) -"vXD" = ( -/obj/structure/stairs/south, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "vXH" = ( /obj/structure/cable, /turf/open/floor/iron/white, /area/mine/living_quarters) -"vXM" = ( -/obj/structure/chair/sofa/right/brown{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"vXO" = ( -/obj/structure/fluff/tram_rail, -/obj/structure/lattice/catwalk, -/obj/structure/fluff/tram_rail{ - pixel_y = 17 - }, -/obj/structure/marker_beacon/burgundy{ - name = "landing marker" - }, -/turf/open/lava/plasma/ice_moon, -/area/icemoon/underground/explored) "vXU" = ( /obj/item/toy/snowball, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"vXV" = ( -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/requests_console/directional/west{ - department = "Head of Personnel's Desk"; - name = "Head of Personnel's Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/mapping_helpers/requests_console/announcement, -/obj/effect/mapping_helpers/requests_console/information, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "vYa" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/commons/storage/primary) -"vYc" = ( -/obj/machinery/light_switch/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/security/prison/visit) -"vYd" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) "vYg" = ( /obj/machinery/camera/directional/west{ c_tag = "Chapel West" @@ -73257,10 +75787,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"vYp" = ( -/obj/structure/table/wood, -/turf/open/floor/wood/parquet, -/area/station/service/bar/atrium) "vYq" = ( /obj/structure/barricade/wooden/snowed, /turf/open/misc/asteroid/snow/icemoon, @@ -73282,6 +75808,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"vYw" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/hallway/secondary/exit/departure_lounge) "vYz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/chair/stool/directional/south, @@ -73289,6 +75820,17 @@ /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"vYA" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Central Hallway South-West - HoP's Office" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "vYH" = ( /turf/open/floor/iron/white, /area/station/medical/pharmacy) @@ -73304,22 +75846,6 @@ }, /turf/open/floor/iron/large, /area/station/engineering/lobby) -"vYN" = ( -/obj/effect/spawner/random/structure/crate, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"vYY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/service/hydroponics, -/obj/effect/mapping_helpers/mail_sorting/service/theater, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "vZa" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -73331,14 +75857,12 @@ /obj/effect/spawner/random/entertainment/dice, /turf/open/floor/iron, /area/station/commons/locker) -"vZp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen/directional/east{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +"vZo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "vZt" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ dir = 8 @@ -73360,60 +75884,30 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"vZH" = ( -/obj/item/storage/briefcase, -/obj/structure/rack, -/obj/item/camera/detective, -/obj/item/taperecorder{ - pixel_x = -5 - }, -/obj/structure/cable, -/turf/open/floor/carpet, -/area/station/security/detectives_office) -"vZS" = ( -/obj/structure/rack, -/turf/open/floor/iron/smooth, -/area/mine/living_quarters) -"vZW" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Mix to Space" - }, -/turf/open/floor/plating/snowed/icemoon, -/area/station/maintenance/port/aft) +"vZM" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "wab" = ( /obj/structure/cable, /obj/machinery/holopad, /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"wal" = ( -/obj/structure/sign/warning, -/turf/closed/wall, -/area/station/commons/storage/mining) "wam" = ( /turf/open/openspace, /area/station/cargo/storage) -"wav" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/neutral/filled/warning{ - dir = 4 - }, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 8 - }, -/obj/machinery/door/window/right/directional/west{ - name = "Corpse Arrivals" - }, -/obj/structure/window/spawner/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +"waz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) +"waF" = ( +/obj/effect/landmark/generic_maintenance_landmark, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "waH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73436,10 +75930,12 @@ /obj/item/reagent_containers/blood/random, /turf/open/floor/iron, /area/station/maintenance/port/fore) -"waT" = ( -/obj/structure/sign/warning/docking/directional/south, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"waU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "waZ" = ( /obj/structure/table, /obj/item/assembly/igniter{ @@ -73494,15 +75990,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/mine/eva/lower) -"wbN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark, -/area/station/medical/medbay/aft) "wbR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/cafeteria{ @@ -73522,35 +76009,17 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"wck" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 4 +"wcn" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" }, -/obj/machinery/bluespace_vendor/directional/east, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) -"wco" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/icemoon/underground/explored/graveyard) "wcx" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, /turf/open/floor/iron/large, /area/station/command/heads_quarters/ce) -"wcz" = ( -/obj/structure/sink/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/prison/garden) "wcD" = ( /obj/structure/chair/plastic{ dir = 4 @@ -73624,16 +76093,47 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"weg" = ( -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." +"wdX" = ( +/obj/structure/chair/stool/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/mine/laborcamp) +"wee" = ( +/obj/item/radio/intercom/chapel/directional/east, +/obj/structure/chair, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/wood/large, +/area/station/service/chapel) +"wes" = ( +/obj/effect/turf_decal/siding/wideplating_new/light, +/obj/item/trash/bee, +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 }, -/turf/open/floor/iron/smooth, -/area/mine/mechbay) +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/work) "weF" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"weI" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/medical/treatment_center) "weL" = ( /obj/structure/chair/stool/directional/north, /obj/effect/decal/cleanable/dirt, @@ -73645,6 +76145,10 @@ "weR" = ( /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) +"weT" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "weW" = ( /obj/docking_port/stationary/random/icemoon{ dir = 8; @@ -73685,10 +76189,15 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) -"wfu" = ( -/obj/structure/sign/poster/official/wtf_is_co2, -/turf/closed/wall/r_wall, -/area/station/maintenance/aft/greater) +"wfE" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "wfF" = ( /obj/effect/turf_decal/tile/blue, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73703,12 +76212,27 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/station/command/meeting_room) +"wfP" = ( +/obj/structure/table/wood, +/obj/item/paper, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "wfR" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/iron/smooth_edge, /area/station/command/heads_quarters/rd) +"wgo" = ( +/obj/item/food/grown/potato{ + pixel_y = 4 + }, +/obj/structure/rack, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "wgr" = ( /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -73721,11 +76245,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/xenobiology) -"wgu" = ( -/obj/machinery/newscaster/directional/west, -/obj/effect/spawner/random/structure/twelve_percent_spirit_board, -/turf/open/floor/iron/grimy, -/area/station/service/chapel/office) "wgG" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ @@ -73737,16 +76256,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"wgH" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/pen, -/obj/item/stamp/head/rd{ - pixel_x = 3; - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/rd) "wgI" = ( /obj/effect/turf_decal/trimline/green/filled/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73758,6 +76267,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, /area/station/medical/virology) +"wgK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "wgL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -73771,22 +76286,7 @@ name = "Research Lab Shutters" }, /turf/open/floor/plating, -/area/station/science/breakroom) -"wgR" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor/preopen{ - id = "Biohazard"; - name = "Biohazard Containment Door" - }, -/obj/effect/turf_decal/bot, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/science/research) +/area/station/science/lab) "wgU" = ( /obj/machinery/modular_computer/preset/cargochat/science{ dir = 1 @@ -73803,12 +76303,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"whc" = ( -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/white/side{ - dir = 4 - }, -/area/station/science/xenobiology) "whd" = ( /obj/item/storage/medkit/regular{ pixel_x = 3; @@ -73820,16 +76314,22 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/white/textured, /area/station/security/medical) +"whe" = ( +/obj/item/stack/rods/two, +/obj/item/stack/sheet/iron, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "whf" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible, /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/pumproom) "whg" = ( -/obj/effect/turf_decal/tile/blue, -/obj/machinery/light/directional/south, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/grimy, +/area/station/service/chapel/office) "whh" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/effect/turf_decal/trimline/yellow/filled/warning{ @@ -73846,20 +76346,16 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"whk" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) "whr" = ( /obj/machinery/hydroponics/soil, /obj/item/cultivator, /turf/open/floor/grass, /area/station/security/prison/garden) -"whz" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/decal/cleanable/dirt, -/obj/item/seeds/redbeet, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/mine/laborcamp) "whC" = ( /obj/structure/destructible/cult/item_dispenser/archives/library, /obj/item/book/codex_gigas, @@ -73887,6 +76383,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"whU" = ( +/obj/machinery/door/window/left/directional/north{ + name = "Pharmacy Desk"; + req_access = list("pharmacy") + }, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/turf/open/floor/plating, +/area/station/medical/treatment_center) "whW" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -73895,13 +76402,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) -"wij" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, -/obj/structure/cable, -/obj/effect/turf_decal/tile/yellow, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/engineering/storage_shared) +"wib" = ( +/obj/structure/sign/departments/xenobio/directional/west, +/turf/open/floor/iron/white, +/area/station/science/research) +"wik" = ( +/obj/structure/table, +/obj/item/plant_analyzer, +/obj/item/stock_parts/power_store/cell/high, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/plating, +/area/station/engineering/storage/tech) "wiv" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -73918,35 +76429,19 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"wiM" = ( -/obj/machinery/computer/station_alert, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/engineering/engine_smes) -"wiO" = ( -/obj/structure/chair, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) -"wjv" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/machinery/keycard_auth/directional/west, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) -"wjy" = ( +"wiX" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) +"wjj" = ( +/obj/structure/disposalpipe/segment, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sign/warning/radiation/directional/west, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, -/area/station/maintenance/aft/lesser) +/area/station/maintenance/fore) "wjz" = ( /obj/machinery/airalarm/directional/north, /obj/structure/disposalpipe/segment{ @@ -73958,6 +76453,23 @@ }, /turf/open/floor/iron/white, /area/station/science/robotics/lab) +"wjA" = ( +/obj/structure/sign/warning/directional/north, +/turf/closed/mineral/random/snow/high_chance, +/area/icemoon/underground/explored) +"wjD" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/structure/closet/secure_closet/medical3, +/obj/item/defibrillator/loaded{ + pixel_y = 3 + }, +/obj/item/clothing/gloves/latex/nitrile, +/obj/item/clothing/gloves/latex/nitrile, +/obj/machinery/light/cold/directional/north, +/turf/open/floor/iron/dark, +/area/station/medical/storage) "wjL" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -73966,17 +76478,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"wjR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"wjP" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/rack, +/obj/item/storage/backpack/satchel/leather/withwallet, +/obj/item/toy/figure/assistant, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/chair, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/turf/open/floor/iron, +/area/station/commons/dorms/laundry) "wjS" = ( /obj/effect/landmark/start/assistant, /obj/structure/chair/pew{ @@ -73991,6 +76502,15 @@ }, /turf/open/floor/iron, /area/station/cargo/miningdock) +"wkd" = ( +/obj/structure/rack, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/obj/effect/spawner/random/armory/shotgun, +/turf/open/floor/iron/dark/textured, +/area/station/ai_monitored/security/armory) "wkl" = ( /obj/machinery/camera/directional/west{ c_tag = "Telecomms Server Room"; @@ -74011,20 +76531,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"wkC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/stripes/white/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/white/line{ - dir = 8 - }, -/turf/open/floor/iron/dark/textured, -/area/station/hallway/primary/central) "wkH" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/table, @@ -74033,6 +76539,25 @@ /obj/item/clothing/mask/breath/medical, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"wkN" = ( +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/cargo/lobby) "wkO" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -74043,12 +76568,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"wkV" = ( -/obj/structure/fence/corner{ - dir = 1 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "wkW" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -74065,18 +76584,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"wla" = ( -/obj/effect/decal/cleanable/garbage, -/obj/item/reagent_containers/spray/chemsprayer/party{ - pixel_x = 1 - }, -/obj/item/clothing/head/costume/festive{ - pixel_y = -3; - pixel_x = -5 - }, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "wlr" = ( /obj/structure/table, /obj/item/stack/spacecash/c10, @@ -74105,10 +76612,6 @@ /obj/structure/filingcabinet, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) -"wlF" = ( -/mob/living/carbon/human/species/monkey, -/turf/open/floor/grass, -/area/station/medical/virology) "wlR" = ( /obj/structure/closet/boxinggloves, /turf/open/floor/iron, @@ -74132,14 +76635,11 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) -"wmb" = ( -/obj/item/beacon, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/mine/eva) +"wme" = ( +/obj/effect/turf_decal/weather/snow, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/icemoon, +/area/icemoon/underground/explored) "wml" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/blue, @@ -74172,6 +76672,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) +"wmP" = ( +/obj/machinery/plate_press, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_half, +/area/station/security/prison/work) "wmR" = ( /obj/structure/cable, /obj/machinery/door/airlock/glass{ @@ -74185,14 +76693,6 @@ "wmT" = ( /turf/open/floor/iron/dark, /area/mine/eva) -"wmX" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "wna" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -74204,14 +76704,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/dark/textured, /area/station/security/range) -"wnp" = ( -/obj/item/toy/snowball{ - pixel_x = -6; - pixel_y = -3 - }, -/mob/living/basic/pet/penguin/baby/permanent, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) "wnv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -74270,20 +76762,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/brig) -"wol" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/light/directional/east, -/obj/structure/table, -/obj/machinery/fax{ - fax_name = "Research Division"; - name = "Research Division Fax Machine"; - pixel_x = 1 - }, -/turf/open/floor/iron/white/side{ - dir = 10 - }, -/area/station/science/research) +"woc" = ( +/obj/machinery/vending/wardrobe/atmos_wardrobe, +/obj/effect/turf_decal/stripes/end, +/obj/machinery/light/directional/north, +/obj/structure/sign/warning/no_smoking/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/engineering/atmos) "wor" = ( /turf/open/openspace, /area/station/medical/medbay/aft) @@ -74294,11 +76779,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"woC" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/structure/sign/poster/official/safety_eye_protection/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "woH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74326,15 +76806,6 @@ }, /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) -"woX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "wpc" = ( /obj/machinery/door/airlock{ name = "Unisex Restrooms" @@ -74344,34 +76815,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/freezer, /area/station/commons/toilet/locker) -"wph" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/plating, -/area/station/maintenance/fore) -"wpi" = ( -/obj/structure/table, -/obj/item/holosign_creator/atmos{ - pixel_x = -5 - }, -/obj/item/holosign_creator/atmos{ - pixel_x = 4; - pixel_y = 4 +"wpn" = ( +/obj/machinery/light/small/dim/directional/east, +/obj/structure/railing{ + dir = 1 }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) -"wpm" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/maintenance{ - name = "Fitness Maintenance" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/starboard/aft) "wpp" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/pipedispenser/disposal, @@ -74391,12 +76844,6 @@ /obj/item/stock_parts/micro_laser/high, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"wpv" = ( -/obj/structure/sign/warning/cold_temp, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/science/xenobiology) "wpx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/newscaster/directional/west, @@ -74450,21 +76897,6 @@ dir = 9 }, /area/station/science/research) -"wqc" = ( -/obj/machinery/vending/wardrobe/engi_wardrobe, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/iron/dark, -/area/station/engineering/storage_shared) -"wqi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "wqj" = ( /obj/machinery/holopad, /obj/structure/cable, @@ -74472,17 +76904,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/storage/mining) -"wqt" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +"wqo" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/railing/corner{ dir = 1 }, -/obj/machinery/airalarm/directional/west, -/obj/item/kirbyplants/organic/plant10, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) +/turf/open/floor/stone, +/area/station/service/bar/atrium) "wqx" = ( /turf/closed/wall/r_wall, /area/station/hallway/primary/fore) @@ -74525,25 +76953,27 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"wrc" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light_switch/directional/north{ - pixel_x = -11 +"wrk" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + name = "Bridge"; + dir = 8 }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, /turf/open/floor/iron, -/area/station/engineering/storage) -"wrl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown/half/contrasted{ +/area/station/command/bridge) +"wrw" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal) +/obj/structure/sign/poster/official/safety_report/directional/east, +/obj/item/radio/intercom/prison/directional/north, +/turf/open/floor/iron, +/area/station/security/prison/visit) "wrA" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -74566,15 +76996,14 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"wrN" = ( -/obj/structure/sign/departments/court/directional/north, -/turf/open/openspace, -/area/station/hallway/primary/fore) -"wrU" = ( -/obj/structure/rack, -/obj/item/screwdriver, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +"wrP" = ( +/obj/machinery/computer/cargo, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/keycard_auth/wall_mounted/directional/north, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "wrV" = ( /obj/structure/cable, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -74587,12 +77016,23 @@ /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"wsk" = ( +/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment, +/obj/structure/railing/corner/end, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "wsp" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ dir = 1 }, /turf/open/floor/iron, /area/station/science/ordnance) +"wsr" = ( +/obj/machinery/door/airlock/hatch, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "wsu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, @@ -74673,6 +77113,16 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"wtM" = ( +/obj/machinery/door/airlock/external{ + name = "External Access"; + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "wtP" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -74687,33 +77137,18 @@ dir = 5 }, /area/station/science/research) -"wtX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/cold_temp, -/turf/open/floor/plating, -/area/station/maintenance/solars/starboard/fore) -"wuc" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchencounter"; - name = "Kitchen Counter Shutters" - }, -/obj/machinery/door/firedoor, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "wug" = ( /obj/machinery/gulag_item_reclaimer{ pixel_y = 24 }, /turf/open/floor/carpet, /area/station/security/processing) +"wuh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "wuo" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter) @@ -74754,19 +77189,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/prison) -"wuV" = ( -/obj/effect/turf_decal/siding/yellow/corner, -/obj/machinery/status_display/evac/directional/south, -/obj/structure/table, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker; - pixel_x = -5 - }, -/obj/item/multitool{ - pixel_x = 8 - }, -/turf/open/floor/iron, -/area/station/engineering/lobby) "wve" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, @@ -74775,9 +77197,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/service/chapel) -"wvu" = ( -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) "wvv" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -74794,12 +77213,11 @@ /turf/open/floor/plating, /area/station/science/ordnance/testlab) "wvw" = ( -/obj/machinery/button/door/directional/north{ - id = "heads_meeting"; - name = "Security Shutters" +/obj/structure/fence/cut/medium{ + dir = 2 }, -/turf/open/floor/wood, -/area/station/command/meeting_room) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "wvz" = ( /obj/structure/table, /obj/item/assembly/timer{ @@ -74817,13 +77235,22 @@ /obj/item/assembly/timer, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"wvF" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8 + }, +/turf/open/openspace/icemoon/keep_below, +/area/icemoon/underground/explored) "wvI" = ( /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) "wvJ" = ( -/obj/effect/spawner/random/engineering/atmospherics_portable, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/machinery/photocopier, +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/sign/calendar/directional/north, +/turf/open/floor/wood, +/area/station/commons/vacant_room/office) "wvK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -74833,12 +77260,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"wvL" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/misc/dirt{ - initial_gas_mix = "ICEMOON_ATMOS" - }, -/area/icemoon/underground/explored/graveyard) "wvV" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) @@ -74849,22 +77270,23 @@ /mob/living/basic/pet/cat/runtime, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"wwg" = ( -/obj/machinery/camera{ - c_tag = "Service - Botany"; - dir = 9 +"wwi" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 }, -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 +/obj/machinery/door/airlock/multi_tile/public/glass{ + dir = 4; + name = "Arrivals Dock" }, -/obj/item/radio/intercom/directional/north, -/obj/machinery/light/warm/directional/north, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) +/obj/machinery/door/firedoor{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/secondary/entry) "wwn" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/west{ @@ -74914,39 +77336,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/dark, /area/station/medical/virology) -"wwL" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Law Office" +"wwO" = ( +/obj/machinery/recharger, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/service/lawyer, -/turf/open/floor/wood, -/area/station/service/lawoffice) +/turf/open/floor/iron, +/area/station/command/gateway) "wxg" = ( /turf/open/floor/iron/freezer, /area/mine/laborcamp) -"wxp" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/poddoor/shutters{ - dir = 8; - id = "Cargo_Store_In"; - name = "Cargo Warehouse Shutters" +"wxl" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/warehouse) +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "wxw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -74980,6 +77388,11 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"wxY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/construction) "wyj" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -75022,6 +77435,14 @@ }, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/security/armory) +"wyL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "wyO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -75033,6 +77454,13 @@ }, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) +"wyX" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/stairs/south, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/medical/virology) "wzc" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -75044,6 +77472,11 @@ /obj/effect/spawner/random/clothing/bowler_or_that, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"wzi" = ( +/obj/effect/spawner/random/structure/crate, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "wzk" = ( /turf/open/floor/wood, /area/station/command/meeting_room) @@ -75065,6 +77498,36 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) +"wzv" = ( +/obj/machinery/atmospherics/components/tank/air{ + initialize_directions = 3; + dir = 3 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"wzH" = ( +/obj/structure/minecart_rail{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/icemoon/underground/explored) +"wzU" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/science/ordnance) "wAf" = ( /obj/machinery/requests_console/directional/north{ department = "Cargo Bay"; @@ -75076,18 +77539,6 @@ /obj/item/folder/yellow, /turf/open/floor/iron, /area/station/cargo/storage) -"wAq" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Security - Upper Brig South" - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/security/brig/upper) "wAv" = ( /obj/structure/chair/comfy/brown{ dir = 1 @@ -75097,14 +77548,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"wAx" = ( -/obj/structure/sign/warning/secure_area/directional/north{ - desc = "A warning sign which reads 'SERVER ROOM'."; - name = "SERVER ROOM" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/science/server) "wAB" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -75112,6 +77555,13 @@ /obj/machinery/meter, /turf/open/floor/iron, /area/station/engineering/atmos) +"wAJ" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/griddle, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "wAQ" = ( /obj/machinery/computer/shuttle/labor/one_way{ dir = 4 @@ -75146,12 +77596,21 @@ /turf/open/floor/plating, /area/station/maintenance/fore) "wBa" = ( -/obj/structure/railing, -/obj/effect/turf_decal/siding/thinplating_new/light{ - dir = 10 +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat/eva{ + pixel_x = 1; + pixel_y = 9 }, -/turf/open/floor/wood/large, -/area/station/hallway/primary/starboard) +/obj/item/clothing/shoes/winterboots/ice_boots/eva{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/delivery/red, +/obj/item/clothing/gloves/color/grey/protects_cold, +/obj/item/clothing/mask/gas, +/turf/open/floor/iron/textured, +/area/station/ai_monitored/command/storage/eva) "wBb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -75189,15 +77648,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) -"wBr" = ( -/obj/effect/turf_decal/siding/wood{ +"wBs" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/kirbyplants/random, +/obj/structure/railing/corner{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/item/kirbyplants/organic/plant2, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/service/chapel) "wBy" = ( /obj/machinery/netpod, /obj/item/radio/intercom/directional/south, @@ -75209,12 +77669,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"wBF" = ( -/obj/machinery/status_display/supply{ - pixel_y = 2 - }, -/turf/closed/wall, -/area/station/cargo/sorting) "wBT" = ( /obj/machinery/camera/directional/south{ c_tag = "Port Hallway Center" @@ -75224,6 +77678,9 @@ /area/station/hallway/primary/port) "wBV" = ( /obj/structure/closet/crate, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) "wCo" = ( @@ -75232,6 +77689,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"wCI" = ( +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/turf/open/openspace, +/area/station/medical/treatment_center) "wCK" = ( /obj/effect/turf_decal/trimline/dark_blue/corner{ dir = 8 @@ -75257,6 +77718,16 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) +"wCN" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/wtf_is_co2/directional/north, +/turf/open/floor/iron, +/area/station/engineering/atmos/storage) "wCV" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75264,6 +77735,12 @@ dir = 8 }, /area/station/science/explab) +"wDb" = ( +/obj/machinery/requests_console/auto_name/directional/east, +/obj/machinery/duct, +/obj/effect/mapping_helpers/requests_console/supplies, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "wDc" = ( /obj/structure/cable, /obj/machinery/door/airlock/engineering{ @@ -75300,34 +77777,6 @@ "wDg" = ( /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"wDi" = ( -/obj/structure/table, -/obj/item/clothing/mask/breath{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/breath{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/breath{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 2; - pixel_y = -1 - }, -/obj/item/clothing/mask/breath{ - pixel_x = 2; - pixel_y = -1 - }, -/turf/open/floor/iron, -/area/station/commons/storage/mining) "wDk" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -75342,16 +77791,6 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"wDs" = ( -/obj/machinery/hydroponics/constructable, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/item/plant_analyzer, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/mine/laborcamp) "wDG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75372,6 +77811,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"wDS" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/fake_stairs/wood/directional/north, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "wDU" = ( /turf/closed/wall/r_wall, /area/mine/eva/lower) @@ -75382,26 +77829,32 @@ /obj/structure/disposalpipe/trunk, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) +"wEb" = ( +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "wEh" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/sorting) -"wEq" = ( -/obj/structure/chair/office{ - dir = 8 +"wEp" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 }, -/obj/machinery/newscaster/directional/north, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/remains/human, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/dark/textured_edge, +/area/station/security/prison) +"wEu" = ( +/obj/structure/sign/warning/directional/south, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "wEG" = ( /obj/structure/extinguisher_cabinet/directional/south{ pixel_x = 4 }, /obj/machinery/light_switch/directional/south{ - pixel_x = -6 + pixel_x = -8 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -75460,6 +77913,27 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/departmental, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"wFt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ + color = "#0000ff"; + dir = 8; + name = "Supply multi deck pipe adapter" + }, +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + color = "#ff0000"; + dir = 8; + name = "Scrubbers multi deck pipe adapter" + }, +/obj/structure/cable/multilayer/multiz, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) +"wFJ" = ( +/turf/open/floor/wood, +/area/station/commons/lounge) "wFN" = ( /mob/living/basic/slime, /turf/open/floor/engine, @@ -75491,15 +77965,14 @@ name = "Test Chamber Blast Door" }, /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/engine, +/turf/open/floor/plating, /area/station/science/explab) -"wGm" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/chair/stool/bar/directional/north, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +"wGt" = ( +/obj/structure/table/glass, +/obj/item/storage/box/monkeycubes, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron, +/area/station/science/xenobiology) "wGv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -75524,19 +77997,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wGN" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - id = "xenobio6"; - name = "Xenobio Pen 6 Blast Door" - }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/electric_shock, -/turf/open/floor/plating, -/area/station/science/xenobiology) "wGO" = ( /obj/machinery/light/directional/south, /obj/machinery/atmospherics/pipe/multiz/violet/visible{ @@ -75550,10 +78010,6 @@ }, /turf/open/floor/iron/dark/diagonal, /area/station/engineering/atmos/storage) -"wGQ" = ( -/obj/machinery/light/small/dim/directional/west, -/turf/open/floor/stone, -/area/station/commons/lounge) "wGW" = ( /obj/structure/table, /obj/item/book/manual/wiki/security_space_law, @@ -75571,6 +78027,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"wGZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/insectguts, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "wHb" = ( /obj/machinery/atmospherics/components/unary/passive_vent{ dir = 1 @@ -75604,12 +78068,6 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) -"wHr" = ( -/obj/structure/fence/post{ - dir = 8 - }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) "wHH" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red{ @@ -75617,17 +78075,6 @@ }, /turf/open/floor/iron, /area/mine/laborcamp/security) -"wHK" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/fore) "wIg" = ( /obj/machinery/mech_bay_recharge_port{ dir = 2 @@ -75640,28 +78087,19 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/station/hallway/primary/central) -"wIx" = ( -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/siding/thinplating/dark{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/blue/filled/warning, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "wIz" = ( /obj/machinery/light/small/directional/west, /obj/structure/table/wood, /obj/effect/landmark/start/hangover, /turf/open/floor/carpet, /area/station/commons/dorms) +"wIC" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/flashlight/lantern, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark, +/area/station/service/chapel) "wIR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -75691,10 +78129,13 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) -"wJD" = ( -/obj/structure/sign/departments/maint/alt, -/turf/closed/wall, -/area/station/maintenance/aft/lesser) +"wJy" = ( +/obj/structure/chair/wood{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "wJG" = ( /obj/machinery/holopad, /obj/structure/cable, @@ -75727,10 +78168,33 @@ /obj/effect/landmark/start/depsec/medical, /turf/open/floor/iron/dark/smooth_large, /area/station/security/checkpoint/medical) -"wKh" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, -/turf/closed/wall/r_wall, -/area/station/science/ordnance/burnchamber) +"wKi" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "rnd2"; + name = "Research Lab Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/status_display/evac/directional/south, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/science/lab) +"wKu" = ( +/obj/structure/disposalpipe/trunk/multiz/down{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/port/greater) "wKv" = ( /obj/structure/table, /obj/item/radio/off, @@ -75757,11 +78221,40 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"wKY" = ( -/obj/machinery/vending/games, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/wood, -/area/station/service/library) +"wLc" = ( +/obj/structure/table, +/obj/machinery/button/flasher{ + pixel_x = -6; + pixel_y = -1; + id = "brigentry" + }, +/obj/machinery/button/door{ + pixel_y = 9; + pixel_x = 6; + req_access = list("secuirty"); + id = "innerbrig"; + name = "Brig Interior Doors Control"; + normaldoorcontrol = 1 + }, +/obj/machinery/button/door{ + pixel_y = -1; + pixel_x = 6; + req_access = list("secuirty"); + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + normaldoorcontrol = 1 + }, +/obj/machinery/button/door/directional/north{ + id = "briggate"; + name = "Front Gate Shutters"; + req_access = list("brig"); + pixel_y = 9; + pixel_x = -6 + }, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/security/brig/entrance) "wLk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers, /obj/machinery/portable_atmospherics/canister/carbon_dioxide, @@ -75777,10 +78270,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/command/bridge) -"wLK" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai) "wLO" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75800,14 +78289,6 @@ dir = 1 }, /area/station/hallway/secondary/exit/departure_lounge) -"wLU" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "wLW" = ( /obj/effect/landmark/atmospheric_sanity/mark_all_station_areas_as_goal, /turf/open/misc/asteroid/snow/icemoon, @@ -75891,19 +78372,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/commons/storage/mining) -"wME" = ( -/obj/machinery/light_switch/directional/north{ - pixel_x = 6; - pixel_y = 28 - }, -/obj/machinery/button/door/directional/north{ - id = "botany_chasm_and_wolf_shutters"; - name = "Exterior Shutters"; - pixel_y = 28; - pixel_x = -4 - }, -/turf/open/floor/iron/dark/smooth_half, -/area/station/service/hydroponics) "wMT" = ( /obj/structure/sign/poster/random/directional/south, /turf/open/floor/iron, @@ -75921,6 +78389,29 @@ dir = 1 }, /area/station/security/office) +"wMY" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/maintenance/fore) +"wNj" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "wNp" = ( /obj/machinery/door/airlock/maintenance{ name = "Medbay Maintenance" @@ -75969,6 +78460,23 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos/storage) +"wOq" = ( +/obj/structure/fence/door/opened, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"wOt" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "wOy" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -75979,12 +78487,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"wOC" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "wOF" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/official/random/directional/north, @@ -76021,26 +78523,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"wPe" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/machinery/door/airlock{ - name = "Bar" - }, -/turf/open/floor/iron/dark/textured_half{ - dir = 1 - }, -/area/station/service/bar) "wPf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -76071,6 +78553,18 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"wPx" = ( +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "wPD" = ( /obj/machinery/door/airlock/security/glass{ name = "Evidence Storage" @@ -76086,6 +78580,19 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/openspace, /area/station/engineering/atmos/storage) +"wPG" = ( +/obj/structure/fence{ + dir = 1 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) +"wPJ" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/structure/stairs/north, +/turf/open/floor/iron/stairs/medium, +/area/station/commons/dorms/laundry) "wPN" = ( /obj/structure/railing{ dir = 4 @@ -76095,16 +78602,6 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) -"wPR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/obj/structure/sign/warning/cold_temp/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "wPX" = ( /obj/structure/table, /obj/item/storage/belt/medical{ @@ -76120,6 +78617,7 @@ /obj/item/reagent_containers/spray/cleaner, /obj/item/blood_filter, /obj/item/radio/intercom/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/white, /area/station/medical/storage) "wQh" = ( @@ -76151,13 +78649,9 @@ /turf/open/floor/plating/icemoon, /area/station/security/execution/education) "wQx" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/standard_air, +/area/station/science/cytology) "wQC" = ( /obj/item/flashlight/lantern, /obj/structure/table/wood, @@ -76171,12 +78665,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"wQN" = ( -/obj/structure/fence/cut/large{ - dir = 1 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "wQR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -76195,15 +78683,16 @@ "wRa" = ( /turf/open/openspace, /area/station/security/prison) -"wRc" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/power_store/cell/high/empty, -/turf/open/floor/iron/dark, -/area/station/engineering/storage) "wRd" = ( /turf/open/floor/iron, /area/station/engineering/main) +"wRk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "wRr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -76217,6 +78706,14 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/glass/reinforced, /area/station/security/lockers) +"wRu" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "wRx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -76257,14 +78754,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/freezer, /area/mine/eva/lower) -"wRO" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/machinery/door/firedoor/heavy, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "wRR" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 1; @@ -76275,10 +78764,6 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/station/medical/chemistry) -"wSc" = ( -/obj/machinery/power/port_gen/pacman, -/turf/open/floor/plating, -/area/station/maintenance/fore) "wSd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -76308,6 +78793,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) +"wSp" = ( +/obj/structure/fence/corner{ + dir = 10 + }, +/obj/item/stack/cable_coil/five, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "wSs" = ( /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) @@ -76325,38 +78817,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison/work) -"wSL" = ( -/obj/effect/landmark/start/botanist, -/obj/effect/turf_decal/tile/green/opposingcorners{ +"wSC" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/item/radio/intercom/directional/south, /turf/open/floor/iron, -/area/station/service/hydroponics) -"wSM" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/obj/machinery/door/poddoor{ - id = "QMLoaddoor2"; - name = "Supply Dock Loading Door" - }, -/turf/open/floor/plating, -/area/station/cargo/storage) +/area/station/security/prison/garden) "wSU" = ( /obj/structure/chair{ dir = 1 }, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"wSX" = ( -/obj/structure/railing/corner, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/turf/open/floor/iron/dark/side, -/area/mine/eva) "wSZ" = ( /obj/machinery/camera/directional/east{ c_tag = "Security - Permabrig Upper Hallway East"; @@ -76367,11 +78840,6 @@ "wTg" = ( /turf/closed/wall, /area/station/engineering/main) -"wTl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/landmark/start/mime, -/turf/open/floor/wood, -/area/station/commons/lounge) "wTw" = ( /obj/effect/turf_decal/trimline/neutral/warning{ dir = 10 @@ -76392,6 +78860,14 @@ /obj/machinery/telecomms/bus/preset_one, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) +"wTB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/structure/closet/radiation, +/obj/structure/sign/warning/no_smoking/circle/directional/north, +/turf/open/floor/iron/dark, +/area/station/maintenance/disposal/incinerator) "wTC" = ( /obj/structure/closet/secure_closet/security/engine, /obj/machinery/requests_console/directional/north{ @@ -76405,6 +78881,25 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) +"wTL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "wTX" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -76412,11 +78907,16 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wUb" = ( -/obj/structure/rack, -/obj/item/poster/random_contraband, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) +"wUf" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/obj/structure/sign/poster/official/random/directional/north, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/hallway/secondary/entry) "wUi" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Stbd"; @@ -76430,6 +78930,13 @@ "wUj" = ( /turf/closed/wall, /area/station/service/lawoffice) +"wUm" = ( +/obj/machinery/vatgrower{ + dir = 4 + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) "wUt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -76461,11 +78968,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"wUD" = ( -/obj/structure/fake_stairs/wood/directional/north, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +"wUB" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/bar/directional/north, +/turf/open/floor/eighties, +/area/station/commons/lounge) "wUJ" = ( /obj/machinery/computer/atmos_alert, /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ @@ -76524,6 +79037,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/central/greater) +"wVd" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "wVe" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -76533,15 +79062,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/service/library) -"wVq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/spawner/random/trash/caution_sign, -/obj/effect/decal/cleanable/glass, -/obj/structure/sign/warning/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/port/lesser) +"wVr" = ( +/obj/structure/mineral_door/wood{ + name = "Maintenance Bar"; + dir = 4 + }, +/turf/open/floor/wood, +/area/station/maintenance/port/aft) "wVu" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -76575,23 +79102,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"wVI" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/stool/bar/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/eighties, -/area/station/commons/lounge) -"wVR" = ( -/obj/structure/disposalpipe/junction, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "wWa" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -76605,13 +79115,19 @@ /obj/effect/spawner/random/structure/tank_holder, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wWB" = ( -/obj/structure/chair/plastic{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, +"wWo" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"wWw" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "wWM" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 @@ -76641,6 +79157,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) +"wXb" = ( +/obj/machinery/firealarm/directional/west, +/turf/open/openspace, +/area/station/service/bar/atrium) "wXh" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ dir = 8 @@ -76648,10 +79168,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/cryo) -"wXn" = ( -/obj/structure/flora/grass/both/style_3, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "wXR" = ( /obj/structure/table, /obj/item/storage/medkit/regular{ @@ -76689,10 +79205,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"wYp" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/ice, -/area/icemoon/underground/explored) "wYq" = ( /obj/machinery/door/airlock{ name = "Perma Overlook Closet" @@ -76723,6 +79235,16 @@ /obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms/laundry) +"wYH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "wYJ" = ( /turf/closed/wall, /area/station/engineering/storage_shared) @@ -76732,6 +79254,12 @@ }, /turf/open/floor/plating, /area/station/security/courtroom) +"wYS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/fore) "wYZ" = ( /obj/structure/disposalpipe/junction/flip{ dir = 1 @@ -76743,32 +79271,6 @@ "wZj" = ( /turf/open/floor/iron/dark/textured, /area/station/security/warden) -"wZp" = ( -/obj/item/storage/toolbox/electrical{ - pixel_x = 4; - pixel_y = 6 - }, -/obj/machinery/button/door/directional/east{ - id = "eva_shutters"; - pixel_x = 26; - pixel_y = 6; - req_access = list("command") - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/light_switch/directional/east{ - pixel_y = -6 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/storage/toolbox/emergency, -/obj/structure/rack, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "wZr" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -76779,19 +79281,18 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"wZv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"wZu" = ( +/obj/vehicle/ridden/wheelchair{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/machinery/camera{ - c_tag = "Xenobiology Pens Hall - Fore"; - dir = 9; - network = list("ss13","rd","xeno") +/obj/effect/turf_decal/trimline/blue/filled/end{ + dir = 1 }, -/obj/structure/sign/xenobio_guide/directional/north, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +/obj/item/radio/intercom/directional/west, +/obj/structure/disposalpipe/segment, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron, +/area/station/medical/medbay/aft) "wZD" = ( /obj/machinery/computer/records/security{ dir = 1 @@ -76805,11 +79306,37 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"wZW" = ( +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/rack, +/obj/item/clothing/accessory/armband/hydro{ + pixel_y = 4; + pixel_x = 2 + }, +/obj/item/clothing/accessory/armband/hydro, +/obj/item/toy/figure/botanist, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "xad" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /obj/structure/cable, /turf/open/floor/plating, /area/station/security/range) +"xaf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "xal" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -76852,6 +79379,22 @@ /obj/machinery/door/airlock/external/glass, /turf/open/floor/plating, /area/station/hallway/secondary/entry) +"xax" = ( +/obj/machinery/photocopier, +/obj/machinery/button/door/directional/north{ + id = "heads_meeting"; + name = "Security Shutters" + }, +/turf/open/floor/wood, +/area/station/command/meeting_room) +"xay" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/event_spawn, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/station/service/bar/backroom) "xaA" = ( /obj/structure/closet/secure_closet/hop, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ @@ -76909,6 +79452,11 @@ }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) +"xbq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "xbr" = ( /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, @@ -76933,9 +79481,21 @@ /turf/open/floor/iron/freezer, /area/mine/eva/lower) "xbB" = ( -/obj/machinery/gibber, -/turf/open/misc/asteroid/snow/coldroom, -/area/station/service/kitchen/coldroom) +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/shower/directional/south, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/fluff/shower_drain, +/obj/effect/turf_decal/stripes/white/end, +/obj/machinery/camera/directional/north{ + c_tag = "Medbay Pharmacy"; + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "xbC" = ( /obj/effect/turf_decal/trimline/dark_green/arrow_ccw, /obj/machinery/meter, @@ -76955,6 +79515,12 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"xcf" = ( +/obj/structure/closet/crate/grave/filled, +/turf/open/misc/dirt{ + initial_gas_mix = "ICEMOON_ATMOS" + }, +/area/icemoon/underground/explored/graveyard) "xcp" = ( /obj/item/trash/pistachios, /turf/open/floor/plating, @@ -76985,16 +79551,6 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"xcO" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/status_display/ai/directional/north, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/sink/kitchen/directional/west, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron, -/area/station/service/bar) "xcW" = ( /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ dir = 1 @@ -77018,10 +79574,26 @@ /obj/effect/mapping_helpers/airlock/access/any/command/ai_upload, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"xdh" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/stairs/north, +/turf/open/floor/iron/stairs/medium, +/area/station/commons/dorms/laundry) "xdl" = ( /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/storage) +"xds" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "xdH" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/chair{ @@ -77032,10 +79604,6 @@ }, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"xdM" = ( -/obj/structure/sign/warning/cold_temp, -/turf/closed/wall, -/area/station/hallway/secondary/exit/departure_lounge) "xdU" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1 @@ -77049,21 +79617,12 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central) -"xdY" = ( -/obj/structure/sign/warning/directional/west, -/turf/open/genturf/blue, -/area/icemoon/underground/unexplored/rivers/deep/shoreline) "xdZ" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 6 }, /turf/open/floor/iron/dark/textured, /area/station/security/prison/rec) -"xea" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "xeg" = ( /obj/effect/turf_decal/weather/snow/corner, /turf/open/misc/asteroid/snow/icemoon, @@ -77082,10 +79641,41 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) +"xer" = ( +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "rnd2"; + name = "Research Lab Shutters" + }, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/science/lab) "xex" = ( /obj/machinery/teleport/hub, /turf/open/floor/plating, /area/station/command/teleporter) +"xeF" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) "xeH" = ( /obj/machinery/airalarm/directional/west, /turf/open/floor/wood, @@ -77151,10 +79741,40 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"xfp" = ( +/obj/structure/table, +/obj/item/multitool/circuit{ + pixel_x = -8 + }, +/obj/item/multitool/circuit{ + pixel_x = -4 + }, +/obj/item/multitool/circuit, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = -2 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/station/science/explab) "xft" = ( /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"xfv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "xfB" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/iron, @@ -77227,25 +79847,35 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"xgr" = ( -/obj/effect/decal/cleanable/dirt, +"xgy" = ( +/turf/open/openspace, +/area/station/service/hydroponics) +"xgF" = ( /obj/effect/turf_decal/stripes/line{ - dir = 8 + dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = -8; - pixel_y = -24 +/obj/structure/railing{ + dir = 6 }, -/obj/machinery/button/door/incinerator_vent_atmos_main{ - pixel_x = -8; - pixel_y = -36 +/obj/structure/table, +/obj/item/assembly/signaler{ + pixel_x = 6; + pixel_y = 5 }, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) -"xgy" = ( -/turf/open/openspace, -/area/station/service/hydroponics) +/obj/item/stock_parts/power_store/cell/high, +/obj/item/stack/cable_coil, +/obj/item/pen{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria{ + dir = 8 + }, +/area/station/science/ordnance/office) "xgI" = ( /obj/structure/sign/warning/secure_area{ desc = "A warning sign which reads 'BOMB RANGE"; @@ -77306,17 +79936,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/blue, /area/station/hallway/secondary/entry) -"xhg" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Garden" - }, -/obj/item/kirbyplants/random, -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "xhk" = ( /turf/open/floor/iron/dark, /area/station/commons/storage/primary) @@ -77356,6 +79975,16 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/port) +"xhA" = ( +/obj/structure/fence/door/opened, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "xhD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -77368,6 +79997,10 @@ "xhK" = ( /turf/closed/wall/r_wall, /area/station/security/prison/safe) +"xhV" = ( +/obj/machinery/duct, +/turf/open/floor/wood, +/area/station/hallway/secondary/service) "xie" = ( /obj/machinery/camera/directional/west{ c_tag = "Engineering MiniSat Access" @@ -77379,6 +80012,23 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) +"xiq" = ( +/obj/machinery/computer/security/telescreen/interrogation/directional/north, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark/corner{ + dir = 8 + }, +/area/station/security/processing) +"xir" = ( +/obj/item/radio/intercom/prison/directional/north, +/obj/effect/turf_decal/tile/red/full, +/obj/machinery/light_switch/directional/north{ + pixel_x = 16 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/brig/entrance) "xit" = ( /obj/item/book/manual/wiki/security_space_law, /obj/structure/table/wood, @@ -77400,6 +80050,14 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) +"xiL" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/structure/sink/kitchen/directional/south, +/turf/open/floor/iron, +/area/station/service/hydroponics) "xiO" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 1 @@ -77425,10 +80083,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/large, /area/station/medical/medbay/lobby) -"xjg" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall, -/area/station/medical/medbay/lobby) "xjm" = ( /obj/machinery/light_switch/directional/north, /obj/machinery/camera/directional/north{ @@ -77437,14 +80091,6 @@ /obj/vehicle/ridden/janicart, /turf/open/floor/iron, /area/station/service/janitor) -"xjs" = ( -/obj/machinery/door/firedoor/heavy, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/science/research) "xjC" = ( /turf/open/floor/plating, /area/station/maintenance/department/cargo) @@ -77474,6 +80120,14 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) +"xjT" = ( +/obj/structure/table, +/obj/item/storage/medkit/regular, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) "xjZ" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron/dark, @@ -77484,32 +80138,34 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"xkp" = ( -/obj/machinery/door/airlock{ - id_tag = "Dorm4"; - name = "Dorm 4" +"xkr" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/sign/poster/official/wtf_is_co2/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) +"xkI" = ( +/obj/machinery/door/airlock/command{ + name = "Conference Room" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/commons/dorms) -"xkH" = ( /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating/corner{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/item/kirbyplants/random, -/turf/open/floor/plastic, -/area/station/commons/dorms/laundry) -"xkT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/turf/open/floor/wood, +/area/station/command/meeting_room) +"xkW" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "xkZ" = ( /obj/machinery/teleport/station, /obj/machinery/light/small/directional/east, @@ -77520,17 +80176,19 @@ name = "Medbay Delivery"; req_access = list("medical") }, -/obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/yellow/full, /turf/open/floor/iron/large, /area/station/medical/storage) -"xlp" = ( -/obj/structure/sign/nanotrasen, -/obj/structure/fence/post{ +"xlm" = ( +/obj/machinery/duct, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) +/turf/open/floor/iron, +/area/station/service/hydroponics) "xlq" = ( /obj/structure/lattice/catwalk, /obj/structure/railing, @@ -77585,17 +80243,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"xlQ" = ( -/obj/machinery/computer/order_console/mining, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera{ - c_tag = "Mining Bunks"; - dir = 6 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/mine/production) "xmf" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -77607,6 +80254,16 @@ dir = 9 }, /area/station/science/research) +"xmk" = ( +/obj/structure/plasticflaps{ + dir = 4 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/open/floor/plating, +/area/station/cargo/storage) "xmo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -77618,6 +80275,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"xmD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/stone, +/area/station/service/bar/atrium) "xmK" = ( /obj/structure/table, /obj/item/stack/sheet/iron/fifty, @@ -77628,17 +80295,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/storage) -"xmL" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 +"xmM" = ( +/obj/structure/railing{ + dir = 1 }, -/obj/structure/sign/warning/no_smoking{ - pixel_x = -28 +/turf/open/floor/iron/stairs/medium{ + dir = 8 }, -/turf/open/floor/iron, -/area/station/engineering/atmos) +/area/station/science/ordnance) "xmN" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom/directional/south, @@ -77672,37 +80336,12 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"xnc" = ( -/obj/effect/turf_decal/siding/white/end{ - dir = 4 - }, -/obj/structure/table, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_y = 6 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) -"xnf" = ( -/obj/item/kirbyplants/fern, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) "xni" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"xnt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) -"xnC" = ( -/obj/structure/sign/warning/fire/directional/east, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) "xnE" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/yellow{ @@ -77710,6 +80349,16 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) +"xnK" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/medical/morgue) "xnM" = ( /obj/structure/cable, /turf/open/floor/iron/white/side{ @@ -77737,18 +80386,25 @@ }, /turf/open/lava/plasma/ice_moon, /area/icemoon/underground/explored) -"xog" = ( -/obj/structure/fence{ - dir = 1 - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "xow" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/machinery/firealarm/directional/west, /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/atmos) +"xpc" = ( +/obj/effect/turf_decal/siding/yellow/corner, +/obj/machinery/status_display/evac/directional/south, +/obj/structure/table, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker; + pixel_x = -5 + }, +/obj/item/multitool{ + pixel_x = 8 + }, +/turf/open/floor/iron, +/area/station/engineering/lobby) "xpw" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -77785,16 +80441,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/command/heads_quarters/hop) -"xpO" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "botany_chasm_and_wolf_shutters" - }, -/turf/open/floor/plating, -/area/station/service/hydroponics) "xpP" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -77803,26 +80449,41 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"xqa" = ( -/obj/structure/railing{ +"xqj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/port/greater) +"xqk" = ( +/obj/machinery/door/airlock{ + name = "Bar"; dir = 4 }, -/obj/effect/turf_decal/siding/white{ +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ dir = 4 }, /obj/machinery/duct, -/obj/effect/turf_decal/tile/bar{ +/obj/machinery/door/firedoor{ dir = 4 }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/service/kitchen/coldroom) -"xqj" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/bar) +"xqt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron_smooth, -/area/station/maintenance/port/greater) +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/landmark/event_spawn, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/stone, +/area/station/commons/lounge) "xqu" = ( /obj/machinery/door/window/left/directional/east{ name = "Containment Pen 10"; @@ -77835,19 +80496,35 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/science/xenobiology) +"xqw" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + name = "Exfiltrate to Port" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/railing, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "xqy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/office) -"xqP" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/siding/white{ - dir = 1 +"xqU" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 8; + id = "kitchencounter"; + name = "Kitchen Counter Shutters" }, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) +/obj/machinery/door/firedoor, +/obj/structure/desk_bell{ + pixel_x = -4; + pixel_y = 3 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/service/kitchen) "xqX" = ( /obj/structure/sign/poster/contraband/random/directional/north, /obj/structure/cable, @@ -77865,25 +80542,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"xre" = ( -/obj/structure/table/glass, -/obj/machinery/door/window/left/directional/north{ - name = "Hydroponics Desk"; - req_access = list("hydroponics") - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/turf_decal/tile/green/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/opposingcorners, -/obj/item/paper_bin{ - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -5 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "xrf" = ( /obj/structure/railing, /obj/structure/cable, @@ -77927,17 +80585,6 @@ }, /turf/open/floor/iron/dark, /area/mine/storage) -"xrL" = ( -/obj/machinery/washing_machine, -/obj/structure/sign/poster/official/no_erp/directional/west, -/obj/effect/turf_decal/siding/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/dorms/laundry) "xrS" = ( /obj/structure/ladder, /obj/effect/turf_decal/stripes/box, @@ -77948,12 +80595,6 @@ /obj/machinery/light/blacklight/directional/east, /turf/open/floor/wood, /area/station/service/library) -"xsm" = ( -/obj/structure/cable, -/obj/machinery/duct, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/fore) "xss" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -77970,32 +80611,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"xsy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, -/area/station/service/bar/atrium) -"xsA" = ( -/obj/structure/rack, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"xsD" = ( -/obj/item/food/grown/carrot, -/turf/open/misc/asteroid/snow/standard_air, -/area/station/science/research) -"xsP" = ( -/obj/structure/table, -/obj/item/folder/white, -/obj/item/folder/white, -/obj/item/pen, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/explab) "xtc" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -78003,6 +80618,12 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"xth" = ( +/obj/structure/closet/crate/miningcar, +/obj/effect/spawner/random/exotic/snow_gear, +/obj/effect/spawner/random/exotic/snow_gear, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "xtn" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -78028,12 +80649,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/workout) -"xtH" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/service/bar/atrium) "xtQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78041,33 +80656,47 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"xtR" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ +"xua" = ( +/obj/machinery/computer/security/qm, +/obj/machinery/requests_console/directional/west{ + department = "Quartermaster's Desk"; + name = "Quartermaster's Desk Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/announcement, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/sign/poster/official/work_for_a_future/directional/north, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) +"xug" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs/medium, +/area/station/cargo/storage) +"xul" = ( +/obj/structure/table/glass, +/obj/machinery/door/window/left/directional/north{ + name = "Hydroponics Desk"; + req_access = list("hydroponics") + }, +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/tile/green/opposingcorners{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/closet/l3closet/virology, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/virology) -"xtX" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/item/paper_bin{ + pixel_y = 4 }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"xun" = ( -/obj/machinery/door/poddoor/massdriver_chapel, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/station/service/chapel) +/obj/item/pen{ + pixel_x = -5 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "xuo" = ( /turf/open/floor/plating/snowed/icemoon, /area/icemoon/underground/explored) @@ -78100,29 +80729,19 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"xuM" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/camera{ - c_tag = "Medbay Cryogenics"; - dir = 9; - network = list("ss13","medbay") - }, -/obj/structure/sign/warning/cold_temp/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/iron/dark/textured, -/area/station/medical/cryo) -"xuQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/mob/living/carbon/human/species/monkey, -/turf/open/floor/grass, -/area/station/medical/virology) +"xuL" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/fore) "xuR" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ dir = 4 }, -/turf/open/misc/asteroid/snow/icemoon, +/turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) "xuW" = ( /obj/effect/turf_decal/tile/blue{ @@ -78133,6 +80752,14 @@ dir = 5 }, /area/station/hallway/secondary/entry) +"xvd" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/lattice/catwalk, +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/openspace/icemoon/keep_below, +/area/station/maintenance/port/lesser) "xvj" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 5 @@ -78168,6 +80795,12 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/dark, /area/station/medical/chemistry) +"xvp" = ( +/obj/structure/fence/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/underground/explored) "xvy" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/stripes/line{ @@ -78175,10 +80808,32 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"xvO" = ( -/obj/structure/girder, +"xvE" = ( +/obj/item/toy/snowball{ + pixel_x = 6; + pixel_y = 5 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"xvI" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) +"xvN" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/obj/structure/sign/departments/botany/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) +"xvU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/warning/electric_shock/directional/north, /turf/open/floor/plating, -/area/mine/eva/lower) +/area/station/maintenance/aft/lesser) "xvZ" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -78188,10 +80843,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"xwd" = ( -/obj/structure/stairs/east, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "xwf" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -78199,6 +80850,18 @@ }, /turf/open/floor/iron, /area/station/security/brig/upper) +"xwi" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "xwm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/green{ @@ -78212,6 +80875,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/storage) +"xwq" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "xwr" = ( /obj/structure/rack, /obj/item/clothing/suit/hooded/wintercoat/eva{ @@ -78277,12 +80946,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"xwL" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/iron, -/area/station/commons/fitness) "xwM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78293,10 +80956,24 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"xxo" = ( -/obj/effect/turf_decal/weather/snow/corner, -/turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) +"xxi" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/bottle/acidic_buffer{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bottle/basic_buffer{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bottle/formaldehyde{ + pixel_x = 1 + }, +/obj/structure/sign/warning/no_smoking/circle/directional/west, +/turf/open/floor/iron/dark/textured_edge{ + dir = 8 + }, +/area/station/medical/chem_storage) "xxs" = ( /obj/effect/turf_decal/bot_white, /obj/structure/reagent_dispensers/plumbed, @@ -78332,12 +81009,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"xxH" = ( -/obj/structure/railing/wooden_fence{ - dir = 8 - }, -/turf/open/misc/hay/icemoon, -/area/icemoon/underground/explored) "xxI" = ( /obj/machinery/airalarm/directional/north, /obj/item/kirbyplants/random, @@ -78370,7 +81041,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ dir = 4; - id = "kanyewest"; + id = "rd_office_shutters"; name = "Privacy Shutters" }, /obj/structure/cable, @@ -78396,6 +81067,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/xenobiology) +"xyr" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/underground/explored) "xyx" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78437,11 +81114,13 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/engine, /area/station/science/genetics) -"xyG" = ( +"xyI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "xyN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -78475,6 +81154,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) +"xza" = ( +/obj/vehicle/ridden/wheelchair{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/end, +/obj/structure/sign/warning/no_smoking/circle/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/west, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron, +/area/station/medical/medbay/aft) "xzd" = ( /obj/machinery/camera/directional/east{ c_tag = "Library South" @@ -78489,6 +81179,16 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"xzk" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/wallet{ + pixel_y = 5; + pixel_x = 3 + }, +/obj/item/newspaper, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "xzo" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -78527,14 +81227,6 @@ }, /turf/open/floor/iron/large, /area/station/hallway/secondary/entry) -"xAm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/computer/atmos_control/nocontrol/incinerator{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal/incinerator) "xAn" = ( /turf/open/floor/iron/dark, /area/station/engineering/lobby) @@ -78567,6 +81259,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/security/prison/mess) +"xAY" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sign/departments/court/directional/north, +/turf/open/floor/iron, +/area/station/hallway/primary/central/fore) "xBa" = ( /obj/structure/table, /obj/item/storage/toolbox/electrical{ @@ -78577,15 +81276,36 @@ dir = 1 }, /area/station/science/explab) -"xBh" = ( -/obj/machinery/light/directional/north, -/obj/machinery/button/door/directional/north{ - id = "ceprivacy"; - name = "Privacy Shutters Control" +"xBf" = ( +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = 5; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/rag, +/obj/structure/table/wood, +/obj/item/holosign_creator/robot_seat/bar{ + pixel_y = 6 }, /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/box/white/corners{ + dir = 8 + }, /turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) +/area/station/service/bar) +"xBj" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/machinery/door/airlock{ + name = "Bar" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/bar) "xBn" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -78598,13 +81318,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) -"xBs" = ( -/obj/machinery/status_display/ai/directional/west, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "xBt" = ( /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 4 @@ -78632,24 +81345,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos/storage/gas) -"xBS" = ( -/obj/item/training_toolbox{ - pixel_y = 5 - }, -/obj/structure/table, -/obj/item/training_toolbox{ - pixel_y = -2 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Holodeck Control" - }, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/obj/machinery/status_display/evac/directional/east, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron, -/area/station/commons/fitness) "xBU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -78658,42 +81353,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"xBX" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Mix to Port" - }, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"xCa" = ( -/obj/effect/turf_decal/siding/wideplating_new/light{ - dir = 6 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/work) -"xCb" = ( -/obj/structure/table/wood, -/obj/item/folder/red, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/security/courtroom) -"xCh" = ( -/obj/machinery/button/door/directional/west{ - id = "xenobio5"; - name = "Xenobio Pen 5 Blast Door"; - req_access = list("xenobiology") - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"xCj" = ( -/obj/structure/sign/departments/holy, -/turf/closed/wall, -/area/station/service/chapel) "xCl" = ( /turf/open/floor/iron, /area/station/science/robotics/lab) @@ -78711,6 +81370,14 @@ }, /turf/open/floor/iron, /area/station/commons/dorms/laundry) +"xCs" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/departments/aisat/directional/east, +/turf/open/floor/iron/dark/corner, +/area/station/engineering/storage_shared) "xCv" = ( /obj/machinery/computer/security, /obj/effect/turf_decal/tile/red/half/contrasted, @@ -78749,6 +81416,11 @@ /obj/item/storage/pill_bottle/mannitol, /turf/open/floor/iron/white, /area/station/medical/cryo) +"xDa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/floor/iron/dark, +/area/station/science/explab) "xDb" = ( /turf/closed/wall/r_wall, /area/station/medical/virology) @@ -78768,6 +81440,51 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/locker) +"xDj" = ( +/obj/effect/turf_decal/trimline/yellow/end{ + dir = 1 + }, +/obj/machinery/exodrone_launcher, +/obj/item/fuel_pellet, +/obj/effect/turf_decal/trimline/yellow/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/mid_joiner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/mid_joiner{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + id = "drone_bay"; + name = "Shutter Control" + }, +/turf/open/floor/iron/smooth_large, +/area/station/cargo/drone_bay) +"xDu" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Cargo Bay Receiving Dock" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/computer/cargo{ + dir = 4 + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor"; + name = "Loading Doors"; + pixel_y = -8; + req_access = list("cargo") + }, +/obj/machinery/button/door/directional/west{ + id = "QMLoaddoor2"; + name = "Loading Doors"; + pixel_y = 8; + req_access = list("cargo") + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "xDw" = ( /obj/structure/grille/broken, /obj/effect/decal/cleanable/dirt, @@ -78786,14 +81503,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron, /area/station/security/prison/workout) -"xDQ" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/fake_stairs/wood/directional/north, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "xDU" = ( /obj/structure/table, /obj/effect/spawner/random/entertainment/drugs, @@ -78801,6 +81510,12 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/maintenance/department/medical/morgue) +"xDX" = ( +/obj/item/radio/intercom/directional/west, +/obj/machinery/chem_dispenser, +/obj/structure/sign/warning/chem_diamond/directional/north, +/turf/open/floor/glass/reinforced, +/area/station/medical/treatment_center) "xEb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/green/filled/warning{ @@ -78830,10 +81545,10 @@ /obj/effect/turf_decal/tile/green/full, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/virology) -"xEt" = ( -/obj/structure/closet/bombcloset, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +"xEn" = ( +/obj/structure/sign/warning/secure_area/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "xEE" = ( /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, @@ -78855,53 +81570,36 @@ /obj/machinery/door/firedoor, /turf/open/floor/carpet/black, /area/station/security/prison/safe) -"xEJ" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Dormitory North" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/bluespace_vendor/directional/north, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/dorms) -"xEL" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/disposal/bin, -/obj/structure/cable, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal/incinerator) -"xEP" = ( -/obj/structure/reagent_dispensers/plumbed{ - dir = 1; - name = "hydroponics reservoir" - }, -/obj/effect/turf_decal/delivery/white{ - color = "#307db9" +"xEV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/small/dim/directional/south, -/turf/open/floor/iron/dark/textured, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"xEQ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science/ordnance) "xEW" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/tile/purple/fourcorners, /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/mine/living_quarters) +"xEX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Apiary" + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/station/service/hydroponics) +"xFf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "xFm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78909,6 +81607,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig/upper) +"xFn" = ( +/obj/structure/fence/cut/large{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "xFo" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -78923,14 +81627,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"xFz" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/service/bar) "xFB" = ( /obj/structure/table, /obj/item/tank/internals/emergency_oxygen/engi, @@ -78946,67 +81642,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage) -"xFG" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"xFM" = ( -/obj/machinery/incident_display/delam, -/turf/closed/wall/r_wall, -/area/station/engineering/supermatter/room) -"xFT" = ( -/obj/effect/turf_decal/trimline/green/filled/corner, -/obj/effect/turf_decal/trimline/blue/filled/warning/corner, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/rack, -/obj/item/clothing/accessory/armband/hydro{ - pixel_y = 4; - pixel_x = 2 - }, -/obj/item/clothing/accessory/armband/hydro, -/obj/item/toy/figure/botanist, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) -"xFU" = ( -/obj/structure/barricade/wooden, -/obj/structure/sign/warning/gas_mask/directional/south{ - desc = "A sign that warns of dangerous gasses in the air, instructing you to wear internals." - }, -/obj/structure/sign/warning/cold_temp/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) -"xGh" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south{ - pixel_x = -28 - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) -"xGi" = ( -/obj/structure/table/glass, -/obj/item/seeds/glowshroom, -/obj/item/seeds/bamboo{ - pixel_y = 3; - pixel_x = 4 - }, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "xGp" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/east{ @@ -79040,6 +81675,19 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/mining_station, /turf/open/floor/iron/smooth, /area/mine/eva) +"xGx" = ( +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) +"xGA" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/server) "xGI" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ dir = 4 @@ -79053,6 +81701,24 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/commons/storage/mining) +"xGK" = ( +/obj/machinery/computer/mecha{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south{ + c_tag = "Research Director's Office"; + network = list("ss13","rd") + }, +/obj/machinery/light/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) +"xGL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "xGM" = ( /obj/machinery/computer/atmos_control/carbon_tank{ dir = 8 @@ -79097,26 +81763,32 @@ /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /turf/open/floor/iron, /area/station/security/brig/upper) -"xHv" = ( -/obj/structure/table/wood, -/obj/effect/spawner/random/trash/janitor_supplies, -/turf/open/floor/plating, -/area/station/maintenance/starboard/lesser) -"xHE" = ( -/obj/structure/stairs/east, -/turf/open/floor/plating, -/area/station/security/brig) -"xHY" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"xHr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"xHx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/recharge_station, /turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat/maint) -"xIh" = ( -/obj/effect/spawner/random/structure/tank_holder, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/mine/eva/lower) +"xId" = ( +/obj/structure/rack, +/obj/item/clothing/suit/hooded/wintercoat/eva{ + pixel_y = 9 + }, +/obj/item/clothing/shoes/winterboots/ice_boots/eva{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/effect/turf_decal/delivery/red, +/obj/item/clothing/gloves/color/grey/protects_cold, +/obj/item/clothing/mask/gas, +/turf/open/floor/iron/textured, +/area/station/ai_monitored/command/storage/eva) "xIk" = ( /obj/structure/chair/comfy{ dir = 4 @@ -79159,6 +81831,15 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/science/server) +"xIO" = ( +/obj/machinery/light/small/dim/directional/east, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/commons/lounge) "xIS" = ( /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/tile/blue, @@ -79172,17 +81853,24 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"xJi" = ( -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/iron/showroomfloor, -/area/station/engineering/atmos) "xJj" = ( /turf/open/floor/iron, /area/station/science/xenobiology) +"xJn" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) +"xJv" = ( +/obj/structure/rack, +/obj/item/screwdriver, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "xJw" = ( /obj/machinery/camera/directional/south{ c_tag = "Atmospherics Project Room" @@ -79225,9 +81913,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) -"xJW" = ( -/turf/open/floor/iron/half, -/area/station/service/hydroponics) "xKb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/south, @@ -79254,6 +81939,12 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) +"xKk" = ( +/obj/structure/sign/plaques/kiddie/gameoflife{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/rd) "xKo" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -79263,25 +81954,27 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "xKq" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white{ dir = 8 }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/stone, -/area/station/service/bar/atrium) +/turf/open/floor/iron, +/area/station/service/hydroponics) +"xKx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/corner/end/flip, +/obj/structure/railing/corner/end{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/aft/greater) "xKJ" = ( /turf/closed/wall, /area/station/command/meeting_room) -"xKT" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Dormitory South" - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/iron, -/area/station/commons/dorms) "xKX" = ( /obj/effect/turf_decal/trimline/dark_green/arrow_ccw{ dir = 6 @@ -79303,6 +81996,10 @@ "xLq" = ( /turf/open/floor/glass/reinforced, /area/station/science/ordnance/office) +"xLv" = ( +/obj/structure/stairs/west, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "xLF" = ( /obj/machinery/door/window/right/directional/east{ name = "Captain's Desk Door"; @@ -79312,6 +82009,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"xLJ" = ( +/obj/structure/rack, +/obj/item/mecha_parts/mecha_equipment/drill, +/turf/open/floor/iron/smooth, +/area/mine/mechbay) "xLK" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -79321,23 +82023,21 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"xLO" = ( -/obj/machinery/flasher/directional/east{ - id = "brigentry" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark/textured_edge{ - dir = 8 - }, -/area/station/security/brig/entrance) "xLS" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 }, /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"xLT" = ( +/obj/effect/turf_decal/siding/white, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) "xLV" = ( /obj/machinery/washing_machine, /obj/effect/decal/cleanable/dirt, @@ -79362,28 +82062,6 @@ "xMq" = ( /turf/closed/mineral/random/snow, /area/icemoon/underground/explored) -"xMv" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) -"xMx" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Labor Camp External North"; - network = list("labor") - }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/underground/explored) -"xMM" = ( -/obj/machinery/computer/operating{ - dir = 8 - }, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/surgery/aft) "xMQ" = ( /obj/effect/mapping_helpers/ianbirthday, /turf/open/floor/carpet, @@ -79415,16 +82093,36 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_half, /area/station/ai_monitored/command/storage/eva) -"xNa" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"xNn" = ( +"xNh" = ( +/obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ - dir = 5 + dir = 4 }, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id = "Cargo_Store_In"; + name = "Cargo Warehouse Shutters" + }, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/machinery/button/door/directional/south{ + id = "Cargo_Store_In"; + name = "Warehouse Access" + }, +/turf/open/floor/iron, +/area/station/cargo/warehouse) +"xNs" = ( +/obj/structure/table/wood, +/obj/item/clothing/mask/fakemoustache, +/obj/item/cigarette/pipe, +/obj/item/clothing/glasses/monocle, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/grimy, +/area/station/service/theater) "xNC" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -79432,11 +82130,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"xNE" = ( -/obj/structure/stairs/west, -/obj/structure/railing, -/turf/open/floor/iron/dark, -/area/station/service/chapel) "xNF" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Dorm"; @@ -79447,6 +82140,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"xNR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xOb" = ( /obj/effect/turf_decal/siding/white{ dir = 4 @@ -79456,65 +82155,33 @@ }, /turf/open/floor/iron/dark, /area/mine/mechbay) -"xOd" = ( -/obj/structure/minecart_rail{ - dir = 6 - }, -/obj/structure/cable, -/obj/effect/turf_decal/weather/snow/corner{ - dir = 10 - }, -/obj/structure/sign/warning/directional/west, +"xOc" = ( +/obj/machinery/light/cold/directional/west, /turf/open/floor/plating/snowed/coldroom, -/area/icemoon/underground/explored) -"xOi" = ( -/obj/machinery/door/window/left/directional/south{ - req_access = list("kitchen"); - name = "The Ice Box" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/siding/white, -/turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"xOl" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) -"xOE" = ( -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=8"; - location = "Bar and Kitchen" - }, -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/delivery, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/textured, -/area/station/maintenance/starboard/fore) -"xOV" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ +"xOk" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"xOQ" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 1 +/obj/machinery/door/airlock/external/glass{ + name = "Garden Access" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/textured, /area/station/service/hydroponics) -"xPf" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +"xPs" = ( +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/external/glass{ + name = "Cytology External Airlock" }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/turf/open/floor/iron/smooth_large, +/area/station/science/cytology) "xPu" = ( /obj/machinery/light/directional/east, /turf/open/misc/asteroid/snow/icemoon, @@ -79588,8 +82255,38 @@ }, /obj/machinery/light/small/directional/east, /obj/structure/cable, +/obj/structure/sign/warning/electric_shock/directional/east, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"xQi" = ( +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/structure/cable, +/obj/structure/minecart_rail/railbreak{ + dir = 4 + }, +/obj/structure/closet/crate/miningcar{ + name = "delivery cart"; + desc = "Used for quick transit of fresh produce to the kitchen. Just give it a shove." + }, +/obj/item/storage/bag/plants, +/turf/open/floor/iron, +/area/station/service/hydroponics) +"xQj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "xQm" = ( /obj/machinery/airalarm/directional/west, /obj/structure/closet/secure_closet/freezer/fridge/all_access, @@ -79603,10 +82300,6 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) -"xQu" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "xQB" = ( /obj/effect/spawner/random/clothing/costume, /obj/structure/rack, @@ -79633,27 +82326,6 @@ /obj/structure/railing, /turf/open/floor/iron, /area/mine/production) -"xQS" = ( -/obj/effect/turf_decal/siding/white/end{ - dir = 8 - }, -/obj/structure/table, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 3 - }, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 8; - pixel_x = 3 - }, -/obj/item/food/grown/eggplant{ - pixel_y = 5; - pixel_x = 5 - }, -/obj/item/food/grown/mushroom/chanterelle{ - pixel_y = 3 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "xQT" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, @@ -79663,6 +82335,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) +"xRv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/office) "xRw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -79671,13 +82357,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"xRF" = ( -/obj/structure/bodycontainer/morgue{ - dir = 8 - }, -/obj/machinery/light/dim/directional/south, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "xRI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -79695,6 +82374,11 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"xSg" = ( +/obj/structure/cable, +/obj/structure/sign/warning/test_chamber/directional/north, +/turf/open/floor/iron, +/area/station/science/explab) "xSl" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -79712,40 +82396,36 @@ /obj/structure/cable, /turf/open/floor/iron/smooth, /area/station/security/brig) -"xSu" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/turf/open/floor/iron/white, -/area/station/medical/pharmacy) "xSv" = ( /obj/structure/closet/firecloset, /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron/dark, /area/station/engineering/lobby) -"xSw" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/sign/warning/secure_area/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/upper) +"xSx" = ( +/obj/structure/closet/secure_closet/chemical, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/white, +/area/station/maintenance/port/fore) "xSA" = ( /turf/open/floor/wood, /area/station/service/lawoffice) +"xSE" = ( +/obj/structure/cable, +/obj/structure/sign/warning/electric_shock/directional/north, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "xSL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, /turf/open/floor/iron/large, /area/station/hallway/primary/port) -"xTi" = ( -/obj/effect/landmark/start/clown, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/grimy, -/area/station/service/theater) "xTp" = ( /obj/machinery/camera/directional/south{ c_tag = "Solar Maintenance - North East" @@ -79767,16 +82447,27 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) -"xTI" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green/half/contrasted{ +"xTN" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 4 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/commons/fitness) +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/warm/directional/south, +/obj/structure/sign/poster/contraband/lizard/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "xTQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -79810,6 +82501,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"xUd" = ( +/obj/structure/marker_beacon/burgundy, +/obj/structure/fluff/fokoff_sign, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) "xUe" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -79820,6 +82517,14 @@ }, /turf/open/floor/plating, /area/station/medical/morgue) +"xUg" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "xUk" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -79827,14 +82532,6 @@ }, /turf/open/openspace, /area/station/science/ordnance/office) -"xUt" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) -"xUw" = ( -/obj/structure/sign/departments/maint/directional/west, -/turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/underground/explored) "xUF" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, @@ -79865,10 +82562,6 @@ }, /turf/open/floor/iron, /area/station/engineering/engine_smes) -"xUR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/security/courtroom) "xUS" = ( /obj/structure/rack, /obj/item/pickaxe{ @@ -79877,12 +82570,11 @@ /obj/item/shovel{ pixel_x = -5 }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, /turf/open/floor/iron, /area/station/cargo/miningdock) -"xUT" = ( -/obj/structure/chair/stool/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) "xUU" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue, @@ -79897,21 +82589,57 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/engineering/atmos) +"xUW" = ( +/obj/effect/spawner/random/trash/mess, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/maintenance/aft/greater) "xVc" = ( -/obj/machinery/door/airlock{ - id_tag = "Toilet1"; - name = "Unit 1" +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/iron/textured, -/area/station/commons/toilet) +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron, +/area/station/command/bridge) "xVf" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"xVo" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/bowl{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "xVq" = ( /obj/machinery/light/directional/north, +/obj/machinery/newscaster/directional/north, /turf/open/floor/wood, /area/station/command/meeting_room) +"xVv" = ( +/obj/structure/cable, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/purple, +/obj/machinery/camera/directional/south{ + c_tag = "Starboard Primary Hallway Center" + }, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) +"xVB" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_ordmix{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/ordnance/burnchamber) "xVG" = ( /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) @@ -79940,15 +82668,6 @@ }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) -"xVX" = ( -/obj/structure/closet/crate, -/obj/machinery/light/small/directional/south, -/obj/structure/sign/warning/cold_temp/directional/south, -/obj/structure/sign/warning/xeno_mining{ - pixel_x = 29 - }, -/turf/open/floor/iron/smooth, -/area/mine/eva/lower) "xVZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -79960,11 +82679,32 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/security/warden) +"xWk" = ( +/obj/machinery/biogenerator, +/obj/machinery/door/window/left/directional/south{ + name = "Biogenerator Access"; + req_access = list("hydroponics") + }, +/obj/effect/turf_decal/tile/green/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/opposingcorners, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "xWo" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"xWr" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Service - Electrical Maintenace Upper" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/station/maintenance/starboard/fore) "xWA" = ( /obj/structure/table, /obj/item/plate, @@ -79974,16 +82714,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"xWI" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 8; - id = "kitchencounter"; - name = "Kitchen Counter Shutters" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/white/smooth_large, -/area/station/service/kitchen) "xWM" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -79996,8 +82726,8 @@ /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) "xWT" = ( -/obj/machinery/firealarm/directional/south, /obj/structure/closet/crate/freezer/surplus_limbs, +/obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white, /area/station/medical/cryo) "xWU" = ( @@ -80057,13 +82787,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"xXE" = ( -/obj/structure/chair/pew{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron/chapel, -/area/station/service/chapel) "xXQ" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -80073,28 +82796,11 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) -"xXU" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Library Art Gallery" - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/spawner/random/structure/table_fancy, -/obj/machinery/light/blacklight/directional/north, -/obj/structure/sign/painting/large/library{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/service/library) -"xXV" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) +"xYg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "xYj" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -80105,19 +82811,13 @@ dir = 10 }, /area/station/science/research) -"xYr" = ( -/obj/machinery/mineral/stacking_unit_console{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Disposals" +"xYt" = ( +/obj/machinery/atmospherics/components/unary/passive_vent, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 }, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal) +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "xYw" = ( /obj/structure/flora/bush/leavy/style_random, /turf/open/floor/grass, @@ -80136,6 +82836,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"xYQ" = ( +/obj/structure/marker_beacon/burgundy{ + name = "landing marker" + }, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored) +"xYS" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south{ + pixel_x = -28 + }, +/obj/effect/turf_decal/tile/dark/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "xYT" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -80145,19 +82865,37 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, /turf/open/floor/iron/smooth, /area/mine/eva) -"xZg" = ( -/obj/structure/sign/warning/electric_shock, -/turf/closed/wall/r_wall, -/area/station/security/prison/safe) "xZl" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/main) +"xZq" = ( +/obj/structure/marker_beacon/cerulean, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"xZv" = ( +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) +"xZy" = ( +/obj/structure/stairs/east, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/mix) "xZA" = ( /turf/open/floor/iron/checker, /area/station/science/lab) +"xZS" = ( +/obj/effect/spawner/random/trash/moisture_trap, +/obj/item/reagent_containers/cup/bucket, +/turf/open/floor/plating, +/area/station/maintenance/starboard/lesser) "xZW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -80170,13 +82908,6 @@ /area/station/medical/psychology) "xZX" = ( /obj/machinery/firealarm/directional/east, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/folder/yellow, -/obj/item/pen, /turf/open/floor/iron, /area/station/cargo/miningdock) "yab" = ( @@ -80205,10 +82936,20 @@ }, /turf/open/floor/plating/elevatorshaft, /area/mine/storage) -"yap" = ( -/obj/structure/stairs/north, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +"yan" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/machinery/door/firedoor{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "yar" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 1; @@ -80251,21 +82992,24 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/command/storage/eva) +"yaF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Central Access" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/stripes/white/line, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/hallway/primary/central) "yaG" = ( /obj/effect/landmark/navigate_destination/chapel, /turf/open/floor/iron/dark/side{ dir = 1 }, /area/station/hallway/primary/starboard) -"yaJ" = ( -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "yaL" = ( /turf/closed/wall/r_wall, /area/station/engineering/engine_smes) @@ -80280,8 +83024,19 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/mess) +"ybb" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/station/service/hydroponics) "ybf" = ( /obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) "ybq" = ( @@ -80294,15 +83049,6 @@ dir = 4 }, /area/station/engineering/transit_tube) -"ybr" = ( -/obj/structure/bookcase{ - name = "Forbidden Knowledge" - }, -/obj/structure/sign/painting/large/library_private{ - dir = 1 - }, -/turf/open/floor/engine/cult, -/area/station/service/library) "ybu" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/wood, @@ -80318,6 +83064,17 @@ /obj/effect/decal/cleanable/insectguts, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"ybC" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/closet/emcloset, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/virology) "ybE" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -80329,11 +83086,6 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) -"ybF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/plating, -/area/station/maintenance/disposal/incinerator) "ybI" = ( /obj/structure/bed/dogbed/ian, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -80363,6 +83115,12 @@ "ybQ" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/command/nuke_storage) +"ybY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "yca" = ( /obj/machinery/door/airlock/maintenance{ name = "Mining Station Maintenance" @@ -80398,18 +83156,14 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/engineering/storage) -"ycE" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 8 +"ycO" = ( +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/sink/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics) +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "ycQ" = ( /obj/structure/closet/crate, /obj/effect/spawner/random/maintenance, @@ -80455,6 +83209,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"ydk" = ( +/obj/machinery/computer/security/mining, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "ydt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -80469,12 +83231,6 @@ dir = 1 }, /area/mine/eva/lower) -"ydv" = ( -/obj/structure/chair/stool/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/stone, -/area/station/commons/lounge) "ydA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/event_spawn, @@ -80484,17 +83240,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/chapel) -"ydG" = ( -/obj/machinery/status_display/ai/directional/east, -/obj/structure/chair/sofa/left/brown, -/turf/open/floor/wood/large, -/area/station/commons/lounge) -"ydH" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/glass, -/obj/structure/sign/warning/no_smoking/circle/directional/west, -/turf/open/floor/plating/icemoon, -/area/station/maintenance/port/lesser) "ydI" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/entry) @@ -80505,11 +83250,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"ydT" = ( -/obj/machinery/bluespace_vendor/directional/north, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "yef" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/suit_storage_unit/industrial/loader, @@ -80566,6 +83306,35 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/service/library) +"yfa" = ( +/obj/structure/sink/directional/west, +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + id = "xenobio10"; + name = "Xenobio Pen 10 Blast DOors"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"yfg" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"yfs" = ( +/obj/structure/cable, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/structure/minecart_rail{ + dir = 1 + }, +/turf/open/floor/plating/snowed/coldroom, +/area/station/service/kitchen/coldroom) "yfz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -80577,26 +83346,27 @@ /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"yfS" = ( -/obj/structure/table, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/aft/greater) -"yfT" = ( -/obj/structure/sign/warning/secure_area/directional/east, -/turf/open/floor/plating, -/area/station/ai_monitored/turret_protected/aisat/maint) -"yfY" = ( -/obj/machinery/skill_station, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/station/service/library) +"yfW" = ( +/obj/structure/fence/post{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "ygd" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"ygf" = ( +/obj/structure/bookcase{ + name = "Forbidden Knowledge" + }, +/obj/structure/sign/painting/library_private{ + pixel_x = -32 + }, +/turf/open/floor/engine/cult, +/area/station/service/library) "ygk" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -80604,6 +83374,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ygl" = ( +/turf/open/floor/plating, +/area/station/engineering/atmos) +"ygm" = ( +/obj/structure/closet/emcloset, +/obj/structure/sign/warning/electric_shock/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "ygv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -80611,10 +83389,10 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/command/gateway) -"ygy" = ( -/obj/effect/landmark/start/clown, -/turf/open/floor/wood, -/area/station/commons/lounge) +"ygA" = ( +/obj/machinery/light/small/directional/south, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored/graveyard) "ygB" = ( /turf/closed/wall, /area/station/commons/dorms) @@ -80626,6 +83404,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"ygL" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/crate, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/fore) "ygM" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -80634,50 +83418,49 @@ }, /turf/open/floor/iron/smooth_half, /area/station/security/brig/upper) -"ygP" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 +"ygS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, +/obj/structure/rack, +/obj/item/tank/internals/oxygen, +/obj/item/extinguisher, +/obj/item/clothing/suit/utility/fire/firefighter, +/obj/item/clothing/head/utility/hardhat/red, +/obj/item/clothing/mask/gas, +/obj/item/clothing/glasses/meson, +/obj/machinery/light/small/directional/north, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/maintenance/fore) "yhe" = ( /obj/structure/cable, /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/cargo/sorting) +"yhn" = ( +/obj/structure/rack, +/obj/item/crowbar, +/obj/item/picket_sign, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "yhw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable/layer3, /turf/open/floor/iron/grimy, /area/station/ai_monitored/turret_protected/aisat_interior) -"yhC" = ( -/obj/structure/sign/warning/cold_temp/directional/east, -/turf/open/floor/plating, -/area/station/engineering/main) -"yhL" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/plating, -/area/station/maintenance/fore) "yhU" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron, /area/station/security/prison/work) -"yhV" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Bar Maintenance" +"yhY" = ( +/obj/structure/fence/end{ + dir = 2 }, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/service/bar/backroom) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/nospawn) "yia" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -80685,6 +83468,10 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/toilet) +"yib" = ( +/obj/structure/flora/rock/icy/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/unexplored/rivers/deep/shoreline) "yiv" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/iron, @@ -80715,6 +83502,10 @@ "yiL" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) +"yiR" = ( +/obj/structure/sign/warning/cold_temp/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "yjh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -80726,19 +83517,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"yjo" = ( -/obj/structure/sign/warning/directional/south, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) -"yjr" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/hallway/secondary/service) "yju" = ( /obj/structure/table, /obj/effect/spawner/random/maintenance/two, @@ -80753,11 +83531,6 @@ }, /turf/open/floor/plating, /area/station/science/xenobiology) -"yjF" = ( -/obj/structure/sink/directional/east, -/obj/structure/mirror/directional/west, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet) "yjV" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -80773,6 +83546,16 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"ykd" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "ykw" = ( /turf/closed/wall/r_wall, /area/station/security/processing) @@ -80781,10 +83564,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/fore) -"ykE" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/iron/dark, -/area/station/science/ordnance/office) "ykG" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -80803,12 +83582,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) -"ylt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, -/obj/structure/sign/poster/official/safety_internals/directional/east, -/obj/structure/sign/poster/official/safety_internals/directional/east, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +"yld" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/structure/sign/departments/cargo/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ylz" = ( /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/trimline/neutral/warning, @@ -80823,16 +83603,16 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/dark/textured, /area/station/security/prison/workout) -"ylF" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Central Access" +"ylL" = ( +/obj/machinery/flasher/directional/north{ + id = "Cell 3" }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 +/obj/structure/bed{ + dir = 1; + pixel_x = -2 }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) +/turf/open/floor/iron/smooth, +/area/station/security/brig) "ylM" = ( /obj/machinery/light/directional/south, /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ @@ -80863,23 +83643,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"ymb" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/north, -/obj/machinery/camera{ - c_tag = "Mining B-2 Hallway"; - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ +"ymf" = ( +/obj/effect/turf_decal/siding/wood/end{ dir = 1 }, -/turf/open/floor/iron/dark/side{ - dir = 1 +/obj/item/kirbyplants/organic/plant11, +/turf/open/floor/stone, +/area/station/service/bar/atrium) +"ymj" = ( +/obj/structure/chair{ + dir = 8 }, -/area/mine/eva/lower) +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 4 + }, +/obj/structure/sign/departments/evac/directional/east, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) (1,1,1) = {" oSU @@ -97226,14 +100006,14 @@ sYA ghx ghx ghx -vXO +ohO hMz ghx -hMz +ghx psb +dmw scw -scw -jSy +iDt xMq xMq xMq @@ -97486,13 +100266,13 @@ ghx isU ghx ghx -hMz +ghx hUy dZS xuo scw iDt -qau +bNC thA thA thA @@ -97749,8 +100529,8 @@ stA xuo xuo xuo -nqv -thA +qau +dMn thA thA thA @@ -98504,7 +101284,7 @@ ghx ghx ghx ndA -mSH +pWp ngM kgN wDU @@ -98512,7 +101292,7 @@ sKo sKo sKo wDU -kUP +tdI okH qSq ghx @@ -98759,13 +101539,13 @@ ghx ghx ghx cpt -dLH -kIX +wPG +ckL xuo xuo qlU wDU -roa +hDe wRN qPX wDU @@ -99015,8 +101795,8 @@ ghx ghx ghx iDt -aNc -xuo +ewo +eIv xuo xuo xuo @@ -99272,16 +102052,16 @@ thA thA thA iDt -sxe +jRi xuo xuo qJT wDU tbX qmt -nAa +mct qLQ -vBg +dtR qmt tbX wDU @@ -99534,13 +102314,13 @@ xuo xuo xuo dBY -moc +mnm tGi kBX fdp qiF dBY -moc +mnm tGi xuo xuo @@ -99786,16 +102566,16 @@ thA thA thA iDt -sxe +jRi xuo -qJT +coe wDU qmt qmt qmt -jpi +uJd tYz -gle +soq qmt qmt qmt @@ -99804,7 +102584,7 @@ tbX tbX wDU wDU -ghx +etz ghx ghx ghx @@ -100045,7 +102825,7 @@ thA iDt psb rxz -qlU +gFX wDU aNw qmt @@ -100300,10 +103080,10 @@ thA thA thA iDt -xuo +txm wDU wDU -qmt +ijV nfr kLa giV @@ -100312,7 +103092,7 @@ eVa gSO tmE qmt -iBd +nbs chO doM ezl @@ -100557,14 +103337,14 @@ thA thA thA iDt -xuo +txm wDU krn -xvO -nfr +rFh qmt qmt -ymb +qmt +nGY eVa rnx fYH @@ -100814,19 +103594,19 @@ thA thA thA iDt -xuo +txm wDU uqz kTF -nfr qmt -iVm +pVg +ubG xlA eVa gSO uPt qmt -aQy +opy fLC dLe wzl @@ -101076,9 +103856,9 @@ qmt qmt kLa qmt -qmt -sAa -qKk +vlF +kyM +vzG wbH lIR uUT @@ -101089,7 +103869,7 @@ uUT uUT uUT wDU -scw +mrk ghx ghx thA @@ -101332,10 +104112,10 @@ wDU btB gfw nfr -igq qmt qmt -gSK +qmt +bcs tYz vTb rmB @@ -101554,10 +104334,10 @@ ghx ghx ghx psb -fSd +iYq hUK -gqG -thA +psb +lGf thA thA thA @@ -101588,7 +104368,7 @@ iDt wDU uqz bRC -nfr +tIM jAu qmt ofz @@ -101844,7 +104624,7 @@ thA iDt wDU ljP -uqz +xHx bQN tnb qmt @@ -102365,13 +105145,13 @@ vfp niN eSY uyq -gdS +hDv uUT -bzJ +dPH srZ jla ebv -mXD +xLJ nUi scw iDt @@ -102545,7 +105325,7 @@ thA thA thA rfu -ghx +etz ghx ghx ghx @@ -102620,9 +105400,9 @@ dga scw dga niN -qqn +vxx uyq -xVX +bTM uUT uUT vlS @@ -102630,7 +105410,7 @@ hex uUT iwf iwf -wkV +xvp iDt iDt ghx @@ -102871,8 +105651,8 @@ thA ipf cCb iDt -mJZ -iDt +jai +wkB scw scw scw @@ -102881,14 +105661,14 @@ bfo sZO wDU iwf -cEh +oXF +dNA dNA -weg iwf lQw fWX -nqv -iDt +kLd +wkB iDt ghx thA @@ -103094,11 +105874,11 @@ thA thA thA xuo -wYp -odW +psb +mIe uWw psb -ghx +etz ghx ghx ghx @@ -103128,7 +105908,7 @@ thA thA thA iDt -rcY +aDG iDt scw scw @@ -103144,7 +105924,7 @@ gvc iwf unv wrV -qau +bNC iDt cCb ghx @@ -103385,7 +106165,7 @@ thA thA thA iDt -rcY +aDG iDt iDt iDt @@ -103400,8 +106180,8 @@ cPd hYP aro agI -scw -qau +iDt +bNC iDt iDt thA @@ -103642,7 +106422,7 @@ thA thA thA iDt -rcY +bNC iDt iDt iDt @@ -103651,13 +106431,13 @@ scw scw scw scw -mJZ -iDt +jai +wkB scw scw -rcY +jai +iDt iDt -scw qau iDt iDt @@ -103899,23 +106679,23 @@ thA thA thA iDt -syw -kNC -kNC -kNC -kNC -kNC -kNC -ork -tej -gIl +gsd +jTf +aKb +aKb +aKb +aKb +aKb +nvB +jTf +kOt scw iDt iDt -syw -tej -tej -gIl +gsd +jTf +syG +pCG iDt thA thA @@ -104347,7 +107127,7 @@ uOb rfu omJ rfu -pjj +kOc daf kmH oBz @@ -104481,192 +107261,155 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -"} -(93,1,1) = {" -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -ghx -ghx -ghx -ghx -ghx -dhq -dhq -dhq -dhq -iZz -iZz -iZz -iZz -ghx -ghx -ghx -ghx -ghx -ghx -ghx -ghx -iDt -iDt -xMq -xMq -thA -thA -thA -thA -thA -thA -uOb -nDV -amx -fXO -lBR -nhg -gnR -lBR -nhg -qrq -lBR -kIo -hap -rfu -pjj -daf -daf -xuo -oBz -ena -ghx -ghx -ghx -ghx -ghx -ghx -ghx -ghx -ghx -ghx -ghx -thA -thA -thA -thA -thA -ghx -ghx -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +"} +(93,1,1) = {" +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +ghx +ghx +ghx +ghx +ghx +dhq +dhq +dhq +dhq +iZz +iZz +iZz +iZz +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx +iDt +iDt +xMq +xMq +thA +thA +thA +thA +thA +thA +uOb +nDV +amx +fXO +lBR +nhg +scb +lBR +nhg +mbe +lBR +kIo +hap +rfu +pjj +daf +daf +xuo +oBz +ena +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx thA thA thA thA thA +ghx +ghx +thA +thA thA thA thA @@ -104679,6 +107422,43 @@ thA thA thA thA +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +iYD +thA thA iDt iDt @@ -105121,7 +107901,7 @@ rfu ooW ooW rfu -xuo +jrv xuo xlq ghx @@ -105623,7 +108403,7 @@ ifZ amx ddz lBR -fIb +vzp fnj egz hsr @@ -106143,7 +108923,7 @@ kqh kqh ttD nNn -sxT +urm tKB foO bdo @@ -106384,11 +109164,11 @@ ghx ghx ghx ghx -gBl +fIt uSb uSb uSb -gBl +fIt uOb uOb lBR @@ -106410,7 +109190,7 @@ kIi rfu rfu rfu -ghx +akn ghx ghx ghx @@ -106648,13 +109428,13 @@ tWK tWK tWK xhK -tsK +tnD jGg vVH -krV +gkN ogL jZI -duI +aHw vVH vVH vVH @@ -106663,9 +109443,9 @@ nNn gzV nNn nNn -axb -tCV -cFc +evP +bVs +dgx mJX ghx ghx @@ -106679,8 +109459,8 @@ ghx ghx ghx ghx -lcA -ghx +psb +etz thA thA thA @@ -106908,10 +109688,10 @@ xby dSm hMS vVH -uoS +nGo wPg fHg -eek +mkb vVH fps usS @@ -107177,7 +109957,7 @@ vUs kqR hjQ nNn -scQ +eCg aJu ong mJX @@ -107697,17 +110477,17 @@ puc kGP sEC dbH +akn ghx ghx ghx ghx ghx ghx -ghx -lcA psb psb -lcA +psb +psb thA thA thA @@ -107931,9 +110711,9 @@ ghx ghx ghx eZz -efi +uOs xhK -nCQ +nGd swf vVH jli @@ -107961,7 +110741,7 @@ ghx ghx ghx ghx -rcY +pJm iDt thA thA @@ -108188,7 +110968,7 @@ ghx ghx ghx iDt -nbP +fgN xhK ikb swf @@ -108218,7 +110998,7 @@ ghx ghx ghx ghx -rcY +pJm iDt thA thA @@ -108453,9 +111233,9 @@ vVH vVH dZW fHg -lJS -bol -oSD +ayS +aze +lsn ldH xQm yaZ @@ -108475,8 +111255,8 @@ ghx ghx ghx ghx -lcA -iDt +psb +mbJ thA thA thA @@ -108710,9 +111490,9 @@ nId myQ sby fHg -bol -bol -oSD +aEY +oad +gAV ldH qiJ qTs @@ -109732,7 +112512,7 @@ ghx ghx axF dcw -fGI +sKT sSl etw lXJ @@ -109753,7 +112533,7 @@ iJr vSK kse dbH -ghx +akn ghx ghx ghx @@ -110018,7 +112798,7 @@ ghx ghx ghx psb -iDt +mbJ thA thA thA @@ -110526,7 +113306,7 @@ psb psb psb fIt -ghx +etz ghx ghx ghx @@ -110733,10 +113513,10 @@ dhq dhq dhq dhq -dhq -dhq -dhq -dhq +iZz +iZz +iZz +iZz dhq dhq dhq @@ -110988,8 +113768,8 @@ dhq dhq dhq dhq -iDt -iDt +iZz +iZz iDt iDt scw @@ -111004,8 +113784,8 @@ iDt scw scw iDt -iDt -ghx +fIt +tvk ghx ghx ghx @@ -111017,7 +113797,7 @@ ghx ghx ghx dcw -bDd +cdp hBF owf bkX @@ -111244,9 +114024,9 @@ dhq dhq dhq dhq -iDt -iDt -iDt +iZz +iZz +iZz scw scw scw @@ -111261,7 +114041,7 @@ scw scw scw scw -iDt +iwV ghx ghx ghx @@ -111501,9 +114281,9 @@ dhq dhq dhq dhq -iDt -iDt -iDt +iZz +iZz +iZz scw scw scw @@ -111518,7 +114298,7 @@ iDt iDt iDt iDt -scw +gem ghx ghx ghx @@ -111542,7 +114322,7 @@ thA uPk jYj uAE -dKS +eni dbH dbH dbH @@ -111554,7 +114334,7 @@ psb psb psb fIt -ghx +etz ghx ghx ghx @@ -111756,11 +114536,11 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz scw iDt scw @@ -111775,7 +114555,7 @@ scw scw scw scw -iDt +iwV ghx ghx ghx @@ -112012,12 +114792,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz iDt iDt scw @@ -112032,7 +114812,7 @@ scw scw scw iDt -iDt +iwV ghx ghx ghx @@ -112269,12 +115049,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz scw iDt scw @@ -112289,7 +115069,7 @@ scw scw scw scw -iDt +iwV ghx ghx ghx @@ -112526,12 +115306,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +fKw +iZz iDt iDt scw @@ -112546,7 +115326,7 @@ scw scw iDt scw -iDt +iwV ghx ghx ghx @@ -112783,12 +115563,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz scw iDt scw @@ -112803,7 +115583,7 @@ scw iDt scw iDt -iDt +iwV ghx ghx ghx @@ -113040,12 +115820,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +fKw +iZz scw scw iDt @@ -113060,7 +115840,7 @@ scw scw iDt scw -scw +gem ghx ghx ghx @@ -113086,7 +115866,7 @@ oXd bJp qdl uPk -scw +ltH ghx ghx ghx @@ -113297,12 +116077,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +fKw +iZz iDt scw iDt @@ -113317,7 +116097,7 @@ scw scw iDt iDt -iDt +iwV ghx ghx ghx @@ -113343,7 +116123,7 @@ uPk uPk uPk uPk -ghx +etz ghx ghx ghx @@ -113554,12 +116334,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz vjh dLN dLN @@ -113572,10 +116352,10 @@ vjh vjh uPl vjh -ghx -ghx -ghx -ghx +hMv +qxN +fIt +tvk ghx ghx ghx @@ -113811,12 +116591,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +fKw +fKw +iZz vjh dqx oDg @@ -113829,7 +116609,7 @@ wAQ njJ kcf vjh -ghx +scw ghx ghx ghx @@ -113842,7 +116622,7 @@ iDt iDt iDt iDt -xMq +iDt xMq thA thA @@ -114068,12 +116848,12 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz vjh szu hdV @@ -114099,7 +116879,7 @@ iDt iDt iDt iDt -xMq +iDt xMq xMq thA @@ -114325,9 +117105,9 @@ dhq dhq dhq dhq -iDt -iDt -iDt +iZz +iZz +iZz dLN dLN dLN @@ -114339,8 +117119,8 @@ dqx njJ cVD njJ -eCz -oFp +hpl +dqx dqx vjh nTO @@ -114352,12 +117132,12 @@ eQT eQT eQT nTO +kXf +iDt iDt iDt iDt iDt -xMq -xMq xMq xMq thA @@ -114581,10 +117361,10 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt +iZz +iZz +iZz +fKw dLN wxg ipd @@ -114609,14 +117389,14 @@ kAG pdc xzp iSf -dBw +faV +iDt +iDt +iDt +iDt iDt iDt iDt -xMq -xMq -xMq -xMq xMq thA thA @@ -114837,11 +117617,11 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -xMx +iZz +iZz +iZz +fKw +oIv vjh pRZ uYj @@ -114868,11 +117648,11 @@ jvM nTO nTO nTO -nJm +fqG +iDt +iDt +iDt iDt -xMq -xMq -xMq xMq xMq xMq @@ -115092,13 +117872,13 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt -lCM +iZz +iZz +iZz +iZz +iZz +fKw +lxY vjh aYQ bLL @@ -115127,8 +117907,8 @@ tmB kCH iDt iDt -xMq -xMq +iDt +iDt xMq xMq thA @@ -115348,11 +118128,11 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz dLN dLN dLN @@ -115364,10 +118144,10 @@ njJ bEi rVX dqx -pSn -cCF -iAA -wDs +qJC +pzx +bqz +tXM vjh vjh vjh @@ -115382,10 +118162,10 @@ aWV nTO nTO nTO +kXf iDt iDt xMq -xMq thA thA thA @@ -115605,17 +118385,17 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +fKw dLN bml msi njJ pDI -bxX +wdX wzn njJ mZJ @@ -115641,7 +118421,7 @@ cRE eQT iDt iDt -xMq +iDt xMq thA thA @@ -115862,26 +118642,26 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +fKw dLN uCk tAL njJ -lWy +mPp jlG rQx duS lmK rVX fez -lxn -bVY -whz -sbO +rqR +maM +aWo +ddK vjh drP czD @@ -115898,7 +118678,7 @@ rmv eQT iDt iDt -xMq +iDt xMq thA thA @@ -116119,11 +118899,11 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +fKw dLN sWo kmA @@ -116154,7 +118934,7 @@ iGj nTO nTO nTO -iDt +mbJ xMq xMq thA @@ -116376,11 +119156,11 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +fKw +iZz vjh sWo njJ @@ -116632,12 +119412,12 @@ dhq dhq dhq dhq -dhq -iDt -iDt -iDt -iDt -aVq +iZz +iZz +iZz +iZz +fKw +myW vjh sWo njJ @@ -116661,7 +119441,7 @@ eQT eQT eQT nTO -ghx +akn iDt nTO kJw @@ -116889,12 +119669,12 @@ dhq dhq dhq dhq -dhq -iDt -iDt -iDt -iDt -aVq +iZz +iZz +iZz +iZz +iZz +myW vjh mYi njJ @@ -117146,14 +119926,14 @@ dhq dhq dhq dhq -dhq -iDt -iDt -qXg +iZz +iZz +iZz +bqf vjh vjh vjh -fXP +nZC eQH hDK dqx @@ -117162,7 +119942,7 @@ dqx rXg njJ uTo -dqx +cCG njJ rKs hLk @@ -117182,7 +119962,7 @@ cpe cpe nTO nTO -iDt +mbJ xMq xMq thA @@ -117403,10 +120183,10 @@ dhq dhq dhq dhq -dhq -iDt -iDt -iDt +iZz +iZz +fKw +fKw aqa oDB nhT @@ -117660,10 +120440,10 @@ dhq dhq dhq dhq -dhq -iDt -iDt -qXg +iZz +iZz +iZz +bqf vjh vjh vjh @@ -117695,7 +120475,7 @@ nTO nTO nTO nTO -iDt +mbJ iDt xMq xMq @@ -117917,11 +120697,11 @@ dhq dhq dhq dhq -dhq -iDt -iDt -iDt -uEA +iZz +iZz +iZz +iZz +mbq dLN hlE dqx @@ -117933,7 +120713,7 @@ kpH dqx njJ isc -dqx +mEb njJ bsd fBs @@ -118175,10 +120955,10 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt +iZz +mBV +iZz +fKw dLN dqx dqx @@ -118211,7 +120991,7 @@ iDt iDt iDt iDt -xMq +iDt xMq thA thA @@ -118432,10 +121212,10 @@ dhq dhq dhq dhq -iDt -iDt -ssu -iDt +iZz +iZz +nxP +iZz dLN rbT mts @@ -118446,13 +121226,13 @@ njJ njJ wRK vjh -twb -pzD +oCo +dFR vjh vjh vjh vjh -ghx +etz ghx ghx ghx @@ -118468,7 +121248,7 @@ iDt iDt iDt iDt -xMq +iDt xMq thA thA @@ -118689,10 +121469,10 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt +iZz +iZz +mBV +iZz dLN rbT lLN @@ -118706,9 +121486,9 @@ vjh jmc qDD dLN -iDt -iDt -ghx +uqX +adA +etz ghx ghx ghx @@ -118725,7 +121505,7 @@ iDt iDt iDt iDt -xMq +iDt xMq xMq thA @@ -118946,10 +121726,10 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz dLN dLN dLN @@ -118963,8 +121743,8 @@ vjh dLN dLN dLN -iDt -iDt +fKw +mzl ghx ghx ghx @@ -119203,25 +121983,25 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -jjJ -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +fKw +iZz +iZz +iZz +iZz +oGJ +iZz +iZz +iZz +iZz +iZz +fKw +fKw +iZz +mzl ghx ghx ghx @@ -119233,9 +122013,9 @@ ghx ghx ghx iDt -xMq -xMq -xMq +iDt +iDt +iDt xMq xMq xMq @@ -119460,25 +122240,25 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +mzl ghx ghx ghx @@ -119490,7 +122270,7 @@ ghx ghx ghx iDt -xMq +iDt xMq xMq xMq @@ -119688,267 +122468,7 @@ oSU oSU oSU "} -(152,1,1) = {" -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -iDt -iDt -dhq -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -ghx -ghx -ghx -ghx -ghx -ghx -ghx -ghx -ghx -iDt -iDt -xMq -xMq -xMq -xMq -xMq -xMq -thA -xMq -xMq -thA -thA -thA -thA -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -szG -szG -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -"} -(153,1,1) = {" -dhq -dhq -dhq +(152,1,1) = {" dhq dhq dhq @@ -119977,22 +122497,25 @@ dhq dhq dhq dhq +iZz +iZz dhq -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +mzl ghx ghx ghx @@ -120003,15 +122526,16 @@ ghx ghx ghx iDt +iDt +xMq +xMq +xMq xMq xMq xMq thA -thA -thA -thA -thA -thA +xMq +xMq thA thA thA @@ -120110,11 +122634,10 @@ oSU oSU oSU oSU +oSU szG szG -szG -szG -szG +oSU oSU oSU oSU @@ -120202,7 +122725,7 @@ oSU oSU oSU "} -(154,1,1) = {" +(153,1,1) = {" dhq dhq dhq @@ -120235,21 +122758,21 @@ dhq dhq dhq dhq -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +mzl ghx ghx ghx @@ -120366,11 +122889,11 @@ oSU oSU oSU oSU +oSU +szG +szG szG szG -iDt -daZ -iDt szG oSU oSU @@ -120459,22 +122982,7 @@ oSU oSU oSU "} -(155,1,1) = {" -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq -dhq +(154,1,1) = {" dhq dhq dhq @@ -120507,6 +123015,21 @@ dhq dhq dhq dhq +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +iZz +mzl ghx ghx ghx @@ -120519,17 +123042,17 @@ ghx iDt xMq xMq +xMq +thA +thA +thA +thA thA thA thA thA thA thA -oSU -oSU -oSU -oSU -oSU oSU oSU oSU @@ -120624,9 +123147,9 @@ oSU oSU oSU szG -eCR -iDt +szG iDt +tla iDt szG oSU @@ -120716,13 +123239,7 @@ oSU oSU oSU "} -(156,1,1) = {" -dhq -dhq -dhq -dhq -dhq -dhq +(155,1,1) = {" dhq dhq dhq @@ -120761,10 +123278,16 @@ dhq dhq dhq dhq +iZz +iZz +iZz +iZz +iZz dhq dhq dhq -ghx +adA +etz ghx ghx ghx @@ -120881,10 +123404,10 @@ oSU oSU oSU szG -szG +eCR +iDt iDt iDt -cCb szG oSU oSU @@ -120973,7 +123496,7 @@ oSU oSU oSU "} -(157,1,1) = {" +(156,1,1) = {" dhq dhq dhq @@ -121137,11 +123660,11 @@ oSU oSU oSU oSU -oSU szG szG iDt iDt +cCb szG oSU oSU @@ -121230,7 +123753,7 @@ oSU oSU oSU "} -(158,1,1) = {" +(157,1,1) = {" dhq dhq dhq @@ -121395,10 +123918,10 @@ oSU oSU oSU oSU -oSU -szG szG szG +iDt +iDt szG oSU oSU @@ -121487,7 +124010,7 @@ oSU oSU oSU "} -(159,1,1) = {" +(158,1,1) = {" dhq dhq dhq @@ -121543,20 +124066,16 @@ ghx ghx ghx ghx -iDt +ghx iDt xMq +xMq thA thA thA thA thA thA -thA -oSU -oSU -oSU -oSU oSU oSU oSU @@ -121657,6 +124176,10 @@ oSU oSU oSU oSU +szG +szG +szG +szG oSU oSU oSU @@ -121744,7 +124267,8 @@ oSU oSU oSU "} -(160,1,1) = {" +(159,1,1) = {" +dhq dhq dhq dhq @@ -121791,7 +124315,6 @@ dhq dhq dhq dhq -iZz ghx ghx ghx @@ -121801,7 +124324,7 @@ ghx ghx ghx iDt -xMq +iDt xMq thA thA @@ -122001,7 +124524,8 @@ oSU oSU oSU "} -(161,1,1) = {" +(160,1,1) = {" +dhq dhq dhq dhq @@ -122047,7 +124571,6 @@ dhq dhq dhq dhq -iZz iZz ghx ghx @@ -122258,7 +124781,7 @@ oSU oSU oSU "} -(162,1,1) = {" +(161,1,1) = {" dhq dhq dhq @@ -122313,7 +124836,7 @@ ghx ghx ghx ghx -iDt +ghx iDt xMq xMq @@ -122515,8 +125038,7 @@ oSU oSU oSU "} -(163,1,1) = {" -dhq +(162,1,1) = {" dhq dhq dhq @@ -122563,6 +125085,7 @@ dhq dhq dhq iZz +iZz ghx ghx ghx @@ -122571,7 +125094,7 @@ ghx ghx ghx iDt -xMq +iDt xMq xMq thA @@ -122772,7 +125295,7 @@ oSU oSU oSU "} -(164,1,1) = {" +(163,1,1) = {" dhq dhq dhq @@ -122817,9 +125340,9 @@ dhq dhq dhq dhq -ghx -ghx -ghx +dhq +dhq +iZz ghx ghx ghx @@ -122830,14 +125353,14 @@ ghx iDt xMq xMq +xMq +thA +thA thA thA thA thA thA -oSU -oSU -oSU oSU oSU oSU @@ -123029,7 +125552,7 @@ oSU oSU oSU "} -(165,1,1) = {" +(164,1,1) = {" dhq dhq dhq @@ -123086,7 +125609,7 @@ ghx ghx iDt xMq -thA +xMq thA thA thA @@ -123286,7 +125809,7 @@ oSU oSU oSU "} -(166,1,1) = {" +(165,1,1) = {" dhq dhq dhq @@ -123543,7 +126066,7 @@ oSU oSU oSU "} -(167,1,1) = {" +(166,1,1) = {" dhq dhq dhq @@ -123800,7 +126323,7 @@ oSU oSU oSU "} -(168,1,1) = {" +(167,1,1) = {" dhq dhq dhq @@ -123854,7 +126377,7 @@ ghx ghx ghx ghx -iDt +ghx iDt xMq thA @@ -124057,7 +126580,7 @@ oSU oSU oSU "} -(169,1,1) = {" +(168,1,1) = {" dhq dhq dhq @@ -124112,6 +126635,7 @@ ghx ghx ghx iDt +iDt xMq thA thA @@ -124312,9 +126836,11 @@ oSU oSU oSU oSU -oSU "} -(170,1,1) = {" +(169,1,1) = {" +dhq +dhq +dhq dhq dhq dhq @@ -124356,9 +126882,6 @@ dhq dhq dhq dhq -ghx -ghx -ghx ghx ghx ghx @@ -124374,8 +126897,8 @@ thA thA thA thA -oSU -oSU +thA +thA oSU oSU oSU @@ -124571,7 +127094,7 @@ oSU oSU oSU "} -(171,1,1) = {" +(170,1,1) = {" dhq dhq dhq @@ -124624,7 +127147,7 @@ ghx ghx ghx ghx -iDt +ghx iDt xMq thA @@ -124828,7 +127351,7 @@ oSU oSU oSU "} -(172,1,1) = {" +(171,1,1) = {" dhq dhq dhq @@ -124882,7 +127405,7 @@ ghx ghx ghx iDt -xMq +iDt xMq thA thA @@ -125085,7 +127608,8 @@ oSU oSU oSU "} -(173,1,1) = {" +(172,1,1) = {" +dhq dhq dhq dhq @@ -125126,8 +127650,6 @@ dhq dhq dhq dhq -iZz -iZz ghx ghx ghx @@ -125137,10 +127659,11 @@ ghx ghx ghx ghx -iDt +ghx +ghx iDt xMq -thA +xMq thA thA thA @@ -125342,7 +127865,8 @@ oSU oSU oSU "} -(174,1,1) = {" +(173,1,1) = {" +dhq dhq dhq dhq @@ -125393,9 +127917,8 @@ ghx ghx ghx ghx -ghx -xMq -xMq +iDt +iDt xMq thA thA @@ -125599,7 +128122,7 @@ oSU oSU oSU "} -(175,1,1) = {" +(174,1,1) = {" dhq dhq dhq @@ -125651,9 +128174,9 @@ ghx ghx ghx ghx -thA -thA -thA +xMq +xMq +xMq thA thA thA @@ -125856,7 +128379,7 @@ oSU oSU oSU "} -(176,1,1) = {" +(175,1,1) = {" dhq dhq dhq @@ -125895,6 +128418,9 @@ dhq dhq dhq dhq +dhq +iZz +iZz ghx ghx ghx @@ -125905,9 +128431,6 @@ ghx ghx ghx ghx -ghx -ghx -thA thA thA thA @@ -126113,7 +128636,7 @@ oSU oSU oSU "} -(177,1,1) = {" +(176,1,1) = {" dhq dhq dhq @@ -126163,7 +128686,7 @@ ghx ghx ghx ghx -thA +ghx thA thA thA @@ -126370,7 +128893,7 @@ oSU oSU oSU "} -(178,1,1) = {" +(177,1,1) = {" dhq dhq dhq @@ -126429,7 +128952,7 @@ thA thA thA thA -oSU +thA oSU oSU oSU @@ -126627,7 +129150,7 @@ oSU oSU oSU "} -(179,1,1) = {" +(178,1,1) = {" dhq dhq dhq @@ -126676,6 +129199,7 @@ ghx ghx ghx ghx +ghx thA thA thA @@ -126882,9 +129406,8 @@ oSU oSU oSU oSU -oSU "} -(180,1,1) = {" +(179,1,1) = {" dhq dhq dhq @@ -127141,7 +129664,7 @@ oSU oSU oSU "} -(181,1,1) = {" +(180,1,1) = {" dhq dhq dhq @@ -127398,6 +129921,263 @@ oSU oSU oSU "} +(181,1,1) = {" +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +dhq +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx +ghx +thA +thA +thA +thA +thA +thA +thA +thA +thA +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +xMq +xMq +xMq +xMq +xMq +xMq +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +oSU +"} (182,1,1) = {" dhq dhq @@ -127534,13 +130314,13 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +iDt +iDt +iDt +iDt +xMq +xMq oSU oSU oSU @@ -127790,14 +130570,14 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +xMq +iDt +iDt +iDt +iDt +iDt +bwh oSU oSU oSU @@ -128047,14 +130827,14 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +wUm +iDt +iDt +iDt +iDt +gwW +bwh oSU oSU oSU @@ -128302,16 +131082,16 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +xMq +wUm +iDt +iDt +iDt +iDt +mrI +bwh oSU oSU oSU @@ -128558,17 +131338,17 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +xYQ +aKb +iDt +iDt +iDt +iDt +iDt +scw +bwh oSU oSU oSU @@ -128808,24 +131588,24 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +oSU +oSU +oSU +oSU +oSU +oSU +iDt +iDt +iDt +iDt +chg +iDt +iDt +iDt +iDt +hWz +bwh +bwh oSU oSU oSU @@ -129071,19 +131851,19 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +iDt +xYQ +pJm +iDt +iDt +iDt +iDt +iDt +iDt +bwh +bwh oSU oSU oSU @@ -129229,10 +132009,10 @@ dhq dhq dhq dhq -iZz -iZz -iZz -iZz +iDt +iDt +iDt +iDt ghx ghx ghx @@ -129328,20 +132108,20 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +iDt +iDt +xMq +xMq +iDt +iDt +iDt +iDt +iDt +iDt +bwh +bwh oSU oSU oSU @@ -129487,8 +132267,8 @@ dhq dhq dhq dhq -iZz -iZz +iDt +iDt ghx ghx ghx @@ -129586,19 +132366,19 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +iDt +iDt +iDt +iDt +xMq +xMq +iDt +iDt +iDt +iDt +iDt +iDt +bwh oSU oSU oSU @@ -129744,7 +132524,7 @@ dhq dhq dhq dhq -iZz +iDt ghx ghx ghx @@ -129844,20 +132624,20 @@ oSU oSU oSU oSU +iDt +iDt oSU oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU -oSU +xMq +xMq +xMq +xMq +xMq +xMq +iDt +iDt +xMq +xMq oSU oSU oSU @@ -130112,11 +132892,11 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU +iDt +scw +scw +scw +xMq oSU oSU oSU @@ -130370,11 +133150,11 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU +iDt +scw +wme +scw +xMq oSU oSU oSU @@ -130627,11 +133407,11 @@ oSU oSU oSU oSU -oSU -oSU -oSU -oSU -oSU +xMq +iDt +scw +scw +xMq oSU oSU oSU @@ -130885,8 +133665,8 @@ oSU oSU oSU oSU -oSU -oSU +xMq +xMq oSU oSU oSU @@ -132305,8 +135085,8 @@ dhq dhq dhq dhq -iZz -iZz +iDt +iDt ghx ghx ghx @@ -132562,7 +135342,7 @@ dhq dhq dhq dhq -iZz +iDt ghx ghx ghx @@ -132819,7 +135599,7 @@ dhq dhq dhq dhq -iZz +iDt ghx ghx ghx @@ -133076,7 +135856,7 @@ dhq dhq dhq dhq -iZz +iDt ghx ghx ghx @@ -158913,7 +161693,7 @@ rex rNc icu rOB -rcx +dKk ksi sJH lwR @@ -159154,17 +161934,17 @@ thA thA thA thA -oif -eJf +gFX +pFv eJf eJf -keu +faL eJf eJf eJf lwR sJH -irM +gps veK tUC fjQ @@ -159173,10 +161953,10 @@ xuB jkn jkn iyE -ncO -vAj +qAP +cHA lwR -iDt +mbJ scw iDt iDt @@ -159687,7 +162467,7 @@ drD jkn jkn sEq -vZS +boU aez sEq scw @@ -159941,7 +162721,7 @@ sJH oLs xaV diV -ebK +uJi uzs sJH tUK @@ -161198,7 +163978,7 @@ thA thA thA thA -thA +lGf thA thA gjq @@ -161479,7 +164259,7 @@ gjq gjq gjq bOz -aVp +ouq icB sGE diV @@ -161711,8 +164491,8 @@ thA thA szG szG -oif -thA +gFX +lGf gjq gjq gjq @@ -162739,13 +165519,13 @@ szG szG myZ eJf -keu +faL eJf eJf eJf eJf -oif -szG +gFX +wjA gjq gjq gjq @@ -163001,14 +165781,14 @@ gjq gjq gjq gFX -szG +wjA szG gjq gjq gjq -mTW +ocS gjq -mTW +ocS gjq gjq gjq @@ -163238,14 +166018,14 @@ thA iLh jqj aiA -wVq +msu dcW kjt -mUz +wGZ kUU hSt tKq -sGM +fqM haD lrz iLh @@ -163277,24 +166057,24 @@ gjq gjq gjq gjq -keu +faL eJf cMk yep cMk eJf -keu +faL eJf eJf eJf eJf -keu +faL eJf eJf eJf eJf -oif -iDt +gFX +mbJ pfw thA thA @@ -163493,7 +166273,7 @@ thA thA thA iLh -gAd +tkT ukd iLh aBX @@ -163508,7 +166288,7 @@ iLh iLh iwS iwS -sbf +mbJ scw iDt scw @@ -163756,16 +166536,16 @@ ini dwo eKN oQt -ydH +hTI wUu xrs iLh vad -kMP +wjP wMw hoZ iwS -iDt +ixl iDt iDt iDt @@ -163776,7 +166556,7 @@ gjq gjq gjq gjq -mUf +daO aFG hZe xuo @@ -164010,14 +166790,14 @@ iLh hYb iLh iLh -fGJ +xvd nAg fkt oQt xrs ilD iLh -pog +hIW qPs xCr wds @@ -164040,14 +166820,14 @@ nia sjb hpM sjb -eJf +pFv eJf eJf uBy -gQe -gQe -gQe -nzG +avs +avs +avs +aGR eJf gjq gOU @@ -164259,7 +167039,7 @@ thA thA thA iDt -kcW +thA ivF ivF xUF @@ -164274,8 +167054,8 @@ iLh iLh iLh iLh -xkH -oeB +qPb +jSN qxI sTh qMo @@ -164284,27 +167064,27 @@ cCb iDt iDt scw -oif -eJf +gFX +pFv eJf -keu +faL eJf pfg sjb -khF +gRg oFZ -jVx +cew wQr kvf sjb gjq gjq gjq -mrI +bUS scw jAv scw -gem +kNC eJf gjq gOU @@ -164520,8 +167300,8 @@ iDt snd kkA erw -wrl -aOa +abQ +cGS uhb aSC cQi @@ -164530,13 +167310,13 @@ ivF sqb gVm iwS -iJM -dNl -qxI +wPJ +qVK +bpq qxI rVC qMo -iDt +scw iDt ijY iDt @@ -164548,7 +167328,7 @@ gjq gjq gjq sjb -sjx +xDj xgO rHk wQr @@ -164787,13 +167567,13 @@ ivF pcc fdX iwS -iJM -dNl -qxI +xdh +otf +bYR qxI coT qMo -iDt +scw iDt iDt iDt @@ -164808,8 +167588,8 @@ sjb qEu jIX sgV -vpl -tQE +cEl +rES vSi qLm qLm @@ -164817,7 +167597,7 @@ qLm vSi bie bie -vzI +cMk bie bie cMk @@ -164828,11 +167608,11 @@ cMk eJf eJf eJf -keu +faL eJf eJf -oif -pfw +gFX +rYA ebd iDt iDt @@ -165034,8 +167814,8 @@ scw snd hJp hby -czz -xYr +nxY +fHV jwB bIo nit @@ -165045,13 +167825,13 @@ iwS iwS iwS iwS -oqj -kTX +tiX +ogu iJL dwI qMo iDt -iDt +scw iDt iDt ebd @@ -165065,17 +167845,17 @@ cum mzr bgU quY -nbU +fvj vSi vSi vdb mzu rDn vSi -tKf -lkY +tEO +qDA kZu -qmT +bKE vpc kZu aYM @@ -165298,9 +168078,9 @@ tHX nit eZK ivF +smp +hkI ktp -lIU -xrL iwS sFd iuH @@ -165312,7 +168092,7 @@ gJK iwS wkB iDt -jZN +xYQ gjq gjq gjq @@ -165326,8 +168106,8 @@ jzy pve xjZ bGP -mIT -gsF +hqv +sYz vSi kZu uOf @@ -165543,13 +168323,13 @@ gjq gjq gjq gjq -nfG -qbU +ppY +wEu ivF jwH jwH jwH -jHV +pLS aLz jul oRE @@ -165579,7 +168359,7 @@ sjb puX uig hPK -ukv +ilz pve hEm ksn @@ -165804,7 +168584,7 @@ gjq scw hyj slX -kwT +oXx ceY kbq sLR @@ -165819,9 +168599,9 @@ nlO nlO gwz nMH -ciH +jHh iwS -fpC +gDh szX qMo iDt @@ -165834,7 +168614,7 @@ gjq sjb wQr wQr -pcj +cxI wVe wQr vSi @@ -166058,7 +168838,7 @@ gjq gjq gjq gjq -qsq +gpo ivF ivF ivF @@ -166069,11 +168849,11 @@ jnR jnR ivF ivF -nRx +eat pEg uyW iwS -kDm +lJg ePn oDV iqn @@ -166089,22 +168869,22 @@ gjq gjq gjq iYt -dbi -unM +slh +dhV lNH bit iQK kXr hVI gDN -pZD -uhs +hSe +nyR pve vSi kZu pAT -xlQ -lCA +lYd +jCV kZu jrQ qud @@ -166115,7 +168895,7 @@ hFL hFL nWH gnh -iDt +mbJ iDt iDt iDt @@ -166320,11 +169100,11 @@ gjq iDt iDt iDt -mdV +iDt scw scw iDt -xdY +thA iwS iwS iwS @@ -166336,7 +169116,7 @@ iwS iwS iwS iwS -dYq +lRn qMo iDt scw @@ -166346,16 +169126,16 @@ gjq gjq gjq dLf -vfg -bQA -hKT +iem +xug +rTZ cHZ gaq kXr oGF ksn -pZD -ghQ +nJL +kUD kUD kUD nWH @@ -166364,8 +169144,8 @@ nWH nWH nWH mHe -dAq -adm +sPE +ceF dTF nWH qeP @@ -166527,21 +169307,21 @@ thA thA thA thA -kSw +fIt xMq xMq xMq xMq xMq -kSw +fIt cek cek uCN cek cek cek -kSw -thA +fIt +sGw thA thA thA @@ -166595,7 +169375,7 @@ thA iwS rBM iwS -iDt +nyh scw gjq gjq @@ -166603,16 +169383,16 @@ gjq gjq gjq dLf -vfg -ajw +gYd +vRn rty lNH eMa hrJ wmT gDN -lvT -wSX +bGn +kUD kUD kUD nWH @@ -166851,7 +169631,7 @@ thA thA scw scw -xUw +scw iDt gjq gjq @@ -166860,17 +169640,17 @@ gjq gjq gjq dLf -vfg -ajw -vjM +mGH +eOJ +vAr bff lNH kix aOf yaD -wmb -lEt -eMO +vvU +mtV +itf nWH nWH oha @@ -167047,15 +169827,15 @@ hPs gBX gBX gBX -ktt +hPs hPs nDE nDE nDE nDE nDE -bUp -gjq +nDE +paw gjq gjq gjq @@ -167102,15 +169882,15 @@ gjq gjq thA thA -gqG -thA +psb +lGf thA -gqG -myZ +psb +eAW myZ myZ -gqG -gjq +psb +fhL gjq gjq gjq @@ -167118,9 +169898,9 @@ gjq gjq iYt tDU -mod +hcT bQA -eIU +ajw wUP hrJ siI @@ -167143,7 +169923,7 @@ whb xjC nWH gnh -iDt +mbJ iDt ulj iDt @@ -167309,7 +170089,7 @@ jlF jNf dpC cGQ -whr +txX nmr hVY gjq @@ -167376,8 +170156,8 @@ gjq jpS kNW kNW -wxp -wxp +ryl +xNh kNW kNW kNW @@ -167389,7 +170169,7 @@ nWH nWH nWH nWH -tCO +eSA jRd sbU nWH @@ -167558,8 +170338,8 @@ thA xMq iDt oqL -ucD -eaw +wmP +vTq jsp wSz nFU @@ -167643,18 +170423,18 @@ pZD cQw gLF wpx -unT -iAp -til +gLF +gee +kVN naq mzu gLF -unT +gLF dZq cvB tzE -gMw -ggv +pLh +eHo rsY urG iDt @@ -167824,7 +170604,7 @@ jNf qIo tau dWK -ozX +whr hVY gjq gjq @@ -167850,7 +170630,7 @@ rVB rVB rVB qQf -gjq +fhL gjq gjq gjq @@ -168069,11 +170849,11 @@ thA thA thA thA -kSw -iDt +fIt +nbB ktt -njf -rBy +tmy +lvU fAV tGs obv @@ -168130,8 +170910,8 @@ gjq gjq gjq gjq -jXc -eJf +psb +hYM eJf psb myZ @@ -168329,13 +171109,13 @@ thA xMq iDt hPs -eSE -mVI -elU -nZi +bVT +nPS +cKy +mLX tWO jNf -tXd +pSA qSo cPE cPE @@ -168405,7 +171185,7 @@ gjq jpS kuC kII -nmu +rRn clz mml kNW @@ -168427,7 +171207,7 @@ rsY qjV qjV rsY -vek +hNn iDt iDt iDt @@ -168592,7 +171372,7 @@ bCp fYi tCL jNf -wcz +wSC hKI fWe ozX @@ -168617,8 +171397,8 @@ ucN iDt iDt qQf -kxZ -mES +ouK +vkC sXk rJz pFV @@ -168644,8 +171424,8 @@ gjq gjq gjq gjq -eFw -eJf +psb +bZC eJf psb myZ @@ -168686,7 +171466,7 @@ aIB aIB dNN psb -iDt +fXL sVN iDt psb @@ -168846,7 +171626,7 @@ hPs xLV xLV nvE -uKJ +vcx tCL jNf fDP @@ -168861,7 +171641,7 @@ gjq wUj qLB jpy -vXe +cgB ssY wUj gjq @@ -168869,7 +171649,7 @@ ucN cXZ cVk gFj -vZH +vtR kgz iDt iDt @@ -168921,7 +171701,7 @@ jpS jlK jpS szJ -iKp +nvy kNW rrV xGt @@ -168934,17 +171714,17 @@ uUT vgD lvQ sUE -sdc -mPq +rsY +jcA scw -qau +jai iDt iDt iDt iDt iDt wOR -xuo +txm itY iDt thA @@ -169133,7 +171913,7 @@ iDt qQf sEk qQf -uxZ +aPZ dBp jZe qYb @@ -169174,9 +171954,9 @@ iDt iDt ijY iDt -iDt -iDt aEM +iDt +jpS gKd gKd rsY @@ -169184,7 +171964,7 @@ hdb avh qGg uUT -fyT +ccv lQh diI uUT @@ -169200,7 +171980,7 @@ iDt cCb scw iDt -xuo +ohI tZp iDt iDt @@ -169355,8 +172135,8 @@ iDt iDt iDt oqL -gLY -twx +iCp +wes ldz fvK cIc @@ -169368,8 +172148,8 @@ jNf jNf jNf jNf -xZg -iDt +xhK +kXf iDt iDt wUj @@ -169390,13 +172170,13 @@ ijY qQf qQf qQf -uPx +rIz cfi -pjz +bGS qQf qQf qQf -pfw +gVN scw iDt iDt @@ -169408,7 +172188,7 @@ iDt iDt iDt iDt -nfG +ppY iDt iDt iDt @@ -169437,9 +172217,9 @@ rcY iDt iDt rsY -mqs +avi dTs -oeP +cxt uUT kmO rtR @@ -169451,16 +172231,16 @@ qQt scw scw iDt -nqv +qau +iDt iDt iDt iDt iDt -jSQ cmZ -xuo +dNN iDt -jZN +xYQ thA thA thA @@ -169612,8 +172392,8 @@ iDt iDt iDt oqL -gvi -xCa +lrM +dnz axX auJ oVy @@ -169653,7 +172433,7 @@ rGq gQp iUG sXe -xuo +vpJ iDt iDt iDt @@ -169672,15 +172452,15 @@ iDt iDt iDt iDt -gqG -scw +psb +mrk iDt -gqG -aIB +psb +leU aIB aIB -gqG -iDt +psb +mbJ iDt iDt iDt @@ -169690,10 +172470,10 @@ iDt iDt iDt cCb -qau -scw +jai +nLB qXg -sdc +rsY rsY czq rsY @@ -169708,8 +172488,8 @@ scw scw iDt scw -qau -ijY +jai +jwz iDt iDt iDt @@ -169868,8 +172648,8 @@ iDt ijY hPs gBX -oPa -cjz +hPs +tcL vdW sTP jhH @@ -169887,7 +172667,7 @@ iDt ijY pfw wUj -dtq +pYn jeJ aFg vwl @@ -169908,11 +172688,11 @@ qQf ofE awn qQf -mri +rVB qQf -ebd +mCz iDt -nfG +ppY pfw thA thA @@ -169928,7 +172708,7 @@ thA thA thA thA -nfG +ppY iDt iDt iDt @@ -169936,7 +172716,7 @@ iDt scw iDt iDt -iDt +scw iDt iDt iDt @@ -169947,25 +172727,25 @@ iDt iDt iDt iDt -mJZ +qau iDt scw qQt -scw +oIt scw scw iwf uUT -afs -qCY +okc +bzD iwf -tej -tej -tej -tej -tej -tej -kso +wWw +aOG +wWw +wWw +wWw +aOG +qhR iDt iDt iDt @@ -170129,12 +172909,12 @@ dck tei fTF fTF -fTF +dbn cIc uTp oVY pez -ccX +oOg qLg vVH vVH @@ -170147,15 +172927,15 @@ ntl hwu hwu wUj -wwL +vmw wUj vOw -eGW +jEJ dZN eGW uRk dDt -dDt +crf wYh dvw dDt @@ -170184,19 +172964,19 @@ thA thA thA thA -dlu -dlu -dlu -dlu -dlu -dlu -dlu -dlu -qgQ -qgQ -rrl -nmO -ozW +fyI +fyI +fyI +fyI +fyI +fyI +fyI +fyI +pkq +pkq +guO +poC +dXk iDt iDt iDt @@ -170204,7 +172984,7 @@ iDt iDt scw iDt -rcY +qau scw iDt snL @@ -170212,14 +172992,14 @@ scw scw scw nUi -nNy +oTi cbk lNa nUi iDt iDt iDt -jZN +xYQ iDt iDt iDt @@ -170391,21 +173171,21 @@ cIc kqn oVY pez -qsR +anQ aQQ fdm -grU -nKL +eIg +rIH ukN nCs bZk gRZ -kmg +dAZ vOw eGW eGW uRk -dDt +tbl dDt stG ykM @@ -170441,22 +173221,22 @@ thA thA thA thA -dlu -qbM -wvu -wvu -bPR -qbM -wvu -bil +fyI +tKm +eiH +eiH +puZ +tKm +eiH +sTb ijY iDt iDt iDt -kJx +hcZ iDt iDt -jZN +xYQ iDt iDt iDt @@ -170468,11 +173248,12 @@ rxG iDt scw uWE -qzq +iwf iwf qlk qlk iwf +mbJ iDt iDt iDt @@ -170481,8 +173262,7 @@ iDt iDt iDt iDt -iDt -jZN +xYQ iDt thA thA @@ -170651,7 +173431,7 @@ oCU vVH vVH vVH -lDE +ivw nKL hpF pXZ @@ -170698,19 +173478,19 @@ thA thA thA thA -dlu -nEI -wvu -wvu -bPR -nEI -wvu -bil -iDt +fyI +aGb +eiH +eiH +puZ +aGb +eiH +sTb +scw iDt iDt iDt -kJx +hcZ iDt iDt iDt @@ -170908,7 +173688,7 @@ bLc diN diN lgK -jqn +vlH lWb eDq tDY @@ -170917,10 +173697,10 @@ izY eND qpB qpB -jLB +eIU qpB qpB -siv +sfF kRy qpB iwC @@ -170955,35 +173735,35 @@ thA thA thA thA -dlu -wvu -wvu -wvu -bPR -wvu -wvu -bil -iDt +fyI +eiH +eiH +eiH +puZ +eiH +eiH +sTb iDt -ayJ iDt -kJx +luI iDt +hcZ iDt iDt iDt iDt iDt iDt -rcY iDt +jai iDt iDt iDt iDt iDt -mJZ iDt +jai +wkB iDt iDt iDt @@ -171190,7 +173970,7 @@ cBT dyf iOs gKQ -eGW +xAY qQN wMt thA @@ -171212,19 +173992,19 @@ tjo thA thA thA -dlu -rEn -rEn -wvu -ghA -rEn -wvu -idH +fyI +bEk +bEk +eiH +qAh +bEk +eiH +fwC iDt iDt iDt iDt -kJx +hcZ iDt iDt iDt @@ -171233,13 +174013,13 @@ ijY iDt iDt syw -kNC -kNC -kNC -tej +aOG +pJm +pJm +wWw fSm -kNC -gIl +aOG +pCG iDt iDt cCb @@ -171411,7 +174191,7 @@ iDt hPs gBX hPs -bSX +jhj pzu sRQ una @@ -171427,15 +174207,15 @@ nKL hpF uHv nup -vYc +pCp dAZ -nek +eRp qKS dUO -rhP +fWQ kkB dUO -nGQ +ylL sSO lyg gjq @@ -171447,8 +174227,8 @@ bqF dyf iNy gKQ -eGW -qQN +okz +okz wMt thA thA @@ -171469,19 +174249,19 @@ tjo thA thA thA -dlu -wvu -wvu -wvu -wvu -wvu -wvu -wvu +fyI +eiH +eiH +eiH +eiH +eiH +eiH +skr iDt iDt iDt iDt -qSi +kOR scw iDt scw @@ -171491,8 +174271,8 @@ iDt scw scw iDt -rDN -sEv +fep +edc scw scw iDt @@ -171500,7 +174280,7 @@ iDt iDt iDt iDt -jZN +xYQ xMq thA thA @@ -171679,12 +174459,12 @@ pez tVf izn lgK -pfn +wrw lWb eDq iXh lWb -hRp +upB dAZ wqI xSn @@ -171704,8 +174484,8 @@ seA ybN seA gKQ -jSL -jSL +jhi +jhi wMt thA thA @@ -171726,17 +174506,17 @@ tjo thA thA thA -dlu -ncx -kYN -wvu -wvu -rzY -kYN -wvu -ayJ -iDt -iDt +fyI +tjM +fsx +eiH +eiH +upU +fsx +skr +eGV +scw +scw iDt iDt scw @@ -171746,11 +174526,11 @@ scw scw scw scw -oJD -oJD +nKY +nKY scw -sed -nfG +eFH +ppY scw iDt iDt @@ -171941,7 +174721,7 @@ yiL yiL yiL eDq -pDl +ejb dAZ emM wob @@ -171983,19 +174763,19 @@ tjo thA thA thA -dlu -wvu -wvu -wvu -wvu -wvu -wvu -wvu +fyI +eiH +eiH +eiH +eiH +eiH +eiH +skr iDt iDt iDt iDt -qSi +kOR scw scw scw @@ -172003,9 +174783,9 @@ iDt scw scw scw -kYo -oJD -oJD +dVN +nKY +nKY scw scw aRt @@ -172181,7 +174961,7 @@ xMq iDt iDt ebd -ktt +hPs gBX hPs cIc @@ -172197,15 +174977,15 @@ uBs uBs uBs xaH -fCd +erM nDp -ubo +uFg lgD nDp -gqZ +mtS vms nDp -dwS +tlt vms iYU nZd @@ -172240,19 +175020,19 @@ tjo thA thA thA -dlu -xxH -xxH -wvu -jkK -xxH -wvu -mhj +fyI +fgV +fgV +eiH +gLX +fgV +eiH +oAm iDt iDt iDt iDt -kJx +hcZ iDt iDt iDt @@ -172260,11 +175040,11 @@ iDt iDt iDt iDt -kYo -rIS -kYo -kYo -kYo +dVN +yib +dVN +dVN +dVN iDt scw thA @@ -172454,7 +175234,7 @@ xuA tuc pPK yiL -aVF +gwl rQZ bSk uQC @@ -172463,18 +175243,18 @@ bcm uQC nSk wQR -kWH -vao +lEM +oVD lyg gjq gjq gjq ncR -eBU -ile +uyo +epN dyf -ile -neC +nnj +sWN gKQ thA thA @@ -172497,30 +175277,30 @@ tjo thA thA thA -dlu -wvu -wvu -wvu -bPR -wvu -wvu -bil -iDt +fyI +eiH +eiH +eiH +puZ +eiH +eiH +sTb iDt -ayJ +scw +luI iDt -kJx +hcZ iDt iDt iDt -daZ +tla iDt iDt -kPz -kYo -kYo -kYo -kYo +iNo +dVN +dVN +dVN +dVN iDt iDt iDt @@ -172711,7 +175491,7 @@ xuA tuc tuc yiL -pRB +sBH cGl hgM pJu @@ -172723,14 +175503,14 @@ frS fiL hQt lyg -gjq +fhL gjq gjq wYP tDN -tpK +bPl dyf -xCb +bOh gDe gKQ thA @@ -172754,25 +175534,25 @@ tjo thA thA thA -dlu -nEI -wvu -wvu -bPR -nEI -wvu -bil -iDt +fyI +aGb +eiH +eiH +puZ +aGb +eiH +sTb iDt iDt +scw iDt -kJx +hcZ iDt iDt iDt iDt iDt -kPz +iNo thA thA thA @@ -172952,8 +175732,8 @@ xMq xMq xMq xMq -kSw -iDt +fIt +nbB xhK vVH vVH @@ -172965,7 +175745,7 @@ yiL vDx cxO xuA -dkB +wkd bYg yiL qLD @@ -172985,9 +175765,9 @@ gjq gjq idN ntT -xUR +mtq jbI -oQN +bqS xtn gKQ thA @@ -173011,19 +175791,19 @@ tjo thA thA thA -dlu -qbM -wvu -wvu -bPR -qbM -wvu -bil +fyI +tKm +eiH +eiH +puZ +tKm +eiH +sTb iDt iDt iDt iDt -kJx +hcZ iDt iDt iDt @@ -173225,8 +176005,8 @@ pgL lab cbz yiL -iVu -rnb +fnt +fJZ hgM kyu hBg @@ -173242,9 +176022,9 @@ gjq gjq onJ mvv -ile -oTe -cAz +bfV +aUo +rth dEv gKQ thA @@ -173268,21 +176048,21 @@ tjo thA thA thA -dlu -dlu -dlu -dlu -dlu -dlu -dlu -dlu -iDx -rrl -iDx -iDx -fQa +fyI +fyI +fyI +fyI +fyI +fyI +fyI +fyI +jnW +uPY +jnW +jnW +kAk iDt -daZ +tla iDt iDt thA @@ -173479,11 +176259,11 @@ yiL agF tgP rGh -vHM +iJE wyF yiL -szz -nrq +cVV +dhi hgM kyu nrF @@ -173548,7 +176328,7 @@ thA thA thA xMq -nfG +ppY iDt iDt iDt @@ -173723,8 +176503,8 @@ gjq gjq gjq gjq -kSw -iDt +fIt +nbB xhK oAP oua @@ -173739,8 +176519,8 @@ yiL yiL yiL yiL -xHE -xHE +nEC +lOr hgM fvO mBa @@ -173792,10 +176572,10 @@ iDt iDt iDt iDt -aaD +vcj wqT -aaD -iDt +vcj +mbJ iDt iDt iDt @@ -173988,11 +176768,11 @@ swf vVH uVC oVY -rwu +tGJ tVf wRa gAn -hgH +qNK nmI kZi uME @@ -174006,7 +176786,7 @@ xhK xhK xhK xhK -gjq +paw gjq gjq gjq @@ -174050,7 +176830,7 @@ iDt iDt iDt alW -wVz +dpw alW iDt iDt @@ -174243,13 +177023,13 @@ xhK vVH fkV vVH -kqn +wEp oVY sMs tVf wJi rME -bol +xvI mMy uME uME @@ -174307,11 +177087,11 @@ iDt iDt vcj vcj -tLc +aDc vcj vcj aVq -daZ +tla iDt xMq thA @@ -174506,7 +177286,7 @@ bWh pac hUz hUz -bjp +tGA bjp poe ryu @@ -174571,7 +177351,7 @@ aVq iDt iDt iDt -nfG +ppY iDt iDt ebd @@ -174754,7 +177534,7 @@ gjq gjq gjq upw -msg +pcT jDG iRV fiD @@ -174772,7 +177552,7 @@ ihB ddp hBg nzj -dKr +rjd pOk par rsM @@ -175079,10 +177859,10 @@ ijn vWz vWz swq -eNS +vWz vcj -aaD -qtS +vcj +dCq iDt iDt iDt @@ -175336,8 +178116,8 @@ sIO wDG vyg dOq -kOS -uMq +gLU +wVz nul scw scw @@ -175592,11 +178372,11 @@ vcj igL vWz vWz -dOq +bFx vWz vcj -aaD -xQu +vcj +tsc iDt xMq thA @@ -175605,7 +178385,7 @@ xMq xMq thA xMq -nfG +ppY iDt iDt iDt @@ -175852,7 +178632,7 @@ iyd vlZ gCh alW -nfG +ppY iDt xMq xMq @@ -175870,11 +178650,11 @@ iDt iDt iDt iDt -nfG +ppY iDt iDt iDt -nfG +ppY xMq thA thA @@ -176307,14 +179087,14 @@ wRa wRa wRa vVH -nRO +tOE ulz ulz ulz pNm -eOz +cLp fdG -uCU +saX gjq gjq gjq @@ -176564,7 +179344,7 @@ wRa wRa wRa vVH -nCQ +kUt pKR ejX fjG @@ -176878,7 +179658,7 @@ scw scw scw scw -nfG +ppY iDt iDt thA @@ -176896,8 +179676,8 @@ nxM vmP maQ oAe -aUD -xMq +nxM +fCm thA thA thA @@ -177150,7 +179930,7 @@ thA thA thA mep -upa +kVI qck lkz mep @@ -177389,14 +180169,14 @@ scw scw iDt thA -gqG -thA +psb +lGf thA thA -gqG -scw -gqG -iDt +psb +mrk +psb +mbJ thA gjq gjq @@ -177407,9 +180187,9 @@ thA thA nxM nxM -qKH +vmP eVO -aUR +oAe nxM nxM nxM @@ -177628,7 +180408,7 @@ thA thA thA thA -rcY +aKb iDt iDt xMq @@ -177641,7 +180421,7 @@ gjq gjq gjq gjq -nfG +ppY scw thA thA @@ -177885,8 +180665,8 @@ thA thA thA thA -mJZ -iDt +bmc +wkB iDt scw scw @@ -177932,7 +180712,7 @@ thA thA thA thA -nfG +ppY iDt iDt scw @@ -178107,7 +180887,7 @@ ovP ovP ovP gFX -ovP +iXc ovP ovP ovP @@ -178146,12 +180926,12 @@ chg iDt scw scw -xpO -gNu -gNu -gNu -gNu -oZk +bqq +mgS +mgS +mgS +mgS +jRX gjq gjq gjq @@ -178363,7 +181143,7 @@ ovP ovP iDt scw -gbz +scw ovP ovP ovP @@ -178399,17 +181179,17 @@ thA thA thA iDt -rcY +bmc +pwr scw -scw -xpO -gRE -nYR -hog -hog -joW -aqq -oZk +bqq +uvA +pvi +uhF +uhF +gyg +kOM +jRX gjq gjq gjq @@ -178454,7 +181234,7 @@ iDt bID vxf noX -eNQ +nKw bID iDt thA @@ -178656,17 +181436,17 @@ thA thA thA iDt -rcY +aKb scw xMq -anI -lLR +kuZ +pBR eYX sCZ sCZ -qMO -dVj -anI +oDD +oUh +kuZ gjq gjq gjq @@ -178678,10 +181458,10 @@ bDO xMq xMq iDt -gqG -scw -gqG -thA +psb +mrk +psb +lGf thA thA thA @@ -178704,13 +181484,13 @@ xMq iDt iDt iDt -nfG +ppY iDt iDt -nfG +ppY bID bID -dmR +sSN bID bID thA @@ -178917,22 +181697,22 @@ xMq xMq xMq exw -nwC +fcA syE -hcj -hcj -fat -tqr +jaE +jaE +wPx +cUS exw -vDQ +bBO gjq gjq -wkV -kNC -jTf -jTf -gqG -szG +mxK +pJm +aOG +wWw +psb +wjA xMq xMq iDt @@ -179174,20 +181954,20 @@ exw exw exw exw -wwg +abJ bdr -jUv -jUv -xOV -scr +pme +pme +aon +jjI exw exw -gNu -gNu +mgS +mgS exw mPq iDt -neM +cRN qau xMq xMq @@ -179221,7 +182001,7 @@ iDt cCb iDt iDt -nfG +ppY bID anZ anZ @@ -179428,24 +182208,24 @@ iDt iDt xMq exw -jiD -utn -vnK -cCT +caA +mty +urQ +sQI bdr -jUv -jUv -xOV -vhA -oYw -kRD -rJX -mgy -sIX -nrh -iDt -neM -qau +pme +pme +aon +ojy +oGC +lQv +nVx +qes +xOQ +xyr +iDt +cRN +jai xMq xMq iDt @@ -179685,27 +182465,27 @@ xMq xMq xMq exw -cmg -qrF -ncd -dNk -grO -iFQ -iFQ -bon -hFX -ave +xiL +xlm +xLT +jgV +qlE +mNB +mNB +pyA +nrJ +onT exw -aBb -myS +hjc +jiw exw -dNN +xvN iDt iDt qau iDt iDt -nfG +ppY iDt scw iDt @@ -179941,16 +182721,16 @@ xMq xMq xMq xMq -exw -quw -xJW -ncd -erE -mYn -mYn -byy -mYn -wPR +uVb +qJB +mqd +xLT +wDb +oZG +oZG +rZY +oZG +eSC exw exw exw @@ -179959,15 +182739,15 @@ exw mPq iDt iDt -xlp +qau scw -fna +wJy iDt iDt iDt iDt eXH -gGK +jvU bjU aJr vHZ @@ -180199,32 +182979,32 @@ sBy sBy sBy exw -qre -oZD -lHI +ghD +lKN +fLu exw -rEt -iif +xKq +iXO exw -ogu -pOK -kPY -hWv +dXp +aqr +wOt +fHO urG -neM +cRN iDt scw iDt -neM -qau -iZm -fdP +cRN +jai +nbz +vyp iDt iDt scw iDt eXH -rwk +hZJ izJ gVO vjS @@ -180451,31 +183231,31 @@ thA xMq sBy sBy -dQp -rRu -xBs -lCv +dpb +loF +ikL +cLR exw -hPS -cYe -wSL +jJl +daH +oLi exw mpU mpU -tjA -hAK -pOK -txv -hWv +bHJ +iHP +aqr +uMp +fHO urG -neM +cRN iDt iDt scw -neM +cRN qau iDt -kRF +tiT iDt scw iDt @@ -180494,7 +183274,7 @@ nRc nRc bCt pHD -djB +tOb hjM oex oex @@ -180707,21 +183487,21 @@ thA xMq xMq sBy -qTp -xTi -bpc -cag -cVW +xNs +hZc +tZv +kKT +iAK exw -fBJ -fte -mkr +hTY +dQy +oPm exw -tmb -tmb +pPg +pPg exw -wME -tbd +obU +pvP exw exw gFX @@ -180730,7 +183510,7 @@ iDt scw scw oZd -kso +qhR scw iDt iDt @@ -180964,29 +183744,29 @@ thA xMq xMq sBy -ghT -pXy -nqI +gYv +rFU +qyH sBy -fbg +dbO sBy sBy exw exw -bwh -lyP -iDv -jMD +exw +cGZ +uAP +fNB sCZ -obT -ozx +eSC +ggz exw xMq psb jTf -jTf -ork -gIl +wWw +uen +hoz iDt iDt cCb @@ -180995,7 +183775,7 @@ scw iDt iDt eXH -nlN +iIY nlS yco rVd @@ -181221,22 +184001,22 @@ thA xMq xMq sBy -kzU -vxY -sRf +oiM +qrB +lRO sBy -rZP -fkd -fbW +lom +ete +laa exw exw exw -jQM -etr -ekc -leg -oIQ -inN +nwA +tPT +kiO +iTr +rds +xQi exw xMq psb @@ -181271,7 +184051,7 @@ xmx wEU rwD nxM -dXF +xnK pNZ rQG jJV @@ -181478,22 +184258,22 @@ xMq xMq xMq sBy -azI -kSj -lyf +oHf +lOJ +eqE sBy -eFf -quJ -quJ -wGQ -nBZ +sTL +idI +afb +bng +suF exw -tie -rxV -hjw -xFT +gbK +shF +qPV +wZW exw -bor +eXD exw psb psb @@ -181505,11 +184285,11 @@ scw btU xUf syW -jmJ +sCz hVX xUf eXH -irO +uIJ wiv fBw mLt @@ -181517,10 +184297,10 @@ mLt eKW wsu wsu -wsu -wsu -wsu -wsu +xfv +urp +urp +bFW pHD sGk hjM @@ -181528,7 +184308,7 @@ aJw sBJ qpD nxM -qhp +feD nxM nxM pBW @@ -181736,23 +184516,23 @@ xMq qMT qMT qMT -qon +qaS qMT qMT -rZP -quJ -quJ -jZc -nBZ +lom +idI +iMb +xIO +tGE exw -tec -phr -aTk -tec +aOb +xEX +tGz +aOb exw -mxY -xOd -ubi +rgq +sCb +grp psb xMq iDt @@ -181760,7 +184540,7 @@ iDt iDt iDt ioK -vtW +tqy bja jvw jvw @@ -181774,10 +184554,10 @@ qcL plS pHD pHD -eUe -bCq -bCq -fPh +hNq +vIu +vIu +kSG pHD jKG hjM @@ -181991,24 +184771,24 @@ thA xMq xMq qMT -jlv -emw -rqG -bOZ -gGS -rZP -quJ -imI +hfs +bMk +mxR +tHb +kuq +lom +idI +tJh qMT exw exw -pLu -tnJ -dJF -rzq +hZW +aIn +xwi +cft exw exw -bpa +rJc psb psb iDt @@ -182017,11 +184797,11 @@ iDt scw iDt ioK -jEA +jDz bja -rlA +czj jvw -bja +gIJ kRH xqY nzK @@ -182031,10 +184811,10 @@ fmr plS pHD pHD -qMz -imV -fuS -plS +hNq +qpo +qpo +kSG pHD qMz hjM @@ -182045,7 +184825,7 @@ nxM nxM nxM nxM -mPO +aRn hjM rgE rgE @@ -182248,25 +185028,25 @@ xMq xMq xMq qMT -dEc -ygy -nfK -wTl -sWS -ydv -aBj -sLm -dTx +vVl +umM +cXI +oJo +iQY +dHi +pSq +oHR +iZC exw -jbB -qfI -kcw -mXW -gAw -ktq +rEq +dFi +cRC +jbq +wNj +xTN exw -phl -ubi +wzH +grp psb iDt iDt @@ -182276,7 +185056,7 @@ scw btU btU btU -qbG +aoP ako hjM hjM @@ -182288,10 +185068,10 @@ hjM hCC iXP pHD -woC +bSi eXH eXH -ida +qYF pHD qMz hjM @@ -182492,7 +185272,7 @@ tjo tjo tjo tjo -luR +riW iDt tjo thA @@ -182505,35 +185285,35 @@ xMq xMq xMq qMT -izU -nYN -iDK -nYN -gGS -ydv -oru -dtc -sXU -rbU -nLd -nLa -gnE -gnE -qHs -wIx +dOp +wFJ +xQj +wFJ +kuq +dHi +wgK +jSa +fZH +iGQ +gnJ +amz +hOG +hOG +sIl +qPc exw -phl -cem +wzH +nYz psb iDt iDt -nfG +ppY iDt -scw +gFX btU -kCR +vfZ btU -ocp +mSX dYr nxM dTm @@ -182561,7 +185341,7 @@ nxM nxM nJd hjM -qII +iYd tVA oiO rgE @@ -182749,7 +185529,7 @@ tjo tjo tjo tjo -nlA +vne iDt tjo thA @@ -182763,23 +185543,23 @@ qMT qMT qMT qMT -kJG -eeY -ipg -mlN -rZP -lyU -pMh -aAy -rbU -nLd -ivp -gnE -gnE -kPh -dZL +hZb +vKR +gVV +dnn +lom +phz +cps +fMC +iGQ +gnJ +qFO +hOG +hOG +oMj +wVd exw -phl +wzH fuH psb iDt @@ -182787,11 +185567,11 @@ iDt iDt iDt btU -btU -sGf -lca -uTf -dYr +gCV +gcU +svx +tNw +mdy nxM nxM nxM @@ -182799,9 +185579,9 @@ hjM hjM hjM hjM -dsT +oEy vaZ -ubI +bQx hOk hjM hjM @@ -182819,7 +185599,7 @@ mco upa hjM fjg -bif +rxx nCD rgE rgE @@ -183017,35 +185797,35 @@ thA thA xMq qMT -jFY -wVI -aVJ -keM -ePZ -mRv -rZP -qal -oru -vXM -gYk +hmF +mIs +aZU +hMZ +gVB +axw +lom +xqt +wgK +fkD +toi exw -pSX -rdv -gNw -aUq -aIA -hfY +vfH +sRu +iWj +pVD +bsW +dad exw -phl +wzH fuH psb iDt iDt iDt -jCM +aDl btU -idr -qSe +gMd +mxZ aIU umC kJm @@ -183084,7 +185864,7 @@ phS kpG uAi qST -iRP +ngb wrE lKt rgE @@ -183274,39 +186054,39 @@ thA thA xMq qMT -jkN -qeW -quJ -mxh -aBj -klJ -ruQ -klJ -sgz -rlE +flK +gTa +idI +gxg +pSq +kmo +hWl +kmo +jUi +ibJ jre jre jre -oac -sGn -hpK -cNL +pTi +pWJ +ofR +eUm exw exw -bpa +pmA psb psb -olO -olO -olO -rpi +mUt +mUt +mUt +dbB btU -oYm -kht -wqi -tBY -efz -sAI +sry +dMl +pTy +bwp +shR +eGs hjM hjM hjM @@ -183329,7 +186109,7 @@ scw ilN vIZ nxM -bPk +iXK kmM sYU iio @@ -183520,7 +186300,7 @@ iDt iDt iDt iDt -pOl +evh tjo tjo tjo @@ -183531,36 +186311,36 @@ thA thA xMq qMT -bcf -vEC -lvv -efS -aXu -gPB -hEV -djl -bOn +eGB +wUB +nof +gIs +pbF +tdc +sHa +ccL +eLB jre jre -igu +jDV jre jre jre -fWd +tRP jre jre fuH -phl -ubi +wzH +grp psb -csV -mtt -mtt -mtt +oQc +gaA +gaA +gaA btU btU btU -gPj +idU btU btU ako @@ -183775,9 +186555,9 @@ iDt tjo iDt iDt -pOl +evh iDt -edM +sNF tjo tjo tjo @@ -183789,37 +186569,37 @@ thA xMq jre jre -dvZ +rXw jre jre -ydG -qfr -oVr -hFj +piT +eJX +ePj +ppH jre jre -nla -qhV -rhS -rhS -int -kWG -xEP +oXE +jWb +fCA +fCA +iaB +owK +hph jre -pJq -phl -bdX +adS +wzH +dfR psb -uwd -rWh -mtt -hFN +iUr +exu +gaA +ygA btU -nTA +ntm nyQ meL -efo -hJC +pgg +hAU ako hWV iiR @@ -184026,7 +186806,7 @@ tjo tjo tjo tjo -pOl +evh iDt tjo tjo @@ -184046,47 +186826,47 @@ thA xMq xMq jre -uBD -lcm +kyV +thP jre jre -jNe -jNe +weT +weT jre jre -nla -vkO -pjk -eqk -nla -ukt -acG +oXE +pfE +pBv +moX +oXE +xEV +xZS jre jre -gSU -phl -hvi +oDb +wzH +awE psb -hLh -amq -rWh -mtt +xcf +uKc +exu +gaA ioK waH -cWJ -dYX -pps -aRQ +kmq +ebO +jgW +mCx ako rjr xQT xQT qmU xDb -jEf +oGO qnt pGS -dIZ +ixa aRr xDb xMq @@ -184303,37 +187083,37 @@ thA xMq xMq jre -sJu -fWE +tKJ +kya tjs -qFD -qFD -rhS -rhS -wQx -vHe -dZC +jIB +jIB +fCA +fCA +ehh +jPL +oPC jre -vBt +nRE jre jre jre jre -drw -drw -bpa +dom +dom +rJc psb psb -uOz -amq -hai -mtt +qZZ +uKc +jww +gaA ioK -srG -aCl -tHe -tHe -xRF +wYH +jZt +hHz +hHz +hHz ako hSF hSF @@ -184373,7 +187153,7 @@ foW ljL ljL agY -bnG +lub lub wbk ccg @@ -184548,7 +187328,7 @@ iDt iDt iDt iDt -pOl +evh tjo tjo tjo @@ -184560,48 +187340,48 @@ xMq xMq xMq jre -nIY -jwf -cdO -ply -gEt -gwb -tOC -ubp -mUW +eXc +rfQ +gLY +sHt +hzU +usm +tYu +isq +jMr jre jre -vKT -rng -qjd -vyy -oRf +nVJ +xOc +eyP +rtw +rOx fwB -drw -nbl +dom +dXr psb -qnv -amq -wvL -mtt -mtt +lTl +uKc +wcn +gaA +gaA ioK -waH -nHc -nHc -ofm -okf +aOe +pRs +pRs +jcr +nPs ako xDb xDb xDb -rHr +jyJ mrU rQw xEb eVZ jTg -fpp +csu xDb xDb iDt @@ -184618,9 +187398,9 @@ lyX iTB imH nxM -mTX +aXP hjM -qUe +qJi ljL fFn vmu @@ -184819,7 +187599,7 @@ jre jre jre jre -iRS +uTu jre jre jre @@ -184827,29 +187607,29 @@ jre jre jre jre -bvc -rXB -udR -tkY -liv -liv -tkY -jKL -rpJ +lOA +ceQ +rRT +yfs +sTl +sTl +yfs +gTr +jgC psb -uOz -amq -wvL -fDp -csV +qZZ +uKc +wcn +grL +oQc ioK waH -iyF -xyG -jnY -eQU +lSX +bFA +fTi +bWv ako -xuQ +vJl qXO pGS bhw @@ -184863,7 +187643,7 @@ ffQ xDb clI iDt -pco +tJl iDt xMq xMq @@ -185073,40 +187853,40 @@ xMq xMq jre jre -uye -ohk -aAk +hDL +qZG +vmW nNe -xHv -qbY +tgj +mnA jre -nmi -aoi -ssm -fpt +tVF +kUo +iKd +ees mQk -qKw +sdF mQk fwB fwB fwB fwB -drw -qEh +dom +lPs psb -qnv -amq -wvL +lTl +uKc +wcn btU -hlQ +vtu btU -gfy -inP -xMv -wav -pWi +ale +rrR +tzR +qfy +aCw uHV -cqv +cKL gZb xwu cAr @@ -185120,8 +187900,8 @@ hoM xDb xMq iDt -mJZ -frt +aKb +gnX iDt iDt xMq @@ -185329,41 +188109,41 @@ thA xMq xMq jre -iDB -mPQ +kFc +kqg wSs -kfk -wjR -fMu -nla +wfP +uQv +qhb +oXE jre -nMC -fpm -kBO +sRz +tec +vcD jBB mQk -lEn +jUb mQk mQk fwB -nRy +nNg fwB -drw -cQV +dom +aWu psb psb -uOz -wvL -btU -sEI +qZZ +wcn +ioK +pKl btU -poY -hWX -goc +dVj +gra +lHV btU btU ako -goJ +uCM jeI pGS cDb @@ -185372,7 +188152,7 @@ drR oQY oQY soA -pNy +dvK nid xDb xMq @@ -185390,8 +188170,8 @@ sqW gjq nxM ueD -aUD -eJf +nxM +qOx upH fTG hkp @@ -185409,7 +188189,7 @@ bWK bWK neu hjR -vNM +uEf iDt iDt iDt @@ -185586,41 +188366,41 @@ thA xMq xMq jre -wEq -ezd -nla -uxU -bRx -ayY -nla +aMU +xzk +oXE +dYH +rlB +jMO +oXE jre -lHr -fQs -xOi +tAT +btq +nRn mQk mQk -riM +iBi mQk -fLa -eaM -cqs +mbM +oje +gYq fwB -drw -xxo -gcB +dom +fSB +rXP psb -hLh -hai +xcf +jww btU -dzr +jUs btU -xkT -kKk -pWG -btU -kKa +ewT +akN +uii +lOt +oJv ako -wlF +acl lYR pGS cDb @@ -185639,8 +188419,8 @@ iDt iDt scw iDt -gqG -eJf +psb +pFv eJf eJf eJf @@ -185834,7 +188614,7 @@ tjo tjo tjo iDt -pOl +evh iDt iDt thA @@ -185843,36 +188623,36 @@ thA xMq xMq jre -mMI -cBJ -nla -kRj +kGD +eIR +oXE +cqw nNe -ovZ -pGg +hWR +iis jre -lHr -njz -qYC -qOB +dLA +pnw +biu +xZv mQk -bLf -hAS -lJc -xbB -gxz +fja +prX +eud +kww +qPE fwB -drw -xxo -cem +dom +gKE +nYz psb -hai -csV +jww +oQc btU -gCG -cge -dDq -cLf +qYW +dBX +lln +jfF jUB jUB jUB @@ -185880,7 +188660,7 @@ xDb xDb xDb xDb -jCA +gff nLe nQd oeT @@ -185905,9 +188685,9 @@ myZ myZ myZ myZ -gdg +wvF kpC -eMU +cmY vgM syn fDe @@ -186101,47 +188881,47 @@ xMq xMq jre jre -xnf -rdq -aAk +jVp +qhi +vmW nNe -hnK -rXY +hts +hQv jre jre -tWY +oqE jre jre jre -twS +gWi jre jre jre jre -drw -drw -xxo +dom +dom +fSB fuH psb -olO -ese +mUt +mUt btU -cJa -oEH -klS -vAO +eqH +bCN +axj +fJA jUB -oXs -iSs -vMf -tdL +aVM +vgW +qHA +bWM xDb -qxv +uFF osr wiD dRz pwn -pwn +dUR pwn jUB cuJ @@ -186165,9 +188945,9 @@ eJf eJf upH uuw -jDi -nzT -eGl +boc +eOB +bpw lVw dDy nOS @@ -186182,7 +188962,7 @@ rbY ffe alM alM -sbZ +wtM alM iDt thA @@ -186361,37 +189141,37 @@ jre jre jre jre -udf +sXa jre jre jre -wOC -oYC +nzU +aWj wSs -nla -cSO -hYt -nla +oXE +fOS +pWE +oXE wSs -tes +tpc jre jre jre -kFF +sGG jre jre fuH fuH btU -mkN -meW -xFG -qad +uUs +cQV +ijv +hPD jUB -srM -skU -rHI -non +gIh +jjM +pfz +wyX nMc sfy uCe @@ -186410,8 +189190,8 @@ thA thA thA thA -gqG -eJf +psb +pFv eJf eJf eJf @@ -186419,12 +189199,12 @@ eJf myZ eJf eJf -buW +eJf kpC -kDb -nqX -qoZ -sIA +gWn +vZo +wxl +lOa lVw jPu ffe @@ -186436,10 +189216,10 @@ ffe ffe ffe ffe -heH -gNh +ffe +oxO alM -noQ +vZM alM iDt thA @@ -186617,38 +189397,38 @@ xMq xMq xMq jre -igu -kvT -pZO -jHL -jHL -jSp +gAM +rOL +edR +nsQ +nsQ +ljq jre -jNe +weT jre -tSO +exQ jre dQN jre -cpO +meX jre -gVs -hGg +jwv +sBd wSs vTp jre fuH fuH btU -iWN -cRN -jFA -jRm +hvt +luR +mlT +lqZ jUB -ksH -yaJ -uOq -vXD +vyq +aow +kkF +vLY xDb qSN atl @@ -186669,19 +189449,19 @@ thA thA thA thA -nfG +ppY gjq gjq alM gbL -wJD -eJf +alM +qOx eJf kpC awL -jes -qdx -sIA +xqw +xZy +lOa rtt dgZ ffe @@ -186693,10 +189473,10 @@ oxO alM fWO alM -jrk +aUT oxO alM -iCD +ouU alM alM alM @@ -186875,20 +189655,20 @@ xMq xMq jre jre -kUW +bTE jre -eet +tDS dQN -kEr +vwD jre rYT -sOX -aGk +biE +olR jre -jhu +jsO jre -mza -awF +xGL +lVU wSs wSs wSs @@ -186897,13 +189677,13 @@ jre fuH fuH btU -vrr -rcU -gEX -eML +mCd +hkQ +cZk +tHJ xDb jUB -aVU +dgt jUB xDb xDb @@ -186912,7 +189692,7 @@ qWD oQY nvX jUB -rOH +pkz lPC vpX xDb @@ -186933,12 +189713,12 @@ wCo oxO wCo eJf -nfG +ppY upH cYi -qqh +ngo naX -sIA +ulm rtt rgB ffe @@ -187132,38 +189912,38 @@ xMq xMq xMq jre -uiv +uIh jre jre jre -bzX -vpJ -gOd +uVr +sHe +frF oTx -hIE +fQe jre vFg jre jre jre -vyN +xth jre -kUW +bTE jre jre fuH fuH btU btU +xUf +xUf btU -btU -btU -iYH -qsG +xDb +ybC aqp wbe jUB -jGN +gSl gHN qWD uDF @@ -187389,23 +190169,23 @@ thA xMq xMq jre -dla +sjd jre xMq jre -gFt +oiC jre lvF -vUn +wFt lvF jre -aLh +htg djH -uGY +pIh jre jre jre -uiv +cXG jre xMq xMq @@ -187416,10 +190196,10 @@ thA thA thA xDb -xtR +lfA ukz gPR -bwe +tFY cxQ vJB wgI @@ -187444,7 +190224,7 @@ xMq xMq xMq alM -xFU +ciU alM apB ffe @@ -187645,7 +190425,7 @@ thA iDt rcY scw -uNG +ayL aIB tiY xMq @@ -187662,7 +190442,7 @@ hMw jre xMq jre -dla +sjd jre iDt thA @@ -187673,11 +190453,11 @@ thA thA thA xDb -pPD +fBy tIu toG jUB -kax +aov anK nrC xDb @@ -187687,7 +190467,7 @@ ffe ffe ffe dOC -dFD +nIb alM alM alM @@ -187901,7 +190681,7 @@ iDt iDt iDt rcY -luR +riW scw scw iDt @@ -187921,7 +190701,7 @@ xMq tiY aIB dhH -grg +xvE iDt thA thA @@ -187938,7 +190718,7 @@ xDb hjV ezu xDb -slx +sEN ffe oxO dcd @@ -187957,12 +190737,12 @@ alM alM alM alM -mLo +yhn eEY oxO dcd ffe -wRO +tBq ffe ffe ffe @@ -188157,8 +190937,8 @@ iDt iDt iDt iDt -tHF -scw +kLd +nLB iDt scw iDt @@ -188191,10 +190971,10 @@ xMq xMq xMq xMq -ozM +fWw nKl cgR -tBW +sWO vRY ffe oxO @@ -188210,7 +190990,7 @@ oxO oxO iry jQi -oxO +jVa oxO oxO oxO @@ -188220,7 +191000,7 @@ rUS tRd tRd nPI -wjy +nPI nPI nPI nPI @@ -188422,9 +191202,9 @@ scw iDt cCb syw -kNC -kNC -gIl +pJm +pJm +pCG iDt thA thA @@ -188468,7 +191248,7 @@ nsp oxO oxO oxO -kOO +oxO oxO oxO oxO @@ -188937,7 +191717,7 @@ iDt iDt iDt iDt -pOl +evh iDt iDt iDt @@ -188972,12 +191752,12 @@ xMq alM oxO ffe -qvN -qvN -qvN -biI -qvN -qvN +qCu +qCu +qCu +oED +qCu +qCu qLY eGN lZX @@ -189229,34 +192009,34 @@ xMq alM oxO ffe -qvN -qvN -qvN -uUn -qvN -qvN +qCu +qCu +qCu +pUX +qCu +qCu qLY vfe tsa wHb qLY -abe +eea wFN abe -cKA +nFz wFN abe -cKA +nFz abe abe -cKA +nFz abe abe -cKA +nFz abe abe rnQ -nPI +quW alM alM thA @@ -189446,9 +192226,9 @@ rcY iDt scw iDt -jmo +xkW keA -vQz +lPl iDt iDt scw @@ -189462,9 +192242,9 @@ thA thA thA psb -sRp +jkX gUQ -sRp +jkX psb thA thA @@ -189481,17 +192261,17 @@ xMq xMq xMq psb -iDt +clI xMq alM oxO ffe -viR -qvN -qvN -bOT -qvN -qvN +sbP +qCu +qCu +eZA +qCu +qCu qLY tkP fPv @@ -189704,7 +192484,7 @@ iDt iDt iDt tBs -dGZ +vcf tBs iDt iDt @@ -189745,32 +192525,32 @@ nsp ffe qLY qLY -uHS -ujp -qvN -ctF +xJn +kuT +qCu +qLY qLY qLY oXr -wpv +fma qLY -lMu +dRX bUK oQo nmj ucl aHz -dIS +puw gBb dJx htp eWh yjA -tOf +obF vPD lqU -mDg -nPI +ffe +xvU alM alM thA @@ -189964,15 +192744,15 @@ vRz wMj vRz iDt -wkV -tej -kNC -tej -tej -tej -kNC -tej -cNh +mxK +jTf +fOH +pJm +pJm +pJm +fOH +pJm +xvp iDt iDt iDt @@ -190008,7 +192788,7 @@ cZT cZT pXj qLY -wZv +hRQ axD qLY hEW @@ -190218,7 +192998,7 @@ tBs tBs tBs tBs -rHR +rQh tBs tBs tBs @@ -190229,7 +193009,7 @@ rbZ rbZ pgo iDt -hNF +aDG iDt iDt iDt @@ -190257,7 +193037,7 @@ iDt alM jCr ffe -nAf +fMZ pMF mqe hRC @@ -190265,24 +193045,24 @@ euM pMF sfv xyn -dmj +oYD wPd lVt -asb +yfa pMF -xCh -cbP +fZA +mqL pMF -ihN -doK +bWU +gvf mBP -rjT -rXD +vrw +mmG pMF -pfJ -jrc +hoa +pXq pMF -mbb +mEW rkl nPI oxO @@ -190470,7 +193250,7 @@ xMq tBs pwv sAu -rqn +dGS tBs nHQ oik @@ -190486,8 +193266,8 @@ tuk ebB efM pgo -rcY -rSQ +jai +rsG scw iDt iDt @@ -190521,7 +193301,7 @@ dtU niy gtF ouP -gLS +qLY cyh cXX bKI @@ -190736,7 +193516,7 @@ baR kAn kMN tBs -mFR +ebB ebB ebB uXk @@ -190784,21 +193564,21 @@ bjn qbq iar xqu -oir +dmV slp fjt wgr xur reT -rxM +dTC aLA bnh cNI tWd hJi -wGN -mDg -pQG +oOh +ffe +gzJ tRd alM thA @@ -191000,12 +193780,12 @@ efM uXk efM awy -rcY -iDt +jai +wkB iDt -svz +var keA -ddv +sys iDt iDt iDt @@ -191028,12 +193808,12 @@ iDt alM oxO ffe -oqd +jiB vHq aZk -xNa +iwQ pMF -rdl +cBv iQM qLY abe @@ -191257,19 +194037,19 @@ yav ebB awy iDt -qau +rcY iDt xMq wrX -efN -xCj +kpg +wrX xMq thA thA iDt scw iDt -vYN +wzi xMq iDt iDt @@ -191288,31 +194068,31 @@ ffe hfL vHq obZ -dIA -rSu +icK +bnr qLY qLY qLY -abe +eea abe gLj -abe +eea wFN gLj -abe +eea abe gLj -abe +eea abe gLj -abe +eea abe gLj -abe +eea abe abe pjr -tRd +iTC iWM alM thA @@ -191518,7 +194298,7 @@ wrX xMq xMq wrX -qCJ +csJ wrX xMq xMq @@ -191543,10 +194323,10 @@ alM oxO ffe ffe -iwx +mZI ffe ffe -xwd +pVj qLY vgf qLY @@ -191775,7 +194555,7 @@ wrX wrX wrX wrX -pSP +vIm wrX wrX xMq @@ -191799,7 +194579,7 @@ alM wOH oxO oxO -ggS +oxO nyJ nSK ffe @@ -192012,8 +194792,8 @@ thA tBs tix tBs -wgu -dlB +aCJ +pyn jCL qEJ qEJ @@ -192021,16 +194801,16 @@ djD qEJ qEJ qEJ -tJi +kyf wBA oTA rpK oTA epB -oTA +uFt wrX wrX -seN +wBs nBe tiV mjQ @@ -192275,20 +195055,20 @@ quB jmR vrC hbR -gNJ -qEJ -eog -lUa -dtC -bAF +whg +gQO +mPJ +puF +exn +hDf qeR bAF nJy -oTA -cMj -xNE -lnw -pwC +rkz +hrY +hrY +fLx +qgv wGv huJ wrX @@ -192303,17 +195083,17 @@ thA thA xMq xMq -xMq -iDt +pJm +pJm +tSj iDt iDt -iDt -nfG +ppY alM alM alM -oxO -aDe +alM +moy tNJ tNJ nyJ @@ -192523,7 +195303,7 @@ thA thA tBs liS -pxg +saR fdN tBs deP @@ -192532,19 +195312,19 @@ pQw cBP wAv fjH -dNB -gQO -mPJ -mle -bWZ -amt -xXE +oqN +cWE +kWO +txf +oTA +sab +qYh sab pcB -tSy +qtd uJt uJt -hxI +efy iAQ bkq uTX @@ -192558,23 +195338,23 @@ thA thA thA thA -thA -xMq -xMq -xMq xMq iDt +iDt +iDt +gsd +xvp scw iDt lRI eNh -bEh oxO +uwR vAx -oLa -pvh oxO oxO +pvh +oLa yfz oxO woH @@ -192779,336 +195559,79 @@ thA thA xMq tBs -suA -roq -rHZ -tBs -dit -bDH -rYt -rrf -wAv -jvs -qEJ -qEJ -oxN -mHJ -oTA -oTA -syh -oTA -lqj -oTA -uJt -uJt -rcD -smC -oTM -wrX -wrX -xMq -xMq -thA -thA -thA -thA -thA -thA -thA -thA -thA -xMq -xMq -iDt -iDt -iDt -nfG -alM -alM -alM -alM -alM -alM -alM -alM -iry -oxO -oxO -iKG -cma -qUL -oxO -iry -alM -alM -alM -alM -alM -alM -alM -alM -alM -alM -alM -alM -alM -thA -thA -thA -thA -thA -thA -thA -thA -thA -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -"} -(182,1,2) = {" -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -gjq -gjq -gjq -gjq -thA -thA -thA -thA -thA -thA -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -xMq -tBs -iUm -fjz -wMj +suA +iWA +rHZ tBs -vcO -jsC -hwW -qEJ -qEJ +dit +bDH +rYt +nBS +wAv +jvs qEJ qEJ -msf -dtC -smC -iLt -uJt -uJt -uJt -sHh -uJt -uJt +vnW +mHJ +oTA +oTA +syh +oTA +lqj +erV uJt uJt +iJV smC -gyf +oTM +wrX wrX xMq xMq -xMq -thA -thA -thA -thA -thA -thA thA thA thA thA xMq -psb -iDt -iDt -iDt -iDt -iDt +xMq +xMq iDt iDt +rkp iDt iDt +qpH iDt +ppY +alM +dQl ffe ffe ffe ffe -meH -ffe -ffe -ffe -ffe +pQl ffe -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA +iry +jXl +oxO +iKG +iry +qUL +cma +sGL +alM +alM +alM +alM +alM +alM +alM +alM +alM +alM +alM +alM +alM thA thA thA @@ -193191,7 +195714,7 @@ tjo tjo tjo "} -(183,1,2) = {" +(182,1,2) = {" tjo tjo tjo @@ -193234,7 +195757,7 @@ thA thA thA thA -thA +gjq gjq gjq gjq @@ -193290,34 +195813,34 @@ thA thA thA thA -xMq +thA xMq tBs -rRc -rRc -mku -tBs -tBs +iUm +fjz +wMj tBs -fCw -wrX -hzd -sdk -aIe -wBA -uJq -vNs -aLy -hMr -aUO -aUO -tyi -aUO -aUO -aUO -aUO -oHV -que +vcO +jsC +hwW +qEJ +qEJ +qEJ +qEJ +msf +dtC +smC +iLt +uJt +uJt +uJt +sHh +uJt +uJt +uJt +uJt +smC +dIG wrX xMq xMq @@ -193326,34 +195849,34 @@ thA thA thA thA -thA -thA -thA -thA -thA -thA xMq xMq -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -iDt -kAH -mHu -kwM -sdl -qRO -fgx -cAB -wQi -wQi -uIf +lvt +lvt +lvt +rlq +iDt +iDt +uwT +uwT +uwT +uwT +uwT +uwT +loO +gaF +qkg +wQx +ffe +ffe +ffe +ffe +meH +ffe +ffe +ffe +ffe +ffe thA thA thA @@ -193448,7 +195971,7 @@ tjo tjo tjo "} -(184,1,2) = {" +(183,1,2) = {" tjo tjo tjo @@ -193492,9 +196015,9 @@ thA thA thA thA -thA -thA -thA +gjq +gjq +gjq thA thA thA @@ -193550,66 +196073,66 @@ thA xMq xMq tBs -ccV -wMj -lpL +rRc +rRc +mku tBs -tWc tBs -kCx +tBs +vch wrX -umF -kmn +aMA +nbG aIe -lHB -dzy -ewC -iLt -uJt -uJt -uJt -wvl -uJt -uJt -uJt -uJt -oTA -kfl +wBA +uJq +vNs +aLy +hMr +aUO +aUO +tyi +aUO +aUO +aUO +aUO +oHV +que wrX xMq xMq -thA -thA -thA -thA -thA -thA -thA -thA +xMq thA thA thA thA xMq xMq -iDt -xMq -iDt -iDt -xnC -iDt -iDt -iDt -iDt +lvt +lvt +lvt +rlq +lvt +uwT +uwT +qMk +crW +uwT +kgw +tjf +raQ +qTf +wQx +qTf kAH mHu -jlj -tUo -aQn -hFb -vqv -wQi +kwM +sdl +qRO +fgx +cAB wQi +qlf uIf thA thA @@ -193704,43 +196227,43 @@ tjo tjo tjo tjo -"} -(185,1,2) = {" -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo +"} +(184,1,2) = {" +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo tjo tjo thA @@ -193803,35 +196326,35 @@ tjo thA thA thA +thA xMq xMq -xMq -tBs -pWf -ydA -iUm -bEN -pmn tBs +ccV +wMj +lpL tBs +tWc tBs -hrK -icv -wrX +kCx wrX -fIn -jcP -oTA -oTA -epB -oTA -uko -oTA +aMA +nbG +aIe +lmT +dzy +ewC +iLt +uJt +uJt +uJt +wvl +uJt +uJt uJt uJt -rcD oTA -wQC +kfl wrX xMq xMq @@ -193840,33 +196363,33 @@ thA thA thA thA -tjo -tjo -tjo -thA -thA -thA -thA -thA -xMq -xMq xMq -ebX -kNC -uIf -uIf -uIf -uIf -uIf -uIf -laa -qKt +lvt +lvt +lvt +lvt +rjb +efR +uwT +dWL +fbA +lct +oGj +rWm +jWq +lvR +ddm +qvx +aZJ +kAH +mHu +jlj tUo -aQn +cvj hFb vqv -qiN -pkP +wQi +tEs uIf thA thA @@ -193880,15 +196403,15 @@ thA thA thA thA -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo +thA +thA +thA +thA +thA +thA +thA +thA +thA tjo tjo tjo @@ -193962,7 +196485,7 @@ tjo tjo tjo "} -(186,1,2) = {" +(185,1,2) = {" tjo tjo tjo @@ -194064,67 +196587,72 @@ xMq xMq xMq tBs -tUx -nou -iWq +pWf +ydA +iUm +bEN +pmn +tBs tBs -wMj -lpL -wMj tBs -lry -oTA -hlS wrX -uDC -wBA +wrX +wrX +wrX +wyL +jcP oTA -bAF -irQ -bAF -bYm -bMe +oTA +epB +oTA +uko +mEI uJt uJt +tWJ oTA -oTA -tIw +wQC wrX xMq xMq thA thA thA -tjo -tjo -tjo -tjo -tjo -tjo thA thA +rcY +lvt +lvt +lvt +jyy +oyM +lGb +uwT +hkS +waz +jRt +rWm +rWm +uwT +qTf +wiX +qTf +qTf +uIf +pHW +qKt +tUo +cvj +hFb +vqv +qiN +pkP +uIf thA thA thA thA thA -rcY -iDt -uIf -nIt -nIt -nIt -nIt -inh -mWj -aNu -tPG -xEQ -qaL -vqv -brt -brt -uIf thA thA thA @@ -194213,13 +196741,8 @@ tjo tjo tjo tjo -tjo -tjo -tjo -tjo -tjo "} -(187,1,2) = {" +(186,1,2) = {" tjo tjo tjo @@ -194314,113 +196837,81 @@ tjo tjo tjo tjo -tjo -thA -thA -thA -xMq -xMq -tBs -tBs -goB -goB -tBs -tBs -aVi -vGJ -tBs -etH -etH -eyU -wrX -uJI -xBt -iih -sab -nMP -sab -qYh -oTA -avo -tTw -qfj -vnj -wrX -wrX -xMq -xMq -thA -thA -thA -tjo -tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA -rcY -iDt -uIf -stb -pOL -pOL -pOL -opD -mxc -hFb -hFb -qRO -mEL -vqv -fkN -fkN -uIf -thA -thA -thA -thA -thA -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo +thA +thA +thA +xMq +xMq +xMq +tBs +tUx +nou +iWq +tBs +wMj +lpL +wMj +tBs +etH +etH +rBJ +wrX +wIC +wBA +oTA +bAF +irQ +bAF +bYm +rlt +uJt +uJt +bap +oTA +tIw +wrX +xMq +xMq +thA +thA +thA tjo tjo +rcY +lvt +lvt +lvt +opE +ssj +sDB +sDB +sDB +rWm +cZf +rWm +tKY +uIf +uIf +uIf +uIf +uIf +uIf +mWj +aNu +tPG +baN +qaL +vqv +brt +brt +uIf +thA +thA +thA +thA +thA +thA +thA tjo tjo tjo @@ -194475,8 +196966,6 @@ tjo tjo tjo tjo -"} -(188,1,2) = {" tjo tjo tjo @@ -194509,6 +196998,8 @@ tjo tjo tjo tjo +"} +(187,1,2) = {" tjo tjo tjo @@ -194546,6 +197037,38 @@ tjo tjo tjo tjo +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo tjo tjo tjo @@ -194577,67 +197100,67 @@ thA thA xMq xMq -iDt -gFX -xuo -xuo -xuo tBs -vbC -aOz tBs -cPq -etH +goB +goB +tBs +tBs +aVi +vGJ +tBs +cMG etH -wrX -wrX -ffp -wBA oTA -syh -oTA -syh -oTA -wrX +lBN +qOu +xBt +iih +sab +nMP +sab +qYh +rkz +peX +peX +bEn +vnj wrX -hfm -orU wrX xMq xMq thA thA thA -thA -tjo -tjo -tjo tjo tjo -tjo -tjo -thA -thA -thA -thA -thA -thA rcY -iDt -uIf -rmp -pOL -pOL -pOL -opD -jGR -hFb -mzb -rEj -rRl +lvt +lvt +lvt +ctm +iln +xPs +rWm +kZe +rWm +tkX +eLs +xNR +hqH +vAS +igM +ssH +xyI +oRH +wzU +qRO +wuh +qRO +mEL vqv -wZV -hhu +fkN +gge uIf thA thA @@ -194733,7 +197256,7 @@ tjo tjo tjo "} -(189,1,2) = {" +(188,1,2) = {" tjo tjo tjo @@ -194832,33 +197355,33 @@ tjo thA thA thA -thA -scw +xMq +xMq iDt gFX xuo -lvt -lvt +xuo +xuo tBs -goB -goB +vbC +aOz tBs +cPq +etH +qUf wrX wrX -wrX -wrX -wrX -qrT -dtC +ffp +wBA oTA -xeJ +syh oTA -kub -aZL -wrX -wrX +syh +hAE wrX wrX +dgA +mKh wrX xMq xMq @@ -194868,38 +197391,39 @@ thA thA tjo tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA rcY -iDt +lvt +lvt +lvt +lvt +kWk +sDB +sDB +sDB +nPo +rCs +kwn +teQ uIf -jcC +qsa pOL pOL pOL -opD -jGR +gOA +mBY hFb -hFb -qRO +mzb +wuh rRl -vfI -vUY -wsp +vqv +wZV +hhu uIf thA thA thA thA +thA tjo tjo tjo @@ -194988,56 +197512,55 @@ tjo tjo tjo tjo -tjo -"} -(190,1,2) = {" -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo -tjo +"} +(189,1,2) = {" +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo tjo tjo tjo @@ -195090,68 +197613,68 @@ thA thA thA thA -thA +scw iDt -xuo -xuo -lvt -lvt gFX +xuo lvt lvt -lvt -lvt -lvt -lvt +tBs +goB +goB +tBs +wrX +ipg wrX wrX wrX +qrT +dtC +oTA +xeJ +oTA +kub +aZL wrX -daj wrX -crg wrX wrX wrX xMq xMq -xMq -xMq -xMq -xMq thA thA thA thA tjo tjo -tjo -tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -thA -rcY -iDt +gsd +hxJ +lvt +lvt +lvt +rlq +lvt +lvt +uwT +uwT +bvw +oDw +gyO uIf -odm -odm -odm -odm -nqy -jGR -qRO -qRO +xmM +bWH +bWH +bWH +kdg +xeF +hFb +hFb qRO rRl -ndb -bnZ -ulE +vfI +vUY +wsp uIf thA thA @@ -195247,7 +197770,7 @@ tjo tjo tjo "} -(191,1,2) = {" +(190,1,2) = {" tjo tjo tjo @@ -195349,8 +197872,8 @@ thA thA thA iDt -iDt -iDt +xuo +xuo lvt lvt gFX @@ -195358,15 +197881,17 @@ lvt lvt lvt lvt +scw lvt -lvt -lvt -xMq -xMq wrX -vle -bWp -nJZ +wrX +wrX +wrX +nfS +wrX +eoS +wrX +wrX wrX xMq xMq @@ -195378,38 +197903,36 @@ thA thA thA thA -thA -tjo -tjo -tjo tjo tjo tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -rcY -iDt -fcj -fcj -fcj -fcj -roW -roW -bId -gcy -jJG -jJG -plX -qZN -akk -qZN -qZN +syw +wWw +hxJ +lvt +rlq +lvt +lvt +lvt +uwT +sDB +sDB +uwT +uIf +rNK +oPt +oPt +oPt +tcX +xeF +qRO +qRO +qRO +rRl +ndb +bnZ +eSq +uIf thA thA thA @@ -195504,7 +198027,7 @@ tjo tjo tjo "} -(192,1,2) = {" +(191,1,2) = {" tjo tjo tjo @@ -195605,12 +198128,12 @@ thA thA thA thA -thA -scw +iDt +iDt iDt lvt lvt -lvt +gFX lvt lvt lvt @@ -195621,16 +198144,16 @@ lvt xMq xMq wrX -wrX -wrX -wrX +wee +bWp +mCP wrX xMq xMq xMq -thA -thA -thA +xMq +xMq +xMq thA thA thA @@ -195642,30 +198165,30 @@ tjo tjo tjo tjo -tjo -tjo -tjo -thA -thA -thA -thA -thA -rcY +gsd +pJm +dUm +pJm +wWw +pJm +gsd iDt -fCS -iwq -cuB -iCe -lgP -iCe -vcH -gnq -xEF -qSk -oFd -pjc -rzD -nbM +ctC +pJm +opP +opP +opP +opP +lpy +lpy +tqJ +bpY +vfj +vfj +kJF +qZN +akk +qZN qZN thA thA @@ -195761,7 +198284,7 @@ tjo tjo tjo "} -(193,1,2) = {" +(192,1,2) = {" tjo tjo tjo @@ -195863,9 +198386,7 @@ thA thA thA thA -iDt -iDt -iDt +scw iDt lvt lvt @@ -195875,14 +198396,18 @@ lvt lvt lvt lvt +lvt +lvt xMq xMq +wrX +wrX +wrX +wrX +wrX xMq xMq xMq -xMq -xMq -thA thA thA thA @@ -195891,8 +198416,6 @@ thA thA thA thA -thA -tjo tjo tjo tjo @@ -195900,29 +198423,29 @@ tjo tjo tjo tjo -tjo -tjo -thA +iDt +iDt +iDt thA thA thA thA rcY -iDt -fCS -ocd -bqX -rmG -ryX -sqH -qSk -sbd -rEh +lvt +vEc +taC +duY +vgK +rGf +vgK +oBq +gnq +xEF qSk -jwj -qZN -dJy -pNB +oFd +pjc +rzD +nbM qZN thA thA @@ -196018,7 +198541,7 @@ tjo tjo tjo "} -(194,1,2) = {" +(193,1,2) = {" tjo tjo tjo @@ -196120,8 +198643,7 @@ thA thA thA thA -thA -thA +iDt iDt iDt iDt @@ -196131,14 +198653,15 @@ lvt lvt lvt lvt -iDt -iDt -iDt +lvt +lvt +xMq +xMq +xMq xMq xMq xMq xMq -thA thA thA thA @@ -196164,22 +198687,22 @@ thA thA thA thA -rcY -iDt -fCS -iwq -evc -wKh -aEK -wKh -odf +kLd +lLA +vEc +oPu +uTx +ejN +xVB +nMv +qSk sbd -jaY -rhY -uSq -pjc -gmb -hac +rEh +qSk +jwj +qZN +dJy +pNB qZN thA thA @@ -196275,7 +198798,7 @@ tjo tjo tjo "} -(195,1,2) = {" +(194,1,2) = {" tjo tjo tjo @@ -196379,21 +198902,22 @@ thA thA thA thA -thA -thA iDt iDt iDt lvt lvt +lvt +lvt +lvt +lvt iDt iDt iDt -iDt -scw -thA -thA -thA +xMq +xMq +xMq +xMq thA thA thA @@ -196415,28 +198939,27 @@ tjo tjo tjo tjo -tjo -tjo thA thA thA thA -rcY -iDt -bgx -bgx -bgx -bgx -qWI -bgx -bgx -pAc -bgx -uIf -uIf -qZN -qZN -qZN +thA +aDG +lvt +vEc +taC +sGT +qNt +dwj +qNt +uVf +sbd +jaY +rhY +uSq +pjc +gmb +hac qZN thA thA @@ -196532,8 +199055,7 @@ tjo tjo tjo "} -(196,1,2) = {" -tjo +(195,1,2) = {" tjo tjo tjo @@ -196639,13 +199161,16 @@ thA thA thA thA -scw iDt iDt iDt +lvt +lvt +iDt iDt iDt iDt +scw thA thA thA @@ -196672,29 +199197,27 @@ tjo tjo tjo tjo -tjo -tjo -thA -thA -thA -thA -vzD -vzD -vzD -jdd -sHV -rTs -rEU -oHo -gOq -bBb -vzD -thA -thA thA thA thA thA +syw +pJm +bgx +bgx +bgx +bgx +qWI +bgx +bgx +pAc +bgx +uIf +uIf +qZN +qZN +qZN +qZN thA thA thA @@ -196789,8 +199312,7 @@ tjo tjo tjo "} -(197,1,2) = {" -tjo +(196,1,2) = {" tjo tjo tjo @@ -196897,11 +199419,17 @@ thA thA thA thA +scw +iDt +iDt +iDt +iDt +iDt +iDt +thA thA thA thA -scw -scw thA thA thA @@ -196926,25 +199454,20 @@ tjo tjo tjo tjo -tjo -tjo -tjo -tjo -tjo thA thA thA thA +iDt +iDt vzD -yap -qXY -jCl -jCl -jCl -jCl -jCl -jCl -iVY +uAJ +vzD +eYY +aUu +oHo +eVw +rEU vzD thA thA @@ -197046,11 +199569,7 @@ tjo tjo tjo "} -(198,1,2) = {" -tjo -tjo -tjo -tjo +(197,1,2) = {" tjo tjo tjo @@ -197161,6 +199680,11 @@ thA thA thA thA +scw +scw +thA +thA +thA thA thA thA @@ -197168,7 +199692,6 @@ thA thA thA thA -tjo tjo tjo tjo @@ -197193,15 +199716,15 @@ thA thA thA vzD -yap -jCl -bFq -axu -dVq -xEt -jCl +vzD +vzD jCl -iVY +mAn +beu +uZc +vzD +vzD +vzD vzD thA thA @@ -197211,8 +199734,8 @@ thA thA thA thA -tjo -tjo +thA +thA tjo tjo tjo @@ -197303,7 +199826,7 @@ tjo tjo tjo "} -(199,1,2) = {" +(198,1,2) = {" tjo tjo tjo @@ -197421,10 +199944,10 @@ thA thA thA thA -tjo -tjo -tjo -tjo +thA +thA +thA +thA tjo tjo tjo @@ -197450,15 +199973,15 @@ thA thA thA vzD +xLv +gvr +uZc vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD +rEU +uZc +axu +rRN +xLv vzD thA thA @@ -197560,7 +200083,7 @@ tjo tjo tjo "} -(200,1,2) = {" +(199,1,2) = {" tjo tjo tjo @@ -197662,12 +200185,61 @@ tjo tjo tjo tjo +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +thA +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo tjo tjo thA thA thA thA +vzD +jCl +fXQ +vzD +vzD +fXX +vzD +vzD +rRN +jCl +vzD thA thA thA @@ -197676,7 +200248,177 @@ thA thA thA thA -thA +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +"} +(200,1,2) = {" +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo tjo tjo tjo @@ -197715,8 +200457,46 @@ thA thA thA thA +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +tjo +thA +thA thA thA +vzD +puL +phA +vzD +kfS +xYg +ibj +vzD +nQL +eYx +vzD thA thA thA @@ -197963,17 +200743,17 @@ thA thA thA thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA +vzD +nSU +ovB +vzD +kfS +hMA +iFw +vzD +bhI +uZc +vzD thA thA thA @@ -198220,17 +201000,17 @@ thA thA thA thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA -thA +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD thA thA thA @@ -218138,7 +220918,7 @@ wNO wNO wNO wNO -aaX +qzn vbG hHG hHG @@ -218395,7 +221175,7 @@ wNO wNO wNO wNO -fhB +liV vbG hHG hHG @@ -218654,8 +221434,8 @@ wNO bln bln bln -xDQ -xDQ +wDS +wDS bln wNO wNO @@ -218740,11 +221520,11 @@ wNO wNO wNO bln -gnZ +oEB bln hcw lSu -gnZ +oEB bln wNO wNO @@ -218756,11 +221536,11 @@ wNO wNO wNO bln -gnZ +oEB lSu weW bln -gnZ +oEB bln bln bln @@ -218911,8 +221691,8 @@ wNO bln bln bln -rPp -rPp +dTI +dTI bln wNO wNO @@ -219254,11 +222034,11 @@ wNO bln bln lSu -eqn +bln sEB sEB sEB -sjU +lSu bln lSu bln @@ -219270,11 +222050,11 @@ lSu bln lSu bln -eqn +bln sEB sEB sEB -sjU +lSu bln mQb bln @@ -219774,7 +222554,7 @@ tqR sEB fUR lSu -gnZ +oEB jNZ sEB sEB @@ -219782,7 +222562,7 @@ sEB sEB sEB rzO -gnZ +oEB lSu fUR sEB @@ -220281,7 +223061,7 @@ bln uer bln bln -umb +bln fUR mXT cJt @@ -220297,14 +223077,14 @@ sEB sEB qVo lSu -umb +bln fUR mXT cJt iMu fUR oqJ -iWb +bln lSu lSu bln @@ -220312,7 +223092,7 @@ bln bln bln bln -gnZ +oEB bln bln bln @@ -220324,7 +223104,7 @@ aBR aBR aBR aBR -gnZ +oEB aBR aBR aBR @@ -220553,7 +223333,7 @@ sEB sEB sEB sEB -ntx +rhJ lSu fUR fUR @@ -220575,7 +223355,7 @@ bln bln bln lSu -gnZ +oEB aBR aBR aBR @@ -220793,13 +223573,13 @@ bln bln bln bln -gnZ +oEB lSu -fBN +xOk fUR -irX +kod kyg -rwW +uhx uhx uhx uhx @@ -220813,15 +223593,15 @@ sEB uhx uhx uhx -rwW +uhx jHX -fJd +tLm fUR lSu fUR kod gFL -rwW +uhx uhx uhx uhx @@ -221049,7 +223829,7 @@ bln lBD bln lSu -hjU +jNZ kKU kKU rzO @@ -221313,7 +224093,7 @@ fUR fUR ykb wOy -fHb +uhx uhx uhx uhx @@ -221327,7 +224107,7 @@ sEB uhx uhx uhx -fHb +uhx bzg otG uhx @@ -221335,7 +224115,7 @@ lSu uhx ykb wOy -fHb +uhx uhx uhx uhx @@ -221564,16 +224344,16 @@ bln bln miY fUR -fNy +eYK xAk -txd +xaf fUR uRx jdY rsw rin uhx -caX +rcS sEB sEB sEB @@ -221583,7 +224363,7 @@ sEB sEB oMa uhx -tbR +pgt dcG jXm otG @@ -221595,7 +224375,7 @@ jdY rsw phu uhx -dsg +jls bln lSu bln @@ -222076,10 +224856,10 @@ bln bln fsm bln -tIc +miY fUR fUR -mXH +kVA wWS mVE nDJ @@ -222123,7 +224903,7 @@ bln bln bln bln -gnZ +oEB aBR aBR aBR @@ -222344,7 +225124,7 @@ fld ycA lpH uhx -oJH +vCm sEB sEB sEB @@ -222354,7 +225134,7 @@ sEB sEB fiv uhx -jDS +sjz lKc uMm dvO @@ -222366,7 +225146,7 @@ fld ycA lpH uhx -hgx +pSK bln lSu bln @@ -222590,15 +225370,15 @@ bln bln bln bln -hWW +miY ydI ydI -qKJ +nWM kHl mVE nDJ wOy -rwW +uhx uhx uhx uhx @@ -222612,7 +225392,7 @@ sEB uhx uhx uhx -fHb +uhx bzg dvO uhx @@ -222620,7 +225400,7 @@ lSu uhx ovm wOy -fHb +uhx uhx uhx uhx @@ -222842,9 +225622,9 @@ bln bln lBD bln +lSu bln -bln -hjU +jNZ kKU kKU sEB @@ -223106,13 +225886,13 @@ hEI hEI biY biY -kCY +rkk bLs xRI ydI ior wOy -fHb +uhx uhx uhx uhx @@ -223126,7 +225906,7 @@ sEB uhx uhx uhx -rwW +uhx bzg oVX fUR @@ -223134,7 +225914,7 @@ lSu fUR tvm wOy -rwW +uhx uhx uhx uhx @@ -223355,11 +226135,11 @@ bln bln bln bln -bln +lSu stJ bln lJO -cyV +dxI muv qVN biY @@ -223380,8 +226160,8 @@ prs sEB sEB sEB -pJb -waT +fiv +lSu fUR fUR bAo @@ -223616,17 +226396,17 @@ bln bln lJO lJO -jEB +ldJ nOx cwe dIx laB laB lJO -iku +lXA nDJ wOy -jBK +pGy fUR rzO lSu @@ -223653,19 +226433,19 @@ fUR bln uer bln -gnZ +oEB lSu bln bln bln lSu -gnZ +oEB bln bln bln bln bln -gnZ +oEB aBR aBR aBR @@ -223908,7 +226688,7 @@ wOy eyk fUR bln -iWb +bln bln bln bln @@ -224130,43 +226910,43 @@ uer bln lJO kQg -ylt +ofc ylV -gfY +gjI lJO lJO lJO lJO fUR -nmA -oor +lzU +wwi fUR fUR fUR -shT -kHq +wUf +iQd oOP ccS ccS ccS lVY -oHY +hHl xuW fUR fUR fUR -gjN -nuM +ePV +eHX fUR fUR fUR -lSF -tku +drb +tuD fUR fUR fUR fUR -stJ +rNn bln bln bln @@ -224382,7 +227162,7 @@ bln bln bln bln -bln +lSu bln bln lJO @@ -224394,24 +227174,24 @@ lJO fjF qhO lJO -lIT +iVv qpt fBQ -tHB +syL vmC syL dwb fsv cuc hgr -qsh +fbF hgr xFs fsv cmV bXx aui -qTj +bXx btW jJd eyj @@ -224419,9 +227199,9 @@ lGL bXx oMq tEc -uUu -sEg -iVi +iGd +mKJ +vKD tKI tKI tKI @@ -224651,11 +227431,11 @@ ndz hjI xmo vmx -uBL +eTe nvI nvI oTc -cQa +nvI nvI fwM fsv @@ -224667,17 +227447,17 @@ xFs fsv dpU swK -iCw +swK ubx swK swK swK wfF -rUv +swK nqD thX peM -iES +ddd mKa ldw bCQ @@ -224926,12 +227706,12 @@ jLM fUR fUR fUR -koQ -koQ +ort +ort fUR fUR fUR -krW +mYA nEA nwT nwT @@ -224940,7 +227720,7 @@ nwT tKI pgE tKI -iWb +bln lBD bln mQb @@ -224984,11 +227764,11 @@ bln bln bln bln -bln -bln -bln -bln -bln +wNO +wNO +wNO +wNO +wNO wNO wNO wNO @@ -225153,8 +227933,8 @@ bln bln stJ bln -bln -bln +lSu +lSu cyH hjI nbj @@ -225191,14 +227971,14 @@ fUR teE bKA nwT -hAo +wvJ tzM -vgj +aUM tKI bCQ tKI tKI -bln +tMa mQb bln bln @@ -225245,7 +228025,7 @@ bln bln bln bln -bln +wNO wNO wNO wNO @@ -225410,7 +228190,7 @@ lBD bln bln uer -bln +lSu bln lJO lJO @@ -225488,12 +228268,12 @@ aBR bln bln bln +mQb bln bln bln -bln -bln -bln +lSu +lSu bln bln bln @@ -225688,7 +228468,7 @@ rMu kHP cuc mVE -nAH +ich nAH nAH mVE @@ -225696,13 +228476,13 @@ xFs jLM qHO fUR -juu +nyT kBU xgX juu gNL fUR -qAB +usU cTh iJl ooa @@ -225743,17 +228523,17 @@ aBR bln bln bln +mQb bln +mQb bln +hAM +lej +eRE +qQk +tTO bln -bln -tCr -tCr -tCr -tCr -tCr -bln -bln +mQb bln bln bln @@ -225908,6 +228688,9 @@ bln bln bln bln +lSu +mQb +mQb bln bln bln @@ -225915,15 +228698,12 @@ bln bln bln bln +mQb +mQb bln bln bln -bln -bln -bln -bln -bln -bln +lSu bln lJO cKB @@ -226001,18 +228781,18 @@ bln bln bln bln +mQb +uer bln +bvb +tMa bln bln -tCr -bln -bln -bln -tCr -bln -bln -bln -bln +bvb +tMa +uer +mQb +mQb bln bln bln @@ -226161,27 +228941,27 @@ ozo bln bln bln -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -mVm -tCr -tCr -bln -bln -uer -bln -bln -bln +hPv +kdS +kdS +eRE +wvw +kdS +kdS +eRE +kdS +kdS +kdS +eRE +qQk +kdS +kdS +kdS +kdS +kdS +eRE +gSd +kdS lJO gwM xdU @@ -226210,11 +228990,11 @@ xFs jLM iYy tma -agG +juu mxQ pXU -pSd -jsh +kSA +vUI fUR tkc nsr @@ -226256,21 +229036,21 @@ bln bln bln bln +mQb +mQb bln bln -bln -bln -bln -tCr +lSu +chn bln cnx bln -tCr -bln -bln +chn bln bln +lSu bln +mQb bln bln bln @@ -226417,8 +229197,8 @@ bln bln bln bln -bln -tCr +mQb +fPc bln bln bln @@ -226427,20 +229207,20 @@ bln bln bln muK -bln +mQb bln bln hty bln -tCr -bln +mQb bln +uer mQb bln bln bln lJO -keT +eXa sHO hjI lJO @@ -226459,7 +229239,7 @@ lvW uTI cuc mVE -nAH +ich nAH nAH mVE @@ -226476,14 +229256,14 @@ nwT goI nwT nwT -aLO +fZK wRM iox tKI bCQ tKI tKI -bln +tMa stJ fsm bln @@ -226511,24 +229291,24 @@ aBR aBR bln bln -bln -tCr -tCr -tCr -tCr -tCr -bln -bln +mQb +hAM +lej +ujK +vTh +ujK +ujK +obe bln tmR -bln -bln -bln -tCr -tCr -mVm -tCr -tCr +mQb +obe +ujK +lej +vTh +qQk +ujK +hAM bln bln wNO @@ -226674,8 +229454,8 @@ bln bln bln bln -bln -tCr +mQb +fPc bln uei tmR @@ -226684,16 +229464,16 @@ bln uei tmR uei -bln +mQb uei tmR uei bln -tCr -bln +mQb bln bln bln +lSu mQb bln lJO @@ -226722,12 +229502,12 @@ mVE mVE xFs pLn -aDy +dpl tKI -ljK +wKu tXs ljK -rUa +aRe tKI hbt cTD @@ -226739,7 +229519,7 @@ tKI tKI kPq tKI -qjC +bln bln bln bln @@ -226769,23 +229549,23 @@ aBR bln bln bln -tCr -bln +vap bln +ntK bln bln bln bln bln tmR +mQb bln bln bln bln bln -bln -bln -tCr +lSu +fPc bln bln wNO @@ -226930,14 +229710,14 @@ wNO bln bln bln +uer bln -bln -tCr -bln +bvb +tMa uei tmR uei -bln +mQb uei tmR uei @@ -226947,7 +229727,7 @@ tmR uei bln bln -bln +lSu bln bln bln @@ -226981,14 +229761,14 @@ aWN pLn qFs tKI -rvW +mqa xqj vsT gXr tKI -rVt +gec ihc -bod +sJI tKI hsQ bCQ @@ -227026,8 +229806,8 @@ aBR bln bln bln -tCr -bln +fPc +mQb xxB xxB xxB @@ -227041,9 +229821,9 @@ xxB xxB xxB xxB -bln -tCr -bln +lSu +fPc +mQb bln wNO wNO @@ -227186,11 +229966,11 @@ wNO wNO bln bln +mQb bln bln -bln -tCr -bln +ebW +mQb uei tmR uei @@ -227203,10 +229983,10 @@ uei tmR uei bln -bln -bln +lSu +lSu mQb -bln +ntK bln uer bln @@ -227235,7 +230015,7 @@ npq ecU gkZ tlO -kyc +udA tKI tKI kJO @@ -227244,7 +230024,7 @@ kJO tKI tKI stP -dVX +vwi oLo tKI iUW @@ -227283,8 +230063,8 @@ aBR bln bln bln -tCr -bln +bvb +uer tmR tmR tmR @@ -227299,7 +230079,7 @@ tmR tmR tmR bln -tCr +bvb bln bln wNO @@ -227446,7 +230226,7 @@ bln bln bln bln -bln +fPc bln uei tmR @@ -227460,11 +230240,11 @@ uei tmR uei bln +lSu bln bln bln bln -sxQ bln bln miY @@ -227482,7 +230262,7 @@ esv lCb ddZ eUA -nhS +aoc oCO oCO oCO @@ -227494,11 +230274,11 @@ tKI tKI tKI tKI -jXC +hZo wBb xvk wBb -kQV +uZC tKI tKI tKI @@ -227510,15 +230290,15 @@ tKI lSu bln bln -gnZ +oEB bln bln bln -gnZ +oEB bln bln bln -gnZ +oEB bln bln bln @@ -227538,9 +230318,9 @@ aBR aBR aBR bln +mQb bln -bln -tCr +fPc bln xxB xxB @@ -227556,7 +230336,7 @@ xxB xxB xxB bln -tCr +fPc bln bln wNO @@ -227700,10 +230480,10 @@ wNO wNO bln bln -tCr -tCr -tCr -bln +hAM +kdS +kdS +obe bln uei tmR @@ -227740,7 +230520,7 @@ eUi eBB tNd nor -qiT +sst cgw mZu hjv @@ -227751,13 +230531,13 @@ tKI dat kDv tKI -kEs +jEE wBb fgo aSI nEq tKI -kCv +ybY gvp nSr tKI @@ -227797,13 +230577,13 @@ aBR bln bln bln -tCr -bln -bln +uap bln bln bln bln +mQb +mQb bln sEB bln @@ -227813,8 +230593,8 @@ bln bln bln bln -mVm -bln +fPc +mQb bln wNO wNO @@ -227957,14 +230737,14 @@ wNO wNO bln bln -tCr +fPc bln bln bln bln bln tmR -bln +mQb bln bln tmR @@ -227976,8 +230756,8 @@ bln vsI eGr eGr -oLO -nhb +eGr +hNJ sxF kjw biY @@ -227992,7 +230772,7 @@ bln efI efI lJO -jaS +mLd hBG pEs aFH @@ -228019,7 +230799,7 @@ edN jLf tlm jLf -dpZ +fsj tKI htd bln @@ -228053,8 +230833,8 @@ bln bln bln bln -bln -tCr +lSu +dzZ bln xxB xxB @@ -228070,7 +230850,7 @@ xxB xxB xxB bln -tCr +fPc bln bln wNO @@ -228213,11 +230993,11 @@ wNO wNO wNO bln -bln -tCr -bln -fbh -tZf +mQb +yfW +tMa +cnx +tmR tmR sEB sEB @@ -228252,7 +231032,7 @@ lJO wDf sAR sAR -cBD +lCn kPy dQI pPT @@ -228311,8 +231091,8 @@ bln ozo bln bln -tCr -bln +bvb +tMa tmR tmR tmR @@ -228327,8 +231107,8 @@ tmR tmR tmR bln -tCr -bln +bvb +tMa bln wNO wNO @@ -228470,10 +231250,10 @@ wNO wNO wNO bln +mQb +vap bln -tCr -bln -bln +mQb bln bln bln @@ -228484,18 +231264,18 @@ bln tmR bln bln -bln +mQb tmR -bln +mQb sEB eGr eGr -gWy +eGr pVN bvd eAh -aiT -hjI +biY +bhQ hjI hjI eUf @@ -228508,9 +231288,9 @@ lJO lJO mCT mut -lGo -xhg -pGy +kby +oLm +rbE wCL tTc wtr @@ -228546,7 +231326,7 @@ lSu lSu lSu bln -gnZ +oEB bln bln bln @@ -228567,9 +231347,9 @@ bln bln bln bln +mQb +fPc bln -tCr -muK xxB xxB xxB @@ -228584,7 +231364,7 @@ xxB xxB xxB bln -tCr +fPc bln bln wNO @@ -228728,10 +231508,10 @@ wNO wNO bln bln -tCr -mVm -tCr -bln +fYT +kdS +kdS +hPv bln uei tmR @@ -228779,7 +231559,7 @@ qnj omg hzL kRc -oWu +lNV paZ tOw iKX @@ -228823,9 +231603,9 @@ bln bln bln bln -bln -bln -mVm +mQb +mQb +fPc bln bln bln @@ -228834,15 +231614,15 @@ bln bln bln sEB +mQb bln bln bln +mQb bln bln -bln -bln -tCr -bln +ebW +mQb bln wNO wNO @@ -228988,12 +231768,12 @@ bln bln bln bln -bln -bln +fPc +mQb uei tmR uei -bln +mQb uei tmR uei @@ -229002,7 +231782,7 @@ uei tmR uei bln -bln +lSu bln bln miY @@ -229033,7 +231813,7 @@ gpp lsi xhx qnj -nct +ddQ gAB ykG ykG @@ -229047,7 +231827,7 @@ kEM vkW gak tKI -oKu +dBJ tKI nMj bln @@ -229080,9 +231860,9 @@ bln bln bln bln +mQb bln -bln -tCr +fPc bln xxB xxB @@ -229098,8 +231878,8 @@ xxB xxB xxB bln -tCr -bln +chn +mQb bln wNO wNO @@ -229242,11 +232022,11 @@ wNO wNO bln bln +mQb +uer bln -bln -bln -tCr -bln +oHg +mQb uei tmR uei @@ -229259,7 +232039,7 @@ uei tmR uei bln -bln +lSu bln bln miY @@ -229336,10 +232116,10 @@ bln bln uGo bln +mQb +mQb bln -bln -bln -tCr +bvb bln tmR tmR @@ -229355,7 +232135,7 @@ tmR tmR tmR bln -tCr +bvb bln bln wNO @@ -229499,11 +232279,11 @@ wNO wNO bln bln +mQb +mQb bln -bln -bln -tCr -bln +yfW +tMa uei tmR uei @@ -229516,7 +232296,7 @@ uei tmR uei bln -bln +lSu lJO hEI lJO @@ -229547,7 +232327,7 @@ gpp bAB xEE qnj -hlW +aOx ykG ykG rCj @@ -229566,15 +232346,15 @@ tKI mZf ooL maT -wSM -oMd +nNZ +oSK maT -oMd -bNo +vEG +rEr maT sEB bln -gnZ +oEB bln bln bln @@ -229593,10 +232373,10 @@ bln bln cWX bln +mQb +lSu bln -bln -bln -tCr +fPc bln xxB xxB @@ -229612,7 +232392,7 @@ xxB xxB xxB bln -tCr +fPc bln bln wNO @@ -229756,10 +232536,10 @@ wNO wNO bln bln -bln -bln -bln -tCr +uer +mQb +lSu +wOq bln uei tmR @@ -229773,7 +232553,7 @@ uei tmR uei bln -tCr +bln lJO khW iSn @@ -229823,11 +232603,11 @@ tKI maT maT maT -sym +xmk bde -jIE -bde -ksf +kXr +aRx +kjd maT miY xeg @@ -229852,12 +232632,12 @@ cWX bln bln bln -bln -tCr -bln -bln +lSu +pMM bln bln +mQb +mQb bln bln bln @@ -229869,7 +232649,7 @@ bln bln bln bln -tCr +fPc bln bln wNO @@ -230013,10 +232793,11 @@ wNO wNO bln bln +lSu bln bln +vap bln -tCr bln bln bln @@ -230030,7 +232811,6 @@ bln bln bln bln -tCr lJO gDZ gDZ @@ -230069,7 +232849,7 @@ neq muy muy gRp -sbv +kjh tKI plg jdW @@ -230080,16 +232860,16 @@ tKI cYo tEL maT -wSM -hFU +nNZ +jME kXr -hFU -bNo +hTk +rEr maT mZf kKU kKU -dPX +vJv bln bln bln @@ -230107,26 +232887,26 @@ bln bln cWX bln +lSu bln -bln -bln -tCr -tCr -tCr -bln -bln -bln +mQb +fPc +mQb +lSu +lSu +uer +nAx bln sEB tmR sEB -bln -bln -bln -bln -tCr -tCr -tCr +mQb +cIf +gSd +ahG +ujK +ujK +obe bln bln wNO @@ -230273,21 +233053,21 @@ bln bln bln bln -tCr -tCr -tCr -tCr -tCj -mVm -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr +obe +kdS +kdS +eRE +xAs +kdS +kdS +eRE +wvw +kdS +qQk +eRE +kdS +hBf +kdS lJO gLZ cXp @@ -230339,7 +233119,7 @@ kLZ jPc xKj hyY -pdR +xDu huI gbv maT @@ -230347,7 +233127,7 @@ kXr maT maT kXr -bln +htd bln bln bln @@ -230364,21 +233144,21 @@ bln bln cWX bln +lSu bln +mQb +fPc bln +mQb bln -bln -bln -bln -bln -bln +lSu bln bln jlJ jWl jlJ -bln -bln +aMZ +vap bln bln bln @@ -230528,18 +233308,18 @@ wNO bln bln bln +lSu bln bln bln bln -bln -bln -vbG -bln +mQb +fPc bln bln bln bln +lSu bln bln bln @@ -230564,7 +233344,7 @@ lJO qzs jnV lJO -sHy +tdY gHS iMT hqx @@ -230600,7 +233380,7 @@ kVl czv cCW wyB -gTb +mSP wyB tEj maT @@ -230618,27 +233398,27 @@ bln bln bln bln -riT -uqG -bln +xYt +atB bln bln bln +mQb pRj pRj pRj pRj pRj -pRj +mNY bln jlJ -smj +hTq jlJ bln +chn bln -bln -bln -bln +uer +mQb bln bln bln @@ -230787,20 +233567,20 @@ bln bln bln bln +lSu +lSu bln bln -bln -bln -vbG +fPc bln bln uer bln mQb bln -bln +ntK stJ -bln +lSu bln bln bln @@ -230859,8 +233639,8 @@ huI huI huI uqg -ndK -kXr +pUi +maT bln bln bln @@ -230877,24 +233657,24 @@ ptf pRj pRj uqG -sEB -sEB -sEB +kKU +kKU +rzO bln pRj -dMO -vZp -dcQ +emx +kpn +awt wAW -pRj +mNY nxm -ifA +jlJ rbb -gFx jlJ +jlJ +obe bln -bln -bln +mQb bln bln bln @@ -231040,15 +233820,15 @@ wNO wNO wNO bln -bln +mQb bln ozo bln bln +lSu +mQb bln -bln -bln -vbG +uap bln fsm lBD @@ -231058,7 +233838,7 @@ bln bln bln bln -bln +lSu bln bln lJO @@ -231105,7 +233885,7 @@ hbY tKI tKI tKI -ghl +kUF ajw ajw otd @@ -231116,8 +233896,8 @@ otd otd uqn kLZ -huI -maT +jcJ +kXr bln bln bln @@ -231143,15 +233923,15 @@ rej iaT daS swS -cRX +mNY mNY smj smj iCX glh bln -bln -bln +mQb +mQb bln bln bln @@ -231297,16 +234077,16 @@ wNO wNO wNO bln +mQb bln +ntK bln +lSu +lSu +mQb bln -bln -bln -bln -bln -bln -vbG -bln +ebW +lSu bln bln bln @@ -231346,7 +234126,7 @@ hMg cke kTC qnj -qwn +dei wpC vZg gta @@ -231380,7 +234160,7 @@ qjQ qjQ qjQ qjQ -rLo +jDl qjQ bln bln @@ -231390,7 +234170,7 @@ qPw csE hRw pRj -vZW +eDJ ptf daS ptf @@ -231402,12 +234182,12 @@ mRU qAI snw mNY -kkp +qDS ooU ipE glh -bln -bln +mQb +uer bln bln bln @@ -231554,20 +234334,20 @@ wNO wNO wNO bln +uer bln bln +lSu +lSu bln +uer bln +fPc bln +lSu bln bln -bln -vbG -bln -bln -bln -bln -bln +mQb stJ bln bln @@ -231588,7 +234368,7 @@ hEI lJO lJO dDV -sFN +oaR lJO lJO lJO @@ -231645,26 +234425,26 @@ ptf hZQ cZN ybu -jYL +qrr pRj ycS -vGi +pRj lDr -sup +pRj ptf pRj kqK dnM swS mXN -vUz +gDv mNY qIf fFx czR glh -bln -bln +mQb +mQb bln bln bln @@ -231812,19 +234592,19 @@ wNO wNO bln bln +hMQ +mQb bln bln bln +hMQ bln -bln -bln -bln -vbG +fPc bln bln stJ bln -bln +uer bln bln bln @@ -231881,7 +234661,7 @@ ajw mmi wiz mmi -vmn +sln wam wam wam @@ -231893,9 +234673,9 @@ ajw tAS hoD hoD -gAY +hoD wjZ -sJn +get qjQ bln ptf @@ -231904,24 +234684,24 @@ sUS ybu vUW pRj -nkI -daS +mKA +yiR daS -daS -vYd +iJh +wRu pRj pRj kuR -bGf +kCC lDh pRj mNY -bCc +mNY pyI mNY glh -bln -bln +mQb +uer bln bln bln @@ -232069,15 +234849,15 @@ aBR tGr tGr tGr -mSQ -atc -atc -atc -atc -pLe +umh +jZo +jZo +jZo +jZo +umh tGr -tCj -sDl +xAs +jbe bln bln bln @@ -232104,14 +234884,14 @@ hEI hjI wPr oSy -sDl +pLg ybQ ybQ ybQ ybQ ybQ ybQ -sDl +vsF jOt ozw eRw @@ -232119,7 +234899,7 @@ gpp gJz nQv nDY -tEu +tzP tKI wuA nAr @@ -232131,7 +234911,7 @@ nAr nAr wNR tKI -ssg +jnp ajw ajw ajw @@ -232361,14 +235141,14 @@ hEI hjI wPr oSy -sSA +sDl ybQ gGZ lye ebL edn ybQ -sDl +sCK jOt ozw aJA @@ -232395,7 +235175,7 @@ vlN ajw wiz ajw -vmn +nNu wam wam wam @@ -232418,7 +235198,7 @@ ace ybu thW pRj -uhX +ntO dnM nzp wEW @@ -232624,22 +235404,22 @@ oPI khR khR eRh -uiM +ybQ jOt jOt ozw aJA xSL gJz -uXy +eUx imO kGF tKI wBb tKI -skw -ipF -qpp +xua +llR +fOs dsf xjF xem @@ -232666,12 +235446,12 @@ jAq qxb nrm hoD -rea +qIP qjQ bln pRj vSE -eGX +mqI qOl ujj pRj @@ -232679,7 +235459,7 @@ dOH hjH qTS dNC -xBX +iRJ pRj wls qxY @@ -232688,11 +235468,11 @@ cjL gfC pRj daS -viE +mxg pRj pRj pRj -vsI +oMa bln bln bln @@ -232882,7 +235662,7 @@ bnz jxq sOz vGI -ptk +oRZ lEE idO aJA @@ -232892,9 +235672,9 @@ tKI tKI tKI tKI -qRR +blY tKI -aes +wrP alT taf kGQ @@ -232932,11 +235712,11 @@ kYF jOJ qzM pRj -dOH +qFC uIx osI osI -hjH +xbq pRj nDy hUI @@ -232945,11 +235725,11 @@ nVR iWZ bse xHe -pBB +oBZ lPE daS nNr -sEB +qVo bln bln bln @@ -233099,7 +235879,7 @@ tGr bln bln bln -gnZ +oEB bln tGr tGr @@ -233151,7 +235931,7 @@ pdf pdf wBb tKI -pPE +aiQ alT dcs kin @@ -233187,13 +235967,13 @@ pRj csE kSD csE -nOk +uwd pRj -xOl +poO hjH daS pXv -kNZ +kEC pRj bxV uKP @@ -233202,11 +235982,11 @@ hUI lLm mLa qSY +daS pRj +igG pRj -pRj -pRj -vsI +qVo bln bln bln @@ -233389,14 +236169,14 @@ hEI hjI xJJ oSy -sSA +sDl ybQ egF jYV jDW hPf ybQ -sDl +eaG jOt ozw ons @@ -233409,11 +236189,11 @@ tKI wBb bcx qiK -tda +rrB lit qiP -noF -dqV +fgc +obQ nxD rbC kXr @@ -233441,7 +236221,7 @@ qjQ bln bln pRj -rKQ +wVr drs pRj pRj @@ -233460,10 +236240,10 @@ pRj pRj wFg pRj -bln -bln -bln -bln +pRj +pRj +pRj +eHC bln bln bln @@ -233646,21 +236426,21 @@ hEI hjI wPr oSy -sDl +pLg ybQ ybQ ybQ ybQ ybQ ybQ -sDl +vsF jOt ozw ons gpp lGz pMv -qaD +bso dBB tKI wBb @@ -233695,15 +236475,15 @@ qdC jBf dhY qjQ -sEB -sEB +oot +oot pRj daS tut qai qoK pXv -exy +pXv pXv pXv pXv @@ -233718,9 +236498,9 @@ ptf xHe ptf bln -bln -bln -bln +uer +uer +mQb bln bln bln @@ -233930,7 +236710,7 @@ tKI dMv pdf tKI -drG +iUM ssc cXl wRx @@ -233976,8 +236756,8 @@ xHe ptf bln bln -bln -bln +mQb +mQb bln bln bln @@ -234124,7 +236904,7 @@ tGr miY bln bln -gnZ +oEB mZf bln lSu @@ -234158,7 +236938,7 @@ lJO lJO lJO lJO -mzy +kcZ biY biY sDl @@ -234419,19 +237199,19 @@ sTj hos biY sDl -uqV +sDl sDl hDU -ksU -cFX -fHY +dAQ +fVU +iYe hDU gpp aJA gpp fUr pMv -cOb +eAQ pHy tKI tKI @@ -234446,8 +237226,8 @@ rCC gLN rCC eVl -wBF -uDr +rCC +dXh cHb cHb mOA @@ -234480,7 +237260,7 @@ bln bln bln bln -sEB +jNZ nME bln bln @@ -234679,7 +237459,7 @@ hDU hDU hDU hDU -heG +lyy aJm iFj hDU @@ -234723,8 +237503,8 @@ hoD abz qjQ qjQ -sEB -sEB +oot +oot pRj uWW daS @@ -234736,9 +237516,9 @@ bln bln bln bln -sEB +jNZ xbV -sEB +qVo bln bln bln @@ -234748,7 +237528,7 @@ ptf bln bln bln -bln +mQb bln bln bln @@ -234932,10 +237712,10 @@ hEI qGU biY biY -kqx +mSY mQh xKb -vMc +njD xMW apI tOi @@ -234973,7 +237753,7 @@ nZh lNG tue qjQ -hxE +jBf nvx lis aud @@ -234995,7 +237775,7 @@ bln bln fkF cPp -sEB +rwt bln bln bln @@ -235003,11 +237783,11 @@ ptf xHe ptf bln +ntK bln -bln -bln -bln -bln +mQb +uer +mQb bln bln bln @@ -235222,7 +238002,7 @@ vlL qxQ eBe hnC -qmi +cah aSh ycQ nZh @@ -235251,7 +238031,7 @@ bln bln bln bln -sEB +lbc bln bln bln @@ -235262,7 +238042,7 @@ ptf bln bln bln -sEB +mQb bln bln bln @@ -235284,8 +238064,8 @@ bln bln bln bln -tCr -tCr +bln +bln bln bln bln @@ -235462,7 +238242,7 @@ wvK aKs tgH gst -vSw +iXM vWW vWW vWW @@ -235508,7 +238288,7 @@ bln bln bln bln -sEB +tIC bln bln bln @@ -235530,20 +238310,20 @@ eoL ptf bln bln -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr +mQb +bln +bln +bln +bln +bln +mQb +bln +bln +bln +bln bln bln bln -tCr -tCr bln bln bln @@ -235696,7 +238476,7 @@ bln bln lJO oXf -rlX +xSx fdF lJO vqS @@ -235719,15 +238499,15 @@ kFu sJr vBu gst -iFh +sbY xAy xAy tge ozH bZg gst -tZR -nsq +hYG +jYG dOw dOw yhe @@ -235787,20 +238567,20 @@ nkO ptf bln bln -tCr -bln -bln +uer +mQb +mQb bln bln bln bln +uer bln -tCr bln +mQb bln bln bln -tCr bln bln bln @@ -235922,7 +238702,7 @@ tGr tGr bln jNZ -gnZ +oEB jNZ bln ntK @@ -235952,7 +238732,7 @@ bln bln dvY lJO -eKX +nLE erl oDH fVm @@ -235960,10 +238740,10 @@ ndz oIB biY biY -hhN +gNC iLi oJT -spV +wwO gad gAk tMI @@ -235981,10 +238761,10 @@ sto lpj gst gst -oiK +npP bLW xjP -sXf +qcI gxO dKK xmN @@ -236001,7 +238781,7 @@ iOS mYs fxn pRj -kCn +mgo daS pRj iaT @@ -236038,24 +238818,24 @@ lDF wSU ovy pRj -bHZ +qYR qvk tXb ptf bln bln -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr bln bln +mQb bln +lSu +bln +mQb +mQb +bln +bln +mQb +mQb bln bln bln @@ -236225,9 +239005,9 @@ biY biY biY biY -wkC -lnE -wkC +ede +iKj +bPp bXm lnc lnc @@ -236248,11 +239028,11 @@ wEh rCC sOn aBh -tNY -dqX +eaE +wkN aBh sOn -rzm +sOn tue tue tue @@ -236289,7 +239069,7 @@ suR pRj pRj ick -pRj +ivm pRj pRj mNY @@ -236299,21 +239079,21 @@ mNY mNY mNY mNY +hPv +lej +hBf +eRE +ujK +ujK +eRE +ujK +ujK +eRE +ujK +hPv bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln +uer +mQb bln bln bln @@ -236459,14 +239239,14 @@ xAs xAs xAs xAs -tCj -wPN +xAs +hIv wPN wPN -aeV lJO lJO -vNK +lJO +otM hDc wGG psR @@ -236497,8 +239277,8 @@ bep dnq gOy dnq -sIg -pTB +srw +yld pTB pTB pTB @@ -236509,8 +239289,8 @@ dnq dyN rGl hJE -kzC -wLU +vYA +hzV rGl vTo oMO @@ -236520,7 +239300,7 @@ ptd obj obj obj -iAt +obj obj obj obj @@ -236554,24 +239334,24 @@ gBv tjH aUK gGs -qAq +bbU aUj aUj +nce +mQb +mQb bln +lSu bln +mQb +mQb bln bln -bln -bln -bln -bln -bln -bln -bln -tCr -tCr -tCr -bln +yfW +fCR +ujK +ujK +dMo bln bln bln @@ -236721,15 +239501,15 @@ sDl sDl sDl hEI -iwj -kEB +sop +bJX fFb rtq lJO lJO lJO lJO -baE +htJ apX hjI hdh @@ -236754,7 +239534,7 @@ cKq cKq qsy iwz -oTg +dLQ iwz xwC jwt @@ -236767,7 +239547,7 @@ rQn iwz iwz iwz -eYP +uag iwz nQO bmv @@ -236808,7 +239588,7 @@ mXa qCl mNY aUj -uNu +vWy kLc oFY sIN @@ -236824,11 +239604,11 @@ pXY vyU uOE bln +chb bln -tCr -bln -tCr +ntK bln +chb bln bln bln @@ -236978,9 +239758,9 @@ sDl sDl sDl hEI -giR -rkd -rmU +nFG +sjp +rqk ure lJO bZx @@ -237011,8 +239791,8 @@ xIS mgj mgj mgj -mZS -mgV +srw +jOy ljp gHe sni @@ -237020,11 +239800,11 @@ bep qrJ uLC xzh -dnq +aNE qcu bDR wXW -mpy +cYj bep ylU dnq @@ -237045,7 +239825,7 @@ pRj rAO fhW mNY -vjx +anz mDf nLb kNp @@ -237062,8 +239842,8 @@ kCn kCn kCn kCn -xtX -azC +ioQ +jMn pZG toq uDE @@ -237071,7 +239851,7 @@ xFB rkc gxR uaG -kAK +iLY iLY iLY bxa @@ -237081,12 +239861,12 @@ pXY pXY fcP bln +chb bln -tCr -bln -tCr -bln +mQb bln +bvb +jHb ozo bln bln @@ -237221,7 +240001,7 @@ ooL tDg tDg oFI -gnZ +oEB sgW akQ lSu @@ -237240,15 +240020,15 @@ lJO lJO lJO lJO -wrN +bZx bZx bWn -huM +seL nUr ibk xwr xgg -aFx +xId whQ kka fmm @@ -237275,14 +240055,14 @@ gfb pYB gfb gfb -nqU +vtg rcE rcE rcE hVc jII jII -dnq +rLl ylU dnq jII @@ -237293,7 +240073,7 @@ jqT hcL hcL bln -bln +mQb bln bln bln @@ -237334,15 +240114,15 @@ iLY lqE pXY pXY -vyU -vyU +pXY +pXY uOE bln +chb bln -tCr -bln -tCr +uer bln +chb bln bln bln @@ -237481,10 +240261,10 @@ kyy cJi abb oFI -gnZ +oEB abb oFI -gnZ +oEB abb oFI rzG @@ -237496,7 +240276,7 @@ bZx bZx bZx bZx -snv +mgs kQi oWk bWn @@ -237517,11 +240297,11 @@ pAZ ucn tLi pAZ -xyl -dnq -qjm +tVd +uLC +jCT dxK -hbp +xax oyp phf sEl @@ -237532,9 +240312,9 @@ odN iZq dpH gfb -ydT +mYG iIA -fSC +fGQ iIA cvg qQb @@ -237543,15 +240323,15 @@ okb ylU jwl jII -bln +kps hcL bXF kcm mGm hcL bln -bln -bln +uer +mQb bln ptf ptf @@ -237567,12 +240347,12 @@ fxR aQR csT csT -cQH +csT mNY kCn mNY dUn -eEm +thC cpH kbJ kbJ @@ -237583,23 +240363,23 @@ epY vWe kIt kMY -wRc +omT lha -kAK +iLY iLY iLY bxa pXY pXY -vyU -vyU +pXY +pXY xLS bln +chb bln -tCr -bln -tCr +lSu bln +chb bln bln bln @@ -237753,11 +240533,11 @@ bZx bZx bZx bZx -snv +gYm krQ skZ bWn -eOK +nch xMX xIz bIc @@ -237774,11 +240554,11 @@ pAZ wtj lBD bcN -bQV -hIS -bfl +qzy +adP +adP dxK -wvw +wzk wzk wzk wzk @@ -237835,14 +240615,14 @@ kbJ kbJ wkw yaL -wrc +saO eVV rat dNG sth aUj aUj -stI +rNZ iLY iLY lqE @@ -237852,13 +240632,13 @@ pXY vyU uOE bln +chb bln -tCr -bln -tCr -bln +mQb bln +chb bln +mQb bln bln wNO @@ -237987,15 +240767,15 @@ aWk diC bJj lyG -jko +teq bXy feJ xWb jDM brx rai -twP -sPK +amn +hzG wZD iDq bln @@ -238010,11 +240790,11 @@ bZx bZx bZx bZx -snv +gYm krQ gYp bWn -lvm +iUO egL ssF pSu @@ -238032,7 +240812,7 @@ mQb bNy qWZ oVR -jOi +apo oVR dxK xVq @@ -238046,12 +240826,12 @@ dkb kmi iYb xaA -vXV -wjv +ovx +gMq pec fJl xMR -bJy +fYE cpm dnq ylU @@ -238059,9 +240839,9 @@ dnq paM paM hcL -fUI +jqT hdj -ssr +jqT hcL paM paM @@ -238073,7 +240853,7 @@ pRj pRj daS mNY -prF +gFI bdR xaI xaI @@ -238099,7 +240879,7 @@ ycB qtj qtj aUj -kAK +iLY iLY iLY bxa @@ -238108,14 +240888,14 @@ pXY pXY pXY fcP +lSu +chb bln -bln -tCr -bln -tCr -bln -bln -bln +uer +mQb +bvb +tMa +mQb bln bln wNO @@ -238256,10 +241036,10 @@ fDc eGA iDq jSt -kvh +mfH wPN -tCj -sDl +xAs +jbe sDl sDl bHI @@ -238267,11 +241047,11 @@ bZx bZx bZx bZx -snv +gYm krQ thI bWn -oQE +tsz xMX hSl ueS @@ -238288,9 +241068,9 @@ pAZ stJ fsm qWZ -aDZ -mpP -uLp +lvA +gKU +aoW dxK fbw hue @@ -238308,7 +241088,7 @@ ool jRC cgC jaq -cua +vvT cpm dnq ylU @@ -238349,14 +241129,14 @@ yaL yaL yaL yaL -sSJ +pmi bTF nHe jDP wTg -jWJ +bRj gyR -clG +fhX kAK iLY lqE @@ -238366,11 +241146,11 @@ pXY pXY uOE bln +yfW +jKQ bln -tCr -bln -tCr -bln +mQb +ebW bln bln bln @@ -238524,7 +241304,7 @@ bZx bZx bZx bZx -snv +gYm krQ gYp bWn @@ -238542,14 +241322,14 @@ xhw eJe pXn pAZ -nyE +jDB qWZ qWZ qWZ -ldT +wrk qWZ dxK -wzk +cct hue xit wfK @@ -238559,7 +241339,7 @@ iYb iYb iYb iYb -rpu +kFW ybI nnR tuz @@ -238567,11 +241347,11 @@ eRZ qpZ rAA cpm -mpy -sYu -ckc +ooV +bwD +qdI paM -sqq +pdg nBk nBk oSY @@ -238579,7 +241359,7 @@ nBk nBk aCX paM -gZk +tUG jZU uFh hwx @@ -238602,7 +241382,7 @@ mNY akL tvF tvF -aYS +qya gTK ruO fKe @@ -238611,10 +241391,10 @@ aQW pVK wRd gGt -yhC +uJR rIX -kAK -nRV +iLY +lqE fcP cSx vyU @@ -238623,14 +241403,14 @@ vyU vyU fcP bln +pMM +mQb +lSu bln -tCr -tCr -tCr -bln -bln -bln -bln +fYT +tTO +mQb +mQb bln wNO wNO @@ -238781,27 +241561,27 @@ bZx bZx bZx bZx -snv +gYm gMK huT bWn -exq +ukJ xMX vvu joh mdM -bZB -rDq +wBa +fSP iMw -wZp +rRd bWn piB eJe utR pAZ -lBD +kIL qWZ -qHD +vij bMZ paK aVH @@ -238829,7 +241609,7 @@ ylU bep paM xxQ -nnM +gMl kzO gdP ykL @@ -238877,17 +241657,17 @@ aZH fDn fDn gka +uMs +mQb bln +fPc +mQb bln bln bln +chb bln -bln -bln -bln -bln -bln -bln +mQb bln wNO wNO @@ -239028,7 +241808,7 @@ iDq iDq ciG mfH -sDl +jbe sDl sDl sDl @@ -239038,7 +241818,7 @@ bZx bZx bZx bZx -snv +gYm lwO vTg bWn @@ -239062,7 +241842,7 @@ xCv vWL nci tPC -uks +xkI gnM aHW clP @@ -239072,7 +241852,7 @@ clP clP clP clP -rya +rwn eWc nDA vvi @@ -239080,7 +241860,7 @@ xpJ vYs suL gCn -hUl +qIx dZQ aNs dnq @@ -239093,7 +241873,7 @@ nBk nBk iiT paM -jZU +wxY hFi bts nlr @@ -239141,10 +241921,10 @@ gka gka gka gka +aao +bvb +tMa bln -tCr -tCr -tCr bln wNO wNO @@ -239278,7 +242058,7 @@ feJ uGr uGr iDq -pLx +jBr lAL gPp iDq @@ -239296,10 +242076,10 @@ psN psN psN wqx -gEb +cJd gYp bWn -tEn +bTJ cGt wRI qdE @@ -239309,22 +242089,22 @@ ntK mQb bln jII -gMx -lsH -jJr +ooV +wTL +eff qWZ qWZ qWZ -bpf +svR xRw nYv qVp xKJ -rmM +veH pZh oYI aCk -uPY +wzk knU kPv dxK @@ -239378,7 +242158,7 @@ dth bTF wRd gka -swe +igw lAu vWr vWr @@ -239399,9 +242179,9 @@ lhC maY gka bln -tCr +chb +bln bln -tCr bln wNO wNO @@ -239575,7 +242355,7 @@ grA fwQ nOH gxU -jJR +gZq ybv ybv ybv @@ -239655,10 +242435,10 @@ brY lhC lhC gka -bln -tCr -bln -tCr +lSu +chb +uer +mQb bln wNO wNO @@ -239805,7 +242585,7 @@ sDl sDl sDl psN -eUR +xir nTp nTp kxp @@ -239813,7 +242593,7 @@ kQc cxz nnx bWn -sfz +rkV npu oMS npu @@ -239823,7 +242603,7 @@ nSo jII pAZ pAZ -dnq +rLl eJe utR tmQ @@ -239856,7 +242636,7 @@ dnq vrX pua paM -pEY +wik vJI uud gdP @@ -239864,7 +242644,7 @@ pjl uOn msU paM -khu +lxi bbo pbE vja @@ -239887,7 +242667,7 @@ mNY ixG aPf dzJ -neV +drd twt mEw sSJ @@ -239913,9 +242693,9 @@ rQf mUs gka bln -tCr +chb bln -tCr +mQb bln wNO wNO @@ -240062,9 +242842,9 @@ sDl sDl sDl psN -nUI +riB dkY -nCW +wLc hzY bRn fng @@ -240078,7 +242858,7 @@ bWn bWn mae pAZ -usz +mDy eZL ljx nxW @@ -240088,7 +242868,7 @@ qXF dMX gER nOH -bQd +xVc ybv xzT cHO @@ -240101,7 +242881,7 @@ bln kta jLa rBL -fYF +uMN clE jQI qnr @@ -240131,13 +242911,13 @@ dPT pRj pMu gVD -gSQ +kPu ajF qwe uJH -hHF +iAc roj -rIr +gXN pRj kCn mNY @@ -240148,8 +242928,8 @@ gTK gTK myX sSJ -xFM -eEh +gka +oAs fab eDC uIV @@ -240169,10 +242949,10 @@ viH viH rQf gka +mQb +bvb +jHb bln -tCr -bln -tCr bln wNO wNO @@ -240327,11 +243107,11 @@ pfe aeQ mdX pfe -ktK -fGr -olt -qSP -eSm +oyd +vws +mjf +wEb +sIZ pfe pfe jII @@ -240398,10 +243178,10 @@ xtQ hIH kCn mNY -wiM +hFJ tMD ehJ -rpF +fMt twt tXB sSJ @@ -240409,7 +243189,7 @@ gka uXC fab fNv -iEd +wuo wuo nnw spv @@ -240426,10 +243206,10 @@ lhC lhC lhC gka +mQb +chb bln -tCr bln -tCr bln wNO wNO @@ -240554,8 +243334,8 @@ lQc lQc nbp mgU -nbt -ioi +bvX +ccF fad azx tDw @@ -240579,11 +243359,11 @@ iiH teP teP teP -fEC +qbk gMK fng rHc -oOt +mxF uog vVY uog @@ -240591,7 +243371,7 @@ uog nfU bzI uog -qzU +yaF mny dnq wmK @@ -240616,8 +243396,8 @@ kta kta dHa kta -wal -wDi +kta +cPK qQC jtN aYq @@ -240626,7 +243406,7 @@ kta qQG nlT krv -ylF +hyc fdy fdy fdy @@ -240646,7 +243426,7 @@ cLN cLN cLN fdy -oXc +eKb nzq cLN cLN @@ -240655,7 +243435,7 @@ kKH pRj eAj sro -apL +dgp qkT kzA whW @@ -240667,7 +243447,7 @@ glc fab ktw bny -qDj +jQe xBp bYw bYw @@ -240684,9 +243464,9 @@ phL lhC gka bln -tCr +chb +bln bln -tCr bln wNO wNO @@ -240810,7 +243590,7 @@ bln npb bln lSu -rhf +hIO rPP eNl vbF @@ -240840,7 +243620,7 @@ vDb vvh vPC pvm -tJZ +dMi cvC kQc iYG @@ -240848,7 +243628,7 @@ kQc kOV kQc kQc -kkr +iJN gOy gOy fKF @@ -240856,7 +243636,7 @@ qjg utR tmQ lkI -smI +lvl aog ktl dEI @@ -240883,7 +243663,7 @@ xXt gET gMM jba -iot +mKC oQp oQp lCY @@ -240903,7 +243683,7 @@ oQp oQp oQp oQp -lEK +mxX oQp oQp kPg @@ -240914,7 +243694,7 @@ fFy mNY bTq xUP -fQU +gRt rpF twt fcg @@ -240940,10 +243720,10 @@ efE kJU lhC gka +tMc +chb bln -tCr bln -tCr bln wNO wNO @@ -241067,7 +243847,7 @@ bln npb bln bln -rhf +hIO vyd ePr kGc @@ -241077,7 +243857,7 @@ mgU kqc kqc kqc -wAq +jct jaw xwf aPd @@ -241091,21 +243871,21 @@ bgN bgN uwB lvS -xLO +dYA fGM -eEZ +hrO nUJ qbA csB -stB +gtB tny dLo fBF xUU wYZ aKI -xUU -avd +peq +obb qJV vBh fiE @@ -241114,9 +243894,9 @@ utR tmQ axf kzD -kJP +nsj lhv -heS +sDV ybv xwm vzT @@ -241130,8 +243910,8 @@ kta kta eoJ kta -wal -tEK +kta +lEJ qQC hNg rFD @@ -241140,8 +243920,8 @@ kta vtz fuM vXh -jZB -rWn +hyc +tdK mJa gDV fxl @@ -241159,8 +243939,8 @@ eQX rWn rWn gDV -cSP -dAk +tro +eKb jRV uOL gQq @@ -241179,9 +243959,9 @@ wfn ras fkj fab -nsK +iag dfq -ghj +ein xBp imd imd @@ -241197,10 +243977,10 @@ lhC gsk lhC gka +lSu +chb bln -tCr bln -tCr bln wNO wNO @@ -241324,12 +244104,12 @@ bln miY oot oot -rhf +hIO jDt wtg diq -ehy -vtZ +uet +ptr mgU fUj kcc @@ -241425,20 +244205,20 @@ hOc bID qnC vkz -uoF +aom pcg deD -fLH +unG qnC isX eBI oEt gka -gFR +vKy fab fyQ wuo -vuK +wuo nnw cDK uvk @@ -241455,9 +244235,9 @@ lhC lhC gka bln -tCr +chb +bln bln -tCr bln wNO wNO @@ -241581,9 +244361,9 @@ bln npb bln bln -rhf -rhf -rhf +hIO +hIO +hIO bUx bUx bUx @@ -241611,7 +244391,7 @@ jOQ jOQ jOQ jOQ -cyZ +deY deY fhz deY @@ -241620,7 +244400,7 @@ deY deY deY wAZ -oAz +tVd uLC xQg fwm @@ -241673,7 +244453,7 @@ vvv tTV jtA bID -rlL +obo miw gCK cMd @@ -241681,13 +244461,13 @@ lHC vzU ahm qnC -xBh +bjK qGQ sOE wcx -mGV +fVy qnC -sIp +nAw uif wRd gka @@ -241712,9 +244492,9 @@ vBm lfp gka bln -tCr +bvb +hZu bln -tCr bln wNO wNO @@ -241879,7 +244659,7 @@ skl skl pAZ pAZ -dnq +rLl gOy utR tmQ @@ -241938,7 +244718,7 @@ dcC jGB akz sCA -aSw +mta ojv bAT eri @@ -241968,10 +244748,10 @@ rQf rQf mUs gka -bln -tCr -bln -tCr +mQb +chb +mQb +mQb bln wNO wNO @@ -242183,7 +244963,7 @@ oyj gwK nEV bry -fDM +vPc fLq hro tKi @@ -242197,9 +244977,9 @@ wHj mBB juH ojv -hut +lqi mDw -jDT +tbH qKQ aTj uif @@ -242225,10 +245005,10 @@ fyR lhC lhC gka -bln -tCr -bln -tCr +mQb +chb +uer +mQb bln wNO wNO @@ -242369,7 +245149,7 @@ kpj fGq eig jNp -sDl +jbe sDl sDl sDl @@ -242393,18 +245173,18 @@ vXU drZ yfF jII -gMx -oas -jJr +eff +kxA +eff qWZ qWZ qWZ -dWX +aCP wKI iFs qVp lpM -mjs +slP hsx hpR pIk @@ -242462,7 +245242,7 @@ rGu eZO wRd gka -xNn +lzJ snO pIm vWr @@ -242483,9 +245263,9 @@ pMC qWJ gka bln -tCr +chb +bln bln -tCr bln wNO wNO @@ -242621,7 +245401,7 @@ kzw kzw cAC xAQ -voA +iMg jNp jNp jNp @@ -242632,7 +245412,7 @@ sDl sDl sDl skl -jOQ +uFS skl nOl oCF @@ -242643,24 +245423,24 @@ ygB mJO oCF ygB -bLa +bSW oCF ygB lBD jII jII jII -ifd +aVr xwC utR pAZ bln -aAf -oxe +qWZ +bGc vmj aqB pVq -nVZ +rkI oRk mvc mvc @@ -242668,9 +245448,9 @@ rAW kwz ghJ uEm -sqU +aEz lpM -klP +rEo euf jzn mhQ @@ -242707,7 +245487,7 @@ bDz rSC inE oPU -wuV +xpc qnC qnC sCA @@ -242739,10 +245519,10 @@ gka gka gka gka +aao +bvb +tMa bln -tCr -tCr -tCr bln wNO wNO @@ -242892,28 +245672,28 @@ skl jOQ skl ygB -xkp +gQI ygB ygB -qBd +ugX ygB ygB -lOz +nJH ygB ygB -oTh +rsV ygB fEZ ygB -hXm -fZO -uLR +tSb +aab +dcI sNI bUH pAZ -wXn +hLw qWZ -eWP +ydk tGF iUT aVH @@ -242926,12 +245706,12 @@ hCV nkb ptB mvc -olH +lzb anu jly fXb mhQ -eeq +oYN jUD nZb lRf @@ -242947,13 +245727,13 @@ uwO rSx kRP kRP -lSw +uFV cAR kNk tmA bNE hht -gMN +hxe xnE tvd egV @@ -242966,13 +245746,13 @@ vzU pZn bBd xSv -aIg -rjh +gyR +lLD xZl qaF pna -aIg -ktx +gyR +cod uif jKe wRd @@ -242995,9 +245775,9 @@ haC haC haC haC -qCB -bln -bln +hso +lSu +chb bln bln bln @@ -243159,20 +245939,20 @@ rMN alO alO qCI -xKT +fhg alO -qhF -kVj -kVj -qsY +fEe +hYD +hYD +waU xwC kKX pAZ -odi +luG qWZ qWZ qWZ -tUO +qKn qWZ lpM xxx @@ -243186,16 +245966,16 @@ xLF lpM oGQ wKw -vFb +mZT mhQ hUV aks nLH xex mhQ -ufw -rpG -jtY +cBk +kdA +reb xVK tfx tyK @@ -243214,13 +245994,13 @@ guU ayq hpI bID -sSS +iKh rOU -rcN -qxy -siz -iUx -kTQ +qXt +jEo +fEL +boX +vjQ lCD pNO nFc @@ -243246,16 +246026,16 @@ bEa dCy dMK gka +nce bln bln bln bln bln -bln -bln -bln -bln -bln +lSu +hAM +sds +ntK bln bln wNO @@ -243418,7 +246198,7 @@ iPm iPm iPm iPm -mVW +pcx hay cfr dct @@ -243428,9 +246208,9 @@ pAZ wtj eJK qWZ -kjY -bCW -uLp +kGe +lWd +dOF lpM byx aJN @@ -243466,32 +246246,32 @@ kQf hDh vnt keP -xJi +qTa ctr avk gxP bID -tZO +phw uCK -nKj -fwW -uxp -afK -bOy +gJN +ckX +iub +inn +oUw vfU pdV -hqV -pie +gyR +psu uGT qWy pna -hqV -uge +gyR +jmD xrg dxn aPD aPD -vlb +rHx fKf pst bWQ @@ -243504,13 +246284,13 @@ uYO rOe gka bln +mQb +mQb +lSu +lSu +mQb bln -bln -bln -bln -bln -tCr -bln +chb bln bln bln @@ -243655,7 +246435,7 @@ nmq kqG pVL pVL -sDl +jbe sDl sDl skl @@ -243673,12 +246453,12 @@ wVD uja uja uja -bsn +iyJ uja uja uja uja -vdO +uHN vrX utR pAZ @@ -243686,7 +246466,7 @@ eAu hFr qWZ oVR -sNQ +lfo oVR lpM dbs @@ -243713,7 +246493,7 @@ vXh cvS ewi cvS -eUI +svV kwX gDp egp @@ -243723,7 +246503,7 @@ pJQ pJQ pJQ keP -tJv +vei bTx nvW xxs @@ -243731,9 +246511,9 @@ bID bID bID bID -cfT -kvH -uIz +nnp +res +eLM bID bID bID @@ -243747,10 +246527,10 @@ gyR gyR gyR aPD -wqc +lQe umz sbK -wij +tOk gka gka gka @@ -243760,15 +246540,15 @@ fDn fDn fDn gka -bln -bln -bln -bln -bln -bln -tCr -bln -bln +ujK +gSd +lej +ujK +ujK +ujK +yhY +bvb +ftY bln bln bln @@ -243922,29 +246702,29 @@ skl eFW rlV ygB -xEJ +jMx gJC akD qIU -keL +uUM uja jHG -yjF +jcF vVw -yjF +jcF qSh hsB uja -jcy +ltY iuv utR pAZ fsm efv bcN -jYd -ugI -lIs +yan +fVf +epC lpM vPF uEm @@ -243959,7 +246739,7 @@ sIt sIt sIt log -aTG +kpA hGh raf raf @@ -243969,7 +246749,7 @@ iuv pDi cvS cGA -rgi +cGA pNq lBS aTp @@ -244008,23 +246788,23 @@ cht eiI bum wWM -vvf +hVf pcI ehP uDi -uLr -bDl -sEB +aPD +tfk sEB +qVo +chb bln +lSu bln bln bln bln bln -bln -tCr -bln +chb bln bln bln @@ -244178,18 +246958,18 @@ jOQ skl dxh xri -vAo +ttI cmL lLf asa kCu -gHj +uKR uja -sfD -gjT -szK -upx -uOy +lsF +pBs +eYF +sNj +fKR hsB uja ise @@ -244199,11 +246979,11 @@ pAZ bln lBD pAZ -mDv -sUi -tEd +hZf +rYE +xUg lpM -eEC +luk aTw iFL hpe @@ -244215,7 +246995,7 @@ dGU wdg bVv wdg -sTV +ukR pwf oUL qKz @@ -244248,7 +247028,7 @@ uAK wSo wSo vZt -iHm +qhI rXe hHN bJD @@ -244273,16 +247053,16 @@ lzy sEB sEB sEB +xhA bln bln +uer bln bln -tCr -tCr -tCr -tCr bln bln +chb +uer bln bln bln @@ -244436,14 +247216,14 @@ skl ddr ccp ygB -kCb +vrD gya tfO urd xTU uja aty -gjT +pBs uja uja uja @@ -244474,11 +247254,11 @@ sIt sIt log mhQ -rXN +pOH mhQ mhQ mhQ -dnq +rLl jtE vXh cvS @@ -244487,7 +247267,7 @@ bRH caZ hgK caZ -gDp +rqN btg pGo uoE @@ -244499,7 +247279,7 @@ jlV hHN hHN iRw -cYf +vuf bSG uop tHj @@ -244522,26 +247302,26 @@ daM pyM kxY ccz -okk +xCs lVm -qrm +aPD mzz aPD bDl -sEB -sEB -bln -bln -bln -bln +ooL +qVo +chb bln +lSu bln +mQb bln -tCr bln bln +chb bln bln +mQb bln wNO wNO @@ -244682,13 +247462,13 @@ lbk sDl sDl skl -yhL +vaW deY skl gDz xlH kbN -dym +nzn skl ygB ygB @@ -244700,25 +247480,25 @@ maB fpa uja oiz -gjT +pBs uja kDz -xVc +mBm twU uja -bvu -eXZ +uPT +poL vBh -qMf -qMf -qMf -qMf -qMf -wVR +wRk +wRk +wRk +wRk +wRk +cRu mfW -toT +vKZ mfW -aeF +uxm eta brp mfW @@ -244727,12 +247507,12 @@ ccs amN hHu tZZ -vBh -vBh -dqs +mfW +mfW +oyY aVw gxq -rlb +aVw vBh vBh vBh @@ -244744,7 +247524,7 @@ iGa caZ vpR caZ -oDk +sqN kRP fwO fwO @@ -244760,7 +247540,7 @@ cEw cEw cEw cEw -rII +woc fwq hHN lRR @@ -244784,21 +247564,21 @@ iaY duh duh duh +mQb bln -bln -sEB -bln -bln -bln -bln -bln +lbc +bvb +jHb bln bln -tCr +mQb bln bln bln +chb +mQb bln +mQb bln wNO wNO @@ -244929,7 +247709,7 @@ ihb bnM iRM kkl -tAK +xiq gUs ykw lbk @@ -244953,18 +247733,18 @@ ygB ybE eKJ ulk -rgM +ugZ uja uja uja -jnh +kqP uja uja uja hsB uja -uuh -lyh +ehq +kOq iuv vrX iuv @@ -244973,7 +247753,7 @@ iuv iuv iuv vrX -maX +uJN iuv xNF ylU @@ -244986,7 +247766,7 @@ iuv iuv iuv iuv -rpG +uJN iuv iuv iuv @@ -245015,7 +247795,7 @@ dUv cEw rLs xUV -xmL +rLs cEw cmJ rwC @@ -245041,21 +247821,21 @@ dFo kKy duh bln +ntK bln +lbc +chb bln -sEB -bln -bln -bln -bln -bln +lSu bln +mQb bln -mVm bln bln +chb bln bln +mQb bln wNO wNO @@ -245206,44 +247986,44 @@ ykA skl lQr lkj -ipx +iov seH lvY mmA -apC +whk uja -vmp -vmp -uNp +aJi +aJi +eCT uja oUO -hxB +msG xWG uja kyL -eph +hNU kyL kyL -jnU -rbh -kZm -njM -rbh -rbh -qPD -jIY +rwZ +oTu +ucu +adv +oTu +oTu +srw +kfr dKW ylU lDo dnq iuu dnq -dnq +ebH dnq apb dnq bep -mpy +srw dnq dnq ivo @@ -245298,19 +248078,19 @@ lhO fFi duh bln +mQb bln +lbc +chb bln -sEB -bln -bln -bln -bln -bln +lSu bln bln -tCr +uer bln bln +bvb +tMa bln bln bln @@ -245453,33 +248233,33 @@ bln bln fsm bUx -uek -wph +buR +kVe fnS skl -qpU -xsm +hir +kAT jOQ skl pOo piC ygB -fXo +noJ aos -cUH -rfW -beF -vme -lrE -gUw +uWo +iUs +ozk +nsu +fdV +kux uja uja uja hsB uja mdZ -hMM -lEb +ros +bnm mdZ exw hmb @@ -245489,9 +248269,9 @@ hmb hmb exw tLF -gIf -dBA -gIf +lFb +qRE +lFb azw azw mao @@ -245555,20 +248335,20 @@ alb nTL cHf qHg -tmR -bln -sEB -bln -bln -bln -bln +umg +mQb +lbc +chb +mQb bln bln bln -mVm bln +mQb bln +chn bln +uer bln bln wNO @@ -245710,60 +248490,60 @@ bUx bUx bUx bUx -maM -aXx +oBV +aXq fnS skl -eoV -npZ -qQV +bVx +idP +irn skl gmW gmW gmW ltV -tip -gxT +lAW +ksl ltV uja -mqy -mqy +tXk +tXk tUn uja jlP -azt +dHg twU uja -eUC -yjr -nvw -nPS -eav -bBa -iiB -ycE -iuE -gWl -hKn -lHi +dka +fKV +jLK +tJY +phr +eik +cby +otW +jLc +lvb +xWk +sTH lso dEV bai azw jqE kZb -tSK +cJk azw -fMg +xxi fqW -pHS +sfd nCb kWL cvS pjF nhw cvS -bEB +aMh kNA mOo jPh @@ -245811,20 +248591,20 @@ njm njm njm duh -sEB +mZf ipM bln -sEB -bln -bln -bln -bln -bln -bln +lbc +chb +mQb bln bln +lSu bln +mQb bln +chb +mQb ozo bln bln @@ -245889,7 +248669,7 @@ wNO wNO wNO bln -aaX +qzn vbG tkU tkU @@ -245961,7 +248741,7 @@ fhu bLI ykw skl -blX +ugA deY skl kQE @@ -245972,15 +248752,15 @@ skl hDV skl byP -blX -eHX -ceU -bZU -efU -qfJ -seB -mcT -xwL +ugA +hNp +tFI +eHb +hcs +bdp +nmH +tiI +hLW bVI uja uja @@ -245991,18 +248771,18 @@ uja uja uja uja -scG -cKJ -hJS -jMJ -nyj -fju -lvy -fLG -nxc -lgb -xre -lHi +sJC +aSM +fjN +xhV +mPl +ybb +fJS +hFR +rxJ +lGN +xul +sTH lso dEV bai @@ -246011,7 +248791,7 @@ rEp fTC blU azw -eul +bbO hhT vnN pQp @@ -246060,9 +248840,9 @@ qwF qwF qwF wYJ -bln -bln -bln +sEB +sEB +sEB kUu bln bln @@ -246071,19 +248851,19 @@ bln bln oxR bln -sEB -bln -bln -bln -bln -bln +lbc +chb +mQb bln +lSu bln -mVm bln bln bln +chb bln +uer +mQb bln wNO wNO @@ -246146,7 +248926,7 @@ wNO wNO wNO bln -fhB +liV vbG tkU tkU @@ -246218,48 +248998,48 @@ ekW vRN fEA uHF -jyE -jyE +wjj +wjj qdK eqq -ejY +krZ eqq eqq eqq eqq -mkM +xuL eqq -fjO +lrl qvh skl -erH +eFG ffZ vfW vfW mZK lvk -qiG -czo +gzI +gIN kKL -rDI +mBr kKL -uUw -cmK -css +pyE +suo +qZg rxY -cQp -dpj -uil -sHi +ryn +eDs +vTm +sxt shh -tjA +bHJ xgy xgy -ffr -nxc -lgb -uSE -hyQ +uYE +rxJ +lGN +ozU +fuc lso dEV kHI @@ -246268,7 +249048,7 @@ feU fTC qEj azw -tJV +rUQ orE aTE hMH @@ -246317,27 +249097,27 @@ sMg sMg qwF aPD -bln -bln -bln +nQr +sEB +sEB nyA +htd +uer bln -bln -bln -bln +mQb bln nFO -bln -sEB -bln -bln +mQb +lbc +chb bln bln +lSu bln bln bln -tCr bln +chb bln bln bln @@ -246474,56 +249254,56 @@ aML iLv hSJ ykw -fNz -wSc -blX -jee -blX -oCw +ygL +jTw +ugA +eym +ugA +aBK fhz -blX +ugA fhz -acg +vjg byP mOf -aYO +vHJ mOf skl -nJq +opt eOl -uOe -day -day -sRc -lPQ -szt +qFE +cGB +cGB +gsI +tLL +spy kKL kKL kKL -csZ -oPr -qGh +qUI +lik +tWj rxY -rra -iFz -nQm -ktY -gMi +jCK +jdV +bZm +uQc +mYR mpU -hbL +ryJ xgy -ivC -rRs -jik -lJW -lHi +faW +dHf +rWI +cOy +sTH lso dEV bai azw hnV fTC -xSu +nej azw azw azw @@ -246573,30 +249353,30 @@ kfa qCn tCB qwF +sEB +sEB +sEB +sEB +fdb bln bln -bln -bln -czY -bln -bln -bln +mQb bln bln nFO bln -sEB -bln -bln -bln -bln +lbc +chb bln +mQb bln bln -tCr bln bln bln +bvb +jHb +mQb bln bln wNO @@ -246736,60 +249516,60 @@ rFP rFP skl skl -utW -kiI +wYS +tYF skl -blX -tAt +ugA +goY skl -qMD +cFr cQx -qMD +cFr skl -eDy +fRq vfW -qrM +tBw nUj mpH -skQ -fyL -kcs +aAe +xjT +spy kKL -igH -yhV -dCV -gyP -utG +jZy +aqV +lgx +xay +lko rxY -bzF -dXR +ntE +rhG mdZ mdZ mdZ exw exw exw -kXS +dRB exw exw exw tLF -cwh +bDB dEV -whg +dYU azw -eub +xbB eyc qPt -uTc +goa biR dmI tdE veU -vEQ +pkf kRP kRP -oiB +rWH kRP pao cGA @@ -246821,7 +249601,7 @@ xGM gHl flH afR -rPn +iVg kqq cnq nqb @@ -246830,29 +249610,29 @@ uxx sMg sMg qwF -bln -bln +sEB +sEB hDG -bln -czY -bln -bln -bln -bln -bln -oxR -bln sEB +fdb +mQb bln +mQb bln bln +oxR bln +lbc +chb bln +mQb +uer bln -bln -tCr +lSu bln bln +ebW +mQb bln bln bln @@ -246993,44 +249773,44 @@ bln lBD bln skl -rWA +dow skl skl -gZV -ePd +giO +hFw skl -nSX -fgz -cnS +hED +jlk +pSF skl -cVa +eXf vfW -xqP +qfG iay dCF -skQ -fYX -pYD +aAe +fbM +kVa kKL -ddR +nWG kKL kKL -jZJ -pKo +bYC +isC rxY fzK -wPe +iIm fzK jRA -rMm -sCX -sPS -vvn -xsy -wBr +wXb +bOZ +gpM +jZj +luP +dWI lEO -wqt -jae +lRj +msE lso kjK bai @@ -247045,7 +249825,7 @@ tdE fBR fKi tHr -euR +rRA soK kRP nMN @@ -247087,11 +249867,11 @@ qwF qwF qwF qwF -bln -bln -bln -bln -czY +sEB +sEB +sEB +sEB +fdb bln bln bln @@ -247099,18 +249879,18 @@ bln bln nFO bln -sEB -bln -bln -bln -bln -bln +lbc +bvb +jHb bln bln -tCr bln +lSu +lSu bln +uap bln +mQb bln bln wNO @@ -247250,43 +250030,43 @@ ntK mQb bln skl -bkM -oWV +eZW +deY skl -lzc +vhF jPv -osN -pfy -lzc -lZP +rhv +dEL +vhF +vsx skl -aEx +hYL vfW -cWz -cCe -cCe -kkb -lPQ -fsO +sul +eGM +eGM +soI +tLL +erd kKL -uLZ -jyN +mfP +qgH kKL -mTL -uiV -ixp -edO -hjO +vJJ +awu +uzu +tbL +cEe fzK +sZB jRA -jRA -ptv -iBM -vYp -fWW -mMZ -bid -nzt +toT +spz +jHe +mPr +gOa +jKs +gDq lso lCi dEV @@ -247299,7 +250079,7 @@ azw fVK rGw azw -eiY +ePT tZm pBA aQZ @@ -247312,7 +250092,7 @@ esC eUI kRP qyR -bve +qyR kRP gDp cvS @@ -247341,32 +250121,32 @@ uQy swu swu swu -swu -swu -swu -swu -swu -swu -swu -bmT -bln -bln +dvZ +dvZ +dvZ +dvZ +dvZ +dvZ +dvZ +heE bln +mQb bln +mQb bln nFO -bln -sEB -bln -bln -bln +mQb +lbc +chb bln bln +mQb bln bln -mVm bln bln +chn +uer bln bln bln @@ -247505,46 +250285,46 @@ bln bln bln bln -gDh +stJ skl -tSd +sNL skl skl -koj +jOK deY -osN -hrd -vOd -mnn +rhv +eLN +iDe +dyA skl -ruX +gaC vfW eOl vfW vfW lvk -jiU -qVG -wpm -nBO -qPQ +crv +acN +mch +mzX +qBi kKL kKL -llm +tjG rxY -gFW -rrL -riB -nxj -gDY -crO -iBM -fVh -qlS -qSU +uWS +hjl +xBj +ddw +hjz +wqo +spz +eYS +arZ +eME hSq -pdC -pdC +jLt +ieJ vwO hHg jyp @@ -247558,7 +250338,7 @@ sEz jFZ uoV gnb -gTi +pZB whh pQL nCV @@ -247568,7 +250348,7 @@ kRP kRP kRP kRP -qyR +wCI qyR kRP gDp @@ -247595,34 +250375,34 @@ gtg cEw bCT kfs -sEB -bln -bln -bln -bln -bln -bln -bln -bln +kfs +kfs +qVo bln bln +mQb bln +mQb bln bln +yfW +jHb +mQb bln +uer bln cwn bln -sEB -bln -bln -bln -bln +lbc +chb bln +uer +mQb bln +mQb bln -tCr bln +chb bln bln bln @@ -247763,55 +250543,55 @@ bln bln bln bln -aHh +oUb ooL skl -lsh +cwT deY deY skl -edt -hqv -wHK +ygS +oGr +pDA skl -mOH +pyl uRo uRo uRo nCu cZt cZt -qtG +vnw kKL lli uar gAt kKL -nxw +jcs fzK -kQx -poV -ahh -ezk -dzD -fwi -tsu -bpv -hLy -tsu +mbm +dTa +sav +ymf +nuD +pQD +lsA +xmD +awe +lsA lEO -far -cql -gVh +atS +lmQ +lBB dEV bai azw -nNU +pdm vYH -nah +etv azw -cXu -frP +dnI +vHo oIJ nRd lwQ @@ -247822,8 +250602,8 @@ art tHr tHr tHr -bpZ -chW +xDX +qkR pBA xfb dpB @@ -247852,36 +250632,36 @@ gtg hpI qAT kfs +dtc kfs -kfs -sEB -bln -bln -bln +qVo +mQb bln bln bln bln +mQb bln +chb bln bln bln bln bln shH -vsI -sEB -bln -bln -bln +mjY +qVo +bza bln bln bln bln -mVm bln bln bln +chb +mQb +mQb bln bln wNO @@ -248023,9 +250803,9 @@ bln bln bln skl -fpF +cwH deY -hJF +ugA skl skl skl @@ -248033,44 +250813,44 @@ gmW gmW dGO dGO -tEs +kBc dGO dGO -tEs +kBc dGO dGO gmW gmW -tpZ -mGF +lgw +lJn kKL -mcQ -gNc -gNc -oPd -qhQ -qhQ -wGm -ptv -iBM -cxT -nFQ -iEY -ptO -wBa -cql -fqX +kAQ +jJA +jJA +sRw +vNU +vNU +tvt +peP +spz +qOG +dnE +gpr +izC +hku +lmQ +epw dEV -kIK +hjA azw pxV oQD vDh azw -fNA -eqp +aXg +bGq cTV -fHz +bOp lwQ qfi sEK @@ -248078,12 +250858,12 @@ eHg ahL wVw xyy -bCr +whU bYK srn pBA drH -vSx +tNz kRP gDp cvS @@ -248109,37 +250889,37 @@ uUH vuu xvj rCW -lfF +ygl fJe sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -tmR +oot +oot +oot +oot +oot +oot +oot +sjh +oot +oot +oot +oot +oot +pcb jrI -oaQ +iXg oaQ oaQ oaQ qHg -tmR -tmR -tmR -mVm -bln -bln -bln -bln +uAL +uAL +uAL +rzO +bvb +tMa +sMy +mQb bln wNO wNO @@ -248278,11 +251058,11 @@ bln fsm bln uer -yjo +bln skl skl -qiL -qiL +qFA +qFA skl fsm tlH @@ -248298,34 +251078,34 @@ knl knl knl gmW -ijw -bRO +aJa +gJD kKL -vto -kVo -jrv -qJy -iew -pqZ -wGm -ptv -iBM -fXF -nFQ -jxr +jOC +uWy +xBf +byJ +mNP +foI +tvt +peP +spz +pau +dnE +uTq izC -tNH -vbI -gVh +qiv +saF +lBB kjK -arZ +gdc azw mwF sbc qYV azw gIY -iBj +dDR mcW sFG lwQ @@ -248368,32 +251148,32 @@ loV kfs kfs kfs -sEB -bln -bln -bln -bln -bln -bln +qVo bln bln +mQb +mQb bln bln bln +chb bln +mQb bln bln bln bln +mQb +mQb bln bln bln -vsI +hMM mHR sEB tmR -tCr -bln +sEB +rrh bln bln bln @@ -248536,12 +251316,12 @@ bln bln stJ bln -bln +qtD skl -qjn -iRa +wMY +lWG skl -tlH +oFc tlH dGO knl @@ -248555,31 +251335,31 @@ knl knl knl dGO -ksR -rEH +jMu +duT kKL -giH -qiA -uiq -iPP -iew -qhQ -wGm -fwi -tsu -tZo -cxD -tsu +tdU +fXw +abZ +qfz +mNP +vNU +tvt +pQD +lsA +nwn +fSs +lsA lEO -szj -vbI -gVh +ksc +saF +lBB dEV bai hgh -czS +qlD fVo -qbd +etW rzS hgh pLt @@ -248591,7 +251371,7 @@ juw nji tkf ikz -oSQ +vyW tHr pBA pBA @@ -248601,7 +251381,7 @@ jbC kRP gDp cvS -sEB +rsh qwF qwF qwF @@ -248623,39 +251403,39 @@ sEB hpI loV kfs -bln -sEB sEB sEB -sEB -bln -bln -bln -bln -bln -bln -bln +qVo bln +mQb +mQb bln bln +mQb bln +yfW +jHb bln +mQb bln +mQb +mQb bln bln bln +mQb bln bln -sdr +tJK sEB tmR sEB -sEB -sEB -sEB -sEB -sEB -sEB +fAW +ajx +ajx +ajx +kKU +kKU mfD mfD mfD @@ -248719,7 +251499,7 @@ bln bln lBD bln -rST +xZq bln bln qRv @@ -248729,7 +251509,7 @@ hHG wNO wNO wNO -khz +pUa wNO wNO wNO @@ -248794,10 +251574,10 @@ bln bln bln bln -gbM -iRa -iRa -gbM +bxS +lWG +lWG +bxS tlH tlH dGO @@ -248813,36 +251593,36 @@ knl knl dGO uar -bXb +lby kKL -xFz -jFu -qRF -tbE -iew -kea -wGm -ptv -iBM -gkH -rji -oqB -oNN -kGD -kGD -rbE -woX +rAY +fYJ +qMF +jpg +mNP +qpm +tvt +peP +spz +tsu +uGe +fDf +mbw +rDN +qbG +qbG +onP jyp hgh -qit +kbS xxg -nDl +ehU uau hgh kBL xPT cxA -lka +bij vkD cey lux @@ -248890,28 +251670,28 @@ wvI wvI pwF wvI -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -bln -bln +nyZ +kKU +kKU +kKU +kKU +ajx +ajx +mgv bln bln +mQb +mQb bln jqx -vsI +jEK tmR -vsI -bln -bln -bln +jEK +ktX +mQb +uer bln -sEB +mZf mfD mfD xow @@ -248980,10 +251760,10 @@ lBD bln bln bln -xDQ -xDQ +wDS +wDS bln -khz +pUa wNO wNO wNO @@ -249051,10 +251831,10 @@ bln bln tlH tlH -gbM -iRa -iRa -gbM +bxS +lWG +lWG +bxS tlH tlH dGO @@ -249070,36 +251850,36 @@ knl knl dGO uar -wla +sVW kKL -eTT -ohP -kqo -qJy -iew -sBY -wGm -ptv -iBM -dpw -qMS -oVn -cKp -hKL +dBN +kOx +hye +byJ +mNP +aoO +tvt +peP +spz +sAt +bSp +jWm +tay +rRt lso -jqZ +mRy dEV -bai -xjg -wiO +eKI +hgh +hmE mnF -lKZ -xGh +tjv +xYS fCM qQx mcW cxA -lyl +bZI nMu wDe hxs @@ -249123,7 +251903,7 @@ lvG cvS cvS lvG -bVZ +cvS tYZ kRP wOn @@ -249139,35 +251919,35 @@ pzn wvI bBM mIE -mdQ +ldr hBE kJK -kmD -nDq +iZr +sHs jXr aLJ puf +dyg haC haC haC -haC -qCB -bln -bln +fOU bln bln bln bln bln +uer +mQb bln sdr dZX xcZ dZX swF -bln -bln -bln +xEn +mQb +mQb bln mfD khy @@ -249176,7 +251956,7 @@ ghY ccw cQL pbs -xHY +uvu bPc ptY ptY @@ -249184,7 +251964,7 @@ ptY ptY ptY ptY -vyt +dLL vyt vyt vyt @@ -249237,8 +252017,8 @@ lBD bln lBD bln -wUD -wUD +vOy +vOy bln wNO wNO @@ -249308,10 +252088,10 @@ bln tlH tlH tlH -uUq -gHL -iRa -gbM +aDM +aEj +lWG +bxS tlH tlH gmW @@ -249326,28 +252106,28 @@ knl knl hNx gmW -sDM +uKY gAt kKL -xcO -fco -fco -gua -qhQ -qhQ -wGm -xtH -xKq -umc -aGf -rvO +asN +bUy +bUy +gBJ +vNU +vNU +tvt +ulR +qjW +qmh +iuL +tii lEO -uLJ -reX +fPI +ghb mqq vSa fuY -clK +oXb pKb eTM vkG @@ -249356,7 +252136,7 @@ lUb vWm pbW sco -amJ +iBo lzM wbw ddu @@ -249381,20 +252161,20 @@ gDp gDp gDp cvS -cGA +muX kRP -uyU -gGC -heQ -nll +fYY +qwo +sOd +eUK ign ebr iJK ebr bzE dYI -vep -nDi +wvI +wTB xke ldr vhT @@ -249404,7 +252184,7 @@ gRI lwd mka wvI -msd +rnp wvI bln bln @@ -249415,11 +252195,11 @@ bln bln bln bln -bln +lSu bln sdr dZX -nto +gpB ote swF swF @@ -249436,7 +252216,7 @@ uVp sTx vyt vyt -yfT +vyt vyt vyt vyt @@ -249494,8 +252274,8 @@ bln bln lBD lBD -wUD -wUD +vOy +vOy bln wNO wNO @@ -249565,10 +252345,10 @@ bln tlH tlH tlH -uUq -gHL -gHL -uUq +aDM +aEj +aEj +aDM tlH tlH dGO @@ -249583,32 +252363,32 @@ aBf knl knl dGO -gdK -qgT +rVE +oqY kKL kKL kKL -kVq -pgv -uGe -byO -qMI -pba -ion -sft -pNi -eVi +sIb +uXd +iiE +oIj +quS +jNo +hvQ +gUv +tCk +fYz izC izC tLF -jgd +fqR qEM lso -dCs +ioE mJM jOz dEg -vBD +hmx hgh eei niu @@ -249625,7 +252405,7 @@ hRH dXi mmh ikz -piI +hTx cvS kRP kRP @@ -249650,7 +252430,7 @@ vXv hGs gOY ylM -vep +wvI jWt cXV nDq @@ -249659,25 +252439,25 @@ swx ldr ldr rSW -xgr -mVe +aHt +wvI fVE wvI +mQb bln +uer bln bln +mQb bln bln bln -bln -bln -bln -bln +lSu dZX tis -qci +dZX tWy -dqg +dZX swF swF qFu @@ -249751,8 +252531,8 @@ lBD lBD bln bln -wUD -wUD +vOy +vOy bln wNO wNO @@ -249822,10 +252602,10 @@ bln bln tlH bln -uUq -gHL -gHL -uUq +aDM +aEj +aEj +aDM tlH tlH dGO @@ -249842,26 +252622,26 @@ knl dGO uar lli -dwq -any +nkE +xwq kKL -vSu -iUi +mzf +blM fzK -orZ -gVX -dSs -dSs -dSs -iCS -vVA -gYN +cax +fFe +gcP +gcP +gcP +kJr +tpO +gpS izC -gdO +xHr lso vwO lso -dCs +ioE mJM obG dEf @@ -249897,7 +252677,7 @@ uep vsZ hnd kRP -lop +wCN don gJs gJs @@ -249907,7 +252687,7 @@ iJK ebr bzE pMq -vep +wvI bHu cAu xwc @@ -249915,17 +252695,17 @@ raA vRC nSw qUu -qUu +imJ fvR kiE fTB pwF +mQb +mQb bln bln bln -bln -bln -bln +uer bln bln bln @@ -250008,8 +252788,8 @@ bln lBD bln bln -rPp -rPp +dTI +dTI bln wNO wNO @@ -250078,12 +252858,12 @@ bln bln bln bln -bln +qtD kKL -oEC -gHL +cMr +aEj kKL -tlH +oFc tlH dGO knl @@ -250097,38 +252877,38 @@ knl knl knl dGO -xPf +bZW lRs tml kKL kKL -aft -jsR +uFE +xqk cpY cpY -rEY -xWI -wuc -qod -xWI -pLo -cGI +hhO +tLI +uoY +xqU +tLI +fNZ +fKZ cpY tLF -ivJ +nOj vwO -pxn -xjg -swI +gnT +hgh +ohb mTS obu mjI fCM -qPu -niu -uOW +dIL +hDq +tXc lwQ -ade +gkX oeW aTZ fle @@ -250145,7 +252925,7 @@ vSY ubq lfL gdz -isP +iPz cwu kRP kRP @@ -250155,7 +252935,7 @@ hlp cGA kRP npD -wfu +npD npD npD gGj @@ -250184,11 +252964,11 @@ bln bln bln bln -bln -bln -bln +ntK +mQb +mQb dZX -kJI +vGw fgU hPe vMA @@ -250200,7 +252980,7 @@ fQu aiY pnR xfg -rjH +uza iAk aRD hHb @@ -250219,7 +252999,7 @@ euc ujs mYh ogF -lIK +hfy uBi uBi lqz @@ -250264,14 +253044,14 @@ lBD bln bln bln -kPS +dHF hHG hHG hHG -khz +pUa wNO wNO -khz +pUa wNO wNO wNO @@ -250334,11 +253114,11 @@ wNO bln bln fsm -yjo +bln kKL kKL -odZ -odZ +wsr +wsr kKL tlH tlH @@ -250355,40 +253135,40 @@ knl knl gmW uar -hNK -bfy +gUa +uNN kKL -pOC -ncc -syd +rBz +sSX +pns cpY -gDB -sJg -sJg -sJg -sJg -sJg -sJg -kqP +vzH +uuO +uuO +uuO +uuO +uuO +uuO +guA cpY lkr lso vwO -nCz +fME nKa dqO icA joa dqO nKa -tWZ -niu +qYx +qWe agK lwQ lwQ bEL -sjX -moE +weI +syv bEL lwQ lwQ @@ -250398,7 +253178,7 @@ lwQ bEL lwQ qQp -bXT +gGI isP ePi rdG @@ -250406,7 +253186,7 @@ vQP rdG jzY xlh -jQt +hKY uep uep uep @@ -250420,9 +253200,9 @@ noR wDg rqD wDg -uin -vep -xEL +edw +wvI +ksb xyT jvR fFC @@ -250430,7 +253210,7 @@ nnn iIs iDQ msN -gVC +drK lyH isu lmy @@ -250442,8 +253222,8 @@ bln bln bln bln -bln -bln +uer +mQb dZX lIW fgU @@ -250459,7 +253239,7 @@ frq rlS cfe mXi -nDz +mzZ mRI bLz bLz @@ -250593,9 +253373,9 @@ bln efv bln kKL -xIh +uUp lli -eEr +sQS kKL kKL kKL @@ -250603,60 +253383,60 @@ gmW gmW gmW gmW -tEs +kBc dGO dGO -tEs +kBc gmW gmW gmW gmW -kav -lCO -oEe -omS -mTA -nbO -hxY +oOw +aOW +dXx +rOw +ctS +qjJ +nPc cpY -aMI -arW +mmw +oKX fkk fkk fkk fkk -spj -pBS -vrw -jlT +dkZ +dlH +aBP +ofl lso vwO -dKf +ePP nKa -kyW +dGq wKe vHf cZd nKa -mPG -ted +lIP +cJX krS -qkc +aOU mbB rDa mrB jQD slc -dMB -rjC +wZu +xza qjF pPO -wbN +qOj iyK -tOO +uzr qQp qQp -lWj +wjD rZm sOO lRD @@ -250678,15 +253458,15 @@ lmA oqc oAD xKX -vep +wvI pBI sCm -gGo -bTQ -xAm -qSC -ldr -oOx +xFf +kdC +kRw +fUW +jeR +pMN mgD oKL elT @@ -250700,21 +253480,21 @@ bln bln bln bln -bln +lSu +dZX dZX dZX dZX dZX -oOO iDp swF osm iqu fcu -uOk +vQz pnR oTS -oPv +uxG iAk mWw hHb @@ -250727,8 +253507,8 @@ pza pza pza pza -rcO -wLK +iHp +cFM mEx ujs mYh @@ -250851,54 +253631,54 @@ gsK kKU kKL cvF -xUt +sQS lli kKL -gDL +tRq iyY tlH -vww +uMW tlH dGO iyg hHq -aNj -xTI +hfd +syC gmW -abm -qyZ +cvH +kbL kKL -emF -pwz +soE +neE kKL kKL -vfw -xqa -rAx -skH -cdX -sHs -xQS +cvn +btK +aUt +vnA +ooG +oUp +syI xbn -tnz -gcf +hJo +vaL gtw -iZD -vrw -sLy +wAJ +aBP +xVo lso qEM pJC nKa -dhk +jWO cDT -iTE +rLL cAI cMN -uYm -kcj +met +idm krS -bna +ljB xtc wxH voj @@ -250908,7 +253688,7 @@ laD xPv mGO tAx -wbN +qOj grT lEo shy @@ -250929,7 +253709,7 @@ sZF sZF wDK npD -tZG +cbC nZH xbC dPj @@ -250939,30 +253719,30 @@ npD npD npD npD -fvX -fvX -cnh -cnh -oSw -ybF +mdI +npD +npD +npD +wvI +fTH wvI wvI wvI wvI vep wvI +mQb bln bln bln bln bln +lSu bln bln bln -bln -bln -bln -bln +mQb +mQb mwo swF eDh @@ -251089,73 +253869,73 @@ wNO wNO wNO wNO -reu -jas -jas -bYx -hzw -ike -jas -bYx -jas -jas -jas -bYx -jas -jas -cQE +hAM +kdS +kdS +eRE +qQk +cvJ +kdS +eRE +kdS +kdS +kdS +dop +kdS +kdS +kdS kKL -aPP +enY kKL kKL -xea -isj -gBs -lyv +eaQ +lqL +aiu +ijd iyY tlH tlH tlH dGO -ubK +brm uRo -aNj -udA +hfd +jDX gmW -gAG -wWB +bkR +pAX kKL -ddJ -rbp +hfg +hQW kKL -eGg -dSY -vlz -vlz -nvc -hXD -mMi -xnc +soR +yfg +odF +lia +dgR +haJ +tYt +nRW gtw -dpa -vlU +aoM +niO gtw -iZD -vrw -krE +wAJ +aBP +kNf lso cbs nGA nKa nTV jPl -bGD +jGJ kXM nKa -xXV +uze eYn wjL -wbN +niU iWP xIW lrc @@ -251165,10 +253945,10 @@ lCC iKl iKl xyc -dVw +sPJ bkV ree -mpR +lOV qQp tQc jbx @@ -251178,12 +253958,12 @@ tQc tQc qQp hRA -lal +dBb rkL cga api sZF -sKf +tKH wRr npD cmw @@ -251191,29 +253971,27 @@ nZH msT npD npD -hRe -hRe +ouW +aQj alq dFA sZF -nBQ -sZF -bln -bln -bln -bln -bln -bln -bln -bln +gTi +emT +wzv +oCE +gcT +gcT +lSu bln bln bln bln +mQb +mQb bln bln bln -uer bln bln bln @@ -251221,6 +253999,8 @@ bln bln bln bln +mQb +mQb swF jsq ben @@ -251346,8 +254126,7 @@ wNO wNO wNO wNO -ngh -bln +chb bln bln bln @@ -251356,50 +254135,51 @@ bln bln bln bln +mQb bln bln bln bln bln kKL -aXv -bSi +fOq +lli kKL -acm +tAN tDy kKL -tts +ftk iyY tlH tlH tlH dGO -nOI +vxW uRo -aNj -xBS +hfd +rsy gmW -akb +oiU xQU kKL kKL -qDk +kuJ kKL -gmt -cgd -kKn -vlz -lMe -gbC -vAW -cki -cki +cqb +aYu +gYT +lia +njj +qEn +tFe +eay +eay gtw gtw aHZ -qWf -vrw -jlT +ehL +aBP +ofl lso qEM xwz @@ -251414,13 +254194,13 @@ gOb gOb aSo aSo -cCD +gLn sZD lnC klc lDM -kNa -ica +dVS +bAj lDM klc rWR @@ -251433,40 +254213,34 @@ laD laD laD xLK -nHX +pDL hRA ist rkL uFz tFV sZF -edT -wRr +ecW +fed npD bPY rwe wGO npD -vMN -hRe -ves -dFA +umD +pgc +dws +dhR iye sZF -lNE -sZF -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln +xkr +gTi +cip +oCE +lSu +mQb +mQb +lSu bln bln bln @@ -251474,7 +254248,13 @@ bln bln bln bln +uer +mQb +mQb bln +mQb +uer +mQb bln bln bln @@ -251492,7 +254272,7 @@ wSw fPZ itl tQM -koX +itl itl qCU vyt @@ -251603,8 +254383,8 @@ wNO wNO wNO wNO -ngh -bln +chb +mQb uei tmR uei @@ -251619,11 +254399,11 @@ uei bln bln kKL -aPP +enY kKL kKL -jRt -fTn +eRf +lfU kKL kKL kKL @@ -251633,30 +254413,30 @@ mMb kKL kKL iyY -fvm +vFT kKL kKL kKL rCf -hlt +uOm kKL -iqA +rsf kKL kKL -tUm +tSF kKL kKL cpY -nvh -hDu -eLv -nbI -oaJ -rqQ -fhS -pAn +twn +nBt +jJQ +rlE +mBL +vjA +uDv +aFh cpY -bao +pxp lso brj mbk @@ -251669,15 +254449,15 @@ lQG oxU pxX bCf -kmf -qOW -hDC +wor +wor +mfX sZD vgx lDM -pjZ -vzN -oXq +dxO +omo +jdm xWT klc uiF @@ -251697,44 +254477,44 @@ lGs rfo vzs sZF -wUb -mlo +sKf +naF npD ebr iJK -iBz +ebr npD -gMT -tFt -hRe +olM +xUW +sKf tbQ -iye +sKf sZF ddA -vjZ -bln -bln -bln +sZF +sZF +sZF bln +quy uer bln +mQb +mQb bln bln bln bln bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln +hPv +ujK +ujK +hBf +eRE +ujK +ujK +ujK +iNl +ujK swF swF swF @@ -251746,7 +254526,7 @@ kCV bkr qOy pbs -rAL +nZN qMH ptY ptY @@ -251754,7 +254534,7 @@ ptY ptY ptY ptY -vyt +dLL vyt vyt vyt @@ -251860,8 +254640,8 @@ wNO wNO wNO wNO -vHT -bln +sAd +tMa uei tmR uei @@ -251876,47 +254656,47 @@ uei bln bln mMb -hAW -jVm -sON -sON +nJK +puz +kSc +kSc lRZ lRZ -ygP +tYS lRZ -wco +vjq lRZ lRZ -wco -leP +vjq +pbS lRZ lRZ -rmR -vXm +iLn +niE bMF -pns -uMj +pJi +ovz kKL -xUt -fKk +sQS +sna kKL -xOE +nFt kKL kKL kKL kKL kKL kKL -nXs +pcM kKL kKL kKL kKL kKL kKL -oFB -opH -oFB +glz +kjN +hAl vBG rMS pKw @@ -251928,16 +254708,16 @@ rZR bCf wor wor -kqN +qxG vFW noW -uvi +nOh bNH bNH rIc -tVB +gpR klc -tDA +ooy gsT eDH iYs @@ -251947,54 +254727,54 @@ dVc nfD sUT bIQ -fFJ +gib hRA npo woa -oiW -kho +uQj +htH sZF -sKf +akd mlo npD -ebr +tMS iJK cpl npD fWL -qUM -fZT +qHt +iiB dFA -axC +nhO sZF -uNw +awO vjZ +mQb bln bln bln bln bln bln +mQb +mQb +mQb bln bln bln +yfW +nTX bln +lSu bln bln bln +uer +mQb bln bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln +mQb +mQb bln oiy oiy @@ -252117,7 +254897,7 @@ wNO wNO wNO wNO -ngh +chb bln uei tmR @@ -252126,7 +254906,7 @@ bln uei tmR uei -bln +mQb uei tmR uei @@ -252134,49 +254914,49 @@ bln bln kKL kKL -tOe -rkm -fEY -nDm -kda +aeS +plI +whe +chc +dDz kKL -xUt -xUt +sQS +sQS lli -xUt +sQS lli kKL -tbK +kRV ssM lli -jRt +eRf kKL kKL kKL kKL lli -xUt +sQS lli -vYY -imk -feV -sus -tIL -nVO +uwE +tnu +eUU +sdf +vmO +eYm kKL tvZ kKL -vEh -nTP -kbu -bcu +kVv +wgo +lcs +eGg kKL -lso +rjP vwO pxn vBG -mQr -idp +ulL +kGm rZZ opc qPI @@ -252185,14 +254965,14 @@ cgs bCf wor wor -apt +kjP amE vgx lDM -kAZ +oXq gUg amv -cTJ +sxs klc aSo aSo @@ -252211,24 +254991,24 @@ tMO tMO tMO sZF -hil +nfF mlo npD wPE iJK pyY npD -vBa -vLo -hyL -tbQ +lYT +waF +jmY +ptp iye sZF -cBn +eZu vjZ +mQb bln -bln -bln +mQb bln bln bln @@ -252239,7 +255019,7 @@ iAf iAf iAf bln -bln +fPc bln bln bln @@ -252374,7 +255154,7 @@ wNO wNO wNO wNO -ngh +chb bln uei tmR @@ -252383,7 +255163,7 @@ bln uei tmR uei -bln +mQb uei tmR uei @@ -252397,8 +255177,8 @@ mMb kKL kKL kKL -qUo -pjM +fsJ +ekj nLY lli gAt @@ -252406,29 +255186,29 @@ kKL lIC lRZ pQa -eDD -nhv +rOv +fuf lli -pAW -jYI -mmf +kDO +wsk +hVR lli -uWf +obt xWM -brC +dku kKL nqn lHA -rfj +ddi kKL tvZ kKL -iYY -iIv -dig -pbF +pdB +oBD +lqM +aYk kKL -rjP +vpx qEM bbM vBG @@ -252455,7 +255235,7 @@ dDw qHz ekE fzo -czF +fGY qaU jtH qpb @@ -252468,16 +255248,16 @@ jDc tMO nMb sZF -qwO +oGN wRr npD ebr hcG -bEH +nZH npD vtr -mmC -iQw +giv +aQj dFA oMs sZF @@ -252485,8 +255265,8 @@ eZu vjZ bln bln -bln -bln +mQb +mQb bln bln bln @@ -252628,10 +255408,10 @@ wNO wNO wNO wNO -reu -xog -xog -raq +hAM +kdS +kdS +nyZ bln uei tmR @@ -252657,33 +255437,33 @@ bxe bxe mHB kKL -gEl +ycO kKL kKL aIE lRZ -cCR +rmP lli -mRN -xUt -gEZ -xUt -gEZ +pKX +sQS +qdq +sQS +qdq lli -gEZ -xUt +qdq +sQS unu -cOQ -vgU -kdw -qpQ +hxa +kXW +saC +xWr kKL tvZ cDw lli lli lli -iXB +nfE kKL cwO vwO @@ -252703,7 +255483,7 @@ ubk ndJ rHz fdY -xuM +vjN wXh xCQ ufN @@ -252717,7 +255497,7 @@ nmC cEo kQJ mFE -dRe +bdT bsi cmy nAN @@ -252725,21 +255505,21 @@ kCo ezf cnb sZF -sKf -wRr +uTV +fed npD npD -czO +nvh npD npD sZF -iqr +fzO sZF sZF sZF sZF eZu -sZF +vjZ bln bln bln @@ -252754,7 +255534,7 @@ weR lQO hJD iAf -bln +mQb bln wNO wNO @@ -252885,7 +255665,7 @@ wNO wNO wNO wNO -ngh +chb bln bln bln @@ -252893,7 +255673,7 @@ bln bln tmR bln -bln +mQb bln tmR bln @@ -252908,41 +255688,41 @@ bln vsI acE acE -wtX -eqJ -ktJ +acE +kXQ +gWV oBQ mHB gUY -rmR +iLn lli kKL kKL lRZ -hfG -xUt -tNb -dge -oBJ -xUt -tNb -rNV -hrA -fkq -vIL -feV -lVN -bBn -bIq +pEc +sQS +wfE +opU +ykd +sQS +wfE +qch +gyd +tTK +aXc +eUU +iCo +kiX +enH kKL tvZ kKL -xGi -fce -jzR +lne +rrg +atI fpA kKL -tXg +rtf qEM lso bGT @@ -252950,11 +255730,11 @@ vBG wvW moG vBG -ayR +rWg oMR -hsC +cNL vBG -uSS +eTY xrb qhN amE @@ -252963,16 +255743,16 @@ klc pgY hXU oRu -hIe +ccR uKj dDw -fWn +fsz qgu tYA vds mrD liz -rKX +txH mFE nEc klk @@ -252982,27 +255762,27 @@ sSj tMO jYy sZF -vwr -wRr -eZu -lcz +jPi +fed +nGv +hQK eZu -rHo +pGG sZF -bFS -eZu +dlS +pZZ xpT hEZ sZF -kCh +lGH eZu sZF sZF vjZ sZF -gar +lSu bln -fBN +xOk vYq iAf tUh @@ -253142,8 +255922,8 @@ wNO wNO wNO wNO -wHr -bln +sAd +ftY cnx tmR tmR @@ -253168,24 +255948,24 @@ kxv fIs kxv jju -lXC +qNZ lFG -rlH +qRo gxh gxh gxh kKL gAt -hfG +pEc gAt -xUt -gPo +sQS +hFm kKL kKL mMb mMb kKL -cjh +xds kKL kKL kKL @@ -253204,16 +255984,16 @@ vwO mqq ivB vBG -loG -iOu +dxq +jAG sZF sZF -puB +jbf sZF sZF sxw ayI -ktD +jdA mSM ozN sZF @@ -253226,10 +256006,10 @@ sZF fLQ mjH qLy -obr -xMM +vds +iCj nqd -ttO +eUN mFE fil pWY @@ -253239,34 +256019,34 @@ oqT tMO vIe sZF -xsA +gWh wRr -dDo +lMa +frz +dhv +pZZ +hLX +pZZ +pZZ sKf -tfG -eZu -iaz -eZu -sZF -nGk eGK sZF -eZu -eZu +cXR +aTc xpT bdx sKf cmq -gar -bln +lSu bln +lSu vYq fWS weR jdJ xVO jAQ -bln +mQb bln bln bln @@ -253399,8 +256179,8 @@ wNO wNO wNO wNO -ngh -bln +chb +mQb bln bln bln @@ -253422,7 +256202,7 @@ bln sEB acE acE -het +acE lQf swt xTp @@ -253430,41 +256210,41 @@ pDQ xBL wJM wJM -rlH +qRo kKL dnL -hfG +pEc kKL pVl kKL kKL -kbp +xUd tlH tlH kKL -diK +rEM kKL tlH tlH bln kKL -emx -vIL -fOg -kQH -snR +dYS +aXc +amW +qmq +kWV asg kKL kdF qGV hUx -bSC +xVv sZF sZF sZF sZF sZF -sKf +ayd wEV sKf sZF @@ -253472,7 +256252,7 @@ sZF sZF sZF lpC -uWp +sZF sZF pwV pwV @@ -253498,32 +256278,32 @@ sZF sZF hEZ mlo -fUx -sKf +lCc +lRK +xKx +bHc sZF sZF sZF sZF sZF sZF -sZF -sZF -eZu +sVA sZF sZF sZF vjZ sZF -gar +lSu bln -fBN +xOk vYq iAf qPY tUh xVO jAQ -bln +mQb bln bln bln @@ -253656,15 +256436,15 @@ wNO wNO wNO wNO -dqA -jas -jas -nIe +fYT +kdS +kdS +wSp bln uei tmR uei -bln +mQb uei tmR uei @@ -253690,7 +256470,7 @@ bqe gxh kKL hOu -hfG +pEc hJx lli fAF @@ -253699,7 +256479,7 @@ kKL mMb mMb kKL -cjh +xds kKL mMb mMb @@ -253715,7 +256495,7 @@ kKL xcy rvZ hUx -veq +cie aLX vng gNT @@ -253731,7 +256511,7 @@ xwM daR mQg lRW -hkt +qDm hkt hkt hkt @@ -253750,28 +256530,28 @@ sWs sXK xTQ sWs +rzV sWs sWs -sWs -sWs +rzV xTQ vwN +rzV +rzV +rzV +vtO sWs sWs sWs sWs -leE -sWs -sWs -sWs +skI osn -osn -cmv +nzN ktf sZF bln -bln -bln +mQb +mQb bln bln bln @@ -253781,7 +256561,7 @@ jAQ iAf iAf bln -bln +mQb bln bln wNO @@ -253916,7 +256696,7 @@ wNO wNO wNO wNO -ngh +chb bln uei tmR @@ -253944,47 +256724,47 @@ cvF lli kKL mwu -rlH +qRo kKL kKL -gRL +lwI kKL jhS tOX kKL -kaI -xIh -wvJ +hVz +uUp +khs kKL -cjh -emx -fOg -fOg -fOg -fOg -maw +xds +dYS +amW +amW +amW +amW +rkh igX igX kKL -neQ +mVS kKL kKL kKL fyZ hUx -veq +cie sZF eFS sZF sZF sZF sZF -npD +sZF eZi sKf mFj npD -bEo +eMn sou mZH sZF @@ -254000,32 +256780,33 @@ sKf sKf sKf ktf -dPP -sKf +tEe sKf sKf +lVS oLn -pqK +jgL gCu -jGY -wrU +elE +xJv +bge sKf +jgL sKf -sKf -yfS -mFj +jgL xpT -jPi -hil -ktf -sKf sKf +ktf +mFj sKf +jgL sKf sKf +jgL wRr wEV sZF +mQb bln bln bln @@ -254034,11 +256815,10 @@ bln bln bln bln +fPc +mQb bln -bln -bln -bln -bln +mQb bln bln wNO @@ -254173,12 +256953,12 @@ wNO wNO wNO wNO -ngh -bln +chb +mQb uei tmR uei -bln +mQb uei tmR uei @@ -254204,16 +256984,16 @@ qqB gxh kKL weF -hfG +pEc kKL moF cjI kKL pQa -erq -erq -oPw -srU +wWo +wWo +oPO +jPq xWM kKL kKL @@ -254223,18 +257003,18 @@ kKL kKL kKL kKL -nLs +meZ aJG sQE hwE hwE cMe -veq +cie uvt tlP wIg vzX -bJJ +gAz cyX sZF npD @@ -254242,7 +257022,8 @@ npD npD npD npD -mSv +hTu +npD npD npD npD @@ -254260,8 +257041,7 @@ npD npD npD npD -tvx -qNX +gDE npD npD npD @@ -254287,14 +257067,14 @@ bln bln uer bln +mQb bln bln bln bln -bln -bln -bln -bln +yfW +mQb +uer bln bln bln @@ -254430,8 +257210,8 @@ wNO wNO wNO bln -vHT -bln +sAd +tMa uei tmR uei @@ -254461,12 +257241,12 @@ hJx qFW kKL hOu -hfG +pEc hJx mzM hUi kKL -uar +eqP unu kKL kKL @@ -254480,13 +257260,13 @@ jSC bdS dtb hUD -bOh +nNi rvZ lso lso rCu cYE -tCG +hZT idi cZU kBl @@ -254498,8 +257278,8 @@ awK ppQ mrA mtI -axc -wgR +dAh +mYp owC tsr moL @@ -254508,12 +257288,12 @@ wHc aEA dng dAB -ily -ily -ily -ily -ily -ily +rHi +rHi +rHi +rHi +rHi +rHi qLY pnA qFp @@ -254541,15 +257321,15 @@ pHR wEV vjZ bln +mQb bln bln +mQb +mQb bln -bln -bln -bln -bln -bln +mQb uer +fPc bln bln bln @@ -254687,7 +257467,7 @@ wNO wNO wNO bln -vnS +uap bln uei tmR @@ -254718,13 +257498,13 @@ lli gxh kKL kKL -hfG +pEc kKL kKL kKL kKL kIl -nNI +cqN kKL eIk xry @@ -254739,11 +257519,11 @@ qMm hUD sOH hUx -rek +igt rek hUx rNQ -tCG +hZT idi aID gky @@ -254753,24 +257533,24 @@ cgZ uvt iBa pra -dyW +axZ mtI lUf keZ owC -jIP +pXt qOH -veX +jIP wHc -fPO +sgL pTU itt -ily -ily -ily -ily -ily -ily +rHi +rHi +rHi +rHi +rHi +rHi qLY baF fvk @@ -254799,16 +257579,16 @@ wEV vjZ bln bln +mQb bln bln +mQb bln +mQb bln -bln -bln -bln -bln -bln -bln +fPc +mQb +mQb bln bln bln @@ -254944,7 +257724,7 @@ wNO wNO wNO bln -ngh +chb bln bln bln @@ -254996,11 +257776,11 @@ qMm hUD pyJ lPh -rBp +hUD hUD ebb cYE -tCG +hZT idi aID ddk @@ -255015,19 +257795,19 @@ mtI uxj eNK owC -wAx +xGA jTZ -ftt +xGA wHc -oMT +xKk emK uvU -ily -ily -ily -ily -ily -ily +rHi +rHi +rHi +rHi +rHi +rHi qLY oCA fvk @@ -255048,22 +257828,22 @@ tgx tgx tgx tgx -ctF -tmR +qLY +xSE sZF rzL gea sZF +mQb bln +mQb bln bln bln bln +mQb bln -bln -bln -bln -bln +pMM bln bln bln @@ -255201,28 +257981,28 @@ wNO wNO wNO wNO -dqA -jas -jas -bYx -jas -jas -jas -bYx -jas -jas -wQN -bYx -jas -jas -jas -bYx -jas -nMD -bYr -bYx -jas -ike +fYT +kdS +kdS +eRE +kdS +kdS +kdS +eRE +kdS +kdS +xFn +eRE +kdS +kdS +kdS +eRE +kdS +gSd +lej +eRE +kdS +lVr kKL hTB sRI @@ -255255,9 +258035,9 @@ nVr wFO bzA hUD -lso +eaT byK -hMs +sDd bRd fqQ wIg @@ -255296,13 +258076,13 @@ hfc ocD diL qVz -pNY -edp -dcr -aRl -bCL -ofr -sBx +luD +tfl +dXI +pTT +eLm +jVs +hfc hfc jCE adY @@ -255311,19 +258091,19 @@ sZF pHR wEV sZF +mQb +uer +mQb +mQb +ntK bln bln +mQb bln +yfW +nwD bln -bln -bln -bln -bln -bln -bln -bln -bln -bln +mQb bln bln wNO @@ -255496,7 +258276,7 @@ kKL kKL gkP kKL -wKY +ilq eSn bJQ qCA @@ -255514,7 +258294,7 @@ vfo hUD lso cYE -nYY +fkw ult bsG wGF @@ -255539,7 +258319,7 @@ mfV xpA uHc cpg -gUX +gRA cpg cdl pMF @@ -255555,11 +258335,11 @@ dbr aFJ xJj xJj -lvh +klW iVT ogl -ffz -bzB +eyR +goe diL vTJ apT @@ -255568,20 +258348,20 @@ vjZ laf wEV vjZ +mQb bln bln +mQb +uer bln bln +mQb +mQb +fPc bln bln -bln -bln -bln -bln -bln -bln -bln -bln +mQb +uer bln wNO wNO @@ -255753,7 +258533,7 @@ nqn kKL gkP kKL -yfY +tgv huB ogd hff @@ -255771,7 +258551,7 @@ cLJ iQQ lso cYE -uIS +gAZ ult wjz tXh @@ -255783,7 +258563,7 @@ pKJ rIU tLM mtI -vtA +nRX sfY owC bYS @@ -255797,7 +258577,7 @@ jbU jbU jbU jbU -bFr +bkQ drr qhL qhL @@ -255827,18 +258607,18 @@ wEV vjZ bln bln +uer +mQb bln +mQb bln bln +mQb +fPc bln bln -bln -bln -bln -bln -bln -bln -bln +mQb +mQb bln wNO wNO @@ -256006,11 +258786,11 @@ tml kKL kLb qpd -oNy +obl kKL gkP kKL -flV +sTA ivH lVF pup @@ -256028,7 +258808,7 @@ bwl hUD uff cYE -hXt +gAZ ult hpC rIU @@ -256038,10 +258818,10 @@ irA uzi pdy fiS -uTL +agJ mtI -nRX -jVL +vtA +muP owC owC owC @@ -256050,8 +258830,8 @@ wHc mYq nyH lFW -rEd -pZA +jzH +mde gSN jbU wnX @@ -256061,10 +258841,10 @@ pvB ehd ehd ehd -wmX +ehd ooo rtn -qEv +huq vDu lva lva @@ -256083,15 +258863,15 @@ pHR wEV vjZ bln +uer bln +mQb +mQb +mQb bln bln bln -bln -bln -bln -bln -bln +yfW bln bln bln @@ -256272,7 +259052,7 @@ bla sil hUD hUD -fgm +pGT qok iZn xzd @@ -256285,7 +259065,7 @@ wND iQQ rvZ cYE -uIS +aPl ult vuq tfM @@ -256318,13 +259098,13 @@ wve hfc hfc hfc -iWI -kRI -nXp -gvM -kva -oXT -uPa +mns +hEP +wGt +dAl +hWt +ocJ +mBs ccQ aCb wAY @@ -256340,6 +259120,7 @@ pHR wEV sZF bln +mQb bln bln bln @@ -256347,9 +259128,8 @@ bln bln bln bln -bln -bln -bln +fPc +mQb bln bln bln @@ -256528,7 +259308,7 @@ kCg gjc bLQ vaE -tSt +hUD hUD hUD hUD @@ -256540,9 +259320,9 @@ sEi sEi naP hUD -jed -iIk -jed +tRo +iQa +tRo ult ult wBk @@ -256568,7 +259348,7 @@ gaT bZc qlO jbU -ily +hzb hdH qhL dkK @@ -256590,25 +259370,25 @@ vVP vVP vVP vVP -ctF -tmR +qLY +xSE sZF pHR wEV sZF +mQb +mQb bln -bln -bln -bln +uer bln vzD vzD vzD gQw gQw -vsI -bln +oMa bln +uer bln bln wNO @@ -256781,13 +259561,13 @@ lIC lli unu kKL -hno +nMT poy poy -vvJ +nRV hUD -ybr -bpL +ygf +dsZ pIw hUD ktz @@ -256800,7 +259580,7 @@ iQQ lso rNQ lso -aop +pkg yar mdl rIU @@ -256821,9 +259601,9 @@ jbU pEE cAG nbq -hAq -nDB -nfW +iNY +kiQ +xGK jbU lhu hdH @@ -256854,8 +259634,8 @@ wRr wEV vjZ bln -bln -bln +uer +mQb bln bln vzD @@ -256863,8 +259643,8 @@ oIR vzD jCl kir -sEB -bln +qVo +lSu bln bln bln @@ -257038,7 +259818,7 @@ bcC eFO unu kKL -hno +tUO poy poy vvJ @@ -257058,7 +259838,7 @@ dFO cYE lso hDb -azU +exm nIl nVC abM @@ -257075,10 +259855,10 @@ ujP htO sqn jbU -iyP +gEy dUe ank -wgH +baX fUM wlW jbU @@ -257111,17 +259891,17 @@ wRr sKf vjZ bln -bln -bln -bln +mQb +mQb +mQb bln vzD vzD vzD kir vzD -sEB -bln +rwt +mQb bln bln bln @@ -257295,12 +260075,12 @@ weF fMc aME kKL -qLf +kIr poy poy -lNk +tav hUD -nbL +uZu rGd whC hUD @@ -257320,8 +260100,8 @@ gqK nxU gjg dxg -gJi -fVC +ivG +aYi dkr cHQ jDm @@ -257335,11 +260115,11 @@ jbU anP cRK uMK -udQ +rep oMT -qwJ +ppz jbU -whc +uQR iZQ llw aus @@ -257377,9 +260157,9 @@ ydh dFG uZc gQw +mQb bln -bln -bln +lSu bln bln wNO @@ -257552,7 +260332,7 @@ nLY lli aME kKL -ttv +ptS poy poy hUe @@ -257595,23 +260375,23 @@ pbQ pbQ pbQ pbQ -eQQ +jbU lKq pMY kLy bGA lKq -bNu -hUf -bKm +tYW +oYn +cfR xMT hjE -sJP +lqN bkS pJc iBO -tPx -trn +xfp +agd bgx buv jhC @@ -257634,9 +260414,9 @@ uZc cDk sGZ gQw -bln -bln -bln +mQb +mQb +lSu bln bln wNO @@ -257801,15 +260581,15 @@ iwO uYR kKL kKL -tfu +kKL aMa -tfu kKL kKL -xUT +kKL +iVD uZn kKL -ttv +ptS prg prg caY @@ -257820,7 +260600,7 @@ gEE gEE gEE oNC -gEE +nmD gEE gEE tva @@ -257834,7 +260614,7 @@ sxZ oOo xvy wLl -axc +tKD oLg eLr wtT @@ -257842,10 +260622,10 @@ mbK jQS eNK aYJ +jpN aYJ aYJ -aYJ -bXL +dwZ eLr eaa via @@ -257853,15 +260633,15 @@ aYJ lAw aYJ aYJ -aYJ +wib eLr hAm via via tPz iRN -via -ojP +odR +leo qFt pTY lcu @@ -257892,7 +260672,7 @@ gTq fNa gQw bln -bln +mQb bln bln bln @@ -258066,9 +260846,9 @@ kKL pzV uZn kKL -xXU -spW -kVE +jbz +nKb +god xse iQQ gEE @@ -258091,7 +260871,7 @@ pJV mZG mZG qEZ -axc +urk dFW aYJ aYJ @@ -258099,10 +260879,10 @@ aYJ aYJ wUt urK -urK +mNt nJT urK -xjs +urK urK iRx pJV @@ -258117,8 +260897,8 @@ pJV pJV pJV aYJ -aYJ -sSE +cTR +leo wOX efk jTr @@ -258149,6 +260929,7 @@ gQw gQw vzD bln +lSu bln bln bln @@ -258211,7 +260992,6 @@ wNO wNO wNO wNO -wNO "} (181,1,3) = {" wNO @@ -258314,11 +261094,11 @@ kKL kKL kKL kKL -qAS +cDv fUc jaX glI -gZR +mRY kKL kKL mbG @@ -258328,7 +261108,7 @@ hUD hUD hUD hUD -gEE +cEz gEE gEE gEE @@ -258342,13 +261122,13 @@ gqj emp cYE lso -kvG +qbp wLl -qXp +qfA uxA pUn wLl -dzg +jYF fXr dFj dFj @@ -258356,26 +261136,26 @@ uZB oni nxa qwN -tkS +cLK +dFj dFj dFj -gwm dFj -niC +xnM xnM xnM fLl wMm +xnM wqb -niC xnM xnM xnM xnM lYg xYj -pIt -kfZ +kkX +leo qFt bYu qkH @@ -258406,6 +261186,9 @@ bln bln bln bln +lSu +bln +lSu bln bln bln @@ -258466,9 +261249,6 @@ wNO wNO wNO wNO -wNO -wNO -wNO "} (182,1,3) = {" wNO @@ -258571,15 +261351,15 @@ iSQ qji pyD kKL -mqO +gCs fUc sBi xYA ldi lUC -vhm +cZc oLG -jbu +eQF oxV oxV jbG @@ -258610,31 +261390,31 @@ wnT wnT oHK oHK -cbF -dEC +xer +wKi oHK oHK -vjj -fLU -vjj -vjj -wLl -wol +umv +cPt +nOa hnP -gPE -bpD -wLl -wLl -wLl -wLl -wLl -wLl -wLl -wLl -wLl -wLl +nsZ +fki +iIJ +hYE +iIJ +dia +nsZ +nsZ +uoC +nsZ +uoC +nsZ +nsZ +nsZ +nsZ hjE -vWo +xSg fOl cyL jAI @@ -258660,8 +261440,12 @@ bRz vzD bln bln +mQb bln bln +mQb +uer +lSu bln bln bln @@ -258669,12 +261453,8 @@ bln bln bln bln -bln -bln -bln -bln -bln -bln +wNO +wNO wNO wNO wNO @@ -258858,12 +261638,12 @@ cYE lso pHX nDd -qWh -lmY -haQ +soz +faq +ofi snI bZQ -elf +gSq ojF rQW ftN @@ -258871,26 +261651,26 @@ bxP vvE tJG oHK -goq -wnp -kdJ -usP -wLl +hJH +hJH +tPL +eOx +nsZ nsZ uoC -rhi +gzH uoC nsZ -iqx -awa -awa -awa -awa -xUk +nsZ +fFQ +igd +mzg +tIq +tIq cQs bdQ nsZ -bkF +pnK cSw cmx yeC @@ -258915,11 +261695,10 @@ lEz kPw dAx gQw -bln -bln -bln -bln -bln +mQb +mQb +uer +mQb bln bln bln @@ -258983,6 +261762,7 @@ wNO wNO wNO wNO +wNO "} (184,1,3) = {" wNO @@ -259086,7 +261866,7 @@ fLb oHh kKL bpQ -bsc +kcT oih dmL lUC @@ -259128,22 +261908,22 @@ vaA gXJ wgU oHK -pnq -xsD -rDH -pvU -wLl -jUX +nWe +hJH +tPL +oiZ +nsZ +izD wbR -uXh -tur -aJz -iqx -awa -awa -awa -awa -xUk +djG +eqj +bjI +tqs +sqt +sqt +sqt +sqt +sqt aWg xgK nsZ @@ -259162,7 +261942,7 @@ lXi vzD vzD vzD -hto +vzD jOj vzD daT @@ -259172,14 +261952,13 @@ lbf esF bRz gQw +mQb bln bln bln bln -bln -bln -bln -bln +lSu +mQb bln bln bln @@ -259240,6 +262019,7 @@ wNO wNO wNO wNO +wNO "} (185,1,3) = {" wNO @@ -259342,11 +262122,11 @@ eOm kKL kKL kKL -dvS +mly pwd glI tsR -gZR +mRY lUC tXV kvX @@ -259356,7 +262136,7 @@ qrQ wrX wrX wrX -gEE +cEz gEE gEE gEE @@ -259370,9 +262150,9 @@ urw emp bvI lso -mtT -pLa -jJF +cUB +nYm +mNi yeB uuC hDb @@ -259387,20 +262167,20 @@ hhP oHK iZl iZl +sVi iZl -iZl -wLl -tur +nsZ +fBJ +tkp tur -eqj -eqj -oro -iSk -awa -awa -awa -awa -xUk +bjL +sjl +fZy +fZy +fZy +fZy +fZy +gPC wvz srW nsZ @@ -259430,14 +262210,13 @@ bRz bVL vzD bln +fsm bln bln +uer bln bln -bln -bln -bln -bln +lSu bln bln bln @@ -259497,6 +262276,7 @@ wNO wNO wNO wNO +wNO "} (186,1,3) = {" wNO @@ -259603,11 +262383,11 @@ pfP apD ugG gIt -fkc +mnW lUC ccT nyC -opw +eUz oTA oTA hIN @@ -259645,13 +262425,13 @@ aju gPY qWu fbl -foy -krY -awa -awa -awa -awa -jvc +rlu +nsZ +mFb +aHX +aHX +aHX +xgF awa awa awa @@ -259667,7 +262447,7 @@ ihu epH rDZ rDZ -tBP +ePu rDZ rDZ bgx @@ -259686,17 +262466,17 @@ gQw gQw vzD vzD +lSu bln bln bln +lSu bln bln bln bln -bln -bln -bln -bln +lSu +lSu bln bln bln @@ -259862,7 +262642,7 @@ lUC lUC lUC lUC -daX +wrX pxi wrX tLQ @@ -259876,7 +262656,7 @@ gEE gEE iKQ cpq -gEE +ueF gEE gEE tva @@ -259902,13 +262682,13 @@ wgO fTT bUa wgL -phB -krY +bhm +nsZ +awa awa awa awa awa -jvc awa awa awa @@ -259918,7 +262698,7 @@ xUk aSB tHT nsZ -lHm +vmK oZn sFj rck @@ -259939,22 +262719,22 @@ vzD vzD bln bln +mQb bln bln -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -mVm -tCr -tCr -tCr -tCr -tCr +fYT +eRE +ujK +ujK +eRE +wOq +eRE +ujK +ujK +eRE +lej +lej +hAM bln bln bln @@ -260119,8 +262899,8 @@ tlH tlH tlH nXb -ngY -iQt +wrX +tuQ oHH tAA efH @@ -260141,31 +262921,31 @@ jbG nzV cYE dfB -wck +ymj pFg hXC -mrw +qad kuV cAi qWn -nQq +dik fOR tFF tia qNn -hek +uIQ gNi -krY -clo +oHK +dUh bUa fbl -nHf -krY +aDr +nsZ +awa awa awa awa awa -jvc awa awa awa @@ -260175,13 +262955,13 @@ xUk sqt duE nsZ -ijW -xsP -rms -sXC +xDa +abT +jJZ +tuy rDZ rDZ -rnu +mBk rDZ rDZ bgx @@ -260195,8 +262975,8 @@ vzD bln bln bln -bln -bln +mQb +uer bln bln bln @@ -260211,8 +262991,8 @@ bln bln bln bln -tCr -bln +chn +lSu bln bln bln @@ -260377,27 +263157,27 @@ tlH tlH nXb wrX -xun +iqW wrX oHH oHH oHH oHH qPL -nCa +qiL erI gGE qPL -pRG -mtN +pdD +asv dFt vHI vHI dFt dFt -jub -hQO -cMv +fdj +lah +asU qPL elw elw @@ -260414,15 +263194,15 @@ mEJ mEJ krY srP -pGp +rou lIk srP -krY +nsZ +awa awa awa awa awa -jvc awa awa awa @@ -260450,10 +263230,10 @@ vzD vrO vzD bln +mQb bln -bln -bln -bln +mQb +mQb bln bln sUN @@ -260468,8 +263248,8 @@ sUN tmR sUN bln -tCr -bln +sFJ +nwD bln bln bln @@ -260651,7 +263431,7 @@ gVt pCI pCI vsM -vns +avc nfB cMJ eBg @@ -260659,7 +263439,7 @@ kCs omh peV elw -tZe +oOc nvY qpu oPP @@ -260674,12 +263454,12 @@ vJS bUa ubY qHn -krY +nsZ +awa awa awa awa awa -jvc wQY nmz nmz @@ -260707,11 +263487,11 @@ jCl vpg gQw bln +uer bln bln -bln -bln -bln +mQb +ntK bln sUN tmR @@ -260724,8 +263504,8 @@ bln sUN tmR sUN -bln -tCr +hty +uap bln bln bln @@ -260931,20 +263711,20 @@ ciS bUa jPx jxb -luJ -bEJ +dqI +oEE bEJ mXe bEJ qbb -piM -hLO -hLO -hLO -hLO -uAx -pFl -cyG +miK +xRv +xRv +xRv +xRv +goy +hWD +oiI nsZ uCJ hjE @@ -260963,17 +263743,17 @@ vrO vrO vrO gQw +mQb +ntK +mQb bln bln -bln -bln -bln -bln +mQb bln sUN tmR sUN -bln +mQb sUN tmR sUN @@ -260982,7 +263762,7 @@ sUN tmR sUN bln -tCr +dzZ bln bln bln @@ -261147,7 +263927,7 @@ tlH tlH tlH nXb -tlH +oFc tlH tlH tlH @@ -261187,18 +263967,18 @@ gpj oQn iBl pLr -hRF -krY +mKO +sPq xLq xLq aoo vIg -ykE +jED qEV -wpi -gZx -tIq -tIq +cRq +qVZ +ybf +ybf vaa xLq xLq @@ -261222,15 +264002,15 @@ pxQ vzD bln bln +mQb bln bln -bln -bln +uer bln sUN tmR sUN -bln +mQb sUN tmR sUN @@ -261239,7 +264019,7 @@ sUN tmR sUN bln -bln +chb bln bln bln @@ -261313,7 +264093,7 @@ wNO wNO wNO wNO -khz +pUa wNO vbG hHG @@ -261445,22 +264225,22 @@ fbl eIC trK qEz -krY -xLq +nsZ +vyz xLq kvR -rYZ +qVZ kgo sCx -gWr iHc -ybf -gXv +qVZ +nQj +auK vaa xLq -grs +xLq nsZ -pdO +ufb dDm rDZ rDZ @@ -261496,10 +264276,10 @@ sUN tmR sUN bln -bln -tCr -tCr -tCr +rdJ +ujK +lej +hAM bln bln wNO @@ -261572,14 +264352,14 @@ wNO wNO wNO wNO -kPS +dHF hHG hHG hHG -khz +pUa wNO wNO -khz +pUa wNO wNO wNO @@ -261669,7 +264449,7 @@ tlH tlH sEB qPL -qgn +nbK vXy ixv qPL @@ -261702,7 +264482,7 @@ gVe whP mOc gYt -krY +nsZ oOb ezJ iba @@ -261710,18 +264490,18 @@ gas rjK nlP xTV -imy -dHM +rGY +nzA auK vaa xLq xLq nsZ rDZ -pxu +rDZ rDZ swa -pxu +rDZ rDZ bgx vzD @@ -261731,10 +264511,10 @@ vzD geJ sMo bgx -tfm +rkH qbh oGm -axy +mJq mJq mJq sEB @@ -261748,15 +264528,15 @@ bln bln tmR bln -bln +mQb bln tmR bln bln +fsm +mQb bln -bln -bln -tCr +vap bln bln wNO @@ -261830,8 +264610,8 @@ wNO wNO bln bln -xDQ -xDQ +wDS +wDS bln bln bln @@ -261948,21 +264728,21 @@ fTW dxm sHM elw -aFt +cIb hAT xyE hDp -kjr +hDp elw omh omh omh omh -cbq +eHV elw nsZ nsZ -vdM +qaz nsZ nsZ bgx @@ -262013,8 +264793,8 @@ tmR tmR cnx bln -tCr -bln +sFJ +tMa bln wNO wNO @@ -262087,8 +264867,8 @@ wNO wNO bln bln -wUD -wUD +vOy +vOy bln bln bln @@ -262205,17 +264985,17 @@ dbw omh sHM elw -sVf +jqw axN qvE nhI hDp elw -uKx +qrP rpV fTW bwM -hds +xGx lEv clV wmG @@ -262223,12 +265003,12 @@ jLW nkh tLT wvv -fHC +lEP lEP oEj xmR oEj -oEj +ohU oEj myO oEj @@ -262243,12 +265023,12 @@ oEj xmR oEj dww -dFZ -mbT -nBB +ygm +bgx +qUQ xQh xCz -mjt +mJq mJq mJq vsI @@ -262267,10 +265047,10 @@ bln tmR bln bln +mQb bln bln -bln -tCr +vap bln bln wNO @@ -262344,8 +265124,8 @@ wNO wNO bln bln -rPp -rPp +dTI +dTI bln bln bln @@ -262438,7 +265218,7 @@ bln bln bln bln -sEB +miY tpd wwI tPY @@ -262468,23 +265248,23 @@ elw elw elw elw -rft +lxR icE idt -fMq -pSz +nCd +bXD elw -pbH +puY opN faG -kdo +tKO hyV bgx -gti -bhk -cYI -jCl +tHw +tVx +ltP jCl +uZc jCl jCl vzD @@ -262510,7 +265290,7 @@ bln bln bln bln -bln +mQb bln sUN tmR @@ -262524,10 +265304,10 @@ sUN tmR sUN bln -bln -tCr -tCr -tCr +cIf +lej +ujK +fYT bln bln wNO @@ -262695,7 +265475,7 @@ bln bln bln bln -sEB +miY tpd hOt ejn @@ -262715,10 +265495,10 @@ udw jZM sEB omh -amK +jrX omh sED -xSw +gjM upv gjM gjM @@ -262727,24 +265507,24 @@ gjM tIW gjM aUl -xnt -egR +lmx +mHq pSz elw -gEe +pIu mEU enq -kuy +nkH qQa bgx gti -lOq +wpn jCl xWo axu bFq jCl -jCl +uZc jCl jtn jCl @@ -262762,13 +265542,13 @@ bln bln bln bln +chb +mQb +uer +mQb bln -bln -bln -bln -bln -bln -bln +nEa +mQb sUN tmR sUN @@ -262781,8 +265561,8 @@ sUN tmR sUN bln -bln -bln +chn +lSu bln bln bln @@ -262854,17 +265634,17 @@ wNO wNO wNO wNO -khz +pUa wNO -aaX +qzn vbG hHG hHG hHG -khz +pUa wNO wNO -khz +pUa wNO wNO wNO @@ -262952,22 +265732,22 @@ bln lSu lSu bln -sEB +miY +tpd tpd tpd -ljj qKq -qmV +qPL fPX -xdM +dFt jZM dFt jZM -xdM +dFt nJo -hdz +dFt quK -xdM +dFt jZM jZM sEB @@ -262978,15 +265758,15 @@ omh omh omh omh -omh -fTW +cNe +dbw rpV jYc fTW cJs fTW -fTW -omh +tlf +pSz elw mWf mWf @@ -262994,7 +265774,7 @@ mWf hyV trm bgx -vzD +gti vzD vzD vzD @@ -263012,24 +265792,24 @@ twZ bMb rEU vXd -jCl +uZc mwQ vzD bln bln bln bln +pMM bln +mQb bln bln -bln -bln -bln -bln +uer +mQb sUN tmR sUN -bln +mQb sUN tmR sUN @@ -263038,10 +265818,10 @@ sUN tmR sUN bln -tCr -bln +ebW bln bln +lSu bln bln wNO @@ -263113,7 +265893,7 @@ wNO wNO wNO wNO -fhB +liV vbG hHG hHG @@ -263209,50 +265989,50 @@ bln bln bln bln -vsI -sEB -sEB +hMM +ooL +ooL jZM xVG jZM xVG jZM -sEB -gZa -sEB +ooL +ooL +ooL jZM xVG jZM xVG jZM -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB +ooL +ooL +ooL +ooL +ooL +ooL +ooL +ooL +ooL +nXb +buU omh skW omh omh omh -omh skW omh +pSz omh -bln -bln -bln -bln +ooL +ooL +ooL hyV trm bgx -bln -bln +gti +vzD bln bln bln @@ -263264,9 +266044,9 @@ bFq jCl nuj jCl -gUT -jCl -jCl +mEz +uZc +uZc syT vzD jCl @@ -263276,12 +266056,12 @@ bln bln bln bln +chb bln bln bln bln -bln -bln +mQb bln sUN tmR @@ -263290,15 +266070,15 @@ bln sUN tmR sUN -bln +mQb sUN tmR sUN bln -tCr -bln +chb bln bln +lSu bln bln wNO @@ -263491,25 +266271,25 @@ bln bln lSu lSu -bln +nXb +omh omh -fTW xTy qNV rCT xTy qNV -mhq omh -bln +omh +omh bln bln bln hyV fiU bgx -bln -bln +vzD +vzD bln bln bln @@ -263533,12 +266313,12 @@ bln bln bln bln -bln -bln -bln -bln -bln -mVm +obe +ujK +eRE +ujK +ujK +dMo bln sUN tmR @@ -263552,8 +266332,8 @@ sUN tmR sUN bln -tCr -bln +sFJ +tMa bln bln bln @@ -263727,19 +266507,19 @@ bln lSu bln dFt -kAm +tsP jZM -gBI +vYw dFt -bln +tMa bln bln dFt -kAm +tsP jZM -gBI +vYw dFt -bln +tMa bln bln bln @@ -263758,13 +266538,13 @@ vJk vJk qbW omh +hZN bln bln bln bln bln -bln -bln +hZN bln bln bln @@ -263781,7 +266561,7 @@ bln bln bln vzD -caU +lPq vzD bln bln @@ -263795,9 +266575,7 @@ bln bln bln bln -tCr -bln -bln +chb bln bln bln @@ -263809,9 +266587,11 @@ bln bln bln bln -mVm bln bln +vap +lSu +lSu bln bln bln @@ -263970,137 +266750,137 @@ wNO wNO wNO wNO -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -jZM -xVG -jZM -xVG -jZM -bln -bln -bln -jZM -xVG -jZM -xVG -jZM -bln -bln -bln -bln -bln -bln -bln -bln -bln -lSu -mLJ -bqY -qXf -tQX -wLk -nXg -tRX -drm -omh -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -vzD -ltk -vzD -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -tCr -bln -bln -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +jZM +xVG +jZM +xVG +jZM +bln +bln +bln +jZM +xVG +jZM +xVG +jZM +bln +bln +bln +bln +bln +bln +bln +bln +bln +lSu +mLJ +bqY +qXf +tQX +wLk +nXg +tRX +pIy +omh +bln +bln +bln +bln +bln +lSu +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +vzD +ltk +vzD +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +obe +lej +iNl +ahG +ujK +ujK +lej +eRE +lej +ujK +ujK +eRE +wvw +ujK +bFP +lSu +bln +bln +bln +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO +wNO wNO wNO wNO @@ -264242,18 +267022,18 @@ bln bln jZM oeh -kLs +jZM vmR jZM -bln +htd bln bln jZM vmR -kLs +jZM woU jZM -bln +htd bln bln bln @@ -264277,6 +267057,7 @@ bln bln bln bln +lSu bln bln bln @@ -264293,10 +267074,9 @@ bln bln bln bln -bln -vsI -sEB -sEB +hMM +ooL +rwt bln bln bln @@ -264328,7 +267108,7 @@ bln bln ozo bln -bln +wNO wNO wNO wNO @@ -264487,7 +267267,7 @@ wNO wNO wNO bln -fBN +xOk bln bln bln @@ -264518,23 +267298,23 @@ bln bln bln bln -fBN -bln -bln +xOk +lSu +lSu cSx -vyU -vyU +pXY +pXY xuR vyU -vyU -uOE -bln -bln +pXY +oOB bln +lSu bln bln bln bln +lSu bln bln bln @@ -264585,7 +267365,7 @@ bln bln bln bln -bln +wNO wNO wNO wNO @@ -264778,12 +267558,12 @@ bln bln bln bln -nRV -vyU -vyU -vyU -vyU +lqE vyU +pXY +pXY +pXY +pXY fcP bln bln @@ -264791,6 +267571,7 @@ bln bln bln bln +lSu bln bln bln @@ -264840,9 +267621,8 @@ bln bln bln bln -bln -bln -bln +wNO +wNO wNO wNO wNO @@ -265095,11 +267875,11 @@ bln bln bln bln -bln -bln -bln -bln -bln +wNO +wNO +wNO +wNO +wNO wNO wNO wNO @@ -265562,7 +268342,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -265772,8 +268552,7 @@ wNO wNO wNO bln -fBN -bln +xOk bln bln bln @@ -265803,8 +268582,8 @@ bln bln bln bln -fBN bln +xOk bln bln bln @@ -265820,6 +268599,7 @@ bln bln bln bln +lSu bln wNO wNO @@ -266076,7 +268856,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -266847,7 +269627,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -266954,9 +269734,9 @@ wNO (215,1,3) = {" wNO wNO -wNO -wNO -tNN +bln +bln +fwx kDs kDs kDs @@ -267057,8 +269837,7 @@ wNO wNO wNO bln -fBN -bln +xOk bln bln bln @@ -267088,8 +269867,8 @@ bln bln bln bln -fBN bln +xOk bln bln bln @@ -267105,6 +269884,7 @@ bln bln bln bln +lSu bln wNO wNO @@ -267211,9 +269991,9 @@ wNO (216,1,3) = {" wNO wNO -wNO -wNO -wNO +bln +bln +bln kDs kDs kDs @@ -267361,7 +270141,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -267468,9 +270248,9 @@ wNO (217,1,3) = {" wNO wNO -wNO -wNO -wNO +bln +bln +bln bln hHG hHG @@ -267618,7 +270398,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -267725,10 +270505,10 @@ wNO (218,1,3) = {" wNO wNO -wNO +bln tkU tkU -lgH +fwx hHG hHG hHG @@ -268132,7 +270912,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -268342,7 +271122,7 @@ wNO wNO wNO bln -fBN +xOk bln bln bln @@ -268373,8 +271153,7 @@ bln bln bln bln -fBN -bln +xOk bln bln bln @@ -268390,6 +271169,7 @@ bln bln bln bln +lSu bln wNO wNO @@ -268499,7 +271279,7 @@ wNO tkU tkU tkU -uFg +bln hHG hHG hHG @@ -268646,7 +271426,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -268756,7 +271536,7 @@ wNO tkU tkU tkU -lgH +fwx hHG hHG hHG @@ -268903,7 +271683,7 @@ bln bln bln bln -bln +lSu bln wNO wNO @@ -269159,8 +271939,8 @@ bln bln bln bln -bln -bln +lSu +lSu bln wNO wNO @@ -269416,9 +272196,9 @@ bln bln bln bln +lSu bln -bln -bln +lSu wNO wNO wNO @@ -269627,7 +272407,7 @@ wNO wNO wNO bln -fBN +xOk bln bln bln @@ -269658,7 +272438,7 @@ bln bln bln bln -fBN +xOk bln bln bln @@ -269673,10 +272453,10 @@ bln bln bln bln -fBN -bln -fBN +xOk bln +xOk +lSu wNO wNO wNO @@ -270298,7 +273078,7 @@ wNO wNO tkU tkU -lgH +fwx hHG hHG hHG @@ -270810,7 +273590,7 @@ wNO wNO wNO wNO -wNO +bln tkU bln hHG @@ -270912,7 +273692,7 @@ wNO wNO bln bln -fBN +xOk bln bln bln @@ -270943,7 +273723,7 @@ bln bln bln bln -fBN +xOk bln bln wNO @@ -271067,7 +273847,7 @@ wNO wNO wNO wNO -wNO +bln tkU bln hHG @@ -271324,7 +274104,7 @@ wNO wNO wNO wNO -wNO +bln tkU bln hHG @@ -271581,7 +274361,7 @@ wNO wNO wNO wNO -wNO +bln tkU bln hHG @@ -271837,10 +274617,10 @@ wNO (234,1,3) = {" wNO wNO -wNO -wNO -wNO -lgH +bln +bln +bln +fwx hHG hHG hHG @@ -272094,9 +274874,9 @@ wNO (235,1,3) = {" wNO wNO -lgH -wNO -wNO +fwx +bln +bln bln hHG hHG @@ -272351,9 +275131,9 @@ wNO (236,1,3) = {" wNO wNO -aaX -wNO -wNO +qzn +bln +bln bln hHG hHG @@ -272608,9 +275388,9 @@ wNO (237,1,3) = {" wNO wNO -fhB -wNO -wNO +liV +bln +bln bln hHG hHG @@ -272865,10 +275645,10 @@ wNO (238,1,3) = {" wNO wNO -wNO -wNO -wNO -lgH +bln +bln +bln +fwx hHG hHG hHG @@ -273124,7 +275904,7 @@ wNO wNO wNO wNO -wNO +bln bln hHG hHG @@ -274153,7 +276933,7 @@ wNO wNO wNO wNO -lgH +fwx hHG hHG hHG @@ -274169,7 +276949,7 @@ vbG hHG hHG hHG -aaX +qzn wNO wNO wNO @@ -274426,7 +277206,7 @@ vbG hHG hHG hHG -fhB +liV wNO wNO wNO @@ -274924,7 +277704,7 @@ wNO wNO wNO wNO -lgH +fwx hHG hHG hHG @@ -274937,8 +277717,8 @@ wNO wNO bln bln -xDQ -xDQ +wDS +wDS bln bln wNO @@ -275194,8 +277974,8 @@ wNO wNO bln bln -wUD -wUD +vOy +vOy bln bln bln @@ -275451,8 +278231,8 @@ wNO wNO bln bln -rPp -rPp +dTI +dTI bln bln bln @@ -275952,7 +278732,7 @@ wNO wNO wNO wNO -lgH +fwx hHG hHG hHG @@ -276723,7 +279503,7 @@ wNO wNO wNO wNO -lgH +fwx hHG hHG hHG diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index b83681d53f474..865e1ea3444b7 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -268,6 +268,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/engineering/main) +"afW" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint/supply) "afZ" = ( /obj/machinery/vending/coffee, /obj/structure/disposalpipe/segment, @@ -278,6 +282,11 @@ /mob/living/simple_animal/bot/secbot/beepsky/armsky, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"agd" = ( +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/closet/secure_closet/security/cargo, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "agi" = ( /obj/effect/spawner/random/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -448,6 +457,20 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) +"aiy" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/computer/records/security{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "aja" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -588,11 +611,12 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "alA" = ( -/obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, +/obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ - dir = 4 + dir = 4; + name = "Quartermaster Junction" }, -/obj/structure/cable, +/obj/effect/mapping_helpers/mail_sorting/supply/qm_office, /turf/open/floor/plating, /area/station/maintenance/port/fore) "alE" = ( @@ -1012,7 +1036,6 @@ dir = 8 }, /obj/structure/cable, -/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/port) "aum" = ( @@ -1216,14 +1239,6 @@ "ayr" = ( /turf/open/floor/iron, /area/station/engineering/break_room) -"ayz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ayH" = ( /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, @@ -1479,6 +1494,14 @@ /obj/machinery/duct, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) +"aCO" = ( +/obj/machinery/computer/exodrone_control_console{ + dir = 8 + }, +/obj/structure/railing, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "aCQ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -1621,6 +1644,10 @@ /obj/effect/spawner/random/bureaucracy/paper, /turf/open/floor/wood, /area/station/commons/dorms) +"aFz" = ( +/obj/machinery/vending/autodrobe, +/turf/open/floor/plating, +/area/station/maintenance/port) "aFW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/mirror/directional/west, @@ -1961,17 +1988,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) -"aKN" = ( -/obj/structure/chair/office, -/obj/machinery/requests_console/directional/north{ - department = "Quartermaster's Desk"; - name = "Security Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/landmark/start/depsec/supply, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "aKO" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2215,9 +2231,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/greater) @@ -2310,6 +2323,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/server) +"aQb" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "aQe" = ( /obj/machinery/light/small/directional/west, /obj/machinery/camera/directional/west{ @@ -2506,6 +2528,14 @@ /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"aUU" = ( +/obj/machinery/light/directional/east, +/obj/machinery/light_switch/directional/east, +/obj/structure/rack, +/obj/effect/decal/cleanable/greenglow/filled, +/obj/effect/spawner/random/maintenance/no_decals/eight, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "aVd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2833,6 +2863,17 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"aZz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/item/stock_parts/power_store/cell/lead{ + pixel_y = 1; + pixel_x = -3 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "aZA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -3166,6 +3207,30 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"bfw" = ( +/obj/machinery/light_switch/directional/south, +/obj/machinery/conveyor_switch/oneway{ + id = "packageSort2"; + name = "Sort and Deliver"; + pixel_x = -2; + pixel_y = 12 + }, +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "packageExternal"; + name = "Crate Returns"; + pixel_x = -5; + pixel_y = -3 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner, +/obj/effect/turf_decal/trimline/white/corner, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/cargo/sorting) "bfM" = ( /obj/machinery/door/airlock/public/glass{ name = "Art Storage" @@ -3201,11 +3266,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry) -"bgx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "bgS" = ( /obj/machinery/firealarm/directional/north, /obj/machinery/camera/directional/west{ @@ -4100,28 +4160,6 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"bvl" = ( -/obj/machinery/newscaster/directional/east, -/obj/structure/table, -/obj/item/stack/package_wrap{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/stack/package_wrap{ - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -7; - pixel_y = 10 - }, -/obj/item/reagent_containers/cup/glass/waterbottle{ - pixel_y = 16 - }, -/obj/machinery/digital_clock/directional/north, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "bvJ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -4405,13 +4443,13 @@ "bBy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8 - }, -/obj/effect/mapping_helpers/mail_sorting/supply/qm_office, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 8 + }, +/obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, /turf/open/floor/iron, /area/station/hallway/primary/port) "bBA" = ( @@ -4877,6 +4915,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bJX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "bKv" = ( /obj/item/pen, /obj/structure/table/reinforced, @@ -4945,11 +4992,6 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/service/cafeteria) -"bLj" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/turf/open/floor/iron, -/area/station/cargo/sorting) "bLm" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/green, @@ -4961,19 +5003,6 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/plating/airless, /area/space/nearstation) -"bLY" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/siding/thinplating_new{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "bMa" = ( /obj/structure/disposaloutlet{ dir = 4; @@ -5082,6 +5111,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"bNw" = ( +/obj/structure/railing/corner, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "bNE" = ( /obj/machinery/light/directional/east, /obj/structure/cable, @@ -5176,18 +5213,6 @@ /obj/item/bodypart/arm/left, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) -"bQl" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/machinery/fax{ - fax_name = "Cargo Office"; - name = "Cargo Office Fax Machine" - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "bQN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/computer/security/telescreen/entertainment/directional/north, @@ -5471,15 +5496,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"bVz" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "bVB" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=9.3-Escape-3"; @@ -5780,6 +5796,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"cap" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "caO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -5789,9 +5811,9 @@ /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "caV" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, +/obj/vehicle/sealed/mecha/ripley/cargo, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/iron/recharge_floor, /area/station/cargo/warehouse) "cbg" = ( /obj/effect/turf_decal/tile/purple{ @@ -6491,14 +6513,6 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"cqy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "cqD" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -6666,6 +6680,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"cuh" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall, +/area/station/maintenance/port/fore) "cuk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -7123,6 +7141,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/spawner/random/structure/crate, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "cAm" = ( @@ -7450,6 +7471,15 @@ }, /turf/open/floor/plating, /area/station/science/genetics) +"cIl" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/cargo/lobby) "cIK" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/effect/turf_decal/tile/yellow/fourcorners, @@ -7523,21 +7553,6 @@ /obj/structure/sign/directions/evac, /turf/closed/wall/r_wall, /area/station/medical/chemistry) -"cJS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "cJT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -7577,6 +7592,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/carpet, /area/station/commons/dorms) +"cKD" = ( +/obj/structure/rack, +/obj/item/circuitboard/machine/exoscanner{ + pixel_y = 3 + }, +/obj/item/circuitboard/machine/exoscanner, +/obj/item/exodrone{ + pixel_y = 11 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "cKN" = ( /obj/structure/table/wood, /obj/structure/cable, @@ -7639,10 +7668,9 @@ /turf/open/floor/wood, /area/station/service/library) "cLN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/firealarm/directional/west, +/obj/structure/sign/departments/exodrone/directional/east, /turf/open/floor/plating, -/area/station/cargo/drone_bay) +/area/station/maintenance/port/fore) "cMb" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, @@ -8026,6 +8054,11 @@ }, /turf/open/floor/wood, /area/station/security/office) +"cUt" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "cUw" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -8192,15 +8225,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/office) -"cXE" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/brown/filled/line, -/turf/open/floor/iron, -/area/station/cargo/sorting) "cXH" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -8592,6 +8616,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/theater) +"dfa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "dfh" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -8624,15 +8655,6 @@ "dfC" = ( /turf/open/floor/iron/grimy, /area/station/tcommsat/computer) -"dfK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/office{ - dir = 1 - }, -/obj/effect/landmark/start/cargo_technician, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "dfO" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8645,11 +8667,6 @@ /obj/effect/turf_decal/box/corners, /turf/open/floor/iron, /area/station/engineering/atmos) -"dfU" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "dgc" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction{ @@ -9356,6 +9373,16 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"dsJ" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "dsQ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -9383,35 +9410,24 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) +"dtw" = ( +/obj/machinery/door/airlock/mining{ + name = "Deliveries" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/any/supply/shipping, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) "dtB" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 8 }, /turf/open/floor/iron, /area/station/engineering/atmos) -"dtE" = ( -/obj/structure/table/reinforced, -/obj/item/stamp/denied{ - pixel_x = 4; - pixel_y = -2 - }, -/obj/item/stamp{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/pen/red{ - pixel_y = 10 - }, -/obj/item/dest_tagger{ - pixel_x = 9; - pixel_y = 10 - }, -/obj/item/pen/screwdriver{ - pixel_x = -7; - pixel_y = 7 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "dtY" = ( /obj/machinery/meter/monitored/waste_loop, /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ @@ -9724,12 +9740,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/cafeteria, /area/station/security/prison) -"dAk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/storage) "dBb" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/structure/window/reinforced/spawner/directional/north, @@ -9994,14 +10004,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) -"dGC" = ( -/obj/structure/reagent_dispensers/water_cooler, -/obj/effect/turf_decal/trimline/brown/filled/end{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/iron, -/area/station/cargo/sorting) "dGD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10039,15 +10041,6 @@ /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron, /area/station/cargo/lobby) -"dHz" = ( -/obj/effect/turf_decal/trimline/brown/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "dHG" = ( /obj/machinery/atmospherics/components/binary/crystallizer{ dir = 4 @@ -10269,6 +10262,7 @@ /obj/item/food/popsicle/creamsicle_orange, /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, /turf/open/floor/iron/kitchen_coldroom, /area/station/medical/coldroom) "dLq" = ( @@ -10593,9 +10587,7 @@ }, /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/light/small/directional/west, -/obj/machinery/computer/security/telescreen/cmo/directional/west{ - name = "Medbay Monitor" - }, +/obj/machinery/computer/security/telescreen/med_sec/directional/west, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) "dQO" = ( @@ -10724,32 +10716,6 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"dSH" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/shipping{ - pixel_x = -6; - pixel_y = 15 - }, -/obj/item/multitool{ - pixel_x = -3; - pixel_y = -4 - }, -/obj/item/storage/box/lights/mixed{ - pixel_x = 8; - pixel_y = 11 - }, -/obj/item/flashlight/lamp{ - pixel_x = -7; - pixel_y = 5 - }, -/obj/item/storage/box/shipping{ - pixel_x = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "dSJ" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/sign/poster/random/directional/north, @@ -10843,6 +10809,7 @@ /area/station/medical/chemistry) "dUd" = ( /obj/structure/noticeboard/qm, +/obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/command/heads_quarters/qm) "dUj" = ( @@ -11097,25 +11064,6 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/security/courtroom) -"dYi" = ( -/obj/structure/table, -/obj/item/stock_parts/micro_laser{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = 2 - }, -/obj/item/stock_parts/micro_laser{ - pixel_x = 6; - pixel_y = -2 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "dYl" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -11259,14 +11207,9 @@ /obj/effect/turf_decal/trimline/brown/warning{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/sorting) -"ebg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/storage) "ebr" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=0-SecurityDesk"; @@ -11779,6 +11722,13 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) +"ejD" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ejF" = ( /obj/effect/turf_decal/trimline/brown/warning{ dir = 5 @@ -11849,13 +11799,6 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) -"ekb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ekh" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -12000,19 +11943,6 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) -"elz" = ( -/obj/structure/rack, -/obj/item/circuitboard/machine/exoscanner{ - pixel_y = 3 - }, -/obj/item/circuitboard/machine/exoscanner, -/obj/item/circuitboard/machine/exoscanner{ - pixel_y = -3 - }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "elJ" = ( /turf/closed/wall/r_wall, /area/station/science/server) @@ -12051,15 +11981,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"eml" = ( -/obj/machinery/light/directional/south, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted, -/turf/open/floor/iron, -/area/station/cargo/lobby) "emN" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -12326,6 +12247,17 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/wood, /area/station/service/library) +"erU" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/cargo/lobby) "esd" = ( /obj/item/reagent_containers/cup/glass/drinkingglass{ pixel_x = 4; @@ -12699,6 +12631,13 @@ /obj/structure/cable, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) +"exB" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "exC" = ( /obj/effect/turf_decal/plaque{ icon_state = "L3" @@ -12929,6 +12868,12 @@ }, /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain/private) +"eDO" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "eDX" = ( /obj/structure/sign/departments/science/directional/east, /obj/effect/turf_decal/tile/purple{ @@ -12936,6 +12881,20 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"eEa" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/smartfridge/drying, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 9 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "eEf" = ( /obj/machinery/camera/directional/north{ c_tag = "Bar - Backroom" @@ -13126,11 +13085,10 @@ /area/station/commons/lounge) "eIc" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/dim/directional/south, -/obj/machinery/mech_bay_recharge_port{ +/obj/structure/sign/warning/directional/south, +/obj/machinery/computer/mech_bay_power_console{ dir = 8 }, -/obj/structure/sign/warning/directional/south, /turf/open/floor/iron, /area/station/cargo/warehouse) "eIy" = ( @@ -13254,7 +13212,6 @@ /turf/open/floor/iron, /area/station/service/hydroponics) "eKG" = ( -/obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -13404,6 +13361,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"eMK" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "eMW" = ( /obj/structure/flora/bush/pale/style_random, /obj/structure/flora/bush/ferny/style_random, @@ -13783,7 +13747,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 9 }, -/obj/machinery/keycard_auth/directional/north{ +/obj/machinery/keycard_auth/wall_mounted/directional/north{ pixel_x = -5 }, /turf/open/floor/wood/large, @@ -13882,6 +13846,10 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"eVG" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "eVX" = ( /obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -14327,13 +14295,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"fea" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/reagent_dispensers/wall/peppertank/directional/east, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "fec" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/closed/wall/r_wall, @@ -14512,6 +14473,8 @@ /mob/living/simple_animal/bot/mulebot{ name = "Leaping Rabbit" }, +/obj/structure/disposalpipe/segment, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) "fhp" = ( @@ -15220,9 +15183,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/xenobiology/hallway) -"fru" = ( -/turf/closed/wall, -/area/station/cargo/drone_bay) "frw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -15240,25 +15200,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/engineering/atmos) -"frH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/flasher/directional/east{ - id = "secentranceflasher" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron, -/area/station/security/brig) "frZ" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/components/binary/pump{ @@ -15382,14 +15323,6 @@ /obj/effect/turf_decal/tile/brown/opposingcorners, /turf/open/floor/iron, /area/station/cargo/storage) -"fwd" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fwz" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/iron/dark, @@ -15530,14 +15463,21 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, /area/station/solars/port/fore) -"fzr" = ( -/obj/structure/table, +"fzo" = ( /obj/effect/turf_decal/stripes/line, -/obj/effect/spawner/random/food_or_drink/seed{ - spawn_all_loot = 1; - spawn_random_offset = 1 +/obj/item/stock_parts/micro_laser{ + pixel_x = 6; + pixel_y = -2 }, -/turf/open/floor/iron, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/caution, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"fzr" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/west, +/obj/structure/water_source/puddle, +/turf/open/floor/grass, /area/station/service/hydroponics/garden) "fzE" = ( /obj/structure/sign/warning/vacuum/external/directional/north, @@ -15565,15 +15505,6 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) -"fAk" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/crate, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/arrows/red{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "fAt" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -15749,6 +15680,13 @@ /obj/structure/cable, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) +"fEV" = ( +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/machinery/door/airlock/security/glass{ + name = "Security Post - Cargo" + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "fEW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16117,15 +16055,6 @@ /obj/effect/mapping_helpers/airlock/access/all/medical/general, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"fLp" = ( -/obj/structure/disposalpipe/junction{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "fLq" = ( /obj/machinery/door/window/left/directional/north{ name = "Inner Pipe Access"; @@ -16162,20 +16091,14 @@ /obj/machinery/power/tracker, /turf/open/floor/plating/airless, /area/station/solars/starboard/fore) -"fLS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron, -/area/station/security/brig) +"fMa" = ( +/obj/structure/rack, +/obj/effect/spawner/random/trash/ghetto_containers, +/obj/effect/spawner/random/trash/ghetto_containers, +/obj/effect/spawner/random/trash/ghetto_containers, +/obj/effect/spawner/random/trash/ghetto_containers, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fMf" = ( /obj/structure/chair/office{ dir = 1 @@ -16212,6 +16135,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"fMC" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start/depsec/supply, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "fMN" = ( /obj/machinery/firealarm/directional/west, /obj/structure/disposalpipe/segment{ @@ -16255,7 +16188,6 @@ /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/stripes/corner, /obj/item/reagent_containers/cup/soda_cans/pwr_game, /obj/structure/sign/poster/contraband/random/directional/south, /turf/open/floor/iron, @@ -16308,9 +16240,6 @@ /turf/open/floor/iron/dark, /area/station/security/range) "fOB" = ( -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /obj/machinery/door/airlock/maintenance{ name = "Brig Maintenance" @@ -16320,6 +16249,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "fOS" = ( @@ -16622,14 +16554,6 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/white, /area/station/security/prison/safe) -"fWn" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/closet/crate, -/turf/open/floor/iron, -/area/station/cargo/sorting) "fWw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16846,6 +16770,14 @@ }, /turf/open/floor/iron/white, /area/station/science/ordnance/storage) +"gav" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/newscaster/directional/east, +/obj/machinery/modular_computer/preset/cargochat/cargo{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "gaG" = ( /obj/effect/spawner/random/maintenance, /obj/structure/cable, @@ -16890,7 +16822,7 @@ /obj/machinery/computer/crew{ dir = 4 }, -/obj/machinery/keycard_auth/directional/south{ +/obj/machinery/keycard_auth/wall_mounted/directional/south{ pixel_x = 6 }, /obj/machinery/button/door/directional/south{ @@ -17055,22 +16987,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/grass, /area/station/medical/virology) -"geR" = ( -/obj/structure/table, -/obj/item/papercutter{ - pixel_x = 9; - pixel_y = 4 - }, -/obj/item/stamp/denied{ - pixel_x = -7; - pixel_y = 7 - }, -/obj/item/stamp/granted{ - pixel_x = -7 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "geV" = ( /obj/structure/sink/directional/east, /obj/machinery/light_switch/directional/west, @@ -17171,6 +17087,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ggW" = ( +/obj/machinery/space_heater/improvised_chem_heater, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ggZ" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/disposalpipe/segment{ @@ -17760,6 +17680,19 @@ }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) +"gsV" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/structure/railing/corner/end{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "gsW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ @@ -18047,32 +17980,6 @@ }, /turf/open/floor/iron/checker, /area/station/engineering/atmos/storage/gas) -"gxM" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/item/stack/package_wrap{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/stack/package_wrap{ - pixel_x = 1; - pixel_y = 6 - }, -/obj/item/stack/package_wrap{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/item/dest_tagger{ - pixel_x = -9; - pixel_y = 12 - }, -/obj/item/hand_labeler_refill{ - pixel_x = -11; - pixel_y = -3 - }, -/obj/item/stack/wrapping_paper, -/turf/open/floor/iron, -/area/station/cargo/sorting) "gya" = ( /obj/structure/table, /obj/item/storage/box/hug{ @@ -19026,6 +18933,10 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/engine, /area/station/science/xenobiology) +"gOO" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "gOS" = ( /obj/structure/cable, /obj/structure/table/glass, @@ -19068,23 +18979,15 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"gPw" = ( +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "gPA" = ( /obj/structure/table/wood, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) -"gPN" = ( -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/cargo/sorting) "gPY" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -19263,9 +19166,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, /obj/structure/fake_stairs/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) @@ -19544,6 +19444,16 @@ /obj/effect/mapping_helpers/mail_sorting/service/kitchen, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"gZq" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/structure/chair/office/light, +/obj/effect/landmark/start/depsec/supply, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "gZu" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -19579,6 +19489,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/main) +"hab" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "hav" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -19615,6 +19535,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/main) +"haZ" = ( +/obj/item/reagent_containers/cup/glass/mug/britcup, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "hbv" = ( /turf/closed/wall/r_wall, /area/station/medical/coldroom) @@ -20073,9 +19999,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"hkj" = ( -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "hko" = ( /obj/effect/turf_decal/bot{ dir = 1 @@ -20148,7 +20071,6 @@ /area/station/cargo/sorting) "hlj" = ( /obj/structure/table/wood, -/obj/structure/secure_safe/directional/east, /obj/machinery/computer/security/wooden_tv{ pixel_x = 3; pixel_y = 2 @@ -20158,6 +20080,7 @@ name = "detective's office shutters control"; req_access = list("detective") }, +/obj/structure/detectiveboard/directional/east, /turf/open/floor/carpet, /area/station/security/detectives_office) "hlq" = ( @@ -20227,6 +20150,10 @@ }, /turf/open/floor/engine/vacuum, /area/space/nearstation) +"hlT" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "hmf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -20318,9 +20245,6 @@ /obj/machinery/door/airlock/maintenance{ name = "Warehouse Maintenance" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/structure/cable, /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/plating, @@ -20460,11 +20384,6 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance/freezerchamber) -"hrC" = ( -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/security/checkpoint/supply) "hrG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20496,17 +20415,6 @@ dir = 8 }, /area/station/service/chapel/office) -"hsx" = ( -/obj/machinery/door/airlock/mining{ - name = "Drone Bay" - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, -/obj/effect/landmark/navigate_destination, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "hsF" = ( /obj/machinery/door/airlock{ id_tag = "AuxToilet3"; @@ -20678,31 +20586,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/plating, /area/station/security/checkpoint/customs) -"hvk" = ( -/obj/effect/spawner/random/bureaucracy/birthday_wrap, -/obj/item/stack/package_wrap{ - pixel_y = 5 - }, -/obj/item/stack/package_wrap{ - pixel_y = 2 - }, -/obj/item/stack/package_wrap, -/obj/machinery/light/directional/south, -/obj/machinery/firealarm/directional/south, -/obj/structure/table, -/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) -"hvo" = ( -/obj/structure/filingcabinet, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "hvr" = ( /obj/machinery/camera/directional/south{ c_tag = "Central Primary Hallway - Fore - Courtroom" @@ -20724,15 +20607,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"hvz" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/maintenance/port/fore) "hvB" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/sorting) "hvI" = ( @@ -21186,6 +21064,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"hCh" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "hCl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, @@ -21265,11 +21153,6 @@ /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/white, /area/station/security/prison) -"hDX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/security/checkpoint/supply) "hEc" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/poddoor/shutters/preopen{ @@ -21588,6 +21471,7 @@ /obj/effect/turf_decal/arrows/red{ dir = 4 }, +/obj/effect/spawner/random/structure/crate, /turf/open/floor/iron, /area/station/cargo/storage) "hKV" = ( @@ -21638,12 +21522,6 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) -"hLL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/storage) "hLZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/junction{ @@ -21751,6 +21629,7 @@ /obj/effect/turf_decal/trimline/red/filled/line, /obj/effect/turf_decal/trimline/brown/filled/warning, /obj/structure/disposalpipe/segment, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/sorting) "hOp" = ( @@ -21919,6 +21798,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig) +"hRJ" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted, +/obj/item/paper_bin/carbon, +/obj/item/pen/red/security, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "hRQ" = ( /obj/machinery/disposal/bin{ pixel_x = -2; @@ -22005,7 +21891,7 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) "hSt" = ( -/obj/machinery/keycard_auth/directional/west, +/obj/machinery/keycard_auth/wall_mounted/directional/west, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) @@ -22224,9 +22110,6 @@ /area/station/command/teleporter) "hWC" = ( /obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, /obj/structure/fake_stairs/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) @@ -22240,13 +22123,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/commons/locker) -"hWK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/obj/effect/landmark/start/depsec/supply, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "hWW" = ( /obj/structure/bookcase/random, /turf/open/floor/iron, @@ -22312,11 +22188,12 @@ /turf/open/floor/iron/dark, /area/station/security/office) "hYl" = ( -/obj/effect/decal/cleanable/dirt, /obj/structure/sink{ dir = 8; pixel_x = 14 }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/warehouse) "hYr" = ( @@ -22680,6 +22557,24 @@ /obj/structure/disposalpipe/segment, /turf/closed/wall, /area/station/cargo/sorting) +"ieD" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/hypospray/medipen/pumpup, +/obj/item/reagent_containers/hypospray/medipen/pumpup{ + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/mortar{ + pixel_x = 3 + }, +/obj/item/extinguisher/crafted{ + pixel_y = 9; + pixel_x = 3 + }, +/obj/item/pestle{ + pixel_x = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ieH" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 @@ -23020,10 +22915,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) -"ikL" = ( -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "ikO" = ( /obj/machinery/newscaster/directional/north, /obj/structure/table/glass, @@ -23177,6 +23068,15 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"imT" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "imU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24140,7 +24040,7 @@ dir = 8 }, /obj/machinery/status_display/ai/directional/north, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) "iDq" = ( @@ -24151,24 +24051,6 @@ /obj/effect/landmark/start/security_officer, /turf/open/floor/iron/dark, /area/station/security/range) -"iDG" = ( -/obj/structure/table, -/obj/item/stock_parts/scanning_module{ - pixel_x = -5; - pixel_y = 7 - }, -/obj/item/stock_parts/scanning_module{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/item/stock_parts/scanning_module{ - pixel_x = -5 - }, -/obj/item/stock_parts/scanning_module{ - pixel_x = 5 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "iDN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24342,16 +24224,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine, /area/station/science/xenobiology) -"iHS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/security/glass{ - name = "Security Post - Cargo" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "iId" = ( /obj/machinery/conveyor{ id = "mining" @@ -24425,15 +24297,13 @@ "iJK" = ( /obj/item/radio/intercom/directional/south, /obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/plumbed{ - dir = 8 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "iKj" = ( @@ -24844,6 +24714,24 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig) +"iQb" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = 9 + }, +/obj/item/pen/red{ + pixel_y = 7; + pixel_x = 9 + }, +/obj/machinery/recharger, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/machinery/requests_console/auto_name/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "iQd" = ( /obj/machinery/door/poddoor/shutters{ id = "supplybridge" @@ -25493,6 +25381,26 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"jau" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/flasher/directional/east{ + id = "secentranceflasher" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig) "jay" = ( /obj/structure/chair{ dir = 4 @@ -25959,7 +25867,6 @@ "jjn" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, -/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/greater) "jjs" = ( @@ -26186,12 +26093,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port) -"jmR" = ( -/obj/structure/closet/secure_closet/security/cargo, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "jmT" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/tile/neutral{ @@ -26388,16 +26289,6 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/port) -"jqr" = ( -/obj/machinery/computer/security/mining{ - dir = 4 - }, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "jqQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -26433,6 +26324,11 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"jrQ" = ( +/obj/effect/turf_decal/loading_area, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "jrY" = ( /obj/machinery/door/airlock/external{ name = "Transport Airlock" @@ -26592,13 +26488,13 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "juH" = ( -/obj/item/kirbyplants/random, /obj/machinery/firealarm/directional/west{ pixel_y = -9 }, /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 8 }, +/obj/machinery/vending/cytopro, /turf/open/floor/iron/white, /area/station/science/cytology) "juJ" = ( @@ -26966,6 +26862,17 @@ "jzp" = ( /turf/closed/wall, /area/station/commons/vacant_room/office) +"jzq" = ( +/obj/structure/table/wood, +/obj/structure/chem_separator{ + pixel_y = 10 + }, +/obj/item/reagent_containers/cup/glass/trophy{ + pixel_y = 15; + pixel_x = 5 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "jzw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -27071,10 +26978,13 @@ /area/station/cargo/miningoffice) "jBp" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/machinery/conveyor_switch/oneway{ - id = "mining"; +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ dir = 1 }, +/obj/machinery/disposal/bin{ + name = "Jim Norton's Quebecois Coffee disposal unit" + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "jBu" = ( @@ -27082,28 +26992,6 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron, /area/station/cargo/storage) -"jBy" = ( -/obj/machinery/light_switch/directional/south, -/obj/machinery/conveyor_switch/oneway{ - id = "packageSort2"; - name = "Sort and Deliver"; - pixel_x = -2; - pixel_y = 12 - }, -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "packageExternal"; - name = "Crate Returns"; - pixel_x = -5; - pixel_y = -3 - }, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner, -/obj/effect/turf_decal/trimline/white/corner, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jBC" = ( /obj/structure/table, /obj/item/clothing/head/soft/grey{ @@ -27170,6 +27058,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/central) +"jCs" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/vending/boozeomat, +/turf/open/floor/wood, +/area/station/maintenance/port/aft) "jCw" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -27423,6 +27316,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) +"jHM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/start/cargo_technician, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "jHQ" = ( /obj/structure/chair/sofa/corp/left{ dir = 1 @@ -27433,12 +27335,6 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/dark, /area/station/medical/break_room) -"jHW" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jHX" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -27931,9 +27827,6 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -27977,7 +27870,6 @@ "jQr" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, -/obj/structure/disposalpipe/segment, /obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, @@ -28019,28 +27911,6 @@ "jRg" = ( /turf/open/floor/engine/co2, /area/station/engineering/atmos) -"jRo" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/item/hand_labeler_refill{ - pixel_x = 12; - pixel_y = -3 - }, -/obj/effect/spawner/random/bureaucracy/birthday_wrap{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/stack/package_wrap{ - pixel_x = -6; - pixel_y = 18 - }, -/obj/item/hand_labeler, -/obj/item/stack/package_wrap, -/turf/open/floor/iron, -/area/station/cargo/sorting) "jRz" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance, @@ -28259,11 +28129,11 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/lobby) "jUu" = ( @@ -28924,6 +28794,20 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron, /area/station/science/xenobiology) +"kgZ" = ( +/obj/structure/sign/poster/official/random/directional/south, +/obj/item/wallframe/camera{ + pixel_y = 9; + pixel_x = -3 + }, +/obj/structure/fermenting_barrel, +/obj/item/clothing/head/fedora{ + pixel_y = 13; + name = "porkpie hat"; + desc = "This hat reeks of bad decisions and chemical compounds. There's some odd white dust covering it." + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "kha" = ( /obj/structure/disposalpipe/segment, /obj/machinery/airalarm/directional/east, @@ -28977,6 +28861,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/contraband/random/directional/south, +/obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/cargo/warehouse) "kir" = ( @@ -29086,6 +28971,13 @@ /obj/machinery/atmospherics/pipe/smart/simple/supply/hidden, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage/gas) +"kkA" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/computer/security, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "kkB" = ( /obj/machinery/mineral/ore_redemption{ dir = 4; @@ -29352,16 +29244,6 @@ }, /turf/open/floor/iron, /area/station/security/prison/work) -"koj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "kop" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29644,17 +29526,6 @@ /obj/structure/cable, /turf/open/floor/plating/airless, /area/station/solars/port/fore) -"kuS" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/tile/brown/anticorner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) -"kuW" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "kvd" = ( /obj/machinery/light/directional/west, /obj/structure/cable, @@ -29713,14 +29584,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"kwh" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/storage) "kwp" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/delivery, @@ -29852,6 +29715,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"kyf" = ( +/obj/machinery/computer/exoscanner_control, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_y = 19; + pixel_x = -6 + }, +/obj/structure/sign/departments/exodrone/directional/north, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "kyh" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -30128,6 +30001,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"kDb" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start/depsec/supply, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "kDk" = ( /obj/machinery/door/airlock/security/glass{ name = "Permabrig Visitation" @@ -30218,15 +30098,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"kFa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/cargo_technician, -/obj/structure/chair/office{ +"kFb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/siding/white/corner{ dir = 4 }, /turf/open/floor/iron, -/area/station/cargo/sorting) +/area/station/cargo/storage) "kFg" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -30255,6 +30136,16 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/station/service/library) +"kFQ" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start/cargo_technician, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "kFS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -30389,7 +30280,7 @@ /area/station/maintenance/port) "kIJ" = ( /obj/effect/spawner/random/maintenance, -/obj/structure/disposalpipe/segment{ +/obj/structure/disposalpipe/junction{ dir = 4 }, /turf/open/floor/plating, @@ -30412,6 +30303,16 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"kJk" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/machinery/camera/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "kJx" = ( /obj/structure/chair/office, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30431,9 +30332,6 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -31406,14 +31304,6 @@ /obj/effect/spawner/random/trash/janitor_supplies, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"lak" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "lav" = ( /obj/structure/girder, /obj/effect/spawner/random/structure/grille, @@ -31515,6 +31405,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/gateway) +"lcI" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "lcJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -31802,37 +31705,24 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/pen/red{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/pen/fountain{ - pixel_x = 10 - }, -/obj/item/pen/blue{ - pixel_x = 4; - pixel_y = -3 - }, -/obj/item/storage/medkit/regular{ - pixel_x = -3; - pixel_y = 10 +/obj/structure/cable, +/obj/structure/railing{ + dir = 9 }, -/obj/structure/table, -/obj/item/stamp{ - pixel_x = -9; - pixel_y = -1 +/obj/machinery/disposal/bin/tagger, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/obj/item/stamp/denied{ - pixel_y = -1 +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 }, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron, +/turf/open/floor/iron, /area/station/cargo/storage) "liX" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/lobby) "lje" = ( @@ -31885,9 +31775,15 @@ /turf/open/floor/engine, /area/station/science/xenobiology) "ljH" = ( -/obj/effect/decal/cleanable/generic, -/obj/vehicle/sealed/mecha/ripley/cargo, -/turf/open/floor/iron/recharge_floor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron, /area/station/cargo/warehouse) "ljL" = ( /obj/structure/chair/comfy/black, @@ -31895,6 +31791,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/command/bridge) +"ljT" = ( +/obj/machinery/exodrone_launcher, +/obj/item/exodrone, +/obj/effect/turf_decal/box, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "lkc" = ( /obj/machinery/barsign, /turf/closed/wall, @@ -32115,10 +32017,6 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"lpt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, -/area/station/construction/storage_wing) "lpA" = ( /obj/machinery/air_sensor/nitrogen_tank, /turf/open/floor/engine/n2, @@ -32286,27 +32184,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) -"lsU" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/table, -/obj/item/stack/package_wrap{ - pixel_x = -2; - pixel_y = 1 - }, -/obj/effect/spawner/random/bureaucracy/birthday_wrap{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/dest_tagger{ - pixel_x = 7; - pixel_y = 1 - }, -/obj/item/stack/wrapping_paper{ - pixel_x = -4; - pixel_y = -7 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "lsV" = ( /obj/effect/turf_decal/siding/purple{ dir = 10 @@ -32479,11 +32356,6 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) -"lvY" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/vending/boozeomat/all_access, -/turf/open/floor/wood, -/area/station/maintenance/port/aft) "lvZ" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment, @@ -32611,6 +32483,15 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"lzD" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/sorting) "lzJ" = ( /obj/structure/cable, /turf/open/floor/iron/solarpanel/airless, @@ -34936,12 +34817,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"muq" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "mur" = ( /obj/machinery/light/directional/north, /obj/machinery/status_display/evac/directional/north, @@ -35031,14 +34906,14 @@ /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, -/obj/machinery/incident_display/delam/directional/south, +/obj/machinery/incident_display/bridge/directional/south, /turf/open/floor/iron/dark, /area/station/command/bridge) "mwj" = ( /obj/machinery/computer/records/security{ dir = 4 }, -/obj/machinery/keycard_auth/directional/west, +/obj/machinery/keycard_auth/wall_mounted/directional/west, /obj/machinery/requests_console/directional/north{ department = "Head of Security's Desk"; name = "Head of Security Requests Console" @@ -35076,14 +34951,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/main) -"mwP" = ( -/obj/structure/cable, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "mwY" = ( /obj/effect/spawner/random/trash/garbage, /obj/effect/landmark/generic_maintenance_landmark, @@ -35118,13 +34985,6 @@ /obj/structure/window/spawner/directional/south, /turf/open/floor/iron, /area/station/engineering/atmos) -"mxx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/cargo/sorting) "mxI" = ( /obj/structure/disposalpipe/junction/flip, /obj/structure/cable, @@ -35192,10 +35052,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"myZ" = ( -/obj/machinery/vending/autodrobe/all_access, -/turf/open/floor/plating, -/area/station/maintenance/port) "mzg" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/red, @@ -35203,16 +35059,6 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"mzj" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/cargo/sorting) "mzm" = ( /obj/structure/table, /obj/item/reagent_containers/condiment/saltshaker{ @@ -35859,14 +35705,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"mKr" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "mKu" = ( /obj/machinery/light_switch/directional/west, /obj/structure/cable, @@ -36148,20 +35986,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/security/range) -"mPZ" = ( -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/deepfryer, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 9 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "mQa" = ( /obj/machinery/camera/directional/north{ c_tag = "Port Primary Hallway - Middle" @@ -36440,12 +36264,6 @@ /obj/effect/turf_decal/trimline/brown/filled/line, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"mUF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "mUL" = ( /obj/machinery/door/airlock/atmos{ name = "Hypertorus Fusion Reactor" @@ -37322,6 +37140,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"nkq" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "nkG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /obj/machinery/meter, @@ -37604,6 +37426,16 @@ /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"npX" = ( +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "npY" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -37716,12 +37548,12 @@ "nrB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/item/kirbyplants/random, /obj/structure/railing{ - dir = 9 + dir = 8 }, +/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 + dir = 8 }, /turf/open/floor/iron, /area/station/cargo/storage) @@ -37988,12 +37820,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/office) -"nut" = ( -/obj/structure/cable, -/obj/effect/turf_decal/bot_white, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron, -/area/station/cargo/storage) "nuB" = ( /obj/structure/secure_safe/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -38197,6 +38023,12 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/bar/backroom) +"nxI" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/iron/stairs, +/area/station/cargo/storage) "nxO" = ( /obj/structure/chair/office{ dir = 8 @@ -38879,20 +38711,6 @@ }, /turf/open/space/basic, /area/space) -"nKu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/item/reagent_containers/cup/glass/waterbottle{ - pixel_y = 48; - pixel_x = 9 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "nKE" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, @@ -38946,13 +38764,6 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/wood, /area/station/service/library) -"nLx" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "nLz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -39035,6 +38846,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/garden) "nNw" = ( @@ -39047,10 +38859,10 @@ /turf/open/floor/iron, /area/station/hallway/secondary/command) "nNB" = ( -/obj/effect/turf_decal/bot_white, /obj/effect/turf_decal/arrows/red{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/warehouse) "nNH" = ( @@ -39573,6 +39385,10 @@ /obj/structure/table, /obj/structure/extinguisher_cabinet/directional/west, /obj/effect/turf_decal/stripes/line, +/obj/effect/spawner/random/food_or_drink/seed{ + spawn_all_loot = 1; + spawn_random_offset = 1 + }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "nYU" = ( @@ -39645,6 +39461,23 @@ }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) +"nZW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/item/paper_bin/carbon{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/pen/fourcolor{ + pixel_y = 8; + pixel_x = 6 + }, +/obj/item/stack/wrapping_paper, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "oac" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -39774,17 +39607,17 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/wood, /area/station/commons/dorms) -"obF" = ( -/obj/machinery/computer/exoscanner_control{ +"oby" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 }, -/obj/machinery/camera/directional/south{ - c_tag = "Cargo Bay - Drone Launch Room"; - pixel_x = 14 +/obj/machinery/computer/security/mining, +/obj/structure/reagent_dispensers/wall/peppertank/directional/north, +/obj/machinery/light/small/directional/north{ + pixel_x = -11 }, -/obj/structure/sign/poster/official/random/directional/south, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "obG" = ( /turf/closed/wall, /area/station/service/theater) @@ -40181,6 +40014,7 @@ /obj/effect/turf_decal/arrows/red{ dir = 1 }, +/obj/effect/spawner/random/structure/crate, /turf/open/floor/iron, /area/station/cargo/warehouse) "okj" = ( @@ -40284,6 +40118,15 @@ /obj/structure/sign/poster/random/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/service) +"omc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "omd" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -40322,6 +40165,9 @@ "omV" = ( /obj/effect/spawner/random/structure/grille, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "onf" = ( @@ -40450,7 +40296,6 @@ /obj/machinery/hydroponics/soil, /obj/item/cultivator, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable, /turf/open/floor/grass, /area/station/security/prison/garden) "opG" = ( @@ -41490,6 +41335,12 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) +"oHm" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/iron/stairs, +/area/station/cargo/storage) "oHw" = ( /obj/structure/cable, /turf/open/floor/iron/white/corner, @@ -41793,6 +41644,11 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/medical/office) +"oNR" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/cargo/storage) "oOl" = ( /obj/machinery/flasher/directional/north{ id = "AI" @@ -41838,6 +41694,12 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/space, /area/space/nearstation) +"oOY" = ( +/obj/structure/rack, +/obj/item/fuel_pellet, +/obj/item/fuel_pellet, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "oOZ" = ( /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, @@ -41966,6 +41828,12 @@ }, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) +"oRx" = ( +/obj/effect/turf_decal/siding/white{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "oRM" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 @@ -42062,16 +41930,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"oTw" = ( -/obj/machinery/door/airlock/mining{ - name = "Deliveries" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/any/supply/shipping, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "oTD" = ( /obj/structure/frame/computer, /turf/open/floor/plating/airless, @@ -42338,6 +42196,11 @@ /obj/machinery/light/small/red/directional/west, /turf/open/floor/plating/airless, /area/space/nearstation) +"oYs" = ( +/obj/machinery/vending/autodrobe, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/station/commons/locker) "oYv" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/bed, @@ -42438,15 +42301,6 @@ "paD" = ( /turf/closed/wall, /area/station/cargo/bitrunning/den) -"paQ" = ( -/obj/structure/window/spawner/directional/south, -/obj/machinery/computer/cargo/request{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/cargo/sorting) "paU" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -42599,6 +42453,21 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) +"pdI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig) "pdT" = ( /obj/effect/spawner/random/vending/colavend, /obj/effect/turf_decal/delivery, @@ -42809,14 +42678,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"phP" = ( -/obj/structure/table, -/obj/item/exodrone{ - pixel_y = 8 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "phR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42926,6 +42787,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation) +"pjX" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment, +/obj/structure/sign/clock/directional/north, +/obj/machinery/photocopier, +/turf/open/floor/iron, +/area/station/cargo/sorting) "pke" = ( /obj/effect/turf_decal/siding/red{ dir = 6 @@ -42943,13 +42817,6 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/rd) -"pkF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/photocopier, -/turf/open/floor/iron, -/area/station/cargo/sorting) "pkH" = ( /obj/structure/rack, /obj/item/restraints/handcuffs, @@ -43109,6 +42976,15 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"pnl" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/wallframe/apc, +/obj/item/phone, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/caution, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "pnx" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -43162,6 +43038,12 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/service/bar) +"pog" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall, +/area/station/security/checkpoint/supply) "poj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43257,9 +43139,6 @@ "pqc" = ( /obj/machinery/door/firedoor, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "pqi" = ( @@ -43444,7 +43323,7 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "psy" = ( -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) "psz" = ( @@ -43916,19 +43795,6 @@ /obj/machinery/newscaster/directional/north, /turf/open/floor/iron/dark, /area/station/medical/break_room) -"pCs" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Cargo Bay - Mailroom" - }, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/white/corner{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "pCt" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -43974,6 +43840,13 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/iron/grimy, /area/station/tcommsat/computer) +"pDf" = ( +/obj/machinery/requests_console/directional/south{ + department = "Mining"; + name = "Mining Requests Console" + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "pDl" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/window/left/directional/north{ @@ -44166,6 +44039,11 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) +"pGJ" = ( +/obj/item/chair/wood/wings, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "pGZ" = ( /obj/machinery/shower/directional/east, /obj/structure/cable, @@ -44664,6 +44542,16 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/security/interrogation) +"pPm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/wrapping, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "pPp" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair/comfy/black{ @@ -44878,9 +44766,6 @@ /area/station/cargo/warehouse) "pTf" = ( /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron/goonplaque, /area/station/hallway/primary/port) "pTm" = ( @@ -45002,6 +44887,20 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/grimy, /area/station/security/interrogation) +"pVK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "pVM" = ( /obj/machinery/light/small/directional/south, /obj/machinery/camera/directional/south{ @@ -45013,16 +44912,16 @@ /area/station/security/brig) "pVV" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/effect/spawner/random/entertainment/deck, /obj/structure/table, -/obj/effect/spawner/random/entertainment/cigarette_pack{ - pixel_x = -6; - pixel_y = 8 - }, /obj/item/storage/box/bandages{ pixel_y = 6; pixel_x = 4 }, +/obj/effect/spawner/random/entertainment/cigarette_pack{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/effect/spawner/random/entertainment/deck, /turf/open/floor/iron, /area/station/cargo/miningoffice) "pVZ" = ( @@ -45859,6 +45758,12 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"qlh" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "qlz" = ( /obj/effect/spawner/random/vending/colavend, /obj/machinery/light/directional/north, @@ -45889,6 +45794,10 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/construction/storage_wing) +"qme" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/construction/storage_wing) "qmf" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/table/wood, @@ -46041,6 +45950,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron, /area/station/cargo/warehouse) "qph" = ( @@ -46074,12 +45984,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/library) -"qqr" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "qqs" = ( /obj/structure/table, /obj/item/multitool{ @@ -46140,13 +46044,6 @@ /obj/machinery/computer/security/telescreen/minisat/directional/south, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) -"qrF" = ( -/obj/machinery/computer/exodrone_control_console{ - dir = 1 - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "qrL" = ( /obj/effect/decal/cleanable/oil/streak, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -46318,6 +46215,7 @@ "quT" = ( /obj/effect/turf_decal/trimline/brown/filled/line, /obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/storage) "qvJ" = ( @@ -46522,9 +46420,6 @@ "qzC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "qzE" = ( @@ -46943,12 +46838,6 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/hallway/primary/port) -"qHa" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "qHh" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 9 @@ -46972,12 +46861,20 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/conveyor_switch/oneway{ + id = "mining"; + dir = 1 + }, /turf/open/floor/iron, /area/station/cargo/miningoffice) "qHK" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"qHW" = ( +/obj/item/storage/test_tube_rack/full, +/turf/closed/wall/r_wall, +/area/station/security/prison/safe) "qHY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -47092,11 +46989,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"qJH" = ( -/obj/machinery/vending/autodrobe/all_access, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/station/commons/locker) "qJU" = ( /obj/structure/sign/map/right{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -47384,6 +47276,13 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"qNL" = ( +/obj/effect/turf_decal/tile/red/half/contrasted, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "qNO" = ( /obj/structure/table/glass, /obj/item/folder/blue{ @@ -47493,13 +47392,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"qOZ" = ( -/obj/machinery/requests_console/directional/south{ - department = "Mining"; - name = "Mining Requests Console" - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "qPs" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/indigo, @@ -47758,9 +47650,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"qST" = ( -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "qTf" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 1 @@ -48160,9 +48049,6 @@ "qZO" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "qZV" = ( @@ -48499,18 +48385,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"rgL" = ( -/obj/structure/table, -/obj/item/reagent_containers/cup/glass/mug/britcup{ - pixel_x = -6; - pixel_y = 11 - }, -/obj/item/phone{ - pixel_x = 6; - pixel_y = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "rgS" = ( /obj/machinery/modular_computer/preset/civilian{ dir = 1 @@ -48520,6 +48394,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science/robotics/lab) +"rgW" = ( +/obj/machinery/exodrone_launcher, +/obj/effect/turf_decal/box, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "rgZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -48559,7 +48438,7 @@ /area/station/command/teleporter) "rhL" = ( /obj/machinery/computer/security/mining, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /obj/item/radio/intercom/directional/north{ pixel_y = 34 }, @@ -48738,6 +48617,14 @@ /obj/item/target/syndicate, /turf/open/floor/engine, /area/station/science/explab) +"rkX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rla" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -48811,13 +48698,6 @@ /obj/effect/mapping_helpers/airlock/access/all/service/lawyer, /turf/open/floor/plating, /area/station/maintenance/fore) -"rmL" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/wrapping, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rmO" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -48838,7 +48718,6 @@ dir = 6 }, /obj/machinery/light/directional/west, -/obj/structure/disposalpipe/trunk, /turf/open/floor/iron, /area/station/cargo/storage) "rnb" = ( @@ -48960,16 +48839,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"roG" = ( -/obj/machinery/firealarm/directional/west, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/bin/tagger, -/obj/structure/sign/poster/official/random/directional/south, -/obj/effect/turf_decal/trimline/brown/filled/corner, -/turf/open/floor/iron, -/area/station/cargo/sorting) "rps" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -49196,6 +49065,16 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"rtG" = ( +/obj/effect/turf_decal/trimline/brown/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 6 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/cargo/lobby) "rtI" = ( /obj/effect/landmark/secequipment, /obj/effect/turf_decal/bot, @@ -49603,6 +49482,7 @@ "rzo" = ( /obj/structure/cable, /obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/storage) "rzq" = ( @@ -49721,6 +49601,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"rBB" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "rBU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49950,6 +49839,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) +"rGk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/table, +/obj/machinery/fax{ + fax_name = "Cargo Office"; + name = "Cargo Office Fax Machine" + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "rGm" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/shutters{ @@ -50093,6 +49998,11 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) +"rJh" = ( +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/secure_safe/directional/west, +/turf/open/floor/iron/grimy, +/area/station/security/detectives_office) "rJk" = ( /obj/machinery/door/airlock{ name = "Theater Backstage" @@ -50274,6 +50184,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"rMd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rMe" = ( /obj/structure/table, /obj/machinery/button/door{ @@ -50286,18 +50200,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron, /area/station/science/xenobiology) -"rMl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "rMr" = ( /obj/structure/table/glass, /obj/item/experi_scanner{ @@ -50375,6 +50277,11 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"rNA" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "rNI" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -50453,9 +50360,13 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "rPp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/caution{ + dir = 8 + }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution, /turf/open/floor/iron, /area/station/cargo/warehouse) "rPA" = ( @@ -50482,13 +50393,6 @@ /obj/structure/chair/stool/directional/east, /turf/open/floor/wood, /area/station/commons/lounge) -"rPO" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "rQd" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -50711,8 +50615,10 @@ /turf/open/floor/iron, /area/station/commons/locker) "rUd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/warning, /turf/open/floor/iron, /area/station/cargo/sorting) "rUo" = ( @@ -50796,8 +50702,6 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "rVb" = ( -/obj/structure/sink/directional/west, -/obj/item/reagent_containers/cup/watering_can, /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 }, @@ -51219,18 +51123,9 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) -"sbP" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/iron, -/area/station/cargo/storage) "sbX" = ( /obj/machinery/hydroponics/soil, /obj/effect/decal/cleanable/dirt, -/obj/structure/cable, /obj/item/plant_analyzer, /turf/open/floor/grass, /area/station/security/prison/garden) @@ -51454,6 +51349,15 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"sgZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/machinery/computer/cargo/request{ + dir = 1 + }, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/plating, +/area/station/cargo/sorting) "shl" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -51649,9 +51553,6 @@ dir = 1 }, /obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/iron, /area/station/hallway/primary/port) "slC" = ( @@ -51689,16 +51590,6 @@ /obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, /turf/open/floor/engine/vacuum, /area/station/maintenance/disposal/incinerator) -"sml" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "smt" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ dir = 4 @@ -51708,13 +51599,13 @@ /area/station/engineering/atmos) "smB" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/autolathe, /obj/structure/railing{ dir = 8 }, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 }, +/obj/machinery/autolathe, /turf/open/floor/iron, /area/station/cargo/storage) "smG" = ( @@ -51767,25 +51658,15 @@ }, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) -"snS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "snZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, -/obj/structure/railing{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 }, /turf/open/floor/iron, /area/station/cargo/storage) @@ -51970,6 +51851,30 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/grimy, /area/station/security/office) +"ssu" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/spray/syndicate{ + pixel_y = 4; + pixel_x = 7 + }, +/obj/item/reagent_containers/pill/maintenance{ + pixel_x = -4; + pixel_y = -1 + }, +/obj/item/reagent_containers/pill/maintenance{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/item/reagent_containers/pill/maintenance{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/reagent_containers/pill/happy{ + pixel_y = 6; + pixel_x = -4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ssI" = ( /obj/machinery/power/emitter, /turf/open/floor/plating, @@ -52037,33 +51942,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"sul" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 8; - pixel_y = 1 - }, -/obj/item/paper_bin{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/paper_bin{ - pixel_x = 8; - pixel_y = 11 - }, -/obj/item/folder/yellow{ - pixel_x = -6; - pixel_y = 8 - }, -/obj/item/folder/yellow{ - pixel_x = -9; - pixel_y = 1 - }, -/obj/item/paper{ - pixel_x = -5 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "sus" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52401,6 +52279,13 @@ /obj/machinery/telecomms/server/presets/engineering, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) +"sAt" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "sAv" = ( /obj/machinery/stasis, /obj/machinery/defibrillator_mount/directional/north, @@ -52478,21 +52363,31 @@ /area/station/engineering/atmos) "sCc" = ( /obj/structure/table, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 2 +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/item/clothing/gloves/cargo_gauntlet{ - pixel_y = 5 +/obj/structure/cable, +/obj/item/storage/medkit/regular{ + pixel_x = -3; + pixel_y = 10 }, -/obj/item/clothing/gloves/cargo_gauntlet{ +/obj/item/pen/blue{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/pen/fountain{ + pixel_x = 10 + }, +/obj/item/pen/red{ + pixel_x = 8; pixel_y = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/item/stamp/denied{ + pixel_y = -1 }, -/obj/structure/cable, -/obj/item/reagent_containers/cup/soda_cans/random{ - pixel_x = -9 +/obj/item/stamp{ + pixel_x = -9; + pixel_y = -1 }, /turf/open/floor/catwalk_floor/iron, /area/station/cargo/storage) @@ -52896,6 +52791,7 @@ "sHX" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/effect/decal/cleanable/oil/slippery, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/sorting) "sIe" = ( @@ -52941,6 +52837,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"sJq" = ( +/obj/machinery/exoscanner, +/obj/effect/turf_decal/delivery/white, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "sJL" = ( /obj/item/crowbar, /obj/structure/cable, @@ -53214,6 +53115,19 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"sOE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "sOF" = ( /obj/structure/light_construct/directional/east, /turf/open/floor/wood, @@ -53302,6 +53216,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "sPV" = ( @@ -53314,11 +53231,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central) -"sQp" = ( -/obj/machinery/exodrone_launcher, -/obj/item/exodrone, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "sQq" = ( /obj/structure/closet/crate/hydroponics, /obj/item/paper/guides/jobs/hydroponics, @@ -54097,7 +54009,7 @@ /obj/item/aicard, /obj/item/pai_card, /obj/item/circuitboard/aicore, -/obj/machinery/keycard_auth/directional/north{ +/obj/machinery/keycard_auth/wall_mounted/directional/north{ pixel_x = -5 }, /obj/machinery/button/door/directional/north{ @@ -54143,10 +54055,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"tdg" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "tds" = ( /obj/effect/turf_decal/box/corners{ dir = 8 @@ -54363,10 +54271,10 @@ /area/station/cargo/miningoffice) "tik" = ( /obj/structure/disposalpipe/segment, -/obj/machinery/rnd/production/techfab/department/cargo, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 }, +/obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/iron, /area/station/cargo/storage) "tit" = ( @@ -54425,6 +54333,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"tjt" = ( +/obj/item/sticker/syndicate/apc{ + pixel_x = 25 + }, +/obj/effect/spawner/random/engineering/tank, +/obj/structure/railing{ + dir = 10 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/fuel_pool, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tju" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -54564,6 +54485,7 @@ /obj/machinery/atmospherics/components/binary/pump{ dir = 4 }, +/obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/science/cytology) "tmq" = ( @@ -55044,12 +54966,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"tvv" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/turf/closed/wall, -/area/station/command/heads_quarters/qm) "tvE" = ( /turf/closed/wall/r_wall, /area/station/command/gateway) @@ -55411,6 +55327,7 @@ /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison/garden) "tCF" = ( @@ -55715,6 +55632,18 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) +"tIU" = ( +/obj/machinery/door/airlock/maintenance/glass, +/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/abandoned, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "tJb" = ( /obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -56001,22 +55930,6 @@ /obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"tMY" = ( -/obj/structure/cable, -/obj/structure/table/reinforced, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/item/radio/off{ - pixel_x = -11; - pixel_y = -3 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 1 - }, -/obj/item/binoculars, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "tNg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56248,14 +56161,6 @@ /obj/item/clothing/mask/surgical, /turf/open/floor/iron/showroomfloor, /area/station/maintenance/starboard/lesser) -"tPW" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/structure/filingcabinet/filingcabinet, -/turf/open/floor/iron, -/area/station/cargo/sorting) "tQp" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wood{ @@ -56754,13 +56659,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/security/execution/transfer) -"tYU" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/storage) "tYW" = ( /obj/machinery/light/directional/south, /obj/structure/cable, @@ -56950,11 +56848,6 @@ /obj/machinery/telecomms/broadcaster/preset_left, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"ubn" = ( -/obj/effect/turf_decal/trimline/purple/filled/line, -/obj/effect/turf_decal/trimline/brown/filled/warning, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ubp" = ( /obj/structure/girder, /obj/effect/spawner/random/structure/grille, @@ -57224,14 +57117,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"uha" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/effect/landmark/start/depsec/supply, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "uhq" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -57369,11 +57254,6 @@ /obj/structure/mirror/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) -"ujT" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/spawner/random/structure/tank_holder, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "uke" = ( /obj/structure/rack, /obj/effect/spawner/random/food_or_drink/booze{ @@ -57852,15 +57732,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"usJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/cargo/sorting) "usK" = ( /obj/structure/table, /obj/item/storage/toolbox/emergency, @@ -57912,14 +57783,6 @@ }, /turf/open/floor/wood, /area/station/security/office) -"uth" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "utk" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -57976,17 +57839,6 @@ dir = 8 }, /area/station/service/chapel) -"uud" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/iron, -/area/station/cargo/sorting) "uuv" = ( /obj/machinery/holopad, /obj/effect/turf_decal/stripes/line{ @@ -58006,6 +57858,18 @@ }, /turf/open/floor/iron, /area/station/security/mechbay) +"uuW" = ( +/obj/structure/table, +/obj/item/papercutter{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/dest_tagger{ + pixel_x = 9; + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "uvw" = ( /obj/machinery/status_display/supply{ pixel_y = 32 @@ -58061,26 +57925,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/engineering/main) -"uwf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/pen{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/book/manual/wiki/security_space_law, -/obj/machinery/camera/directional/south{ - c_tag = "Security Post - Cargo" - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "uwh" = ( /obj/structure/chair/comfy{ dir = 1 @@ -58108,12 +57952,6 @@ /obj/effect/landmark/start/roboticist, /turf/open/floor/iron, /area/station/science/robotics/lab) -"uwM" = ( -/obj/effect/landmark/start/depsec/supply, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "uwQ" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) @@ -58183,6 +58021,7 @@ "uyh" = ( /obj/effect/turf_decal/tile/brown/opposingcorners, /obj/machinery/holopad, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/sorting) "uyi" = ( @@ -58212,6 +58051,34 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) +"uyP" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/light/directional/east, +/obj/item/radio/intercom/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/item/stamp/denied{ + pixel_x = -7; + pixel_y = 10 + }, +/obj/item/stamp/granted{ + pixel_x = -7; + pixel_y = -1 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 5; + pixel_y = 16 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "uyY" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58221,13 +58088,6 @@ "uza" = ( /turf/closed/wall/r_wall, /area/station/security/prison/visit) -"uzb" = ( -/obj/structure/rack, -/obj/machinery/light/directional/east, -/obj/item/fuel_pellet, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "uzc" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -58365,9 +58225,8 @@ /turf/open/floor/iron/white, /area/station/science/ordnance/storage) "uBG" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 }, /obj/effect/turf_decal/siding/purple{ dir = 9 @@ -58401,6 +58260,15 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/wood, /area/station/command/corporate_showroom) +"uCR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/port) "uCS" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/iron, @@ -58520,6 +58388,7 @@ /obj/effect/turf_decal/arrows/red{ dir = 4 }, +/obj/effect/spawner/random/structure/crate, /turf/open/floor/iron, /area/station/cargo/storage) "uET" = ( @@ -59225,6 +59094,20 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"uQm" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/table/wood, +/obj/item/ph_booklet{ + pixel_y = 6; + pixel_x = 5 + }, +/obj/item/burner/oil{ + pixel_y = 6; + pixel_x = -5 + }, +/obj/item/storage/test_tube_rack/full, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "uQF" = ( /obj/structure/lattice, /obj/item/stack/rods, @@ -59328,6 +59211,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/security/prison) +"uSh" = ( +/obj/item/stack/sheet/iron/five, +/obj/item/stack/cable_coil/five, +/obj/effect/decal/cleanable/robot_debris/down, +/obj/effect/turf_decal/box, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "uSz" = ( /obj/structure/table, /obj/item/phone{ @@ -59670,15 +59560,6 @@ "uYp" = ( /turf/closed/wall, /area/station/medical/break_room) -"uYB" = ( -/obj/structure/cable, -/obj/effect/turf_decal/bot_white, -/obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/arrows/red{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "uYD" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line, @@ -59686,6 +59567,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port) +"uYE" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/binoculars, +/obj/machinery/airalarm/directional/east, +/obj/machinery/light/small/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "uYH" = ( /obj/structure/reflector/double/anchored{ dir = 5 @@ -60445,15 +60339,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"vlP" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/lobby) "vlY" = ( /obj/structure/table/reinforced, /obj/machinery/camera/directional/north{ @@ -61080,6 +60965,13 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/entry) +"vwg" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/structure/table, +/obj/effect/spawner/random/bureaucracy/birthday_wrap, +/turf/open/floor/iron, +/area/station/cargo/lobby) "vwi" = ( /obj/structure/table, /obj/item/cigarette/pipe, @@ -61935,12 +61827,6 @@ }, /turf/open/floor/carpet/royalblue, /area/station/service/library) -"vKC" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "vKL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -62544,6 +62430,20 @@ /obj/effect/turf_decal/tile/green/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/virology) +"vUL" = ( +/obj/item/circuitboard/machine/exoscanner{ + pixel_y = -3 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/stock_parts/scanning_module{ + pixel_x = 5 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "vUM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -62689,6 +62589,19 @@ dir = 5 }, /obj/structure/cable, +/obj/structure/table, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 8 + }, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 5 + }, +/obj/item/clothing/gloves/cargo_gauntlet{ + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/soda_cans/random{ + pixel_x = -9 + }, /turf/open/floor/catwalk_floor/iron, /area/station/cargo/storage) "vWF" = ( @@ -63205,6 +63118,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"wfp" = ( +/obj/effect/turf_decal/siding/white{ + dir = 5 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/cargo/storage) "wfu" = ( /obj/structure/chair/office{ dir = 8 @@ -63564,6 +63484,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/evidence) +"wme" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Post - Cargo" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/security/checkpoint/supply) "wmf" = ( /obj/effect/spawner/random/trash/garbage{ spawn_scatter_radius = 1 @@ -63758,14 +63687,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"wpO" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wqh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -63832,12 +63753,6 @@ }, /turf/open/floor/carpet, /area/station/service/theater) -"wsk" = ( -/obj/structure/railing/corner/end/flip, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "wsq" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -63891,10 +63806,24 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"wsx" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "wsD" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"wsG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/water_source/puddle, +/obj/item/reagent_containers/cup/watering_can, +/turf/open/floor/grass, +/area/station/security/prison/garden) "wsI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -64036,14 +63965,6 @@ }, /turf/open/floor/iron, /area/station/security/holding_cell) -"wuo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wuM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -64142,6 +64063,13 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"wwN" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/chair/wood, +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "wwW" = ( /obj/effect/turf_decal/trimline/purple/line{ dir = 1 @@ -64267,14 +64195,6 @@ /obj/machinery/bouldertech/refinery/smelter, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"wyS" = ( -/obj/machinery/computer/cargo{ - dir = 4 - }, -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/tile/brown/opposingcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wyV" = ( /turf/open/floor/carpet/orange, /area/station/command/heads_quarters/qm) @@ -64411,6 +64331,15 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"wBK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "wBM" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -65163,7 +65092,6 @@ /turf/open/floor/iron/white, /area/station/science/robotics/lab) "wRF" = ( -/obj/structure/window/spawner/directional/west, /obj/structure/flora/rock/pile, /turf/open/floor/grass, /area/station/service/hydroponics/garden) @@ -65256,17 +65184,6 @@ /obj/structure/reagent_dispensers/fueltank/large, /turf/open/floor/iron, /area/station/engineering/atmos) -"wTv" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/modular_computer/preset/cargochat/cargo{ - dir = 8 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "wTF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65700,6 +65617,13 @@ }, /turf/open/floor/iron, /area/station/command/gateway) +"xbu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/security/checkpoint/supply) "xbT" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65982,9 +65906,6 @@ "xgx" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/brown/filled/corner{ - dir = 1 - }, /turf/open/floor/iron, /area/station/cargo/storage) "xgB" = ( @@ -67139,11 +67060,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"xBq" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "xBw" = ( /obj/machinery/door/airlock/engineering{ name = "Starboard Quarter Solar Access" @@ -67574,6 +67490,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"xJj" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/tank_holder/extinguisher{ + pixel_x = -9 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/supply) "xJv" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron/recharge_floor, @@ -67624,6 +67555,12 @@ }, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) +"xKh" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating/reinforced, +/area/station/cargo/storage) "xKk" = ( /obj/machinery/photocopier, /turf/open/floor/iron/white, @@ -67652,15 +67589,6 @@ }, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"xLA" = ( -/obj/machinery/computer/records/security{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "xLR" = ( /obj/structure/table, /obj/item/stack/sheet/iron/fifty, @@ -67680,10 +67608,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"xMx" = ( -/obj/structure/chair/office, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "xMz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67911,10 +67835,6 @@ /obj/structure/cable/layer3, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) -"xQO" = ( -/obj/machinery/exodrone_launcher, -/turf/open/floor/plating, -/area/station/cargo/drone_bay) "xQT" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -67952,6 +67872,16 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/plating, /area/station/engineering/atmos) +"xRO" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/opposingcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "xRR" = ( /obj/structure/bodycontainer/morgue/beeper_off, /obj/structure/bodycontainer/morgue/beeper_off{ @@ -67978,6 +67908,12 @@ "xRZ" = ( /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"xSc" = ( +/obj/structure/frame/machine/secured, +/obj/effect/decal/cleanable/robot_debris, +/obj/effect/turf_decal/box, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "xSO" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -68512,14 +68448,6 @@ /obj/machinery/incident_display/delam/directional/north, /turf/open/floor/iron, /area/station/engineering/main) -"ybn" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/port) "ybu" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -68646,6 +68574,11 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"ydi" = ( +/obj/structure/railing/corner/end/flip, +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "ydj" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, @@ -68798,6 +68731,10 @@ }, /turf/open/floor/wood, /area/station/service/library) +"yfX" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ygb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68810,6 +68747,12 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) +"ygk" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/warning, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ygp" = ( /obj/machinery/status_display/ai/directional/north, /obj/structure/cable, @@ -68975,18 +68918,6 @@ /obj/effect/spawner/random/bureaucracy/stamp, /turf/open/floor/wood, /area/station/commons/vacant_room/office) -"ykb" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining{ - name = "Deliveries" - }, -/obj/effect/mapping_helpers/airlock/access/any/supply/shipping, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "ykn" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -69087,14 +69018,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/commons/dorms) -"ylO" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ylQ" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -82373,7 +82296,7 @@ pOa rJS pOa jUb -lvY +jCs sZK heE kzZ @@ -85171,7 +85094,7 @@ fcq pck lku uEw -snS +nJG jjn jQr kKd @@ -85433,8 +85356,8 @@ wUt fcq jPE auh -koj -rMl +crr +crr crr qer crr @@ -85691,7 +85614,7 @@ vQs iSk nzD uxa -bVz +uxa bNQ aal sEk @@ -85948,7 +85871,7 @@ vQs dHc dHc bZY -xOw +rEO spH dHc fjD @@ -86435,7 +86358,7 @@ paD jpG kRe nVG -qOZ +pDf hKg hKg ouu @@ -86462,7 +86385,7 @@ cJT vQs qlz hyW -xOw +rEO iOc mAs fjD @@ -86474,7 +86397,7 @@ vsr wfZ soa pOa -myZ +aFz sXI sNM tYi @@ -86719,7 +86642,7 @@ pSY vQs tiD hyW -xOw +rEO iOc rcW fjD @@ -86953,8 +86876,8 @@ poj hnV tPt gUH -dAk -dAk +omc +wBK rhn qnj iqt @@ -86976,7 +86899,7 @@ fNz vQs vQs hyW -xOw +rEO xbd pOa pOa @@ -87205,17 +87128,17 @@ aZj cSP cLj kRe +kRe tid qTf -oor -oor -hDX -hrC -kuS -muq +hKg +cbz +cKD +wfp +aQb oRO -bgx -uYB +aok +pkM aok mml aok @@ -87228,12 +87151,12 @@ fqe vHa nNB qoY -fAk +rPp rPp ljH vQs mQa -xOw +rEO mux pOa qXm @@ -87431,7 +87354,7 @@ aaa lMJ aaa aaa -aaa +cmB cmB cmB cmB @@ -87462,17 +87385,17 @@ jXu hzb cLj kRe +kRe cBZ wyP -oor -jqr -xLA -hrC -hrC -mmR -kwh -iqt -nut +hKg +kyf +kFQ +xKh +eDO +kFb +aok +oNR aok pkM aok @@ -87486,7 +87409,7 @@ vde tGU hYl caV -rPp +eMK eIc vQs hyW @@ -87689,7 +87612,7 @@ lMJ aaa aaa cmB -cmB +wsG opF sbX jTi @@ -87715,20 +87638,20 @@ hJO duG omV fhn -jXu +cuh jBp -wsk +cLj +ydi qHt dxo hlE -oor -aKN -uha -tMY -hDX +hKg +ljT +jrQ +qlh +oHm +sOE aok -sbP -bgx aok aok xtH @@ -87974,18 +87897,18 @@ cAf dve jXu pVV -qqr +cLj +cUt iId tkf wZo -oor -hvo -uwM -uwf -oor -ylO -tYU -hLL +hKg +rgW +nkq +bNw +nxI +gsV +dfk dfk dfk rQD @@ -88004,7 +87927,7 @@ sbF flG bzH hyW -xOw +rEO wAk pOa pOa @@ -88220,7 +88143,7 @@ hTG gJM srk qGP -sHu +cLN pkT sHu eMY @@ -88235,14 +88158,14 @@ oMx hKg hKg hKg -oor -jmR -hWK -fea -iHS -cqy -ebg -ebg +hKg +hKg +sJq +oOY +aCO +oRx +sAt +fwb fwb kQO qvV @@ -88476,9 +88399,9 @@ pma pma pma hZQ +hlT jXu -jXu -hsx +tIU jXu jXu jXu @@ -88497,7 +88420,7 @@ jXu jXu jXu cbz -bLY +lcI gQa dit uBj @@ -88506,17 +88429,17 @@ bDn xzx hIp qCS -iqt -mmR +bJX +xgx rzo quT -bzH -gPN +iev +pjX ebd ebd -jBy -bzH -bzH +bfw +iev +iev bBy qZO pYn @@ -88731,14 +88654,14 @@ aaa aaa aaa aaa -tdg -hkj -sQp -cLN -qHa -ujT -dYi -iDG +nmg +haZ +uSh +fzo +rNP +ieD +ssu +ggW jXu fpn knQ @@ -88764,11 +88687,11 @@ cgZ hIp ksM lQf -vKC -fwd -mwP -oTw -nLx +wsx +dsJ +npX +dtw +lzD sHX uyh hvB @@ -88988,17 +88911,17 @@ aaa aaa aaa aaa -tdg -hkj -hkj -kuW -uth -xBq -mUF -obF +nmg +gOO +rMd +eVG +rkX +wwN +aZz +kgZ jXu fpn -hvz +jXu jXu jXu jXu @@ -89013,10 +88936,10 @@ gfa eOl vjg mLp -tvv +kQP xTe xTe -tvv +kQP kQP wdM asT @@ -89025,9 +88948,9 @@ kkB lVp bzH bzH -mzj -sml -rmL +rGk +xRO +rNA hOh lAi bzH @@ -89245,17 +89168,17 @@ sjP sjP lMJ lMJ -tdg -hkj -xQO -dfU -ikL -qST -xMx -qrF +nmg +vUL +xSc +pnl +xgB +yfX +pGJ +fMa jXu vxO -hvz +jXu aaa aaa aaf @@ -89276,16 +89199,16 @@ nwm izI kQP eRd -vlP +cIl qxJ vNp -hvk -bzH -dGC -uud -wbW -fWn -jHW +erU +aqG +uuW +pPm +jHM +hCh +exB vjU bzH buH @@ -89502,17 +89425,17 @@ dMH sjP aaa aaa -tdg -tdg -tdg -fru -elz -uzb -phP -rgL +nmg +nmg +nmg +jXu +tjt +aUU +uQm +jzq jXu paU -hvz +jXu aaf rlU rlU @@ -89537,12 +89460,12 @@ rVn qxJ sik ryV -paQ -wyS -ekb -wpO +mhM +qCx +cap +nZW wbW -ubn +ygk hld iev rKI @@ -89769,7 +89692,7 @@ jXu jXu jXu otQ -hvz +jXu aaa rlU dfl @@ -89794,12 +89717,12 @@ aUm jvv bNN rod -mhM -dfK -wuo -tPW -ayz -bLj +sgZ +gav +hab +uyP +ejD +rUd rnh iev nJJ @@ -90026,7 +89949,7 @@ twr fnJ jXu wgm -mKr +fsQ aaa rlU qrg @@ -90050,15 +89973,15 @@ vdW oac fhB hxd -dHz -aqG -geR -ekb -lsU -bQl -pCs -bzH -bzH +rtG +oor +oor +wme +oor +xbu +oor +oor +oor pNk ivB qaw @@ -90283,7 +90206,7 @@ pOi bMu jXu agi -mKr +fsQ aaa rlU trx @@ -90307,15 +90230,15 @@ pUk upN qxJ ajq -eml -bzH -bvl -nKu -gxM -jRo -qCx -roG -bzH +vwg +afW +agd +rBB +kJk +xJj +gZq +aiy +oor mnP tEr iOc @@ -90540,7 +90463,7 @@ knQ cDV sLf uEA -mKr +fsQ aaa rlU vbF @@ -90550,7 +90473,7 @@ okj rlU qYC pNC -lpt +qme cNg kQP kQP @@ -90565,17 +90488,17 @@ hIu liX jUs nDG -bzH -bzH -usJ -kFa -lak -rUd -cXE -ykb -cJS -ybn -fLp +oor +oor +oby +kDb +imT +gPw +qNL +fEV +pVK +xOw +uCR sVY sDT mjr @@ -90823,13 +90746,13 @@ isA eKG iit pWb -bzH -wTv -sul -pkF -dtE -dSH -aqG +afW +kkA +fMC +uYE +iQb +hRJ +afW mnP xOw iOc @@ -91080,13 +91003,13 @@ lgg uLE cSu nPN -bzH -aqG -aqG -mxx -aqG -aqG -aqG +oor +afW +afW +pog +oor +afW +afW uGU mFo npY @@ -91816,7 +91739,7 @@ hDE wZz wZz wZz -sjP +qHW iPb iPb uza @@ -93648,7 +93571,7 @@ aaa ihq ooP hZZ -rPO +dfa gmI aKb xel @@ -97229,7 +97152,7 @@ uok bzV ezg uVv -fLS +pdI pjh gpc gGo @@ -97743,7 +97666,7 @@ lsP vYF eaP lTj -frH +jau afj qGs gCD @@ -99544,7 +99467,7 @@ sWV sWV sWV qJb -fEn +rJh hME olw olw @@ -104439,7 +104362,7 @@ pJE pJE nFn uUl -qJH +oYs qXB wzK tcC @@ -105491,7 +105414,7 @@ mal bDK oRs pem -mPZ +eEa huG huG huG diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 5bc3a711a1b03..02b56e53a1e63 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -82,6 +82,12 @@ /obj/item/clothing/glasses/meson, /turf/open/floor/iron/dark, /area/mine/storage/public) +"as" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "av" = ( /obj/machinery/computer/arcade/orion_trail{ dir = 4 @@ -93,6 +99,16 @@ /obj/structure/cable, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"aF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) +"aH" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "aM" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "lavaland_living_east_maint" @@ -137,6 +153,20 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/mine/maintenance/service) +"aX" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) +"ba" = ( +/obj/structure/chair/sofa/middle{ + dir = 1; + color = "#AA4A44" + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "bb" = ( /obj/structure/closet/crate/internals, /obj/item/tank/internals/emergency_oxygen, @@ -154,6 +184,13 @@ dir = 4 }, /area/mine/laborcamp/production) +"be" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Raptor Ranch External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "bf" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_large, @@ -197,6 +234,10 @@ }, /turf/open/floor/plating, /area/mine/maintenance/production) +"bE" = ( +/obj/structure/table/wood, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "bH" = ( /obj/structure/table, /obj/item/book/manual/chef_recipes{ @@ -344,11 +385,10 @@ /turf/open/floor/plating, /area/mine/maintenance/service) "ct" = ( -/obj/structure/railing/wooden_fence{ - dir = 6 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/marker_beacon/purple, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "cw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -506,6 +546,13 @@ }, /turf/open/floor/iron/white, /area/mine/cafeteria) +"de" = ( +/obj/structure/railing{ + dir = 6 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "dh" = ( /obj/machinery/mech_bay_recharge_port{ dir = 2 @@ -581,6 +628,19 @@ /obj/structure/lattice/catwalk/mining, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"dF" = ( +/obj/structure/table/wood, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab{ + pixel_x = 6; + pixel_y = 5 + }, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) +"dI" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "dJ" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -628,6 +688,12 @@ /obj/item/soap/homemade, /turf/open/floor/iron/freezer, /area/mine/laborcamp) +"ej" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "eo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -713,6 +779,18 @@ dir = 8 }, /area/mine/cafeteria) +"eL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) +"eN" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "eP" = ( /obj/structure/chair/sofa/left/brown, /obj/effect/turf_decal/tile/bar/opposingcorners{ @@ -754,6 +832,9 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/mine/laborcamp/security/maintenance) +"fa" = ( +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "fb" = ( /obj/structure/railing/corner{ dir = 4 @@ -855,6 +936,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/service) +"fK" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/railing, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "fL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1197,6 +1283,10 @@ /obj/structure/sign/poster/official/cleanliness/directional/north, /turf/open/floor/iron/freezer, /area/mine/living_quarters) +"hl" = ( +/obj/structure/tank_holder/extinguisher, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "hn" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 9 @@ -1315,8 +1405,12 @@ /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "hM" = ( -/turf/closed/wall/mineral/wood/nonmetal, -/area/lavaland/surface) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "hR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1418,7 +1512,7 @@ "il" = ( /obj/item/flashlight/lantern/on, /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "io" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1523,6 +1617,13 @@ dir = 1 }, /area/mine/living_quarters) +"jb" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "jc" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1598,6 +1699,10 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"jt" = ( +/obj/structure/fireplace, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "jw" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -1642,6 +1747,11 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"jJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "jL" = ( /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/surrounding_tile{ @@ -1692,11 +1802,12 @@ }, /area/mine/production) "jX" = ( -/obj/structure/railing/wooden_fence{ +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "ka" = ( /obj/structure/table, /obj/machinery/newscaster/directional/north, @@ -1707,9 +1818,19 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) +"kf" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "kg" = ( /turf/closed/wall/r_wall, /area/mine/laborcamp) +"ki" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "kk" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -1959,10 +2080,7 @@ /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) "lt" = ( -/obj/structure/railing/wooden_fence{ - dir = 5 - }, -/turf/open/misc/asteroid/basalt/lava_land_surface, +/turf/open/misc/hay/lavaland, /area/lavaland/surface/outdoors) "lv" = ( /obj/structure/stone_tile/block/cracked{ @@ -2100,6 +2218,10 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/mine/lounge) +"lP" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "lQ" = ( /obj/structure/stone_tile/surrounding/cracked{ dir = 6 @@ -2200,7 +2322,7 @@ }, /obj/item/raptor_dex, /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "ml" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -2613,6 +2735,12 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/iron/checker, /area/mine/laborcamp) +"nO" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "nP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/portable_atmospherics/scrubber, @@ -2789,6 +2917,15 @@ /obj/effect/turf_decal/trimline/green/filled/line, /turf/open/floor/iron/dark, /area/mine/laborcamp) +"oO" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "oS" = ( /obj/machinery/door/airlock/external/glass{ name = "Mining External Airlock" @@ -2935,6 +3072,12 @@ }, /turf/open/floor/plating, /area/mine/laborcamp) +"pF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "pH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2960,6 +3103,10 @@ /obj/structure/sign/poster/official/cleanliness/directional/north, /turf/open/floor/iron/freezer, /area/mine/laborcamp/quarters) +"pM" = ( +/obj/structure/bookcase/random/reference, +/turf/open/floor/wood, +/area/mine/lobby/raptor) "pO" = ( /obj/machinery/shower/directional/south, /obj/machinery/door/window/left/directional/south, @@ -3051,12 +3198,6 @@ dir = 4 }, /area/mine/laborcamp/quarters) -"qi" = ( -/obj/structure/railing/wooden_fence{ - dir = 4 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) "qo" = ( /obj/machinery/door/airlock/glass{ name = "Equipment Storage" @@ -3125,6 +3266,11 @@ }, /turf/open/floor/iron/dark, /area/mine/laborcamp/security) +"qB" = ( +/obj/machinery/smartfridge/drying/rack, +/obj/item/food/cheese/firm_cheese, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "qH" = ( /obj/machinery/door/airlock{ id_tag = "miningbathroomprivate"; @@ -3184,6 +3330,35 @@ }, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"rf" = ( +/obj/machinery/airalarm/directional/north, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) +"rj" = ( +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = -1; + pixel_x = 5 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9; + pixel_x = 8 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9; + pixel_x = 2 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?" + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "rm" = ( /obj/structure/sign/warning/gas_mask/directional/west, /obj/effect/decal/cleanable/dirt, @@ -3225,6 +3400,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/maintenance/service) +"rB" = ( +/obj/structure/chair/sofa/corner{ + dir = 1; + color = "#AA4A44" + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "rF" = ( /turf/closed/wall/r_wall, /area/mine/maintenance/labor) @@ -3299,7 +3481,7 @@ /obj/structure/table/wood, /obj/item/flashlight/lantern/on, /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "se" = ( /turf/open/floor/iron/dark/textured_large, /area/mine/eva) @@ -3399,7 +3581,7 @@ "sQ" = ( /obj/structure/ore_container/food_trough/raptor_trough, /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "sR" = ( /obj/machinery/light/small/directional/west, /obj/effect/decal/cleanable/dirt, @@ -3473,6 +3655,13 @@ dir = 4 }, /area/mine/cafeteria) +"tf" = ( +/obj/structure/chair/sofa/corner{ + dir = 8; + color = "#AA4A44" + }, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "tg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/maintenance{ @@ -3628,6 +3817,12 @@ /obj/item/crowbar/large/emergency, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"up" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "uq" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -3654,7 +3849,7 @@ "uw" = ( /obj/effect/spawner/random/lavaland_mob/raptor, /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "ux" = ( /obj/machinery/door/airlock{ id_tag = "miningdorm1"; @@ -3701,11 +3896,11 @@ /area/mine/lounge) "uT" = ( /obj/structure/lattice/catwalk, -/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ +/obj/machinery/atmospherics/components/unary/outlet_injector/layer2{ dir = 1 }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/area/mine/maintenance/service) "uU" = ( /turf/closed/mineral/random/labormineral/volcanic, /area/lavaland/surface/outdoors) @@ -3817,6 +4012,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/mine/hydroponics) +"vr" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "vu" = ( /obj/structure/bed/medical/emergency, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -3885,6 +4086,14 @@ /obj/item/cigbutt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) +"vM" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "vN" = ( /obj/machinery/computer/records/security, /obj/structure/cable, @@ -3936,6 +4145,12 @@ /obj/effect/turf_decal/siding/wideplating_new, /turf/open/floor/iron/checker, /area/mine/laborcamp) +"wa" = ( +/obj/machinery/camera/autoname/directional/north{ + network = list("mine") + }, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "wb" = ( /obj/structure/chair{ dir = 8 @@ -4225,6 +4440,12 @@ dir = 1 }, /area/mine/storage/public) +"xW" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "yc" = ( /obj/docking_port/stationary{ dir = 2; @@ -4399,8 +4620,7 @@ /turf/open/floor/plating, /area/mine/maintenance/service) "ze" = ( -/obj/effect/spawner/random/lavaland_mob/raptor, -/turf/open/misc/asteroid/basalt/lava_land_surface, +/turf/open/misc/ashplanet/rocky, /area/lavaland/surface/outdoors) "zf" = ( /obj/machinery/door/airlock{ @@ -4459,9 +4679,12 @@ /turf/open/floor/iron/smooth, /area/mine/laborcamp) "zs" = ( -/obj/structure/railing/wooden_fence, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/obj/structure/railing{ + dir = 5 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "zw" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4552,6 +4775,13 @@ /obj/structure/cable, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"zX" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Ae" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4567,6 +4797,13 @@ }, /turf/open/floor/plating, /area/mine/laborcamp/production) +"Ah" = ( +/obj/machinery/microwave{ + pixel_y = 6 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "Ai" = ( /obj/structure/stone_tile/cracked{ dir = 1 @@ -4602,11 +4839,21 @@ /obj/effect/mapping_helpers/airlock/access/any/supply/mining_station, /turf/open/floor/iron/dark/textured_large, /area/mine/production) +"Av" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Ax" = ( /obj/item/pickaxe, /obj/effect/mob_spawn/corpse/human/miner, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Az" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "AA" = ( /obj/structure/lattice/catwalk, /obj/structure/disposalpipe/segment, @@ -4620,6 +4867,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) +"AF" = ( +/obj/structure/lattice/catwalk/mining, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "AI" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -4797,12 +5051,31 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) -"Cv" = ( -/obj/structure/railing/wooden_fence{ - dir = 5 +"Cn" = ( +/obj/structure/table/wood, +/obj/item/plate{ + pixel_x = 6; + pixel_y = 7 }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/obj/item/plate{ + pixel_x = -6; + pixel_y = -6 + }, +/obj/item/reagent_containers/cup/glass/mug/tea{ + pixel_x = 8; + pixel_y = -3 + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) +"Cv" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/marker_beacon/purple, +/obj/effect/turf_decal/sand/plating/volcanic, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "Cz" = ( /obj/machinery/door/airlock/medical/glass{ name = "Infirmary" @@ -4901,6 +5174,9 @@ /obj/structure/curtain, /turf/open/floor/iron/freezer, /area/mine/living_quarters) +"CV" = ( +/turf/closed/wall/mineral/iron, +/area/mine/lobby/raptor) "CX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4978,10 +5254,9 @@ /turf/closed/wall, /area/mine/medical) "DB" = ( -/obj/structure/railing/wooden_fence{ - dir = 8 - }, -/turf/open/misc/asteroid/basalt/lava_land_surface, +/obj/structure/marker_beacon/purple, +/obj/effect/turf_decal/sand/plating/volcanic, +/turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) "DF" = ( /obj/structure/cable, @@ -5149,6 +5424,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/mine/maintenance/service) +"EL" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) "EM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -5162,6 +5441,12 @@ dir = 1 }, /area/mine/production) +"EP" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "EQ" = ( /turf/open/floor/iron/smooth_edge{ dir = 8 @@ -5216,6 +5501,12 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Fo" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "Fp" = ( /obj/structure/table, /obj/machinery/recharger, @@ -5224,6 +5515,13 @@ }, /turf/open/floor/iron/dark, /area/mine/laborcamp/security) +"Fr" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining Shuttle Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/any/supply/mining, +/turf/open/floor/iron/dark/textured_large, +/area/mine/production) "Fs" = ( /obj/effect/turf_decal/sand/plating/volcanic, /obj/effect/spawner/random/maintenance/two, @@ -5267,6 +5565,10 @@ "FH" = ( /turf/closed/wall, /area/lavaland/surface/outdoors) +"FI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "FL" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/small/directional/west, @@ -5388,11 +5690,8 @@ }, /area/mine/production) "GG" = ( -/obj/structure/railing/wooden_fence{ - dir = 9 - }, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "GH" = ( /obj/machinery/door/airlock/glass{ name = "Arrival Lounge" @@ -5402,6 +5701,12 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron, /area/mine/lounge) +"GI" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/wood/fifty, +/obj/item/lighter, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "GL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5464,6 +5769,18 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/plating, /area/mine/maintenance/public/north) +"Hj" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Mining External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) +"Hl" = ( +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) "Hp" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -5781,6 +6098,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) +"Jg" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "Jh" = ( /obj/structure/cable, /obj/machinery/light/small/directional/east, @@ -5950,6 +6274,13 @@ dir = 1 }, /area/mine/living_quarters) +"JQ" = ( +/obj/machinery/door/airlock/external/glass{ + name = "Raptor Ranch External Airlock" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lounge) "JR" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -6031,6 +6362,41 @@ /obj/structure/girder, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Km" = ( +/obj/structure/rack, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?" + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 9; + pixel_x = 2 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 6 + }, +/obj/item/food/grown/grass/fairy{ + name = "weird hay"; + desc = "Somehow, somewhere, this tells you it should increase your friendship level with your animals. Too bad that doesn't work, right?"; + pixel_y = 6; + pixel_x = 9 + }, +/obj/item/crowbar/large, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "Kn" = ( /obj/machinery/telecomms/relay/preset/mining, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6123,6 +6489,12 @@ }, /turf/open/floor/iron/checker, /area/mine/cafeteria) +"KO" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "KV" = ( /obj/structure/table, /obj/machinery/light/directional/east, @@ -6243,6 +6615,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/storage) +"Lv" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "Lw" = ( /obj/effect/turf_decal/sand/plating/volcanic, /obj/effect/turf_decal/stripes/line{ @@ -6348,6 +6729,13 @@ }, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"LV" = ( +/obj/structure/railing{ + dir = 9 + }, +/obj/structure/lattice/catwalk/mining, +/turf/open/lava/smooth/lava_land_surface, +/area/lavaland/surface/outdoors) "LY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -6392,6 +6780,10 @@ dir = 8 }, /area/mine/lounge) +"Mf" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Mr" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -6574,6 +6966,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth_large, /area/mine/laborcamp/production) +"Ns" = ( +/obj/structure/flora/ash/fireblossom, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "Nt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/small/directional/west, @@ -6627,11 +7023,8 @@ /turf/open/floor/iron/dark, /area/mine/production) "NK" = ( -/obj/structure/railing/wooden_fence{ - dir = 1 - }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/turf/open/misc/ashplanet/ash, +/area/lavaland/surface/outdoors) "NL" = ( /obj/structure/railing, /obj/structure/lattice/catwalk/mining, @@ -6641,6 +7034,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/mine/laborcamp/security/maintenance) +"NP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating/lavaland_atmos, +/area/mine/lobby/raptor) "NR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -6652,7 +7052,7 @@ /area/mine/laborcamp/production) "NS" = ( /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "NT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6747,6 +7147,13 @@ }, /turf/open/floor/iron, /area/mine/lounge) +"Oo" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/item/reagent_containers/cup/bucket/wooden, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "Op" = ( /obj/structure/stone_tile/slab, /turf/open/misc/asteroid/basalt/lava_land_surface, @@ -6768,6 +7175,16 @@ dir = 4 }, /area/mine/laborcamp/security) +"OE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "OH" = ( /obj/item/storage/fancy/cigarettes/cigpack_robust{ pixel_x = -8; @@ -6824,7 +7241,7 @@ }, /obj/item/soap/deluxe, /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "OZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6834,6 +7251,10 @@ dir = 1 }, /area/mine/mechbay) +"Pb" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "Pc" = ( /obj/structure/closet/crate/grave, /turf/open/misc/asteroid/basalt/lava_land_surface, @@ -6844,6 +7265,13 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plating/lavaland_atmos, /area/lavaland/surface/outdoors) +"Pe" = ( +/obj/structure/lattice/catwalk/mining, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "Pi" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/trimline/red/filled/line, @@ -6881,6 +7309,12 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/mine/cafeteria) +"Pn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "Po" = ( /obj/structure/table, /obj/item/paper/guides/jobs/security/labor_camp, @@ -7187,6 +7621,28 @@ }, /turf/open/floor/iron/dark, /area/mine/production) +"Ri" = ( +/obj/item/canvas/twentythree_nineteen, +/obj/structure/easel, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) +"Rj" = ( +/obj/machinery/suit_storage_unit/mining, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark/smooth_edge{ + dir = 8 + }, +/area/mine/eva) +"Rm" = ( +/obj/structure/bed, +/obj/effect/spawner/random/bedsheet, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "Ro" = ( /obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -7271,6 +7727,13 @@ /obj/structure/lattice/catwalk, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"RO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/mine/eva) "RV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -7332,6 +7795,11 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Sj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "Sm" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/siding/yellow, @@ -7345,6 +7813,14 @@ }, /turf/open/floor/iron/dark, /area/mine/hydroponics) +"Sp" = ( +/obj/structure/easel, +/obj/item/canvas/fortyfive_twentyseven, +/obj/item/canvas/thirtysix_twentyfour, +/obj/item/canvas/twentythree_nineteen, +/obj/item/paint_palette, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Sq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/cable, @@ -7517,17 +7993,22 @@ }, /area/mine/production) "Tt" = ( -/obj/structure/railing/wooden_fence{ - dir = 10 +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "Tu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/mine/laborcamp) +"Tw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Tx" = ( /obj/machinery/light/small/directional/north, /obj/effect/decal/cleanable/dirt, @@ -7556,6 +8037,7 @@ dir = 1 }, /obj/structure/stone_tile, +/obj/item/crusher_trophy/retool_kit/ashenskull, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "TJ" = ( @@ -7706,6 +8188,10 @@ }, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"Uz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "UD" = ( /obj/structure/toilet{ dir = 8 @@ -7713,9 +8199,7 @@ /turf/open/floor/iron/freezer, /area/mine/living_quarters) "UI" = ( -/obj/structure/railing/wooden_fence{ - dir = 4 - }, +/obj/structure/flora/ash/stem_shroom, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "UK" = ( @@ -7796,11 +8280,9 @@ /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "Vd" = ( -/obj/structure/railing/wooden_fence{ - dir = 9 - }, +/obj/structure/railing, /turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/area/mine/lobby/raptor) "Ve" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_large, @@ -7922,6 +8404,15 @@ }, /turf/open/floor/iron/checker, /area/mine/laborcamp) +"VI" = ( +/obj/effect/spawner/random/food_or_drink/donkpockets, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/structure/table/wood, +/turf/open/floor/carpet/red, +/area/mine/lobby/raptor) "VJ" = ( /obj/structure/closet/crate, /obj/item/food/mint, @@ -7945,11 +8436,11 @@ /turf/open/floor/plating, /area/mine/maintenance/labor) "VP" = ( -/obj/structure/railing/wooden_fence{ +/obj/effect/turf_decal/siding/wood/end{ dir = 8 }, -/turf/open/misc/hay/lavaland, -/area/lavaland/surface) +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "VS" = ( /obj/machinery/hydroponics/constructable, /obj/effect/decal/cleanable/dirt, @@ -7959,6 +8450,12 @@ /obj/item/seeds/potato, /turf/open/floor/iron/dark, /area/mine/laborcamp) +"VU" = ( +/obj/structure/railing/corner/end{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "VX" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -7989,6 +8486,18 @@ /obj/effect/turf_decal/sand/plating/volcanic, /turf/open/floor/plating/lavaland_atmos, /area/mine/lounge) +"Wh" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"Wk" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "Wl" = ( /obj/machinery/door/airlock/external/glass{ name = "Mining External Airlock" @@ -8008,6 +8517,12 @@ dir = 1 }, /area/mine/laborcamp/security) +"Wq" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) "Wt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/structure/disposalpipe/segment, @@ -8174,6 +8689,10 @@ dir = 4 }, /area/mine/production) +"Xk" = ( +/obj/effect/spawner/random/lavaland_mob/raptor, +/turf/open/misc/hay/lavaland, +/area/lavaland/surface/outdoors) "Xp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8265,7 +8784,7 @@ /area/mine/laborcamp) "XM" = ( /obj/structure/sign/directions/evac/directional/south{ - pixel_x = 32; + pixel_x = -32; pixel_y = 0 }, /turf/open/floor/iron/dark/textured_large, @@ -8318,7 +8837,7 @@ /area/mine/laborcamp/security) "Ya" = ( /obj/machinery/vending/security{ - onstation_override = 1 + all_products_free = 0 }, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 @@ -8360,6 +8879,8 @@ /area/mine/lounge) "Yg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/iron/dark/textured_large, /area/mine/eva) "Yk" = ( @@ -8438,6 +8959,14 @@ /obj/structure/barricade/wooden, /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"YP" = ( +/obj/structure/bookcase/random/reference, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) "YR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8520,6 +9049,10 @@ }, /turf/open/floor/iron/smooth, /area/mine/laborcamp/production) +"Zs" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "Zt" = ( /turf/closed/wall, /area/mine/laborcamp) @@ -8559,6 +9092,18 @@ dir = 8 }, /area/mine/lounge) +"ZB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/mine/lobby/raptor) +"ZF" = ( +/obj/effect/turf_decal/sand/plating/volcanic, +/obj/effect/turf_decal/sand/plating/volcanic, +/turf/open/floor/plating/lavaland_atmos, +/area/lavaland/surface/outdoors) "ZH" = ( /obj/structure/closet/secure_closet/labor_camp_security, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -8567,6 +9112,13 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/mine/laborcamp/security) +"ZL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "ZM" = ( /obj/structure/railing{ dir = 8 @@ -8597,6 +9149,17 @@ /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/plating, /area/mine/maintenance/public/north) +"ZU" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/misc/hay/lavaland, +/area/mine/lobby/raptor) +"ZX" = ( +/obj/structure/table/wood, +/obj/item/knife, +/turf/open/floor/wood/parquet, +/area/mine/lobby/raptor) "ZY" = ( /turf/closed/mineral/random/volcanic, /area/lavaland/surface/outdoors/unexplored) @@ -41748,8 +42311,8 @@ eA eA pU pU -aj -aj +pU +pU aj aj aj @@ -41998,16 +42561,16 @@ MS QP LE os -SP +JQ +Hl +Hj +pU +BP +pU +NK +ze pU -ai -ai -ai pU -aj -aj -aj -aj aj aj "} @@ -42255,16 +42818,16 @@ JZ PR ib os -SP +EL +EL +EL pU pU -ai -ai +ze +BP +ze +pU pU -aj -aj -aj -aj aj aj "} @@ -42515,12 +43078,12 @@ Jt Zq pU pU -ai pU -aj -aj -aj -aj +pU +ze +ze +pU +pU aj aj aj @@ -42773,11 +43336,11 @@ Zq pU pU aj -aj -aj pU -aj -aj +pU +DB +BP +DB aj aj aj @@ -43030,11 +43593,11 @@ pU pU aj aj -pU -pU -aj aj aj +LV +tF +jb aj aj aj @@ -43289,9 +43852,9 @@ aj aj aj aj -aj -aj -pU +zs +tF +de aj aj aj @@ -43546,9 +44109,9 @@ aj aj aj pU -aj -pU -pU +DB +BP +DB aj aj aj @@ -43803,9 +44366,9 @@ aj aj aj pU -ad -ad -ai +pU +pU +pU aj aj aj @@ -44059,11 +44622,11 @@ aj aj aj pU -ai -ad -ad -ai -aj +pU +pU +BP +pU +pU aj aj "} @@ -44315,14 +44878,14 @@ aj aj aj aj -pU -ad -ad -ad -ad +aj +aj +NK +NK pU aj aj +aj "} (140,1,1) = {" aa @@ -44573,13 +45136,13 @@ aj aj aj aj -ad -ad -ad -ad +pU +pU +ze pU aj aj +aj "} (141,1,1) = {" aa @@ -44831,10 +45394,10 @@ aj aj aj pU -ad -ad -ad -ai +BP +ze +pU +pU aj aj "} @@ -45088,11 +45651,11 @@ aj aj aj pU -ai -ad -ad -ad -aj +NK +pU +pU +pU +pU aj "} (143,1,1) = {" @@ -45344,10 +45907,10 @@ aj aj aj aj +aj +pU pU pU -ai -ai pU aj aj @@ -45603,9 +46166,9 @@ aj aj aj aj -pU -pU -aj +DB +BP +DB aj aj "} @@ -45860,9 +46423,9 @@ aj aj aj aj -aj -aj -aj +LV +tF +jb aj aj "} @@ -46116,10 +46679,10 @@ aj aj aj aj -pU -aj -aj aj +zs +tF +de aj aj "} @@ -46372,11 +46935,11 @@ pU aj aj aj -aj pU -ai -aj -aj +pU +DB +BP +DB aj aj "} @@ -46628,12 +47191,12 @@ pU pU aj aj -aj pU -ad -ad pU -aj +pU +pU +pU +pU aj aj "} @@ -46882,16 +47445,16 @@ BP BP Lw pU -pU -aj -aj -aj -aj -ai -ad aj aj aj +pU +pU +NK +BP +ze +pU +pU aj "} (150,1,1) = {" @@ -47139,14 +47702,14 @@ BP BP Lw pU -pU -aj -aj aj aj aj pU -aj +ze +ze +ze +ze aj aj aj @@ -47381,7 +47944,7 @@ lb Yl Le Le -NU +Fr Le Le BP @@ -47396,14 +47959,14 @@ BP BP Lw pU -pU -aj -aj aj aj aj pU -aj +BP +ze +NK +pU aj aj aj @@ -47637,9 +48200,9 @@ Ra oh pK NU -pU -aj -aj +BP +BP +BP JD BP BP @@ -47656,11 +48219,11 @@ pU pU aj aj -aj -aj -aj -aj -aj +pU +NK +NK +pU +pU aj aj aj @@ -47894,9 +48457,9 @@ Kc mT pK pU -aj -aj -pU +BP +ZF +BP JD BP BP @@ -47913,12 +48476,12 @@ pU pU aj aj -aj -aj pU pU -aj -aj +pU +pU +pU +pU aj aj "} @@ -48151,9 +48714,9 @@ Yg li dK pU -aj -aj -pU +Cv +BP +Cv zk mc mc @@ -48170,14 +48733,14 @@ pU pU aj aj -aj pU +DB +BP +DB pU aj aj aj -aj -aj "} (155,1,1) = {" aa @@ -48408,9 +48971,9 @@ Yg TQ dK pU -aj -aj -pU +aX +BP +Jg pU pU pU @@ -48428,9 +48991,9 @@ pU aj aj aj -pU -aj -aj +LV +tF +jb aj aj aj @@ -48661,13 +49224,13 @@ lb pK Ob IL -IL +Rj KV pK aj -aj -aj -aj +yV +BP +fK pU pU pU @@ -48685,9 +49248,9 @@ aj aj aj aj -aj -aj -aj +yV +tF +NL aj aj aj @@ -48918,13 +49481,13 @@ NU pK pK dK -dK +RO pK pK aj -aj -aj -aj +yV +tF +NL aj aj pU @@ -48942,9 +49505,9 @@ aj aj aj aj -aj -aj -aj +zs +tF +de aj aj aj @@ -49175,13 +49738,13 @@ NU ai pU pU +Pn pU aj aj -aj -pU -pU -aj +yV +tF +NL aj aj aj @@ -49197,11 +49760,11 @@ aj aj pU pU -pU -pU -pU -pU -pU +aj +aj +DB +BP +DB pU pU aj @@ -49432,37 +49995,37 @@ pU pU pU pU -aj +AF aj aj pU -ad -ad +yV +tF +NL +aj +aj pU aj aj aj aj +pU +aj aj aj +aj +pU +pU pU pU aj +pU +pU +pU +pU aj aj aj -GG -DB -DB -hM -hM -hM -hM -hM -hM -hM -hM -hM "} (160,1,1) = {" aa @@ -49689,16 +50252,16 @@ pU aj aj aj +AF aj -aj -pU -pU -pU pU aj +yV +tF +NL aj pU -aj +pU aj aj aj @@ -49708,18 +50271,18 @@ aj aj aj pU -jX pU pU -NK -sQ -NS -zs -NS -NS -sQ -NS -hM +pU +ze +ze +ze +pU +pU +pU +aj +aj +aj "} (161,1,1) = {" aa @@ -49946,37 +50509,37 @@ aj aj aj aj +AF aj aj aj -pU -aj -aj -aj -aj +zs +tF +de aj aj aj aj aj +pU aj aj aj aj aj pU -jX pU pU +ze NK -il -NS -zs -NS -NS -il -NS -hM +ze +BP +pU +pU +pU +aj +aj +pU "} (162,1,1) = {" aa @@ -50203,13 +50766,13 @@ aj aj aj aj +AF aj aj aj -aj -aj -aj -aj +ct +BP +ct pU aj aj @@ -50220,20 +50783,20 @@ aj aj aj aj -aj pU -jX pU pU +ze +BP NK -NS -NS -zs -NS -NS -NS -NS -hM +ze +pU +pU +pU +aj +aj +pU +pU "} (163,1,1) = {" aa @@ -50460,37 +51023,37 @@ ai ai pU pU -pU -pU -aj +AF aj aj aj +BP +BP +BP pU pU aj aj -aj -aj -aj -aj +pU +pU +pU pU aj pU pU pU -jX +ze +ze +NK +ze +lP +pU +pU +pU +aj +aj pU pU -Cv -qi -NS -ct -NS -NS -qi -qi -hM "} (164,1,1) = {" aa @@ -50717,37 +51280,37 @@ ai ai ai ai +Pn +AF +AF +AF +Pe +BP +BP +BP +BP pU pU pU pU -aj -aj pU -aj -aj -aj -pU -aj -aj -aj pU pU +lt +Ri +eN pU +ze +ze +ze +ze pU pU +aj +aj +aj pU -ze pU -NS -NS -NS -NS -NS -uw -NS -NS -hM "} (165,1,1) = {" aa @@ -50978,33 +51541,33 @@ ai pU pU pU +AF +BP +BP +BP +BP +ct +pU pU -aj -aj -aj -aj pU pU -aj -aj pU +lt +Ns +lt pU pU pU pU +ze pU pU +aj +aj +aj +aj pU pU -NS -mk -sa -NS -NS -NS -OW -sa -hM "} (166,1,1) = {" aa @@ -51232,36 +51795,36 @@ aj aj ai ai -pU -pU -pU -pU -aj -aj -aj -aj -pU +CV +CV +ki +NP +ki +CV +CV +CV +lt pU pU pU pU pU pU +lt pU +lP pU +BP pU pU pU +aj +aj +aj +aj +aj +aj pU -NS -NS -uw -NS -NS -NS -NS -NS -hM "} (167,1,1) = {" aa @@ -51488,14 +52051,19 @@ aj aj aj aj -aj -pU -pU -pU -pU +CV +CV +Km +qB +eL +Ah +VI +ZX +ki +Ns +lt pU -aj -aj +BP pU pU pU @@ -51506,19 +52074,14 @@ pU pU pU pU +aj +aj +aj pU -jX pU +aj +aj pU -Vd -VP -NS -Tt -NS -NS -VP -VP -hM "} (168,1,1) = {" aa @@ -51745,37 +52308,37 @@ aj aj aj aj -aj -aj -pU -pU -pU -pU -pU -aj -pU -pU -pU -pU +CV +GG +jX +Tw +eL +aF +pF +dF +ki +lt +lt +lt pU pU pU +BP +NK +NK +ze pU pU pU +aj +aj +aj pU -jX pU pU -NK -NS -NS -zs -NS -NS -NS -NS -hM +aj +aj +aj "} (169,1,1) = {" aa @@ -52002,37 +52565,37 @@ ai pU aj aj -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU +CV +Sp +OE +as +ZL +Cn +zX +CV +CV pU +lt pU pU pU pU +ze +NK +ze +BP pU pU pU -jX +aj +aj +aj pU pU -NK -il -NS -zs -NS -NS -il -NS -hM +aj +aj +aj +aj "} (170,1,1) = {" aa @@ -52259,37 +52822,37 @@ ai ai ai pU -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU +CV +GG +Tt +fa +eL +ZB +GG +CV pU pU pU +lP pU +BP pU +ze +NK pU +UI pU pU -jX pU pU -NK -sQ -NS -zs -NS -NS -sQ -NS -hM +aj +aj +aj +aj +aj +aj +aj +aj "} (171,1,1) = {" aa @@ -52516,37 +53079,37 @@ aj ai ai ai -ai -pU -pU -pU -pU -pU -pU +CV +wa +rB +fa +eL +Lv +CV +CV +CV +ct pU pU pU pU pU +ze pU pU +lt +lt +lt +UI pU +aj pU pU +aj pU pU -lt -UI -UI -hM -hM -hM -hM -hM -hM -hM -hM -hM +aj +aj "} (172,1,1) = {" aa @@ -52773,22 +53336,28 @@ aj aj pU ai -ai -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +CV +jt +ba +fa +jJ +ZB +be +dI +oO +BP pU +BP pU pU pU +ct +BP +lt +lt +Ns +lt +lt pU pU pU @@ -52798,12 +53367,6 @@ pU pU aj aj -aj -aj -aj -aj -aj -aj "} (173,1,1) = {" aa @@ -53030,36 +53593,36 @@ aj aj aj aj +CV +GG +tf +fa +Sj +ZB +CV +CV +CV +ct pU pU pU pU pU +BP +Av +Wh +Wh +CV +ki +ki +CV +CV +ki +ki +CV +CV pU pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -aj -aj -pU -aj -pU -aj aj "} (174,1,1) = {" @@ -53287,37 +53850,37 @@ aj aj aj aj -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +CV +rf +VP +fa +Sj +ZB +Mf +CV +hl pU +lt +lt pU pU +lt +lt +up +lt pU +vr +sQ +NS +Vd +NS +NS +sQ +NS +CV pU pU aj -aj -aj -aj -aj -aj -aj "} (175,1,1) = {" aa @@ -53544,37 +54107,37 @@ aj aj aj aj -aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +CV +GI +vM +FI +jJ +Fo +hM +CV +CV +Ns +lt pU pU +lt +lt +lt +up pU -aj -aj pU +vr +il +NS +Vd +NS +NS +il +NS +ki pU aj aj -aj "} (176,1,1) = {" aa @@ -53801,37 +54364,37 @@ aj aj aj aj -aj -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU +CV +pM +YP +GG +Uz +Uz +Uz +Zs +ki +lt +lt pU pU pU +lt pU +Wk +UI +ct +vr +NS +NS +Vd +NS +NS +NS +NS +ki pU -aj -aj -aj pU aj -aj -aj -aj -aj -aj "} (177,1,1) = {" aa @@ -54056,38 +54619,38 @@ pU pU pU pU +aj +aj +CV +CV +YP +GG +fa +fa +Rm +bE +ki +lt pU pU pU pU pU pU +Wk pU +lt +Wq +EP +NS +ZU +NS +NS +EP +EP +CV +CV pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -aj -aj -aj -aj aj "} (178,1,1) = {" @@ -54314,37 +54877,37 @@ pU pU pU pU +aj +aj +CV +CV +ki +ki +ki +CV +CV +CV +lt pU pU +lt pU pU pU +VU +Xk +lt +NS +NS +NS +NS +NS +uw +NS +NS +NS +ki pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -aj -aj -aj aj "} (179,1,1) = {" @@ -54572,6 +55135,9 @@ pU pU pU pU +aj +aj +aj pU pU pU @@ -54581,26 +55147,23 @@ pU pU pU pU +Ns +Az pU pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -pU -aj +lt +lt +lt +NS +mk +sa +NS +NS +NS +OW +sa +NS +ki aj aj "} @@ -54841,23 +55404,23 @@ pU pU pU pU +lt +lt pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -aj -aj +xW +lt +lt +lt +NS +NS +uw +NS +NS +NS +NS +NS +NS +ki pU aj "} @@ -55099,22 +55662,22 @@ pU pU pU pU +lt pU pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -pU -pU -pU -aj -aj +Wk +lt +lt +kf +KO +NS +aH +NS +NS +KO +KO +CV +CV pU aj "} @@ -55359,19 +55922,19 @@ pU pU pU pU +Wk pU +ct +vr +NS +rj +Vd +NS +NS +NS +NS +ki pU -pU -pU -pU -aj -aj -pU -pU -pU -pU -pU -aj aj aj "} @@ -55614,23 +56177,23 @@ pU pU pU pU +lt +lt +Wk pU pU +vr +il +NS +Vd +NS +NS +il +NS +ki pU pU pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -pU "} (184,1,1) = {" aa @@ -55870,24 +56433,24 @@ pU pU pU pU +lt +Ns +lt +up +Pb pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj +vr +sQ +NS +Vd +NS +NS +sQ +NS +CV pU pU aj -aj "} (185,1,1) = {" aa @@ -56127,22 +56690,22 @@ pU pU pU pU +lt +lt +BP +Oo +ej +nO +CV +ki +ki +CV +CV +ki +ki +CV +CV pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -pU -aj -aj aj aj "} @@ -56386,6 +56949,12 @@ pU pU pU pU +ct +BP +pU +pU +pU +lt pU pU pU @@ -56395,12 +56964,6 @@ pU pU pU pU -aj -aj -aj -aj -aj -aj aj "} (187,1,1) = {" @@ -56644,8 +57207,13 @@ pU pU pU pU +lt pU pU +lt +Ns +lt +lt pU pU pU @@ -56654,11 +57222,6 @@ pU pU aj aj -aj -aj -aj -aj -aj "} (188,1,1) = {" aa @@ -56884,12 +57447,6 @@ ZY pU pU pU -yc -pU -pU -pU -pU -pU pU pU pU @@ -56906,7 +57463,15 @@ pU pU pU pU +lt +lt +lt pU +lt +lt +lt +lt +lt pU pU aj @@ -56914,8 +57479,6 @@ aj aj aj aj -aj -aj "} (189,1,1) = {" aa @@ -57137,268 +57700,266 @@ ZY ZY ZY ZY -ZY -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -aj -aj -aj -aj -aj -aj -"} -(190,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -HX -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -pU -aj -pU -aj -aj -pU -pU -pU -pU -pU -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -fQ -ZY -ZY -ZY -ZY -ZY +ZY +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +Ns +pU +pU +UI +lt +lt +Ns +lt +pU +aj +aj +aj +aj +aj +aj +"} +(190,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +HX +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +pU +aj +pU +aj +aj +pU pU pU pU pU +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +fQ +ZY +ZY +ZY +ZY +ZY +pU +pU pU pU pU @@ -57422,6 +57983,8 @@ pU pU pU pU +lt +lt pU aj aj @@ -58430,7 +58993,7 @@ pU pU pU pU -pU +yc pU pU pU diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index b6ae75b8d34ad..2fc187c626d6d 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -838,7 +838,7 @@ id = "captain_privacy"; name = "Privacy Shutters" }, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/item/hand_tele, @@ -1564,6 +1564,26 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/wood/large, /area/station/service/library/artgallery) +"atP" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance-aft" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig Aft Entrance" + }, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark, +/area/station/security/brig) "atT" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/flowers_br/style_random, @@ -10201,17 +10221,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/side, /area/station/hallway/floor1/fore) -"cBl" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Fore Entrance" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint) "cBq" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck, @@ -13509,6 +13518,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"dvB" = ( +/obj/machinery/light/directional/east, +/obj/machinery/smartfridge/drying, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "dvC" = ( /obj/machinery/door/airlock/public/glass{ name = "Garden" @@ -14978,6 +14992,18 @@ "dPH" = ( /turf/closed/wall/r_wall, /area/station/security/brig) +"dPS" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Fore Entrance" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) "dPT" = ( /obj/machinery/light/small/red/directional/east, /obj/effect/spawner/random/trash/mess, @@ -18330,6 +18356,18 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/hallway/floor3/fore) +"eJy" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_blue, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/security/prison/garden) "eJF" = ( /obj/machinery/airalarm/directional/south, /obj/item/kirbyplants/random, @@ -20870,6 +20908,24 @@ name = "boxing ring" }, /area/station/commons/fitness) +"fvA" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig-entrance-aft" + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig Aft Entrance" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "briglockdown"; + name = "Brig Lockdown" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark, +/area/station/security/brig) "fvD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26868,6 +26924,7 @@ /obj/item/circuitboard/machine/exoscanner, /obj/item/circuitboard/machine/exoscanner, /obj/item/circuitboard/machine/exoscanner, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/corner, /area/station/cargo/drone_bay) "haj" = ( @@ -29584,7 +29641,7 @@ /obj/structure/railing{ dir = 4 }, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /obj/item/kirbyplants/random, /turf/open/floor/wood/large, /area/station/command/heads_quarters/hop) @@ -29777,23 +29834,6 @@ dir = 1 }, /area/station/hallway/floor4/fore) -"hLN" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance-aft" - }, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig Aft Entrance" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "briglockdown"; - name = "Brig Lockdown" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron/dark, -/area/station/security/brig) "hLP" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30215,7 +30255,7 @@ name = "Privacy Shutters Control"; pixel_y = 6 }, -/obj/machinery/keycard_auth/directional/west{ +/obj/machinery/keycard_auth/wall_mounted/directional/west{ pixel_y = -8 }, /turf/open/floor/wood, @@ -34404,6 +34444,7 @@ dir = 8 }, /obj/item/radio/intercom/directional/north, +/obj/structure/detectiveboard/directional/east, /turf/open/floor/carpet, /area/station/security/detectives_office) "iWW" = ( @@ -35045,25 +35086,6 @@ }, /turf/open/floor/iron, /area/station/cargo/miningdock) -"jfr" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig-entrance-aft" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig Aft Entrance" - }, -/obj/machinery/door/poddoor/preopen{ - id = "briglockdown"; - name = "Brig Lockdown" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron/dark, -/area/station/security/brig) "jfs" = ( /obj/docking_port/stationary/laborcamp_home/kilo{ dir = 2 @@ -38757,6 +38779,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/sign/departments/exodrone/directional/west, /turf/open/floor/iron, /area/station/cargo/storage) "kcZ" = ( @@ -39007,9 +39030,8 @@ }, /area/station/hallway/floor1/aft) "kfg" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer2{ + dir = 1 }, /obj/machinery/light/directional/south, /turf/open/floor/iron, @@ -42268,11 +42290,11 @@ /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) "kWD" = ( -/obj/machinery/keycard_auth/directional/north{ +/obj/machinery/keycard_auth/wall_mounted/directional/north{ pixel_x = -22 }, /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/incident_display/delam/directional/north, +/obj/machinery/incident_display/bridge/directional/north, /turf/open/floor/iron/dark, /area/station/command/bridge) "kWJ" = ( @@ -45068,7 +45090,7 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 8 }, -/obj/machinery/keycard_auth/directional/east{ +/obj/machinery/keycard_auth/wall_mounted/directional/east{ pixel_x = 25; pixel_y = 16 }, @@ -52426,6 +52448,7 @@ }, /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/vending/cytopro, /turf/open/floor/iron, /area/station/science/cytology) "nxm" = ( @@ -52865,7 +52888,7 @@ /area/station/hallway/secondary/exit) "nDj" = ( /obj/machinery/door/firedoor, -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/plating, /area/station/medical/abandoned) "nDk" = ( @@ -53374,9 +53397,8 @@ }, /area/station/hallway/floor3/aft) "nJb" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/heater/layer2{ + dir = 1 }, /turf/open/floor/iron, /area/station/engineering/atmos) @@ -53936,6 +53958,21 @@ /obj/machinery/light/floor, /turf/open/floor/iron/dark, /area/station/hallway/floor4/aft) +"nQY" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Fore Entrance" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint) "nQZ" = ( /obj/effect/turf_decal/trimline/yellow/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -54084,7 +54121,9 @@ /area/station/maintenance/floor1/starboard) "nSz" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen/directional/south, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, /turf/open/floor/iron/dark/side{ dir = 5 }, @@ -55310,20 +55349,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/library/lounge) -"ojB" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Fore Entrance" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint) "ojM" = ( /obj/structure/chair/comfy{ dir = 4 @@ -55497,7 +55522,7 @@ /turf/open/floor/pod/light, /area/station/maintenance/floor2/port/fore) "omh" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/wood/tile, /area/station/command/heads_quarters/captain/private) "omj" = ( @@ -58519,11 +58544,6 @@ dir = 4 }, /area/station/science/robotics/lab) -"pbr" = ( -/obj/machinery/light/directional/east, -/obj/machinery/deepfryer, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "pbt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -59387,6 +59407,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/pod/light, /area/station/maintenance/floor1/starboard/aft) +"ppf" = ( +/obj/effect/turf_decal/weather/sand/light, +/turf/closed/wall/r_wall, +/area/station/security/execution/education) "ppi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -63314,7 +63338,7 @@ /obj/structure/chair/wood{ dir = 4 }, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain) "qoJ" = ( @@ -64259,15 +64283,9 @@ /turf/open/floor/iron/dark, /area/station/command/teleporter) "qzQ" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 8 - }, -/obj/item/reagent_containers/cup/watering_can, -/obj/effect/turf_decal/tile/dark_blue, /obj/machinery/newscaster/directional/north, -/turf/open/floor/iron/dark/side{ - dir = 9 - }, +/obj/structure/water_source/puddle, +/turf/open/misc/dirt/jungle, /area/station/security/prison/garden) "qzX" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -64973,7 +64991,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/keycard_auth/directional/south{ +/obj/machinery/keycard_auth/wall_mounted/directional/south{ pixel_x = 6 }, /obj/effect/landmark/start/chief_engineer, @@ -67701,7 +67719,7 @@ /turf/open/floor/pod/light, /area/station/maintenance/floor1/starboard/fore) "rtH" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) @@ -68260,6 +68278,7 @@ /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/tile/dark_blue/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/item/reagent_containers/cup/watering_can, /turf/open/floor/iron/dark/corner{ dir = 4 }, @@ -69920,7 +69939,6 @@ pixel_y = 2 }, /obj/structure/rack, -/obj/machinery/firealarm/directional/east, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/corner{ dir = 1 @@ -75263,7 +75281,7 @@ /obj/machinery/computer/security/qm{ dir = 8 }, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /turf/open/floor/wood/large, /area/station/command/heads_quarters/qm) "tun" = ( @@ -78115,9 +78133,8 @@ /turf/open/floor/iron/checker, /area/station/commons/vacant_room/commissary) "uhC" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 }, /obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, @@ -78259,9 +78276,8 @@ /turf/open/floor/iron/dark/textured, /area/station/medical/surgery/fore) "ujl" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 4 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer4{ + dir = 1 }, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, @@ -78586,9 +78602,8 @@ /turf/open/floor/iron/dark, /area/station/science/breakroom) "unQ" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 4; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 4 }, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) @@ -86452,6 +86467,7 @@ /area/station/security/brig) "wms" = ( /obj/machinery/airalarm/directional/east, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "wmt" = ( @@ -90792,7 +90808,7 @@ }, /obj/machinery/shower/directional/south, /obj/structure/fluff/shower_drain, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/station/medical/treatment_center) "xrh" = ( /obj/effect/turf_decal/tile/blue{ @@ -91848,7 +91864,7 @@ /turf/open/floor/iron/smooth, /area/station/cargo/sorting) "xEv" = ( -/obj/machinery/keycard_auth/directional/north{ +/obj/machinery/keycard_auth/wall_mounted/directional/north{ pixel_x = 9 }, /obj/machinery/button/door/directional/north{ @@ -251974,7 +251990,7 @@ vhd fAz gyr gyr -pbr +dvB sFt sxt sal @@ -318010,7 +318026,7 @@ gYS gir tnj tEv -cBl +dPS xFp dGF kHR @@ -318267,7 +318283,7 @@ aBV kyj dfm xnY -ojB +nQY xyw xyw tnR @@ -322379,7 +322395,7 @@ txa mlH vOE nYZ -jfr +atP hxz vES uyX @@ -322893,7 +322909,7 @@ cmM bVy tnV daD -hLN +fvA kkK fDA emk @@ -329837,7 +329853,7 @@ oyh oyh oyh fkA -fkA +ppf wmD fkA kUZ @@ -331381,7 +331397,7 @@ oyh wMF wMF qzQ -pfL +eJy pfL pfL yfr diff --git a/_maps/map_files/debug/gateway_test.dmm b/_maps/map_files/debug/gateway_test.dmm index d3cc2563d47e5..d136530a07bdf 100644 --- a/_maps/map_files/debug/gateway_test.dmm +++ b/_maps/map_files/debug/gateway_test.dmm @@ -215,10 +215,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/keycard_auth/directional/west{ +/obj/machinery/keycard_auth/wall_mounted/directional/west{ pixel_y = 7 }, -/obj/machinery/keycard_auth/directional/west{ +/obj/machinery/keycard_auth/wall_mounted/directional/west{ pixel_y = -7 }, /turf/open/indestructible, diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 1b1fdf387396f..280fcdfc858e7 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -10,16 +10,22 @@ /turf/open/space, /area/space/nearstation) "ad" = ( -/turf/closed/wall/r_wall, -/area/station/maintenance/department/bridge) +/obj/effect/turf_decal/stripes/line, +/obj/structure/transit_tube/horizontal, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "ae" = ( /obj/structure/lattice, /obj/structure/grille, /turf/open/space, /area/space/nearstation) "af" = ( -/turf/open/floor/plating, -/area/station/maintenance/department/bridge) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/transit_tube/crossing/horizontal, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "ag" = ( /turf/closed/wall/r_wall, /area/station/security/brig) @@ -61,63 +67,32 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"at" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "av" = ( /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) "aw" = ( /turf/open/floor/plating, /area/station/engineering/atmos) -"aA" = ( -/turf/open/floor/iron, -/area/station/engineering/main) -"aB" = ( +"ax" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"aC" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external/glass/ruin, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/main) -"aD" = ( -/turf/open/floor/iron, -/area/station/security/brig) -"aE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 +"ay" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7" }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/engineering/main) -"aF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, +/area/station/commons/storage/primary) +"aA" = ( /turf/open/floor/iron, /area/station/engineering/main) -"aG" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/closet/radiation, -/obj/structure/cable, +"aD" = ( /turf/open/floor/iron, -/area/station/engineering/gravity_generator) +/area/station/security/brig) "aH" = ( /obj/machinery/light/directional/east, /obj/machinery/recharge_station, @@ -150,12 +125,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"aP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "aS" = ( /obj/structure/table, /obj/item/flashlight{ @@ -165,53 +134,13 @@ /obj/item/stock_parts/power_store/cell/infinite, /turf/open/floor/iron, /area/station/engineering/main) -"aT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) -"aU" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Gravity Generator" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) -"aV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "aX" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Gravity Generator" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/station/engineering/gravity_generator) "aY" = ( /obj/machinery/light/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"ba" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plating, -/area/station/engineering/atmos) "bb" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -235,11 +164,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"be" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) "bf" = ( /obj/machinery/suit_storage_unit/captain, /turf/open/floor/iron, @@ -258,19 +182,6 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"bk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/door/airlock, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/atmos) -"bl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/station/engineering/atmos) "bm" = ( /obj/machinery/atmospherics/components/binary/valve/on{ dir = 4 @@ -305,11 +216,6 @@ /obj/machinery/announcement_system, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"bt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science) "bu" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) @@ -321,12 +227,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/security/brig) -"bx" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/main) "by" = ( /turf/closed/wall/r_wall, /area/station/medical/medbay) @@ -353,10 +253,6 @@ /obj/machinery/computer/rdconsole, /turf/open/floor/iron, /area/station/science) -"bH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/iron, -/area/station/security/brig) "bI" = ( /obj/structure/table, /obj/item/card/emag, @@ -395,10 +291,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"bN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "bO" = ( /obj/machinery/door/poddoor, /turf/open/floor/engine, @@ -425,39 +317,10 @@ }, /turf/open/floor/iron, /area/station/security/brig) -"bV" = ( -/obj/machinery/light/directional/north, -/mob/living/carbon/human, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) -"bW" = ( -/obj/machinery/camera/directional/north, -/mob/living/carbon/human, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) -"bX" = ( -/obj/machinery/sleeper/syndie/fullupgrade, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) "bY" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/maintenance/department/bridge) +/obj/machinery/light/floor, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "bZ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -489,18 +352,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"ch" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/medical/chemistry) -"ci" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/brig) "cj" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -536,11 +387,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"cq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/blue/half/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) "cr" = ( /obj/machinery/light/directional/south, /obj/structure/closet/secure_closet/hos{ @@ -553,260 +399,101 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/medical/chemistry) -"cu" = ( +"cI" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/brig) +"cJ" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, +/turf/open/floor/iron/cafeteria, /area/station/medical/medbay) -"cw" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/command/bridge) -"cx" = ( +"cN" = ( +/turf/closed/wall/r_wall, +/area/station/construction) +"cS" = ( +/turf/closed/wall/r_wall, +/area/station/commons/storage/primary) +"cV" = ( /obj/machinery/door/airlock/public/glass, /turf/open/floor/iron, -/area/station/medical/medbay) -"cy" = ( -/obj/effect/turf_decal/loading_area{ +/area/station/commons/storage/primary) +"cY" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/station/construction) +"cZ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/construction) +"db" = ( +/turf/closed/wall/mineral/plastitanium, +/area/station/hallway/secondary/entry) +"dc" = ( +/obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/medical/medbay) -"cz" = ( +/area/station/commons/storage/primary) +"de" = ( +/obj/machinery/gulag_teleporter, +/turf/open/floor/iron, +/area/station/security/brig) +"dh" = ( +/turf/closed/wall, +/area/station/hallway/secondary/entry) +"di" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Labor Camp Shuttle Airlock" + }, /obj/structure/fans/tiny, +/turf/open/floor/iron/dark, +/area/station/security/brig) +"dj" = ( +/obj/machinery/light/small/directional/west, /turf/open/floor/plating, -/area/station/medical/medbay) -"cA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +/area/station/hallway/secondary/entry) +"dl" = ( +/turf/open/floor/plating, +/area/station/commons/storage/primary) +"dm" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/iron, -/area/station/hallway/primary/central) -"cB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/area/station/construction) +"dn" = ( +/turf/open/floor/plating, +/area/station/construction) +"do" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, /turf/open/floor/iron, -/area/station/hallway/primary/central) -"cC" = ( -/obj/machinery/camera/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 +/area/station/construction) +"dp" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plating, +/area/station/commons/storage/primary) +"dq" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L2" }, /turf/open/floor/iron, -/area/station/hallway/primary/central) -"cD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"cE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/medical/chemistry) -"cF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/medical/chemistry) -"cG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/station/medical/medbay) -"cH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/table, -/obj/item/gun/magic/wand/resurrection/debug, -/obj/item/gun/magic/wand/death/debug{ - pixel_y = 10 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/item/debug/human_spawner{ - pixel_x = 6; - pixel_y = -4 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) -"cI" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/brig) -"cJ" = ( -/obj/machinery/computer/operating{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/medical/medbay) -"cK" = ( -/obj/machinery/light/directional/south, -/obj/structure/table/glass, -/obj/item/disk/surgery/debug, -/obj/item/storage/box/monkeycubes{ - pixel_x = 6; - pixel_y = 1 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/item/disk/data/debug{ - pixel_y = 9; - pixel_x = 7 - }, -/turf/open/floor/iron/white/corner, -/area/station/medical/medbay) -"cL" = ( -/obj/item/surgery_tray/full/advanced, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/iron/white/corner, -/area/station/medical/medbay) -"cN" = ( -/turf/closed/wall/r_wall, -/area/station/construction) -"cP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/construction) -"cS" = ( -/turf/closed/wall/r_wall, -/area/station/commons/storage/primary) -"cT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/medical/chemistry) -"cV" = ( -/obj/machinery/door/airlock/public/glass, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"cX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/construction) -"cY" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/construction) -"cZ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/construction) -"da" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/commons/storage/primary) -"db" = ( -/turf/closed/wall/mineral/plastitanium, -/area/station/hallway/secondary/entry) -"dc" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"de" = ( -/obj/machinery/gulag_teleporter, -/turf/open/floor/iron, -/area/station/security/brig) -"dh" = ( -/turf/closed/wall, -/area/station/hallway/secondary/entry) -"di" = ( -/obj/machinery/door/airlock/external/ruin{ - name = "Labor Camp Shuttle Airlock" - }, -/obj/structure/fans/tiny, -/turf/open/floor/iron/dark, -/area/station/security/brig) -"dj" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/plating, -/area/station/hallway/secondary/entry) -"dk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"dl" = ( -/turf/open/floor/plating, -/area/station/commons/storage/primary) -"dm" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/construction) -"dn" = ( -/turf/open/floor/plating, -/area/station/construction) -"do" = ( -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/construction) -"dp" = ( -/obj/machinery/light/directional/west, -/turf/open/floor/plating, -/area/station/commons/storage/primary) -"dq" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L2" - }, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"dr" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L4" +/area/station/commons/storage/primary) +"dr" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L4" }, /turf/open/floor/iron, /area/station/commons/storage/primary) @@ -856,13 +543,6 @@ }, /turf/open/floor/iron, /area/station/construction) -"dA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "dB" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, @@ -884,20 +564,10 @@ }, /turf/open/floor/iron, /area/station/commons/storage/primary) -"dF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "dG" = ( /obj/machinery/door/airlock, /turf/open/floor/iron, /area/station/commons/storage/primary) -"dH" = ( -/obj/machinery/door/airlock, -/turf/open/floor/plating, -/area/station/maintenance/department/bridge) "dI" = ( /obj/effect/landmark/start, /turf/open/floor/iron, @@ -924,15 +594,10 @@ /turf/open/floor/iron, /area/station/construction) "dN" = ( -/obj/machinery/vending/subtype_vendor, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"dO" = ( -/obj/structure/table, -/obj/machinery/light/directional/south, -/obj/item/storage/medkit/regular, -/obj/item/healthanalyzer/advanced, -/obj/item/debug/omnitool/item_spawner, +/obj/machinery/navbeacon{ + location = "1-Southwest"; + codes_txt = "patrol;next_patrol=2-Northwest" + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "dP" = ( @@ -960,16 +625,6 @@ /obj/machinery/camera/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"dU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera/directional/north, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "dV" = ( /turf/open/floor/plating, /area/station/hallway/secondary/entry) @@ -1022,30 +677,13 @@ /obj/machinery/door/airlock, /turf/open/floor/iron, /area/station/construction) -"eg" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/security/brig) "eh" = ( /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"ei" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "ej" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"ek" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "el" = ( /obj/structure/fans/tiny/invisible, /turf/open/floor/engine, @@ -1057,13 +695,18 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"ep" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 +"er" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/obj/structure/closet/secure_closet/medical3{ + locked = 0 + }, +/obj/item/healthanalyzer/advanced, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) "es" = ( /obj/machinery/dna_scannernew, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -1081,11 +724,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/cargo/storage) -"ew" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum, -/turf/open/floor/plating, -/area/station/cargo/storage) "ex" = ( /obj/machinery/door/airlock/external/ruin{ name = "Escape Pod One" @@ -1093,17 +731,6 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"ez" = ( -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "eA" = ( /obj/machinery/conveyor{ dir = 1; @@ -1111,6 +738,14 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"eB" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron, +/area/station/engineering/main) "eC" = ( /obj/machinery/conveyor{ dir = 8; @@ -1135,14 +770,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"eH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "eJ" = ( /obj/docking_port/stationary{ dir = 4; @@ -1154,10 +781,6 @@ }, /turf/open/space/basic, /area/space) -"eL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "eN" = ( /obj/machinery/conveyor{ dir = 9; @@ -1177,36 +800,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"eR" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external/ruin{ - name = "Supply Dock Airlock" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) -"eS" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external/ruin{ - name = "Supply Dock Airlock" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "eT" = ( /obj/machinery/conveyor{ dir = 5; @@ -1235,19 +828,6 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) -"eZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/storage) -"fa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fb" = ( /obj/machinery/door/airlock/external/ruin{ name = "Departure Lounge Airlock" @@ -1267,23 +847,6 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) -"fe" = ( -/obj/machinery/computer/cargo{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - id = "cargounload"; - name = "Loading Doors"; - pixel_y = 8 - }, -/obj/machinery/button/door/directional/east{ - id = "cargoload"; - name = "Loading Doors"; - pixel_y = -8 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "ff" = ( /obj/docking_port/stationary{ dir = 2; @@ -1365,125 +928,21 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"ft" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/hallway/primary/central) -"fw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/stripes/corner, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fx" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L1" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fy" = ( -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/plaque{ - icon_state = "L3" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fz" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L5" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fA" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L7" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "fB" = ( /obj/machinery/status_display/supply, /turf/closed/wall/r_wall, /area/station/cargo/storage) -"fC" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L9" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fD" = ( -/obj/machinery/light/directional/north, -/obj/machinery/camera/directional/north, -/obj/effect/turf_decal/plaque{ - icon_state = "L11" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fE" = ( -/obj/effect/turf_decal/plaque{ - icon_state = "L13" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) -"fF" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/caution/stand_clear, -/obj/structure/fans/tiny, -/turf/open/floor/iron, -/area/station/cargo/storage) -"fH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "fI" = ( /obj/machinery/door/airlock, /turf/open/floor/plating, /area/station/maintenance/aft) -"fK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 +"fL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 }, -/obj/structure/cable, +/obj/item/storage/part_replacer/bluespace/tier4, /turf/open/floor/iron, -/area/station/commons/storage/primary) +/area/station/cargo/bitrunning/den) "fM" = ( /obj/structure/sign/directions/supply{ dir = 4; @@ -1500,20 +959,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"fN" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/commons/storage/primary) "fO" = ( /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "fP" = ( /obj/machinery/light/directional/north, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) "fQ" = ( @@ -1523,24 +974,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"fR" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/commons/storage/primary) "fS" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"fW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "fX" = ( /obj/structure/sign/directions/supply{ dir = 4; @@ -1562,21 +1000,9 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) -"fZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "ga" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/exit/departure_lounge) -"gb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "gc" = ( /obj/machinery/door/airlock/external/ruin{ name = "Auxiliary Airlock" @@ -1608,75 +1034,24 @@ }, /turf/open/floor/plating, /area/station/commons/storage/primary) +"gi" = ( +/obj/structure/table, +/obj/item/storage/toolbox/syndicate, +/obj/item/debug/omnitool, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "gk" = ( /obj/structure/sign/departments/evac, /turf/closed/wall/r_wall, /area/station/hallway/secondary/exit/departure_lounge) -"gl" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) -"gm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "gn" = ( /obj/machinery/camera/directional/north, /turf/open/floor/iron, /area/station/security/brig) -"go" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) -"gp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/cargo/miningoffice) -"gq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "gv" = ( /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"gw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "gy" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1687,30 +1062,9 @@ "gz" = ( /obj/structure/table, /obj/item/card/id/advanced/gold/captains_spare, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"gB" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"gD" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/miningoffice) "gE" = ( /obj/machinery/camera/directional/north, /turf/open/floor/iron, @@ -1726,6 +1080,10 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/construction) +"gH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/cargo/storage) "gI" = ( /obj/machinery/light/directional/north, /obj/machinery/camera/directional/north, @@ -1739,34 +1097,38 @@ /area/station/security/brig) "gW" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/radiation/rad_area/directional/north, -/turf/open/floor/plating, +/turf/closed/wall/r_wall, /area/station/engineering/gravity_generator) -"gY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/science) "hm" = ( /obj/machinery/airalarm/directional/west, /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/plating, /area/station/engineering/atmos) -"hv" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +"hp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/obj/item/storage/part_replacer/bluespace/tier4, /turf/open/floor/iron, -/area/station/cargo/bitrunning/den) +/area/station/hallway/primary/central) +"hr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) "hD" = ( /obj/structure/closet/secure_closet/chemical/heisenberg{ locked = 0 }, /turf/open/floor/iron, /area/station/medical/chemistry) +"hS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/transit_tube/station, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "ii" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1774,32 +1136,69 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron, /area/station/construction) -"is" = ( -/obj/structure/sign/warning/vacuum/external/directional/east, -/obj/machinery/vending/subtype_vendor, +"io" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, -/area/station/medical/medbay) -"jb" = ( -/obj/machinery/door/airlock, +/area/station/command/bridge) +"jg" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1" + }, /obj/structure/cable, /turf/open/floor/iron, -/area/station/science) -"jE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +/area/station/commons/storage/primary) +"jk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"jz" = ( +/obj/structure/table/glass, +/obj/item/disk/surgery/debug, +/obj/item/storage/box/monkeycubes{ + pixel_x = 6; + pixel_y = 1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = -6; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plating, -/area/station/engineering/atmos) +/obj/item/disk/data/debug{ + pixel_y = 9; + pixel_x = 7 + }, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) +"jL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "jU" = ( /obj/structure/table, /obj/item/melee/energy/axe, /turf/open/floor/iron, /area/station/commons/storage/primary) -"kj" = ( -/obj/machinery/door/airlock, -/obj/structure/cable, +"jZ" = ( +/obj/machinery/sleeper/syndie/fullupgrade, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/camera/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) +"kf" = ( +/obj/machinery/vending/subtype_vendor, /turf/open/floor/iron, -/area/station/cargo/miningoffice) +/area/station/commons/storage/primary) "kn" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, @@ -1808,129 +1207,213 @@ /obj/structure/server, /turf/open/floor/iron/dark, /area/station/science/explab) -"kQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +"kS" = ( +/turf/closed/wall/r_wall, +/area/station/medical/chemistry) "lc" = ( /turf/open/floor/engine, /area/station/hallway/secondary/entry) -"lg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) -"lH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) -"lX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +"lu" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) -"mi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/light/directional/north, +"mb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"mE" = ( +/area/station/medical/chemistry) +"mk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/chem_mass_spec, /turf/open/floor/iron, -/area/station/medical/chemistry) -"nn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/area/station/engineering/main) +"mC" = ( +/turf/open/floor/iron/dark, +/area/station/medical/medbay) +"nb" = ( +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/science/explab) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"ng" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/cargo/storage) "nq" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 }, /turf/open/floor/iron, /area/station/commons/storage/primary) -"ny" = ( +"nT" = ( /obj/structure/table, -/obj/item/storage/toolbox/syndicate, -/obj/item/debug/omnitool, +/obj/machinery/light/directional/south, +/obj/item/storage/medkit/regular, +/obj/item/healthanalyzer/advanced, +/obj/item/debug/omnitool/item_spawner, /turf/open/floor/iron, /area/station/commons/storage/primary) -"nI" = ( -/obj/machinery/door/airlock, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/cargo/bitrunning/den) "od" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"oV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"os" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/research, +/turf/open/floor/iron/dark, +/area/station/science/explab) +"ou" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/medical/chemistry) +/area/station/construction) +"oK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"pe" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/commons/storage/primary) +"pr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) "pv" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"pA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/closed/wall/r_wall, -/area/station/science) -"pI" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"pw" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"pL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/caution/stand_clear{ dir = 8 }, -/obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/plating, -/area/station/medical/medbay) +/turf/open/floor/iron, +/area/station/cargo/storage) +"pY" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=1-Southwest"; + location = "4-Southeast" + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"pZ" = ( +/obj/machinery/light/directional/north, +/obj/machinery/camera/directional/north, +/obj/effect/turf_decal/plaque{ + icon_state = "L11" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "qb" = ( /obj/machinery/door/airlock, /turf/open/floor/plating, /area/station/engineering/atmos) +"qg" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"qq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/transit_tube/station/reverse, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"qv" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"qw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "qx" = ( /obj/machinery/airalarm/directional/west, /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/cargo/storage) +"qH" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/iron, +/area/station/medical/chemistry) "qQ" = ( /turf/open/floor/engine, /area/station/cargo/miningoffice) -"rn" = ( +"qR" = ( +/obj/effect/landmark/start, +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + location = "Center" + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"rh" = ( +/obj/machinery/door/airlock, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science) +"ru" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, +/obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"rC" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "rK" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"rL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "rT" = ( /turf/open/floor/circuit/green, /area/station/cargo/bitrunning/den) @@ -1938,6 +1421,29 @@ /obj/machinery/door/airlock/shell, /turf/open/floor/iron/dark, /area/station/construction) +"sN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"sT" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/main) +"tn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"tz" = ( +/obj/machinery/status_display/supply, +/turf/closed/wall/r_wall, +/area/station/commons/storage/primary) "tE" = ( /obj/machinery/door/airlock/research, /turf/open/floor/iron/dark, @@ -1949,6 +1455,13 @@ }, /turf/open/space/basic, /area/space) +"tQ" = ( +/obj/machinery/door/airlock/public/glass, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/medical/chemistry) "tV" = ( /obj/structure/bot, /turf/open/floor/iron/dark, @@ -1974,6 +1487,11 @@ /obj/machinery/light/directional/north, /turf/open/floor/plating, /area/station/engineering/atmos) +"uL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/bitrunning/den) "uO" = ( /obj/machinery/door/airlock/public/glass, /obj/structure/cable, @@ -1995,11 +1513,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) -"vb" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/iron, -/area/station/cargo/bitrunning/den) "vm" = ( /mob/living/circuit_drone, /turf/open/floor/iron/dark, @@ -2008,49 +1521,153 @@ /obj/machinery/door/airlock, /turf/open/floor/plating, /area/station/commons/storage/primary) +"vw" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator" + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "vy" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 }, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"vP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"vB" = ( +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/door/airlock/public/glass, -/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) +"vQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, -/area/station/medical/chemistry) -"wb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +/area/station/cargo/storage) +"vS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/airlock_pump{ dir = 4 }, -/obj/machinery/light/directional/north, -/obj/effect/turf_decal/tile/blue/half/contrasted{ +/turf/open/floor/iron, +/area/station/engineering/main) +"wa" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner{ dir = 1 }, +/area/station/medical/medbay) +"wc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/science) +"wk" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/medical/medbay) +"wl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"wp" = ( +/obj/machinery/door/airlock, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/bitrunning/den) "wB" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"wM" = ( +"wD" = ( +/obj/machinery/door/airlock, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, -/area/station/hallway/secondary/entry) +/area/station/cargo/miningoffice) +"wR" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=3-Northeast"; + location = "2-Northwest" + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "wU" = ( /turf/closed/wall/r_wall, /area/station/science/explab) +"xq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/transit_tube/station/dispenser/reverse/flipped, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"xD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron, +/area/station/command/bridge) +"xK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"xY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/atmos) +"ya" = ( +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 8 + }, +/obj/machinery/light/small/red/dim/directional/east, +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"yi" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) +"yl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "yA" = ( /obj/docking_port/stationary/laborcamp_home{ dir = 8 }, /turf/open/space/basic, /area/space) +"yH" = ( +/obj/effect/turf_decal/stripes/full, +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Medbay Airlock" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/medbay) "yK" = ( /obj/structure/fans/tiny/invisible, /obj/effect/turf_decal/stripes/line{ @@ -2063,6 +1680,12 @@ /obj/machinery/power/rtg/debug, /turf/open/floor/plating/airless, /area/space/nearstation) +"zg" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "zo" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, @@ -2073,16 +1696,57 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/science) +"zY" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "Aj" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/bitrunning/den) -"AP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"An" = ( +/turf/open/floor/iron/dark, +/area/station/cargo/storage) +"Ao" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/caution/stand_clear{ dir = 8 }, /turf/open/floor/iron, -/area/station/science) +/area/station/cargo/storage) +"AD" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"Bp" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"Bz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"BB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor, +/area/station/medical/medbay) "BD" = ( /obj/structure/closet/secure_closet/chief_medical{ locked = 0 @@ -2096,13 +1760,44 @@ /obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/iron, /area/station/command/bridge) +"BM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "Ce" = ( /turf/open/floor/iron, /area/station/medical/chemistry) +"Cg" = ( +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "Ct" = ( /obj/structure/closet/syndicate/resources/everything, /turf/open/floor/iron, /area/station/science) +"CF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) +"CG" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) +"CJ" = ( +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Medbay Airlock" + }, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron/dark, +/area/station/medical/medbay) "CQ" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/stripes/line{ @@ -2114,11 +1809,6 @@ /obj/machinery/component_printer, /turf/open/floor/iron/dark, /area/station/science/explab) -"CV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/medical/chemistry) "Df" = ( /obj/machinery/light/directional/east, /obj/item/integrated_circuit/loaded/hello_world, @@ -2126,6 +1816,35 @@ /obj/structure/rack, /turf/open/floor/iron/dark, /area/station/science/explab) +"DC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"DD" = ( +/mob/living/carbon/human, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) +"DO" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"DT" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/turf_decal/stripes/full, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/cargo/storage) "DW" = ( /obj/machinery/computer/scan_consolenew{ dir = 1 @@ -2135,15 +1854,19 @@ }, /turf/open/floor/iron/white/corner, /area/station/medical/medbay) -"EA" = ( +"Ef" = ( +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"Es" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/construction) -"EB" = ( -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron, -/area/station/medical/medbay) "EG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2166,13 +1889,21 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"ES" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ +"EN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/meter/layer4, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"ER" = ( +/mob/living/carbon/human, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/hallway/primary/central) +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) "EX" = ( /obj/structure/table, /obj/item/screwdriver{ @@ -2196,6 +1927,70 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/command/bridge) +"Fy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) +"FA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"FC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"FE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"GC" = ( +/obj/machinery/atmospherics/pipe/layer_manifold{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"GN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"GQ" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/brig) +"GV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/cargo/storage) +"GZ" = ( +/obj/machinery/chem_mass_spec, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"Hb" = ( +/obj/machinery/door/airlock, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/construction) +"Hc" = ( +/obj/machinery/camera/directional/north, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"Hg" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "HW" = ( /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/unlocked, @@ -2213,6 +2008,11 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/explab) +"Is" = ( +/obj/machinery/door/airlock, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/commons/storage/primary) "Iy" = ( /obj/structure/closet/secure_closet/research_director{ locked = 0 @@ -2220,24 +2020,6 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron, /area/station/command/bridge) -"IB" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/table, -/obj/item/debug/omnitool{ - pixel_x = -4; - pixel_y = 6 - }, -/obj/item/debug/omnitool/item_spawner{ - pixel_x = 4; - pixel_y = -6 - }, -/turf/open/floor/iron/white/corner{ - dir = 1 - }, -/area/station/medical/medbay) "IF" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -2259,25 +2041,59 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"IV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/chemistry) +"IX" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargounload" + }, +/obj/structure/sign/warning/vacuum/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) +"Jd" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/commons/storage/primary) "Jp" = ( /obj/machinery/gravity_generator/main, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"JF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +"JJ" = ( +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=4-Southeast"; + location = "3-Northeast" }, /turf/open/floor/iron, -/area/station/medical/chemistry) -"JS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 +/area/station/commons/storage/primary) +"JV" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/unlocked, +/obj/structure/cable, /turf/open/floor/iron, -/area/station/hallway/primary/central) +/area/station/commons/storage/primary) +"Kg" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron, +/area/station/engineering/main) +"Ks" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) "Kx" = ( /obj/structure/table, /obj/item/analyzer, @@ -2285,45 +2101,95 @@ /obj/machinery/light/directional/south, /turf/open/floor/plating, /area/station/engineering/atmos) +"Lb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/transit_tube/station/reverse/flipped{ + dir = 1 + }, +/obj/structure/transit_tube_pod{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"Lq" = ( +/obj/effect/turf_decal/stripes/full, +/obj/machinery/door/airlock/external/glass/ruin{ + name = "Medbay Airlock" + }, +/turf/open/floor/iron, +/area/station/medical/medbay) "Ly" = ( /obj/machinery/chem_dispenser/chem_synthesizer, /turf/open/floor/iron/dark, /area/station/medical/chemistry) -"LH" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 +"LD" = ( +/obj/item/surgery_tray/full/advanced, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/obj/machinery/door/airlock/research, -/turf/open/floor/iron/dark, -/area/station/science/explab) +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) "LS" = ( /obj/machinery/quantum_server, /turf/open/floor/iron, /area/station/cargo/bitrunning/den) +"LU" = ( +/obj/machinery/vending/subtype_vendor, +/turf/open/floor/iron, +/area/station/medical/chemistry) "LW" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"Ma" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/engineering/main) +"Mg" = ( +/obj/machinery/door/airlock/public/glass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/medbay) "Mh" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"Ml" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"My" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science) "ME" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"MM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "MN" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"MY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/atmos) "Nb" = ( /obj/machinery/bci_implanter, /turf/open/floor/iron/dark, @@ -2332,11 +2198,26 @@ /obj/machinery/chem_recipe_debug, /turf/open/floor/iron, /area/station/medical/chemistry) +"Ni" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/science/explab) "Ns" = ( /obj/machinery/door/airlock/public/glass, /obj/structure/cable, /turf/open/floor/iron, /area/station/medical/medbay) +"Nu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"NG" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/cargo/storage) "NZ" = ( /obj/machinery/rnd/production/protolathe/department, /turf/open/floor/iron, @@ -2362,15 +2243,58 @@ /obj/item/stock_parts/power_store/cell/bluespace, /turf/open/floor/iron/dark, /area/station/science/explab) +"OF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"OI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) +"OO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/explab) +"OS" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/unlocked, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "OU" = ( /obj/item/disk/tech_disk/debug, /turf/open/floor/iron, /area/station/science) +"Pc" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "Pk" = ( /obj/machinery/airalarm/directional/north, /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron/dark, /area/station/science/explab) +"Pr" = ( +/obj/machinery/atmospherics/components/unary/airlock_pump{ + dir = 8 + }, +/obj/machinery/light/small/red/dim/directional/east, +/turf/open/floor/iron/dark, +/area/station/medical/medbay) +"Pv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/meter/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) "Px" = ( /obj/structure/table, /obj/machinery/reagentgrinder, @@ -2383,26 +2307,54 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/security/brig) -"Qi" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) -"Qt" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"PK" = ( +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/door/airlock/external/glass/ruin, -/turf/open/floor/plating, +/turf/open/floor/iron/white/corner, /area/station/medical/medbay) +"Qi" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/transit_tube/station/dispenser/reverse{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "Qu" = ( /obj/docking_port/stationary/mining_home{ dir = 8 }, /turf/open/floor/engine, /area/station/cargo/miningoffice) +"QM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/science) +"QP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/door/directional/east{ + id = "cargoload"; + name = "Loading Doors"; + pixel_y = -9 + }, +/obj/machinery/button/door/directional/east{ + id = "cargounload"; + name = "Unloading Doors"; + pixel_y = 8 + }, +/obj/machinery/computer/cargo{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) +"QV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "QY" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -2421,6 +2373,42 @@ /obj/machinery/byteforge, /turf/open/floor/circuit/green, /area/station/cargo/bitrunning/den) +"Ru" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) +"Rx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/closet/radiation, +/obj/structure/sign/warning/radiation/rad_area/directional/north, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) +"RD" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/table, +/obj/item/debug/omnitool{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/debug/omnitool/item_spawner{ + pixel_x = 4; + pixel_y = -6 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) +"RE" = ( +/obj/machinery/door/airlock/external/glass/ruin, +/obj/effect/turf_decal/stripes/full, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/cargo/storage) "RM" = ( /obj/structure/closet/secure_closet/hop{ locked = 0 @@ -2449,6 +2437,14 @@ /obj/item/bitrunning_debug, /turf/open/floor/iron, /area/station/cargo/bitrunning/den) +"SU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/brig) +"SX" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "Td" = ( /obj/machinery/light/directional/east, /obj/effect/turf_decal/stripes/line{ @@ -2460,28 +2456,47 @@ /obj/machinery/door/poddoor, /turf/open/floor/engine, /area/station/hallway/secondary/entry) +"Ts" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "Tt" = ( /turf/open/floor/plating, /area/station/maintenance/aft) +"TJ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/engineering/atmos) "TR" = ( /obj/machinery/netpod, /turf/open/floor/iron, /area/station/cargo/bitrunning/den) -"TV" = ( -/obj/machinery/door/airlock, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/construction) +"TT" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/components/unary/passive_vent/layer2{ + dir = 8 + }, +/turf/open/space, +/area/space/nearstation) "Ue" = ( /turf/closed/wall/r_wall, /area/station/cargo/bitrunning/den) -"Ut" = ( -/obj/structure/closet/secure_closet/medical3{ - locked = 0 - }, -/obj/item/healthanalyzer/advanced, +"Un" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/medical/medbay) +"Uy" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/cargo/miningoffice) "Va" = ( /obj/machinery/power/smes/full, /obj/effect/turf_decal/stripes/line{ @@ -2497,23 +2512,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"Vr" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/explab) "Vy" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"VA" = ( -/obj/structure/fans/tiny, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/main) "We" = ( /obj/machinery/newscaster/directional/west, /turf/open/floor/iron, @@ -2522,37 +2524,24 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) -"Wq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/effect/turf_decal/tile/blue/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/central) -"Wx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "WK" = ( /obj/structure/money_bot, /turf/open/floor/iron/dark, /area/station/science/explab) -"WT" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external/glass/ruin, +"WL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/medical/medbay) +"WR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/engineering/main) +/turf/open/floor/iron, +/area/station/security/brig) "Xg" = ( /obj/machinery/light/directional/east, /obj/machinery/vending/syndichem{ - onstation = 0; - req_access = null + onstation = 0 }, /turf/open/floor/iron, /area/station/medical/chemistry) @@ -2563,10 +2552,44 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"Xy" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/hallway/primary/central) +"XA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/vacuum/external/directional/east, +/turf/open/floor/iron/white/corner, +/area/station/medical/medbay) "XC" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/science) +"XF" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "cargoload" + }, +/obj/structure/sign/warning/vacuum/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) +"XG" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/central) +"XK" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "XN" = ( /obj/structure/table, /obj/item/organ/internal/cyberimp/bci{ @@ -2580,12 +2603,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) -"XR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/engineering/atmos) "XU" = ( /obj/machinery/atmospherics/components/tank/air, /obj/machinery/light/directional/north, @@ -2609,6 +2626,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/explab) +"Yt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/station/engineering/atmos) "Yy" = ( /obj/machinery/light/directional/north, /obj/machinery/rnd/production/circuit_imprinter/department, @@ -2616,6 +2638,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/science) +"Yz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/station/medical/medbay) "YL" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -2628,6 +2655,28 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"Zl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/engineering/main) +"Zo" = ( +/obj/structure/table, +/obj/item/gun/magic/wand/resurrection/debug, +/obj/item/gun/magic/wand/death/debug{ + pixel_y = 10 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/debug/human_spawner{ + pixel_x = 6; + pixel_y = -4 + }, +/turf/open/floor/iron/white/corner{ + dir = 1 + }, +/area/station/medical/medbay) "Zz" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/turf_decal/stripes/line, @@ -2636,6 +2685,12 @@ /obj/effect/mapping_helpers/airalarm/unlocked, /turf/open/floor/iron, /area/station/commons/storage/primary) +"ZB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "ZD" = ( /obj/machinery/suit_storage_unit/ce, /turf/open/floor/iron, @@ -3410,7 +3465,7 @@ aa Ue LS Yd -hv +fL TR Ue aa @@ -3502,7 +3557,7 @@ aa Ue IF Aj -vb +uL SC Ue aa @@ -3594,7 +3649,7 @@ em Ue Ue Ue -nI +wp QY Ue Tj @@ -3686,7 +3741,7 @@ rK rK vy em -aB +jL eh LW lc @@ -3778,7 +3833,7 @@ qQ qQ ME em -aB +jL eh LW lc @@ -3870,7 +3925,7 @@ qQ qQ ME em -aB +jL eh LW lc @@ -3962,7 +4017,7 @@ qQ qQ CQ em -mi +OF eh LW lc @@ -4054,7 +4109,7 @@ qQ qQ ME em -aB +jL eh LW lc @@ -4146,7 +4201,7 @@ qQ qQ YL em -aB +jL eh LW lc @@ -4235,11 +4290,11 @@ II Td II II -gl -gD -kj -aB -wM +Uy +Cg +wD +jL +jL LW lc lc @@ -4327,11 +4382,11 @@ em em em EM -gm -go -gp -eL -gr +yi +yi +em +eh +ax LW lc lc @@ -4423,7 +4478,7 @@ dY dY dY eh -gu +ax LW lc lc @@ -4515,7 +4570,7 @@ od dj ed eh -gu +ax LW lc lc @@ -4607,7 +4662,7 @@ fi dP ex eh -gu +ax LW lc lc @@ -4699,7 +4754,7 @@ Re dV dY ej -gu +ax LW lc lc @@ -4791,7 +4846,7 @@ dY dY dY eh -gu +ax LW lc lc @@ -4883,7 +4938,7 @@ aa aa dY gE -gu +ax LW lc lc @@ -4974,8 +5029,8 @@ aa aa aa dY -gq -ei +SX +ax LW lc lc @@ -4986,7 +5041,7 @@ lc lc wB eh -gw +GN dY aa aa @@ -4994,7 +5049,7 @@ aa aa aa dY -gB +ru eh en aa @@ -5067,7 +5122,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5078,7 +5133,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5086,7 +5141,7 @@ aa aa aa en -ek +BM eh dY aa @@ -5159,7 +5214,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5170,7 +5225,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5178,7 +5233,7 @@ aa aa aa en -ek +BM eh en aa @@ -5251,7 +5306,7 @@ aa aa dY ej -gu +ax LW lc lc @@ -5262,7 +5317,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5270,7 +5325,7 @@ aa aa aa en -ek +BM eh dY aa @@ -5343,7 +5398,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5354,7 +5409,7 @@ lc lc wB eh -gx +Ml dY aa aa @@ -5362,7 +5417,7 @@ aa aa aa dY -gC +OI eh dY aa @@ -5435,7 +5490,7 @@ aa aa dY eh -gu +ax LW lc lc @@ -5446,7 +5501,7 @@ lc lc wB eh -ek +BM en aa aa @@ -5454,7 +5509,7 @@ eE aa aa en -ek +BM eh dY aa @@ -5527,7 +5582,7 @@ bw ag ag eh -gu +ax LW dh en @@ -5538,7 +5593,7 @@ en dY wB eh -ek +BM dY dY fn @@ -5546,7 +5601,7 @@ fs en dY dY -ek +BM eh dY aa @@ -5619,7 +5674,7 @@ aD dR ag eh -gu +ax eh eV eh @@ -5630,7 +5685,7 @@ eh eV eh eh -ek +BM eh eV eh @@ -5638,7 +5693,7 @@ eh eh eV eh -ek +BM eh dY aa @@ -5703,34 +5758,34 @@ ag gn aD aD -bH -ci -ci -ci -ci -ci -eg -ei -gu -ei -ep -ei -ei -ei -ei -ei -ei -ei -ei -gu -ei -ei -ei -ei -ei -ei -Qi -fZ +SU +WR +WR +WR +WR +WR +GQ +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +ax +jL +BM eh dY aa @@ -5805,7 +5860,7 @@ ag eh eh eh -gu +ax eh eh eh @@ -5821,7 +5876,7 @@ eh eh eh eh -rn +jL eh eh dY @@ -5897,7 +5952,7 @@ bA gd bA bZ -ft +Xy bZ cN cN @@ -5913,7 +5968,7 @@ cN cN cN cN -LH +os en dY dY @@ -5980,7 +6035,7 @@ ut aw hm aw -aw +hr Kx ah zS @@ -5989,7 +6044,7 @@ ca If bA kn -ES +xK bE cN Sg @@ -6005,7 +6060,7 @@ dy dm dM cN -Vr +Ni vm uQ Ov @@ -6069,22 +6124,22 @@ aa aa ah am -aw -aw -ba -jE -MY -bk -bt -bt -bt -AP -pA -kQ -ES -rL -cP -cX +EN +FC +FC +Nu +xY +Ks +My +My +My +bD +bA +XK +xK +Mh +cN +ou dn dn dn @@ -6097,7 +6152,7 @@ dn dn dL sr -nn +OO ZP ZP WK @@ -6161,22 +6216,22 @@ aa aa ah dS -aw +GC aN bb -bl +Ru zo ah Yy bD -XC -gY -jb -ES -bE -Mh -TV -EA +QM +QM +rh +ZB +QV +FA +Hb +Es dn dn dn @@ -6253,19 +6308,19 @@ aa aa ah am -aw +bm aO bc -bm +Ru ZD ah bF OU -XC +wc Ct gd -cA bE +QV bE ef cY @@ -6345,10 +6400,10 @@ aa aa ah XU -bl -aP -aP -XR +Yt +FE +FE +Pv Xp ah NZ @@ -6356,8 +6411,8 @@ bD XC co bA -JS -bE +OS +QV bE cN dW @@ -6436,11 +6491,11 @@ aa aa aa ah -Wh -ah ah Wh -ah +Wh +Wh +TJ ah ah bu @@ -6448,8 +6503,8 @@ bu cd bu bu -cB -bE +Ef +QV bE cN cY @@ -6532,7 +6587,7 @@ ab ab ab ab -ab +TT ab ab bu @@ -6540,9 +6595,9 @@ Fd ce cp bu -cC -lX -bE +Hc +QV +hp cN cY dn @@ -6632,8 +6687,8 @@ bI cf EI bv -dU -bE +Hc +QV bE cN cY @@ -6724,8 +6779,8 @@ BG cf BD bu -dU -bE +Hc +QV bE cN cY @@ -6814,10 +6869,10 @@ ab bv bJ cf -cq -cw -Wq -bE +xD +io +lu +QV bE ef cY @@ -6908,8 +6963,8 @@ bK cf Iy bu -cD -bE +XG +QV bE ef cY @@ -6991,7 +7046,7 @@ ae ac ac aj -aC +Kg aj ac ac @@ -7000,8 +7055,8 @@ aK cf RM bv -cD -bE +XG +QV bE cN dK @@ -7083,7 +7138,7 @@ aj aj aj aj -VA +vS aj ac ac @@ -7092,8 +7147,8 @@ bM cg cr bu -wb -bE +DO +QV bE cS cS @@ -7175,7 +7230,7 @@ aj al aA aj -WT +eB aj aj aj @@ -7184,8 +7239,8 @@ bu cd bu bu -cE -bE +kS +QV bE cS Zz @@ -7267,7 +7322,7 @@ aj ap aA We -Vy +Ma aS bd bo @@ -7276,8 +7331,8 @@ hD cj ct Nc -cF -bE +qH +QV bE cS dc @@ -7358,30 +7413,30 @@ aa aj aq Vy -Vy -aE -aT -be -be -bx -CV -CV -ch -CV -cT -bN -bN -da -fK -dJ -dJ +Zl +Ma +oK +oK +oK +sT +IV +IV +Ce +Ce +qH +QV +bE +cS +qv dJ +wR dJ dJ dJ dJ dJ dJ +dN dJ dJ cS @@ -7451,20 +7506,20 @@ aj IH aA aH -aF -lg +aA +mk bf bp aj Px +tn Ce -JF -mE -oV -bE +GZ +qH +QV bE cS -fx +jg dq dJ dJ @@ -7475,7 +7530,7 @@ dJ dJ dJ dJ -ny +gi cS fI ga @@ -7539,24 +7594,24 @@ aa aa aa aa -ad -ad ak ak ak -aU +ak +ak +Ts ak ak ak bQ -Ce -Ce -cj -vP -Mh +tn +tn +tn +tQ +sN Vg cS -fy +rC dr dJ dJ @@ -7567,7 +7622,7 @@ dJ dJ dJ dJ -dO +nT cS fO fO @@ -7631,24 +7686,24 @@ aa aa aa aa -ad -af +aa +aa ak Va -aG -aV +Bp +nb bg bq ak bR cj +mb cj -cj -oV -bE +qH +QV Mh uO -fz +Hg ds dJ dJ @@ -7723,29 +7778,29 @@ aa aa aa aa -bY -af +aa +aa ak -at -Wx -bh -bh +Rx +aX +aX +aX br ak bS Ce -Ce +LU cj -oV -bE -bE -cV -fA +qH +QV +QV +zg +ay dt dJ dD dJ -dI +qR dJ XZ dJ @@ -7815,24 +7870,24 @@ aa aa aa aa -ad -af +aa +aa ak gW -aI +Lb aX -aI -aI +Qi +ak ak Ly EX Xg cj -oV -bE +qH +QV bE cV -fC +pw du dJ dJ @@ -7907,24 +7962,24 @@ aa aa aa aa -ad +aa +aa +aa +aI af -ak -av -av -av -av -av +aX +ad +aI by by ck by Ns -cG -cx +by +Mg by by -fD +pZ dv dJ dJ @@ -7999,24 +8054,24 @@ aa aa aa aa -ad +aa +aa +aa +aI af -ak -av -MN -MN -MN -av +aX +ad +aI by Ot cl -IB +RD cl -cH -cu +Zo +wa cJ by -fE +Pc dw dJ dJ @@ -8027,7 +8082,7 @@ dJ dJ dJ dJ -dN +kf cS fQ fO @@ -8091,39 +8146,39 @@ aa aa aa aa -ad +aa +aa +aa +aI af -ak -dT -MN -av -Jp -av +aX +ad +aI by -bV -cm +DD cm cm cm cm +WL Sj by -dA +jk dJ +JJ dJ dJ -dJ -dF -dJ +yl dJ dJ dJ +pY dJ dJ cS fS -lH -gb +fO +AD fO gk aa @@ -8183,39 +8238,39 @@ aa aa aa aa -ad +aa +aa +aa +aI af -ak -av -MN -MN -MN -av +aX +ad +aI by -bW -cm +ER cm cm cm -cm -cL +Un +WL +LD by -dk -eH -eH -eH -eH -fH -fw -eH -eH -eH -eH -fH -fR -fW -lH -fO +DC +Bz +Bz +Bz +Bz +wl +DC +MM +MM +MM +MM +qw +pe +pr +Fy +Fy fO ga aa @@ -8275,30 +8330,30 @@ aa aa aa aa -ad +aa +aa +aa +aI af -ak -av -av -aY -av -av +bY +ad +aI by -bX +jZ +cm +cm cm -is -cy -Ut cm -cK +WL +jz by dB dx dl dl gg -ez -dB +JV +zY dl dl dl @@ -8367,21 +8422,21 @@ aa aa aa aa -ad +aa +aa +aa +aI af -ak -ak -ak -ak -ak -ak -by -by -dH -by -Qt +aX +ad +aI by -EB +er +cm +cm +cm +cm +WL DW by cS @@ -8389,9 +8444,9 @@ cS cS cS cS -fN -vv -cS +Is +Jd +tz cS cS cS @@ -8459,21 +8514,21 @@ aa aa aa aa -ad -af -af -af -af -af -af -af -af -af +aa +aa +aa +aI af +aX +ad +aI by -cz -by -cm +wk +PK +PK +CF +XA +vB es by eu @@ -8481,8 +8536,8 @@ eu qx eP fY -eZ -eu +NG +vQ fq fr eu @@ -8551,21 +8606,21 @@ aa aa aa aa +aa +aa +aa +aI +af +aX ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad +aI +by by -pI by +Lq +yH by +ck by by eu @@ -8573,8 +8628,8 @@ eu eu eQ eu -fa -eu +CG +vQ eu eu fo @@ -8646,30 +8701,30 @@ aa fg fg fg -fg -fg -fg -fg -fg -fg -fg -fg -fg -fg -fg -fg -fg -et +aI +af +aX +ad +aI +aa +aa +ck +mC +BB +Yz +mC +mC +by ev eA eA -eA +IX eN -ev -fe -ev +Ao +QP +pL eT -fm +XF fm ev et @@ -8738,30 +8793,30 @@ aa aa aa aa +aI +hS +bY +ad +aI aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ck +mC +mC +Pr +mC +mC +by et -fB -fh fh fh +et eY -eR -fh -eR +DT +et +RE fc -fh +et fh fh et @@ -8830,30 +8885,30 @@ aa aa aa aa +aI +af +aX +ad +aI aa aa +by +ck +ck +by +CJ +CJ +by aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ew +fh eC -fF -fB -fF +gH +ng +GV fl -ew +fh aa aa aa @@ -8922,6 +8977,11 @@ aa aa aa aa +aI +af +aX +ad +aI aa aa aa @@ -8934,17 +8994,12 @@ aa aa aa aa -aa -aa -aa -aa -aa -fh -eY -eS fh -eS -fc +eC +An +ya +An +fl fh aa aa @@ -9014,6 +9069,11 @@ aa aa aa aa +aI +af +aX +ad +aI aa aa aa @@ -9026,18 +9086,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -eJ -aa -aa -aa -aa +et +eY +qg +fB +qg +fc +et aa aa aa @@ -9106,6 +9161,11 @@ aa aa aa aa +aI +af +aX +ad +aI aa aa aa @@ -9120,12 +9180,7 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +eJ aa aa aa @@ -9198,11 +9253,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +aI +af +bY +ad +aI aa aa aa @@ -9290,11 +9345,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +aI +af +aX +ad +aI aa aa aa @@ -9382,11 +9437,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +aI +af +aX +ad +aI aa aa aa @@ -9474,11 +9529,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +aI +af +aX +ad +aI aa aa aa @@ -9566,11 +9621,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +aI +af +aX +ad +aI aa aa aa @@ -9658,11 +9713,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +ak +qq +bh +xq +ak aa aa aa @@ -9749,13 +9804,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +ak +ak +aI +vw +aI +ak +ak aa aa aa @@ -9841,13 +9896,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +ak +av +av +av +av +av +ak aa aa aa @@ -9933,13 +9988,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +ak +av +MN +MN +MN +av +ak aa aa aa @@ -10025,13 +10080,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +ak +dT +MN +av +Jp +av +ak aa aa aa @@ -10117,13 +10172,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +ak +av +MN +MN +MN +av +ak aa aa aa @@ -10209,13 +10264,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +ak +av +av +aY +av +av +ak aa aa aa @@ -10301,13 +10356,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +ak +ak +ak +ak +ak +ak +ak aa aa aa diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 2346e028c49e9..e730dea04bc99 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -196,13 +196,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/courtroom) -"aV" = ( -/obj/structure/table/wood, -/obj/item/clipboard, -/obj/item/radio/headset/headset_cent, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/briefing) "aW" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -712,10 +705,21 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/admin) -"de" = ( -/obj/effect/landmark/start/new_player, -/turf/closed/indestructible/start_area, -/area/misc/start) +"df" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/stamp/denied{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/stamp{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stamp/centcom, +/turf/open/floor/iron/grimy, +/area/centcom/central_command_areas/admin) "dh" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 4 @@ -785,6 +789,20 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/control) +"ds" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "CentCom Security" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/turf/open/floor/iron, +/area/centcom/central_command_areas/ferry) "dv" = ( /obj/structure/railing/corner{ dir = 8 @@ -1111,6 +1129,13 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"fb" = ( +/obj/machinery/flasher{ + id = "tdomeflash"; + name = "Thunderdome Flash" + }, +/turf/open/floor/circuit/green, +/area/centcom/tdome/arena) "fc" = ( /obj/effect/turf_decal/delivery, /obj/effect/light_emitter/thunderdome, @@ -1175,17 +1200,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) -"fy" = ( -/obj/structure/signpost/salvation{ - icon = 'icons/obj/structures.dmi'; - icon_state = "ladder10"; - invisibility = 100 - }, -/turf/open/misc/ashplanet/wateryrock{ - initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; - planetary_atmos = 0 - }, -/area/awaymission/errorroom) "fA" = ( /obj/machinery/vending/cola, /obj/effect/turf_decal/delivery, @@ -1283,9 +1297,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/centcom/central_command_areas/evacuation/ship) -"fX" = ( -/turf/closed/indestructible/start_area, -/area/misc/start) "fZ" = ( /obj/effect/landmark/ctf, /turf/open/space/basic, @@ -1322,11 +1333,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/centcom/central_command_areas/prison) -"gh" = ( -/turf/closed/indestructible/fakedoor{ - name = "Thunderdome Admin" - }, -/area/centcom/tdome/administration) "gi" = ( /obj/docking_port/stationary{ dir = 4; @@ -1480,6 +1486,19 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"gY" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "CentCom" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/central_command_areas/control) "gZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -1663,6 +1682,13 @@ /obj/item/soap/nanotrasen, /turf/open/floor/iron/white, /area/centcom/tdome/observation) +"ig" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/taperecorder, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/ferry) "ih" = ( /obj/structure/bookcase/random, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -1778,11 +1804,6 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron, /area/centcom/central_command_areas/prison) -"iB" = ( -/turf/closed/indestructible/fakedoor{ - name = "CentCom Cell" - }, -/area/centcom/central_command_areas/prison/cells) "iC" = ( /obj/structure/table/wood, /obj/machinery/chem_dispenser/drinks/beer{ @@ -2412,10 +2433,7 @@ "lb" = ( /obj/structure/table/wood, /obj/machinery/door/window/left/directional/south, -/obj/item/radio/intercom{ - desc = "Talk smack through this."; - syndie = 1 - }, +/obj/item/radio/intercom/syndicate, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/courtroom) "lc" = ( @@ -2428,10 +2446,7 @@ /area/centcom/central_command_areas/courtroom) "ld" = ( /obj/structure/table/wood, -/obj/item/radio/intercom{ - desc = "Talk smack through this."; - syndie = 1 - }, +/obj/item/radio/intercom/syndicate, /obj/machinery/door/window/brigdoor/right/directional/south{ name = "CentCom Stand"; req_access = list("cent_captain") @@ -2600,10 +2615,8 @@ /obj/structure/chair{ dir = 8 }, -/obj/item/radio/intercom{ - desc = "Talk smack through this."; - pixel_x = -32; - syndie = 1 +/obj/item/radio/intercom/syndicate{ + pixel_x = -32 }, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/courtroom) @@ -2669,10 +2682,7 @@ /area/centcom/central_command_areas/courtroom) "mn" = ( /obj/structure/table/wood, -/obj/item/radio/intercom{ - desc = "Talk smack through this."; - syndie = 1 - }, +/obj/item/radio/intercom/syndicate, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/courtroom) "mo" = ( @@ -2905,6 +2915,11 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/fore) +"nz" = ( +/obj/structure/table/reinforced, +/obj/machinery/fax/admin, +/turf/open/floor/iron/grimy, +/area/centcom/central_command_areas/briefing) "nA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -3766,6 +3781,13 @@ /obj/effect/turf_decal/tile/dark_blue/fourcorners, /turf/open/floor/iron, /area/centcom/central_command_areas/evacuation) +"rr" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/clipboard, +/obj/item/radio/headset/headset_cent, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/briefing) "rs" = ( /obj/effect/landmark/prisonwarp, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -3811,6 +3833,10 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/evacuation/ship) +"rA" = ( +/obj/effect/landmark/start/new_player, +/turf/cordon, +/area/misc/start) "rB" = ( /obj/structure/table/reinforced, /obj/item/storage/fancy/donut_box, @@ -4370,20 +4396,6 @@ /obj/structure/sign/poster/contraband/syndicate_recruitment/directional/north, /turf/open/indestructible/dark, /area/centcom/central_command_areas/admin) -"ub" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "CentCom" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron, -/area/centcom/central_command_areas/control) "uc" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -4417,6 +4429,20 @@ /obj/structure/flora/bush/generic/style_random, /turf/open/floor/grass, /area/centcom/central_command_areas/prison) +"uk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "CentCom" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/turf/open/floor/iron, +/area/centcom/central_command_areas/control) "ul" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/yellow/corner{ @@ -4948,20 +4974,6 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) -"wu" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "CentCom Security" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron, -/area/centcom/central_command_areas/ferry) "wv" = ( /obj/machinery/door/poddoor/shutters{ id = "XCCFerry"; @@ -5038,19 +5050,6 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/control) -"wJ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "CentCom" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/iron, -/area/centcom/central_command_areas/evacuation) "wK" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -5473,6 +5472,21 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"yR" = ( +/obj/item/clipboard, +/obj/item/folder/red, +/obj/item/stamp/denied{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/stamp{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/table/reinforced, +/obj/item/stamp/centcom, +/turf/open/floor/iron/grimy, +/area/centcom/central_command_areas/briefing) "yS" = ( /obj/structure/table/reinforced, /obj/item/storage/box/emps, @@ -5483,19 +5497,6 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) -"yU" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "CentCom" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/iron, -/area/centcom/central_command_areas/control) "yV" = ( /obj/docking_port/stationary{ dir = 8; @@ -5755,6 +5756,19 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/two) +"zO" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Red Team"; + network = list("thunder"); + pixel_x = 11; + pixel_y = -9; + resistance_flags = 64 + }, +/obj/effect/landmark/thunderdome/two, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/light_emitter/thunderdome, +/turf/open/floor/iron, +/area/centcom/tdome/arena) "zR" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -6641,19 +6655,6 @@ /obj/effect/light_emitter/thunderdome, /turf/open/floor/iron, /area/centcom/tdome/arena) -"DT" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Green Team"; - network = list("thunder"); - pixel_x = 12; - pixel_y = -10; - resistance_flags = 64 - }, -/obj/effect/landmark/thunderdome/one, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/light_emitter/thunderdome, -/turf/open/floor/iron, -/area/centcom/tdome/arena) "DU" = ( /obj/item/kirbyplants/organic/plant21, /obj/effect/turf_decal/stripes/line, @@ -6751,6 +6752,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/courtroom) +"EA" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "CentCom" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/iron, +/area/centcom/central_command_areas/evacuation) "EB" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 8 @@ -6947,6 +6961,17 @@ /obj/effect/light_emitter/thunderdome, /turf/open/floor/iron, /area/centcom/tdome/arena) +"FM" = ( +/obj/structure/signpost/salvation{ + icon = 'icons/obj/structures.dmi'; + icon_state = "ladder10"; + invisibility = 100 + }, +/turf/open/misc/ashplanet/wateryrock{ + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + planetary_atmos = 0 + }, +/area/awaymission/errorroom) "FO" = ( /obj/structure/table/reinforced, /obj/item/computer_disk/quartermaster, @@ -6962,6 +6987,11 @@ /obj/effect/light_emitter/podbay, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/pod_storage) +"FU" = ( +/turf/closed/indestructible/fakedoor{ + name = "Thunderdome Admin" + }, +/area/centcom/tdome/administration) "FX" = ( /obj/machinery/computer/auxiliary_base/directional/north, /obj/structure/table/reinforced, @@ -6976,13 +7006,6 @@ }, /turf/open/floor/iron, /area/centcom/tdome/observation) -"Ga" = ( -/obj/structure/table/reinforced, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/taperecorder, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/ferry) "Gb" = ( /obj/effect/light_emitter/thunderdome, /turf/closed/indestructible/fakeglass, @@ -7360,6 +7383,19 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/prison) +"Im" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "CentCom" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/iron, +/area/centcom/central_command_areas/control) "Io" = ( /obj/docking_port/stationary{ dir = 8; @@ -7403,6 +7439,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/control) +"IF" = ( +/turf/closed/indestructible/fakedoor{ + name = "CentCom Cell" + }, +/area/centcom/central_command_areas/prison/cells) "IK" = ( /obj/structure/closet/secure_closet/ert_sec, /obj/effect/turf_decal/stripes/line{ @@ -7441,13 +7482,6 @@ "Ji" = ( /turf/open/floor/circuit/green, /area/centcom/tdome/arena) -"Jj" = ( -/obj/machinery/flasher{ - id = "tdomeflash"; - name = "Thunderdome Flash" - }, -/turf/open/floor/circuit/green, -/area/centcom/tdome/arena) "Jl" = ( /obj/item/kirbyplants/organic/plant21, /obj/effect/turf_decal/tile/green/anticorner/contrasted, @@ -7524,17 +7558,6 @@ }, /turf/open/floor/iron, /area/centcom/tdome/observation) -"Ke" = ( -/obj/item/clipboard, -/obj/item/folder/red, -/obj/item/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stamp, -/obj/structure/table/reinforced, -/turf/open/floor/iron/grimy, -/area/centcom/central_command_areas/briefing) "Kf" = ( /obj/machinery/door/airlock/centcom{ name = "Administrative Storage" @@ -7557,6 +7580,20 @@ }, /turf/open/floor/iron/white, /area/centcom/tdome/observation) +"Kv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "CentCom Security" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/turf/open/floor/iron, +/area/centcom/central_command_areas/ferry) "KA" = ( /obj/effect/landmark/thunderdome/two, /obj/effect/turf_decal/stripes/line{ @@ -7655,6 +7692,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_large, /area/centcom/central_command_areas/evacuation/ship) +"KW" = ( +/obj/machinery/keycard_auth/wall_mounted/directional/south, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/machinery/button/door/indestructible{ + id = "XCCFerry"; + name = "Hanger Bay Shutters"; + pixel_y = -38 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/ferry) "KZ" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ @@ -8234,6 +8283,27 @@ /obj/machinery/light/directional/south, /turf/open/floor/wood, /area/centcom/central_command_areas/admin) +"NN" = ( +/obj/machinery/keycard_auth/wall_mounted/directional/south, +/obj/structure/table/reinforced, +/obj/item/stack/package_wrap{ + pixel_y = 11; + pixel_x = -16 + }, +/obj/item/stack/cable_coil{ + pixel_y = 4; + pixel_x = -10 + }, +/obj/item/hand_labeler{ + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/hand_labeler_refill{ + pixel_x = 8; + pixel_y = 12 + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/supply) "NO" = ( /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supplypod) @@ -8320,19 +8390,6 @@ /obj/machinery/light/floor, /turf/open/floor/iron, /area/centcom/central_command_areas/evacuation) -"Oj" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "CentCom" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/iron, -/area/centcom/central_command_areas/control) "Om" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -8789,19 +8846,6 @@ "PW" = ( /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/three) -"PX" = ( -/obj/structure/table/reinforced, -/obj/item/folder/red{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/folder/blue{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/lighter, -/turf/open/floor/iron/grimy, -/area/centcom/central_command_areas/briefing) "PY" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -9217,6 +9261,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/courtroom) +"RQ" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Green Team"; + network = list("thunder"); + pixel_x = 12; + pixel_y = -10; + resistance_flags = 64 + }, +/obj/effect/landmark/thunderdome/one, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/light_emitter/thunderdome, +/turf/open/floor/iron, +/area/centcom/tdome/arena) "RR" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -9581,6 +9638,9 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"TJ" = ( +/turf/cordon, +/area/misc/start) "TK" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -9593,27 +9653,6 @@ /obj/effect/light_emitter/thunderdome, /turf/open/floor/iron, /area/centcom/tdome/arena) -"TO" = ( -/obj/machinery/keycard_auth/directional/south, -/obj/structure/table/reinforced, -/obj/item/stack/package_wrap{ - pixel_y = 11; - pixel_x = -16 - }, -/obj/item/stack/cable_coil{ - pixel_y = 4; - pixel_x = -10 - }, -/obj/item/hand_labeler{ - pixel_y = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/hand_labeler_refill{ - pixel_x = 8; - pixel_y = 12 - }, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/supply) "TS" = ( /obj/structure/table/wood, /obj/item/dice/d20{ @@ -9785,19 +9824,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) -"UE" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Red Team"; - network = list("thunder"); - pixel_x = 11; - pixel_y = -9; - resistance_flags = 64 - }, -/obj/effect/landmark/thunderdome/two, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/light_emitter/thunderdome, -/turf/open/floor/iron, -/area/centcom/tdome/arena) "UH" = ( /obj/machinery/light/directional/west, /obj/structure/closet/secure_closet/personal, @@ -10247,27 +10273,11 @@ /obj/machinery/computer/station_alert{ dir = 8 }, -/obj/item/radio/intercom{ - desc = "Talk smack through this."; - pixel_x = 28; - syndie = 1 +/obj/item/radio/intercom/syndicate{ + pixel_x = 28 }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/control) -"WQ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/centcom{ - name = "CentCom Security" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron, -/area/centcom/central_command_areas/ferry) "WR" = ( /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) @@ -10389,18 +10399,6 @@ "Xq" = ( /turf/open/floor/wood, /area/centcom/central_command_areas/admin) -"Xr" = ( -/obj/machinery/keycard_auth/directional/south, -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/machinery/button/door/indestructible{ - id = "XCCFerry"; - name = "Hanger Bay Shutters"; - pixel_y = -38 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/ferry) "Xs" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron, @@ -10504,17 +10502,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/centcom/central_command_areas/supplypod) -"XV" = ( -/obj/structure/table/wood, -/obj/item/clipboard, -/obj/item/folder/red, -/obj/item/stamp/denied{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stamp, -/turf/open/floor/iron/grimy, -/area/centcom/central_command_areas/admin) "Ya" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/armory) @@ -10926,20 +10913,20 @@ /area/centcom/central_command_areas/supply) (1,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ gu aa aa @@ -11183,21 +11170,21 @@ aa aa "} (2,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -11440,21 +11427,21 @@ LV aa "} (3,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -11697,21 +11684,21 @@ LV aa "} (4,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -11954,21 +11941,21 @@ LV aa "} (5,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -12211,21 +12198,21 @@ LV aa "} (6,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -12468,21 +12455,21 @@ LV aa "} (7,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -12725,21 +12712,21 @@ LV aa "} (8,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -de -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +rA +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -12982,21 +12969,21 @@ LV aa "} (9,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -13233,27 +13220,27 @@ zi ik ik ZE -fy +FM LW LV aa "} (10,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -13496,21 +13483,21 @@ LV aa "} (11,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -13753,21 +13740,21 @@ LV aa "} (12,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -14010,21 +13997,21 @@ LV aa "} (13,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -14267,21 +14254,21 @@ LV aa "} (14,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -14524,21 +14511,21 @@ LV aa "} (15,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -14781,21 +14768,21 @@ LV aa "} (16,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -15038,21 +15025,21 @@ LV aa "} (17,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ +TJ aa aa aa @@ -45273,7 +45260,7 @@ aa aa aa oe -Ga +ig sq to ZN @@ -45533,7 +45520,7 @@ mD FX sr tp -Xr +KW mD aa oe @@ -47078,9 +47065,9 @@ tu mD mD mD -wu +ds xh -wu +ds mD gO cn @@ -47344,7 +47331,7 @@ WN cb Bu tb -aV +rr ho gO aa @@ -47592,9 +47579,9 @@ dx Hz dd mD -WQ +Kv xh -WQ +Kv mD WO eF @@ -48112,8 +48099,8 @@ fa mD PU eF -PX -Ke +nz +yR eV eF xU @@ -49123,7 +49110,7 @@ vo fP On Zw -XV +df hd To BT @@ -49946,7 +49933,7 @@ Bp Sz Sz uf -gh +FU uf aa aa @@ -50662,7 +50649,7 @@ iF Pg mH nm -TO +NN On Ui JC @@ -51480,7 +51467,7 @@ BY QC bR HK -UE +zO HK HK pb @@ -51961,9 +51948,9 @@ YU YU mD mD -wu +ds xh -wu +ds mD Ya rY @@ -52475,9 +52462,9 @@ iu iu io io -ub +uk mk -ub +uk io io iu @@ -54307,7 +54294,7 @@ Gb Ef NY NY -Jj +fb Jq NY NY @@ -55783,22 +55770,22 @@ aa aa Jb ir -iB +IF YX ir -iB +IF Jb ir -iB +IF Jb ir -iB +IF Jb ir -iB +IF YX ir -iB +IF Jb iH il @@ -56073,9 +56060,9 @@ Fq UO io io -yU +gY mk -yU +gY io io iu @@ -56587,9 +56574,9 @@ io yj io io -Oj +Im mk -Oj +Im io io iu @@ -57134,7 +57121,7 @@ Tf QC dj Mf -DT +RQ Mf Mf Zi @@ -58353,22 +58340,22 @@ aa aa Jb ir -iB +IF YX ir -iB +IF Jb ir -iB +IF Jb ir -iB +IF Jb ir -iB +IF YX ir -iB +IF Jb pc Hv @@ -58643,9 +58630,9 @@ cg cg cg cg -yU +gY GJ -yU +gY cg cg cg @@ -58684,7 +58671,7 @@ Bp Sz Sz uf -gh +FU uf aa aa @@ -59157,9 +59144,9 @@ cg cg cg cg -wJ +EA GJ -wJ +EA cg cg cg diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index b422faecaf512..9c97fd61253f4 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -664,8 +664,9 @@ /turf/open/floor/iron/stairs/medium, /area/station/escapepodbay) "act" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/structure/railing, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 }, /turf/open/floor/iron, /area/station/commons/storage/primary) @@ -740,21 +741,13 @@ /turf/open/floor/iron, /area/station/hallway/secondary/service) "acF" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, /obj/machinery/door/airlock/public/glass{ name = "Primary Tool Storage" }, -/obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/commons/storage/primary) "acG" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, /turf/open/floor/iron, @@ -1163,9 +1156,18 @@ /turf/open/floor/iron, /area/station/maintenance/tram/right) "adE" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/obj/structure/cable, -/turf/open/floor/iron, +/obj/structure/table, +/obj/item/assembly/igniter{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_y = 4 + }, +/obj/item/clothing/gloves/color/fyellow{ + pixel_x = 5 + }, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "adF" = ( /obj/effect/turf_decal/siding/thinplating/dark{ @@ -1248,11 +1250,13 @@ /turf/open/floor/iron/dark, /area/station/escapepodbay) "adU" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 }, -/obj/structure/cable, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "adV" = ( @@ -3751,8 +3755,7 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/cargo/drone_bay) "axC" = ( @@ -5050,6 +5053,12 @@ }, /turf/open/openspace, /area/station/hallway/primary/tram/center) +"aKG" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs{ + dir = 8 + }, +/area/station/commons/storage/primary) "aKL" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/machinery/door/firedoor/border_only, @@ -5307,7 +5316,7 @@ }, /obj/machinery/light/warm/directional/north, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "aMM" = ( @@ -6061,18 +6070,16 @@ /turf/open/floor/iron/white, /area/station/science/lower) "aWJ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, /obj/machinery/door/airlock/public/glass{ name = "Primary Tool Storage" }, -/obj/machinery/door/firedoor, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/navigate_destination/tools, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "aWL" = ( @@ -6782,7 +6789,7 @@ /area/station/command/bridge) "bpn" = ( /mob/living/carbon/human/species/monkey, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "bpu" = ( /obj/structure/cable, @@ -7170,7 +7177,7 @@ "bwU" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/fullgrass/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "bxd" = ( /obj/structure/table, @@ -7501,17 +7508,6 @@ /obj/effect/turf_decal/tile/dark_green/fourcorners, /turf/open/floor/iron/white, /area/station/science/genetics) -"bDH" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "bEo" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 9 @@ -8151,6 +8147,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/checkpoint/escape) +"bNm" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "bNp" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -8211,11 +8215,12 @@ /turf/open/floor/wood, /area/station/command/meeting_room) "bNG" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, +/obj/machinery/vending/modularpc, +/obj/structure/table, +/obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/commons/storage/primary) "bNI" = ( @@ -8382,6 +8387,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/engineering/atmos) +"bRl" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/asteroid, +/area/station/security/prison/workout) "bRE" = ( /obj/structure/lattice/catwalk, /turf/open/floor/plating/airless, @@ -8605,7 +8614,7 @@ /area/station/engineering/gravity_generator) "bWb" = ( /obj/machinery/suit_storage_unit/hos, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /turf/open/floor/carpet, /area/station/command/heads_quarters/hos) "bWi" = ( @@ -8744,7 +8753,7 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 }, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/button/door/directional/east{ @@ -9736,10 +9745,15 @@ /turf/open/floor/wood, /area/station/service/library) "coV" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/table, /obj/machinery/cell_charger, +/obj/item/screwdriver{ + pixel_x = 2; + pixel_y = 11 + }, /obj/item/stock_parts/power_store/cell/high, -/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/commons/storage/primary) "cpl" = ( @@ -10184,7 +10198,7 @@ name = "The Monkey Pit"; req_access = list("science") }, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "cxc" = ( /obj/structure/chair, @@ -10794,14 +10808,13 @@ /turf/open/floor/iron, /area/station/security/brig) "cGm" = ( -/obj/effect/turf_decal/bot, -/obj/structure/reagent_dispensers/watertank, /obj/machinery/airalarm/directional/east, /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, -/turf/open/floor/iron, +/obj/structure/water_source/puddle, +/turf/open/floor/grass, /area/station/service/hydroponics/garden) "cGy" = ( /obj/structure/chair/stool/directional/north, @@ -11254,12 +11267,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"cON" = ( -/obj/machinery/deepfryer, -/turf/open/floor/iron/white/side{ - dir = 8 - }, -/area/station/service/kitchen) "cPg" = ( /obj/machinery/power/smes/engineering, /obj/structure/sign/warning/electric_shock/directional/west, @@ -11558,10 +11565,10 @@ /turf/closed/wall, /area/station/hallway/primary/tram/center) "cTl" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 9 }, +/obj/machinery/vending/assist, /turf/open/floor/iron, /area/station/commons/storage/primary) "cTw" = ( @@ -12935,7 +12942,7 @@ /obj/machinery/modular_computer/preset/id{ dir = 8 }, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /obj/machinery/button/door/directional/north{ name = "CMO Privacy Shutters"; pixel_y = 38; @@ -13188,6 +13195,20 @@ /obj/structure/flora/bush/leavy/style_random, /turf/open/floor/grass, /area/station/medical/virology) +"dyp" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "dys" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 6 @@ -14011,6 +14032,7 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 5 }, +/obj/machinery/fishing_portal_generator, /turf/open/floor/iron, /area/station/hallway/secondary/service) "dNB" = ( @@ -14495,6 +14517,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/floor/iron, /area/station/hallway/secondary/service) "dUK" = ( @@ -14794,17 +14819,19 @@ /turf/open/floor/iron/dark, /area/station/command/teleporter) "eaZ" = ( -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/wrench{ + pixel_x = 3; + pixel_y = 4 }, -/obj/item/t_scanner, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 5 +/obj/item/assembly/prox_sensor{ + pixel_x = 10; + pixel_y = 11 }, -/obj/structure/sign/clock/directional/east, -/turf/open/floor/iron, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "ebq" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ @@ -16393,15 +16420,13 @@ /turf/open/openspace, /area/station/asteroid) "eHj" = ( -/obj/machinery/vending/tool, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/warning{ dir = 4 }, -/obj/machinery/camera/directional/east{ - c_tag = "Civilian - Primary Tool Storage" - }, -/turf/open/floor/iron, +/obj/structure/sign/clock/directional/east, +/obj/effect/landmark/event_spawn, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "eHr" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, @@ -18829,7 +18854,7 @@ /area/station/engineering/storage/tech) "fEM" = ( /obj/machinery/light/warm/directional/south, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "fEQ" = ( /obj/structure/cable, @@ -18961,7 +18986,7 @@ "fGK" = ( /mob/living/carbon/human/species/monkey, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "fHg" = ( /obj/structure/chair{ @@ -19652,28 +19677,11 @@ /turf/closed/wall/r_wall, /area/station/science/xenobiology) "fUP" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/stack/cable_coil{ - pixel_x = 3; - pixel_y = -7 - }, -/obj/item/screwdriver{ - pixel_y = 16 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, /obj/machinery/firealarm/directional/west{ - pixel_y = -3 - }, -/obj/item/storage/belt/utility, -/obj/machinery/light_switch/directional/west{ - pixel_x = -23; - pixel_y = 8 + pixel_y = -5 }, /turf/open/floor/iron, /area/station/commons/storage/primary) @@ -20208,6 +20216,15 @@ "geG" = ( /turf/open/floor/iron, /area/station/hallway/secondary/exit) +"geJ" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 8 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/primary) "geX" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 8 @@ -20339,6 +20356,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/secondary/service) "ghs" = ( @@ -20527,7 +20545,7 @@ name = "The Monkey Pit"; req_access = list("science") }, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "gkQ" = ( /obj/machinery/computer/atmos_control/mix_tank{ @@ -20661,16 +20679,19 @@ /turf/open/floor/iron/dark, /area/station/security/courtroom/holding) "gms" = ( -/obj/structure/rack, -/obj/item/weldingtool, -/obj/item/crowbar, -/obj/item/stack/package_wrap, -/obj/item/stack/package_wrap, -/obj/item/stack/package_wrap, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 +/obj/structure/table, +/obj/item/wirecutters{ + pixel_y = 7; + pixel_x = -4 }, -/turf/open/floor/iron, +/obj/item/stack/cable_coil{ + pixel_x = -2; + pixel_y = 1 + }, +/obj/item/stack/cable_coil{ + pixel_y = 4 + }, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "gmu" = ( /obj/effect/decal/cleanable/dirt, @@ -21392,9 +21413,8 @@ /turf/open/floor/carpet, /area/station/commons/dorms) "gBr" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8; - piping_layer = 2 +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 8 }, /turf/open/floor/iron/dark, /area/station/science/ordnance) @@ -22270,6 +22290,9 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/station/hallway/secondary/service) "gRQ" = ( @@ -22550,7 +22573,7 @@ /area/station/security/checkpoint/supply) "gXo" = ( /obj/structure/flora/bush/fullgrass/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "gXA" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, @@ -22723,6 +22746,19 @@ }, /turf/open/floor/iron, /area/station/commons/storage/art) +"hbk" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "hbQ" = ( /obj/machinery/camera/directional/north{ c_tag = "Civilian - Holodeck Controls" @@ -23811,7 +23847,6 @@ /turf/open/floor/iron/dark/smooth_corner, /area/station/commons/fitness) "hze" = ( -/obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 9 }, @@ -23819,6 +23854,8 @@ pixel_x = -22; pixel_y = -8 }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/drone_bay) "hzk" = ( @@ -25142,6 +25179,25 @@ /obj/machinery/light/directional/north, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"hZq" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + id_tag = "outerbrigleft" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig_left" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig) "hZr" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) @@ -27243,7 +27299,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/incident_display/dual/directional/south, +/obj/machinery/incident_display/tram/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) "iOC" = ( @@ -28500,6 +28556,15 @@ }, /turf/open/space/basic, /area/space/nearstation) +"jjM" = ( +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 9 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/primary) "jjP" = ( /obj/effect/spawner/random/structure/billboard/nanotrasen, /obj/effect/turf_decal/sand/plating, @@ -28844,13 +28909,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"jpt" = ( -/obj/machinery/duct, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) "jpB" = ( /obj/structure/sign/clock/directional/north, /obj/structure/cable, @@ -29029,7 +29087,7 @@ /obj/machinery/camera/directional/north{ c_tag = "Command - Bridge North" }, -/obj/machinery/incident_display/dual/directional/north, +/obj/machinery/incident_display/bridge/directional/north, /turf/open/floor/iron, /area/station/command/bridge) "jsW" = ( @@ -30839,12 +30897,18 @@ /turf/open/floor/wood, /area/station/commons/dorms) "jYJ" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/reagent_dispensers/watertank, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, -/obj/machinery/light/directional/north, +/obj/structure/table, +/obj/item/analyzer{ + pixel_y = 4; + pixel_x = 2 + }, +/obj/item/t_scanner{ + pixel_x = -6; + pixel_y = 6 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "jYO" = ( @@ -31627,6 +31691,7 @@ /obj/effect/spawner/random/vending/snackvend{ pixel_x = -5 }, +/obj/machinery/incident_display/delam/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) "kkg" = ( @@ -32217,24 +32282,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"ktX" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Brig"; - id_tag = "outerbrigleft" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig_left" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron, -/area/station/security/brig) "kul" = ( /obj/structure/table/reinforced, /obj/structure/window/reinforced/spawner/directional/south, @@ -32482,6 +32529,13 @@ /turf/open/floor/iron, /area/station/hallway/secondary/entry) "kzx" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/primary) "kzC" = ( @@ -33519,7 +33573,7 @@ pixel_x = 5; pixel_y = 16 }, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "kQX" = ( /obj/machinery/computer/security{ @@ -33568,7 +33622,7 @@ /turf/open/floor/wood, /area/station/service/bar/backroom) "kRR" = ( -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "kRW" = ( /obj/effect/decal/cleanable/dirt, @@ -35569,6 +35623,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/virology) +"lAx" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + id_tag = "outerbrigright" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig_right" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig) "lAA" = ( /obj/structure/chair/stool/bar/directional/west, /turf/open/floor/iron, @@ -37830,7 +37903,7 @@ /area/station/command/meeting_room) "mmy" = ( /obj/structure/flora/bush/jungle/c/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "mmH" = ( /obj/effect/turf_decal/delivery, @@ -39251,10 +39324,7 @@ /turf/open/floor/iron, /area/station/hallway/secondary/service) "mOB" = ( -/obj/structure/table, -/obj/item/analyzer, -/obj/item/wrench, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/shrink_ccw{ dir = 8 }, /turf/open/floor/iron, @@ -41280,7 +41350,7 @@ "nzO" = ( /mob/living/carbon/human/species/monkey, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "nzR" = ( @@ -41945,7 +42015,7 @@ /area/station/engineering/supermatter/room) "nNh" = ( /obj/structure/flora/bush/sunny/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "nNi" = ( /obj/structure/table/wood, @@ -42175,7 +42245,7 @@ "nRd" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/flora/bush/fullgrass/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "nRw" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ @@ -42981,7 +43051,7 @@ id = "hopqueuestart"; req_access = list("kitchen") }, -/obj/machinery/keycard_auth/directional/south{ +/obj/machinery/keycard_auth/wall_mounted/directional/south{ pixel_x = 26 }, /obj/machinery/button/door/directional/south{ @@ -43798,8 +43868,8 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/structure/disposalpipe/junction{ + dir = 2 }, /turf/open/floor/iron, /area/station/hallway/secondary/service) @@ -44405,8 +44475,8 @@ /turf/closed/wall/r_wall, /area/station/engineering/supermatter) "oMh" = ( -/obj/structure/secure_safe/directional/east, /obj/machinery/airalarm/directional/north, +/obj/structure/detectiveboard/directional/east, /turf/open/floor/carpet, /area/station/security/detectives_office) "oMz" = ( @@ -44519,11 +44589,10 @@ /turf/open/floor/plating/elevatorshaft, /area/station/maintenance/tram/mid) "oOb" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, +/obj/structure/railing, +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "oOd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44654,7 +44723,7 @@ /area/station/ai_monitored/command/nuke_storage) "oQU" = ( /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "oQW" = ( /obj/effect/turf_decal/siding/thinplating{ @@ -44742,9 +44811,18 @@ /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "oSl" = ( +/obj/structure/railing/corner/end/flip{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "oSu" = ( @@ -46099,8 +46177,9 @@ /turf/open/floor/iron/white, /area/station/science/explab) "prW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, +/turf/open/floor/iron/stairs{ + dir = 8 + }, /area/station/commons/storage/primary) "psa" = ( /obj/structure/tank_holder/anesthetic, @@ -46348,6 +46427,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/tram/right) +"pvL" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "pvU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46639,7 +46723,6 @@ /area/station/hallway/secondary/exit) "pzw" = ( /obj/effect/turf_decal/bot, -/obj/structure/reagent_dispensers/watertank, /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -46816,13 +46899,15 @@ /turf/open/floor/plating, /area/station/cargo/miningdock) "pCM" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/clothing/gloves/color/fyellow, -/obj/item/assembly/prox_sensor{ - pixel_x = -8; - pixel_y = 4 +/obj/structure/railing{ + dir = 4 }, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/primary) "pCU" = ( @@ -46946,12 +47031,19 @@ /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) "pFw" = ( -/obj/machinery/vending/modularpc, -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/machinery/airalarm/directional/east, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = 17 }, -/turf/open/floor/iron, +/obj/item/storage/toolbox/electrical{ + pixel_y = 10; + pixel_x = 4 + }, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 5 + }, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "pFE" = ( /obj/structure/table, @@ -47292,28 +47384,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/service/chapel) -"pLg" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Brig"; - id_tag = "outerbrigright" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig_right" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/navigate_destination/sec, -/turf/open/floor/iron, -/area/station/security/brig) "pLs" = ( /obj/structure/transport/linear/tram, /obj/structure/tram/split, @@ -47377,10 +47447,10 @@ /turf/open/floor/iron/white, /area/station/science/lower) "pMz" = ( -/obj/structure/table/glass, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 5 }, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "pMG" = ( @@ -47529,10 +47599,15 @@ /turf/open/floor/plating, /area/station/maintenance/tram/mid) "pOQ" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/structure/cable, /turf/open/floor/iron, /area/station/commons/storage/primary) "pOZ" = ( @@ -47721,7 +47796,7 @@ "pTj" = ( /obj/structure/flora/bush/fullgrass/style_random, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "pTl" = ( @@ -47883,6 +47958,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, +/obj/machinery/vending/cytopro, /turf/open/floor/iron/white, /area/station/science/xenobiology) "pWC" = ( @@ -48378,7 +48454,7 @@ /turf/open/floor/iron/dark, /area/station/commons/lounge) "qeD" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/shrink_cw{ dir = 8 }, /turf/open/floor/iron, @@ -49411,15 +49487,10 @@ /turf/open/floor/iron, /area/station/security/office) "qxU" = ( -/obj/structure/table, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/wirecutters, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 }, +/obj/machinery/vending/tool, /turf/open/floor/iron, /area/station/commons/storage/primary) "qxZ" = ( @@ -49584,6 +49655,12 @@ /obj/machinery/door/window/right/directional/east, /turf/open/floor/iron, /area/station/security/brig) +"qAC" = ( +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 10 + }, +/turf/open/floor/iron/smooth, +/area/station/commons/storage/primary) "qBg" = ( /turf/open/floor/engine/plasma, /area/station/engineering/atmos) @@ -50180,7 +50257,7 @@ /area/station/science/server) "qKW" = ( /obj/structure/table/reinforced, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /obj/item/rcl/pre_loaded, /obj/machinery/computer/security/telescreen/ce/directional/west, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -51650,10 +51727,13 @@ /turf/open/floor/iron/dark, /area/station/command/gateway) "rkq" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 +/obj/structure/table, +/obj/item/flashlight{ + pixel_x = 9; + pixel_y = 13 }, -/turf/open/floor/iron, +/obj/item/storage/belt/utility, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "rks" = ( /obj/effect/spawner/structure/window, @@ -52135,6 +52215,14 @@ "run" = ( /turf/closed/wall/r_wall, /area/station/security/medical) +"ruo" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/trimline/yellow/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "rup" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -53497,24 +53585,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"rUd" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig"; - id_tag = "outerbrigright" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig_right" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/turf/open/floor/iron, -/area/station/security/brig) "rUe" = ( /obj/machinery/holopad, /obj/structure/cable, @@ -55576,7 +55646,7 @@ /area/station/cargo/miningdock) "sGF" = ( /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "sGG" = ( @@ -55805,6 +55875,12 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/iron, /area/station/command/bridge) +"sKD" = ( +/obj/machinery/smartfridge/drying, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/station/service/kitchen) "sKN" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 @@ -55845,6 +55921,16 @@ /obj/structure/railing/corner, /turf/open/space/openspace, /area/station/solars/starboard/fore) +"sLp" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/item/kirbyplants/random, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "sLz" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -56481,7 +56567,7 @@ /obj/machinery/computer/communications{ dir = 8 }, -/obj/machinery/keycard_auth/directional/north{ +/obj/machinery/keycard_auth/wall_mounted/directional/north{ pixel_x = 26 }, /obj/machinery/status_display/ai/directional/north, @@ -56529,17 +56615,15 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) "sXV" = ( -/obj/structure/table, -/obj/item/assembly/igniter, -/obj/item/assembly/igniter{ - pixel_x = -8; - pixel_y = -4 - }, -/obj/item/screwdriver{ - pixel_y = 16 +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/structure/rack, +/obj/machinery/light_switch/directional/south{ + pixel_x = 13 }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/light/directional/south, +/obj/item/crowbar, +/obj/item/weldingtool, /turf/open/floor/iron, /area/station/commons/storage/primary) "sXW" = ( @@ -56694,6 +56778,29 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/cargo/miningdock/cafeteria) +"taL" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + id_tag = "outerbrigright" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig_right" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination/sec, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig) "taP" = ( /obj/structure/lattice, /turf/open/openspace, @@ -56845,7 +56952,7 @@ /turf/closed/wall, /area/station/maintenance/port/aft) "tdR" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, @@ -56854,7 +56961,7 @@ "tdY" = ( /obj/structure/flora/bush/jungle/c/style_random, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "tdZ" = ( @@ -57763,6 +57870,7 @@ /obj/structure/closet/crate/preopen, /obj/item/stock_parts/power_store/cell/empty, /obj/effect/spawner/random/engineering/flashlight, +/obj/structure/sign/departments/exodrone/directional/east, /turf/open/floor/iron, /area/station/cargo/warehouse) "tuf" = ( @@ -59029,7 +59137,7 @@ c_tag = "Civilian - Recreational Area North-West" }, /obj/item/toy/plush/lizard_plushie/space/green, -/obj/machinery/incident_display/dual/directional/north, +/obj/machinery/incident_display/tram/directional/north, /turf/open/floor/iron, /area/station/commons/fitness/recreation) "tRo" = ( @@ -59731,6 +59839,7 @@ pixel_x = -23; pixel_y = 8 }, +/obj/structure/secure_safe/directional/south, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) "udZ" = ( @@ -61149,15 +61258,15 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "uAC" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, /turf/open/floor/iron, /area/station/commons/storage/primary) "uAF" = ( @@ -61433,6 +61542,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/secondary/service) "uEw" = ( @@ -62433,7 +62543,7 @@ "uVa" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/jungle/c/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "uVb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64387,7 +64497,7 @@ /area/station/engineering/atmos) "vCY" = ( /obj/structure/flora/tree/palm/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "vCZ" = ( /turf/closed/wall, @@ -64427,7 +64537,7 @@ /obj/structure/flora/bush/fullgrass/style_random, /obj/effect/landmark/event_spawn, /turf/open/misc/dirt/jungle{ - baseturfs = /turf/open/misc/dirt + baseturfs = /turf/open/misc/dirt/station }, /area/station/science/explab) "vDu" = ( @@ -64477,7 +64587,7 @@ /area/station/maintenance/central/greater) "vEl" = ( /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "vEq" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ @@ -64538,7 +64648,9 @@ /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) "vFp" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 }, /turf/open/floor/iron, @@ -64706,6 +64818,26 @@ }, /turf/open/floor/iron, /area/station/commons/dorms) +"vHT" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig"; + id_tag = "outerbrigleft" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "brig_left" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/security/entrance, +/obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, +/turf/open/floor/iron, +/area/station/security/brig) "vIa" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -66037,25 +66169,6 @@ /obj/effect/turf_decal/trimline/white/warning, /turf/open/floor/iron, /area/station/maintenance/tram/right) -"wiI" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig"; - id_tag = "outerbrigleft" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "brig_left" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/entrance, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/security/brig) "wiU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66586,7 +66699,7 @@ /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/tree/palm/style_random, /obj/structure/flora/coconuts, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "wtS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -67162,6 +67275,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/secondary/service) "wEu" = ( @@ -67890,7 +68004,7 @@ /area/station/commons/dorms) "wSp" = ( /obj/structure/flora/bush/jungle/b/style_random, -/turf/open/misc/grass/jungle, +/turf/open/misc/grass/jungle/station, /area/station/science/explab) "wSx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -68056,15 +68170,11 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "wXB" = ( -/obj/machinery/vending/assist, -/obj/machinery/requests_console/directional/east{ - name = "Tool Department Requests Console"; - department = "Tool Storage" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/trimline/yellow/warning{ + dir = 6 }, -/turf/open/floor/iron, +/turf/open/floor/iron/smooth, /area/station/commons/storage/primary) "wXC" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -88021,7 +88131,7 @@ abM aal lPV kPC -lFk +bRl lFk lFk mAB @@ -105007,13 +105117,13 @@ pGy dUH uDT wEl -jpt -jpt -jpt -jpt -jpt +aHR +aHR +aHR +aHR +aHR ghp -jpt +aHR ovY aHR sJQ @@ -105770,9 +105880,9 @@ aaa aaa sNs cTl -qeD +mOB acG -bDH +qeD fUP mOB uAC @@ -106027,13 +106137,13 @@ aaa aaa sNs bNG -kzx -kzx -kzx +eJZ +bNm +ruo pCM kzx oSl -kzx +ive coV alg aes @@ -106284,13 +106394,13 @@ aaa aaa sNs jYJ -eJZ -prW -prW +pvL +sLp +aKG oOb prW -oSl -ive +dyp +hbk sXV alg bug @@ -106543,9 +106653,9 @@ sNs vFp act rkq -kzx -kzx -kzx +jjM +geJ +qAC adE pOQ adU @@ -153325,7 +153435,7 @@ jGL jed oIz gnW -wiI +vHT mcD pDy tWn @@ -153839,7 +153949,7 @@ iUE rxE jyR lMR -ktX +hZq pqd kdV acr @@ -156923,7 +157033,7 @@ fph sHw kil axp -rUd +lAx njR joB lTV @@ -157437,7 +157547,7 @@ aBN sDO jFh msW -pLg +taL nSV aPk sGG @@ -170288,7 +170398,7 @@ eSx llj whs fEG -cON +sKD mkl fxS eSx diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index bf594bc37ec07..f71639d998658 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -1,4 +1,9 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aam" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, +/turf/open/floor/plating, +/area/station/science/ordnance) "aas" = ( /obj/structure/chair/office/tactical{ dir = 4 @@ -169,6 +174,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"acN" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/holosign_creator/atmos, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "acY" = ( /obj/structure/cable, /obj/structure/railing/corner{ @@ -448,18 +459,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/science/xenobiology) -"agM" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - name = "Security Shutters"; - id = "xbprotect"; - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/firealarm/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "agO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/broken_flooring/pile/directional/east, @@ -594,6 +593,18 @@ }, /turf/open/floor/plating, /area/station/science/ordnance) +"aju" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "ajK" = ( /obj/machinery/door/firedoor, /obj/effect/landmark/navigate_destination/bar, @@ -1040,12 +1051,6 @@ /obj/item/lighter, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) -"aqG" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "aqM" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -1146,18 +1151,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"atb" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/effect/turf_decal/box/red, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ath" = ( /obj/machinery/door/window/left/directional/west, /turf/open/floor/grass, @@ -1184,6 +1177,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/plating, /area/station/maintenance/aft/upper) +"atT" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "atX" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -1214,16 +1211,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/textured_large, /area/station/service/hydroponics/garden) -"auA" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "auB" = ( /turf/open/floor/engine, /area/station/medical/chemistry) @@ -1373,6 +1360,10 @@ /obj/structure/sign/chalkboard_menu, /turf/closed/wall, /area/station/service/cafeteria) +"awy" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "awB" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, @@ -1640,7 +1631,7 @@ /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "aAk" = ( /obj/machinery/holopad, /obj/effect/turf_decal/box, @@ -1853,6 +1844,17 @@ }, /turf/open/floor/circuit, /area/station/cargo/bitrunning/den) +"aEL" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/table/reinforced, +/obj/item/stack/sheet/iron/fifty, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/utility/welding, +/obj/effect/turf_decal/siding/purple{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/robotics/mechbay) "aEP" = ( /obj/effect/mapping_helpers/airlock/access/all/command/captain, /obj/machinery/door/airlock/command{ @@ -1873,6 +1875,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/tile, /area/station/service/bar) +"aFb" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/mapping_helpers/apc/cell_5k, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "aFp" = ( /obj/machinery/light/directional/south, /obj/structure/dresser, @@ -2124,7 +2135,7 @@ /obj/structure/reagent_dispensers/cooking_oil, /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "aJz" = ( /obj/structure/railing, /obj/structure/table, @@ -2317,6 +2328,14 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"aMf" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "aMx" = ( /obj/structure/cable, /obj/machinery/camera/autoname/motion/directional/south{ @@ -2366,11 +2385,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/station/commons/lounge) -"aMS" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "aMU" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/flora/bush/fullgrass/style_random, @@ -2398,15 +2412,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/research) -"aNF" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "aNH" = ( /obj/machinery/door/airlock/security/glass{ name = "Security Entry"; @@ -2423,6 +2428,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig/entrance) "aNR" = ( @@ -2513,15 +2519,6 @@ /obj/effect/spawner/structure/window/plasma, /turf/open/floor/engine, /area/station/medical/chemistry) -"aPG" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "aPI" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ @@ -2853,15 +2850,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"aXc" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/mapping_helpers/apc/cell_5k, -/obj/effect/mapping_helpers/apc/full_charge, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "aXg" = ( /obj/structure/railing{ dir = 10 @@ -3387,6 +3375,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bhq" = ( +/obj/item/radio/intercom/directional/south, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "bhv" = ( /obj/structure/window/reinforced/plasma/spawner/directional/south, /obj/machinery/power/energy_accumulator/tesla_coil/anchored, @@ -3616,6 +3608,15 @@ "bmp" = ( /turf/closed/wall, /area/station/service/theater) +"bmr" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "bmu" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/crate, @@ -4199,7 +4200,7 @@ "byb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "byf" = ( /obj/structure/closet/emcloset/anchored, /turf/open/floor/plating, @@ -4436,16 +4437,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"bBJ" = ( -/obj/machinery/processor/slime, -/obj/effect/turf_decal/bot_red, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/white/textured_corner{ - dir = 4 - }, -/area/station/science/xenobiology) "bBX" = ( /obj/structure/window/spawner/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4468,7 +4459,7 @@ /obj/machinery/computer/security/mining{ dir = 8 }, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 4 }, @@ -4607,6 +4598,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bEz" = ( +/obj/structure/closet/crate/science, +/obj/item/wrench, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/firealarm/directional/west, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "bEW" = ( /obj/structure/table/wood, /obj/effect/spawner/random/decoration/microwave{ @@ -4629,7 +4629,7 @@ /area/station/commons/toilet/restrooms) "bFe" = ( /obj/machinery/suit_storage_unit/hos, -/obj/machinery/keycard_auth/directional/east{ +/obj/machinery/keycard_auth/wall_mounted/directional/east{ pixel_y = -12 }, /turf/open/floor/iron/dark, @@ -4937,9 +4937,9 @@ /turf/open/floor/iron/dark, /area/station/security/courtroom) "bLI" = ( -/obj/machinery/processor/slime, /obj/effect/turf_decal/bot_red, /obj/effect/turf_decal/stripes/line, +/obj/machinery/processor/slime, /turf/open/floor/iron/white/textured_large, /area/station/science/xenobiology) "bLS" = ( @@ -5043,6 +5043,21 @@ "bND" = ( /turf/open/floor/iron, /area/station/engineering/atmos) +"bNG" = ( +/obj/machinery/door/airlock/research{ + autoclose = 0; + frequency = 1449; + id_tag = "xeno_airlock_interior"; + name = "Xenobiology Lab Internal Airlock" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "bNI" = ( /obj/structure/showcase/cyborg/old{ dir = 8; @@ -5194,6 +5209,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"bQY" = ( +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/machinery/fishing_portal_generator, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "bRl" = ( /obj/machinery/suit_storage_unit/captain{ req_access = list("captain") @@ -5532,6 +5552,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"bXe" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "bXx" = ( /obj/machinery/camera/autoname/directional/south, /obj/machinery/airalarm/directional/south, @@ -5689,11 +5715,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) -"caH" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/sign/warning/directional/west, -/turf/closed/wall/rust, -/area/station/medical/chemistry/minisat) "caP" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -6294,6 +6315,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"cnd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "cnm" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -6406,12 +6437,6 @@ dir = 4 }, /area/station/hallway/secondary/exit/departure_lounge) -"cqf" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "cqm" = ( /obj/structure/cable, /obj/machinery/camera/autoname/directional/south{ @@ -6421,17 +6446,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"cqt" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/button/door/directional/east{ - name = "shutter control"; - id = "ordauxgarage" - }, -/turf/open/floor/plating, -/area/station/science/ordnance) "cqH" = ( /obj/structure/transit_tube, /obj/structure/lattice, @@ -6600,13 +6614,6 @@ "csW" = ( /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"ctf" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/rack, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) "cti" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -6686,10 +6693,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"cuA" = ( -/obj/machinery/portable_atmospherics/canister, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "cuE" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/chair/plastic{ @@ -6864,6 +6867,15 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"czC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "ordauxgarage" + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/science/ordnance) "czD" = ( /obj/item/stack/tile/iron/white, /obj/effect/decal/cleanable/dirt/dust, @@ -6911,6 +6923,17 @@ /obj/effect/landmark/start/botanist, /turf/open/floor/iron, /area/station/service/hydroponics) +"cAq" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "xbprotect" + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "cAr" = ( /obj/structure/cable, /obj/machinery/button/door/directional/north{ @@ -6999,16 +7022,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/cargo/storage) -"cBB" = ( -/obj/machinery/airalarm/directional/east, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/clothing/head/utility/welding, -/obj/effect/turf_decal/siding/purple{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/science/robotics/mechbay) "cBD" = ( /obj/machinery/door/airlock/grunge{ name = "Prison Forestry" @@ -7036,6 +7049,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/small, /area/station/engineering/transit_tube) +"cCr" = ( +/obj/machinery/light/directional/north, +/obj/structure/table, +/obj/item/pen{ + pixel_x = 9; + pixel_y = 4 + }, +/obj/item/hand_labeler{ + pixel_y = 10; + pixel_x = -13 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "cCv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/white{ @@ -7800,13 +7826,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"cQX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "cRa" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/chair/office{ @@ -7903,13 +7922,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"cSI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "cSJ" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/snack, @@ -7961,6 +7973,13 @@ /obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/iron/white, /area/station/science/lab) +"cUf" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "cUk" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -8041,6 +8060,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/main) +"cVs" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Xenobiology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "cVL" = ( /obj/structure/closet/firecloset, /turf/open/floor/iron/textured, @@ -8244,7 +8272,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /mob/living/basic/goat/pete, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "cYP" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -8290,6 +8318,12 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/reinforced/airless, /area/space/nearstation) +"cZs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "cZE" = ( /turf/open/openspace, /area/station/command/meeting_room) @@ -8388,6 +8422,12 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/iron, /area/station/maintenance/department/medical/central) +"dcc" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "dcf" = ( /obj/structure/table/wood, /obj/structure/railing{ @@ -8417,18 +8457,6 @@ }, /turf/open/floor/plating, /area/station/cargo/miningoffice) -"dci" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) -"dck" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_half{ - dir = 8 - }, -/area/station/science/xenobiology) "dcl" = ( /obj/effect/turf_decal/sand/plating, /obj/item/pickaxe, @@ -8649,16 +8677,6 @@ }, /turf/open/floor/plating, /area/station/medical/storage) -"dgR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "dgS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8802,23 +8820,6 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/misc/asteroid, /area/station/hallway/secondary/entry) -"dir" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Chemistry Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry/minisat) "diz" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -8836,6 +8837,7 @@ "diI" = ( /obj/machinery/light/small/directional/north, /obj/machinery/computer/security, +/obj/structure/detectiveboard/directional/north, /turf/open/floor/carpet, /area/station/security/detectives_office) "diM" = ( @@ -9277,6 +9279,13 @@ }, /turf/open/floor/iron, /area/station/security/interrogation) +"dpA" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/blobstart, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "dpH" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ color = "#000000" @@ -9354,21 +9363,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/cargo/storage) -"drx" = ( -/obj/machinery/door_buttons/airlock_controller{ - idExterior = "xeno_airlock_exterior"; - idInterior = "xeno_airlock_interior"; - idSelf = "xeno_airlock_control"; - name = "Access Console"; - pixel_x = -25; - pixel_y = -25; - req_access = list("xenobiology") - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "drz" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/disposal/bin, @@ -9832,6 +9826,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"dzL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "dzN" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -9981,6 +9981,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/science/xenobiology) +"dBn" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/machinery/incident_display/bridge/directional/south, +/turf/open/floor/iron, +/area/station/command/bridge) "dBp" = ( /obj/machinery/button/door/directional/west{ req_access = list("atmospherics"); @@ -10055,7 +10061,7 @@ "dCh" = ( /obj/machinery/gibber, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "dCi" = ( /obj/structure/table/reinforced/rglass, /obj/item/storage/backpack/duffelbag/sec, @@ -10268,16 +10274,28 @@ /area/station/service/theater) "dGs" = ( /obj/structure/table/reinforced, -/obj/item/storage/pill_bottle/epinephrine, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = 12 - }, /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, /obj/effect/turf_decal/trimline/yellow/filled/mid_joiner{ dir = 4 }, +/obj/item/hand_labeler{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/item/storage/pill_bottle/epinephrine{ + pixel_x = -9; + pixel_y = 1 + }, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 14; + pixel_x = 3 + }, +/obj/item/hand_labeler_refill{ + pixel_x = 10; + pixel_y = -2 + }, /turf/open/floor/iron/white/smooth_edge{ dir = 4 }, @@ -10319,13 +10337,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/misc/asteroid, /area/station/maintenance/department/cargo) -"dGX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "dHa" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -10741,18 +10752,6 @@ /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) -"dPh" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1; - piping_layer = 2 - }, -/obj/effect/turf_decal/box/red, -/obj/machinery/light/directional/south, -/obj/machinery/camera/autoname/directional/west{ - network = list("ss13","rd") - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "dPk" = ( /obj/machinery/button/elevator/directional/east{ id = "cargo" @@ -11022,7 +11021,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/structure/reagent_dispensers/watertank, +/obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/iron/large, /area/station/engineering/atmos/upper) "dTA" = ( @@ -11241,6 +11240,16 @@ }, /turf/open/floor/iron/dark, /area/station/security/lockers) +"dXH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "dXN" = ( /obj/machinery/door/airlock/research{ name = "Robotics Lab Storage" @@ -11394,10 +11403,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"eaL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "eaS" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -11521,6 +11526,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ebU" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "ece" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -11576,20 +11590,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"ecM" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 3; - pixel_y = -2 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "edv" = ( /obj/machinery/computer/order_console/cook, /turf/open/floor/iron, @@ -11675,6 +11675,14 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"efF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "efJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible/layer2{ dir = 1 @@ -11703,6 +11711,15 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"egt" = ( +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight/glowstick/blue{ + start_on = 1; + light_range = 2 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "egv" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -11792,6 +11809,20 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/science/xenobiology/hallway) +"eih" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ein" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/structure/disposalpipe/segment{ @@ -12008,11 +12039,6 @@ /obj/structure/door_assembly, /turf/open/misc/asteroid, /area/station/asteroid) -"elG" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "elT" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -12082,18 +12108,6 @@ /obj/structure/stairs/north, /turf/open/floor/iron, /area/station/command/corporate_showroom) -"enX" = ( -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "eon" = ( /obj/effect/spawner/random/structure/chair_comfy{ dir = 4 @@ -12519,7 +12533,7 @@ /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 6 }, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /obj/machinery/button/door/directional/east{ pixel_y = 12; name = "privacy shutter control"; @@ -12655,12 +12669,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/service/library) -"exS" = ( -/obj/structure/cable, -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/asteroid) "exT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -12872,6 +12880,16 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/white, /area/station/security/prison/safe) +"eBw" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "eBD" = ( /obj/item/kirbyplants/random, /obj/structure/railing/corner{ @@ -13066,6 +13084,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"eEg" = ( +/obj/machinery/door_buttons/airlock_controller{ + idExterior = "xeno_airlock_exterior"; + idInterior = "xeno_airlock_interior"; + idSelf = "xeno_airlock_control"; + name = "Access Console"; + pixel_x = -25; + pixel_y = -25; + req_access = list("xenobiology") + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "eEm" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/tile/neutral, @@ -13173,8 +13206,8 @@ /turf/open/floor/iron, /area/station/engineering/main) "eFP" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, -/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/central/lesser) "eGn" = ( @@ -13378,20 +13411,6 @@ "eKR" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) -"eKT" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/pipe_dispenser{ - pixel_x = 3; - pixel_y = 7 - }, -/obj/item/pipe_dispenser, -/obj/machinery/power/apc/auto_name/directional/south{ - areastring = "/area/station/science/ordnance/burnchamber" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "eLe" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -13519,6 +13538,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/asteroid) +"eOA" = ( +/obj/structure/table, +/obj/effect/spawner/random/trash/crushed_can{ + pixel_x = 7; + pixel_y = 15 + }, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "eOD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -13745,7 +13772,6 @@ "eTu" = ( /obj/effect/turf_decal/tile/neutral, /obj/structure/table, -/obj/item/trash/waffles, /turf/open/floor/iron, /area/station/hallway/primary/central) "eTZ" = ( @@ -13760,9 +13786,6 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, /area/station/maintenance/department/science) -"eUB" = ( -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "eUD" = ( /obj/effect/turf_decal/plaque{ icon_state = "L12" @@ -14292,19 +14315,6 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) -"ffK" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "ffT" = ( /obj/structure/rack, /obj/effect/spawner/random/maintenance/no_decals/two, @@ -15072,7 +15082,7 @@ /turf/open/floor/iron, /area/station/hallway/primary/central) "ftK" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /obj/effect/turf_decal/tile/red/half/contrasted, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, @@ -15137,15 +15147,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"fuF" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "fuZ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -16260,7 +16261,7 @@ "fNy" = ( /obj/structure/closet/secure_closet/freezer/meat, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "fNB" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 1 @@ -16542,19 +16543,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"fSi" = ( -/obj/machinery/light/directional/north, -/obj/structure/table, -/obj/item/pen{ - pixel_x = 9; - pixel_y = 4 - }, -/obj/item/hand_labeler{ - pixel_y = 10; - pixel_x = -13 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "fSk" = ( /obj/structure/chair/office{ dir = 1 @@ -16597,14 +16585,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"fSD" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "fSK" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -16761,6 +16741,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"fVO" = ( +/obj/machinery/door/firedoor/heavy, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/door/airlock/research{ + name = "Ordnance Auxiliary Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "fVU" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -16807,6 +16797,14 @@ "fXn" = ( /turf/open/floor/wood/parquet, /area/station/cargo/boutique) +"fXo" = ( +/obj/effect/turf_decal/sand/plating, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/item/pickaxe, +/turf/open/floor/plating, +/area/station/asteroid) "fXt" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/engine, @@ -16918,6 +16916,15 @@ "fZe" = ( /turf/closed/wall, /area/station/security/detectives_office) +"fZg" = ( +/obj/item/toy/plush/lizard_plushie/green{ + name = "Hauls-The-Crates" + }, +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/sign/departments/exodrone/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/department/cargo) "fZl" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/recharge_station, @@ -17164,14 +17171,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/glass/reinforced, /area/station/science/research) -"gdM" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "gdP" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -17294,6 +17293,7 @@ /area/station/science/research) "ggl" = ( /obj/machinery/camera/autoname/directional/west, +/obj/structure/water_source/puddle, /turf/open/floor/grass, /area/station/service/hydroponics/garden) "ggu" = ( @@ -17447,6 +17447,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"giJ" = ( +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "giK" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -17454,17 +17462,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"gjo" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - name = "shutter control"; - id = "xbprotect" - }, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "gjt" = ( /obj/machinery/pdapainter/medbay, /obj/effect/turf_decal/trimline/dark_blue/filled/line{ @@ -17550,10 +17547,8 @@ /area/space/nearstation) "gkj" = ( /obj/effect/turf_decal/tile/blue/fourcorners, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","medbay") - }, /obj/machinery/iv_drip, +/obj/machinery/light/cold/dim/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "gkt" = ( @@ -17632,15 +17627,6 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"gmb" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "gmd" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -17727,16 +17713,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"gop" = ( -/obj/effect/landmark/blobstart, -/obj/structure/closet/crate/science{ - opened = 1; - icon_state = "scicrateopen" - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "goB" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/tracks, @@ -17966,16 +17942,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/miningoffice) -"gsw" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "gsM" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -18101,6 +18067,18 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/freezer, /area/station/maintenance/department/medical/central) +"gvj" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + name = "Security Shutters"; + id = "xbprotect"; + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "gvk" = ( /obj/structure/cable, /obj/effect/spawner/random/maintenance, @@ -18115,6 +18093,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) +"gvs" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/structure/cable, +/obj/structure/table, +/obj/item/aquarium_kit, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "gvw" = ( /turf/closed/wall, /area/station/command/heads_quarters/cmo) @@ -18411,14 +18397,6 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"gzF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "gzL" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/plating, @@ -18456,6 +18434,13 @@ /mob/living/basic/carp/pet/lia, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"gAV" = ( +/obj/structure/tank_dispenser, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "gAZ" = ( /obj/machinery/atmospherics/components/binary/pump/off{ dir = 8; @@ -18582,6 +18567,17 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron, /area/station/engineering/main) +"gCV" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Xenobiology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "gCY" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/yellow, @@ -18915,6 +18911,13 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/engine) +"gIM" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "gIO" = ( /obj/structure/table/reinforced/rglass, /obj/item/poster/random_official, @@ -19279,6 +19282,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/engineering/lobby) +"gQL" = ( +/obj/structure/sign/warning/directional/west, +/turf/closed/wall/rust, +/area/station/medical/chemistry/minisat) "gQN" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/tile/purple/half/contrasted, @@ -19792,6 +19799,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"gZF" = ( +/obj/effect/turf_decal/sand/plating, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "gZI" = ( /obj/structure/dresser, /obj/machinery/airalarm/directional/west, @@ -20262,6 +20274,17 @@ /obj/structure/lattice, /turf/open/misc/asteroid/airless, /area/space/nearstation) +"hhd" = ( +/obj/machinery/door/poddoor/shutters{ + id = "ordauxgarage"; + dir = 1 + }, +/obj/effect/turf_decal/sand/plating, +/obj/effect/turf_decal/stripes/asteroid/end{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/science/ordnance) "hhC" = ( /obj/structure/railing{ dir = 5 @@ -20421,21 +20444,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/service/library) -"hkG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/tank/oxygen{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) -"hld" = ( -/obj/structure/cable, -/obj/machinery/firealarm/directional/east, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "hle" = ( /obj/machinery/light/directional/south, /obj/structure/table/glass, @@ -21278,6 +21286,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/storage) +"hyL" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "hyM" = ( /obj/structure/closet, /obj/item/food/grown/banana, @@ -21380,6 +21394,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/science/xenobiology) +"hAS" = ( +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/obj/item/cultivator/rake, +/turf/open/floor/grass, +/area/station/security/prison/garden) "hAV" = ( /obj/structure/table/wood, /obj/item/flashlight/flare/candle{ @@ -21561,15 +21581,6 @@ /obj/effect/landmark/start/mime, /turf/open/floor/carpet, /area/station/service/theater) -"hEw" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "hED" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) @@ -21604,6 +21615,14 @@ /obj/machinery/atmospherics/components/tank/plasma, /turf/open/misc/asteroid, /area/station/maintenance/disposal/incinerator) +"hFz" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hFA" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -21915,6 +21934,19 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"hMf" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + name = "Security Shutters"; + id = "xbprotect1"; + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "hME" = ( /turf/closed/wall, /area/station/security/prison/work) @@ -22047,6 +22079,7 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/light_switch/directional/west, /obj/item/wrench/medical, +/obj/machinery/light/cold/dim/directional/west, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "hPs" = ( @@ -22311,6 +22344,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) +"hSB" = ( +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "hSC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -22469,14 +22505,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/engineering/storage) -"hVm" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "hVs" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -22484,6 +22512,15 @@ "hVB" = ( /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"hVC" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hVL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -22630,6 +22667,15 @@ /obj/structure/cable, /turf/open/floor/iron/textured_large, /area/station/engineering/storage/tech) +"hYG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "hYP" = ( /obj/machinery/modular_computer/preset/id{ dir = 1 @@ -22876,6 +22922,11 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"ief" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "iej" = ( /obj/effect/turf_decal/siding/white{ dir = 1 @@ -22943,14 +22994,6 @@ }, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"ieU" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "ifc" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/firealarm/directional/south, @@ -22967,6 +23010,18 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/medical/storage) +"ifv" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","rd") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ifE" = ( /obj/machinery/vending/medical, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -23358,18 +23413,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"ioh" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "iol" = ( /turf/closed/wall/r_wall, /area/station/service/lawoffice) @@ -23393,21 +23436,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"iox" = ( -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/storage/box/monkeycubes, -/turf/open/floor/iron/white/textured_half, -/area/station/science/xenobiology) -"ioL" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "ioP" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/decal/cleanable/dirt, @@ -23659,6 +23687,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/office) +"isy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "isH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -24035,14 +24067,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/lobby) -"iAx" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/effect/turf_decal/box/red, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "iAE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -24730,6 +24754,7 @@ /obj/machinery/hydroponics/soil, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/item/plant_analyzer, /turf/open/floor/grass, /area/station/security/prison/garden) "iNv" = ( @@ -24771,21 +24796,6 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"iOk" = ( -/obj/machinery/door/airlock/research{ - autoclose = 0; - frequency = 1449; - id_tag = "xeno_airlock_interior"; - name = "Xenobiology Lab Internal Airlock" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "iOE" = ( /obj/item/pickaxe/mini, /turf/open/misc/asteroid, @@ -24818,6 +24828,17 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/carpet/executive, /area/station/command/corporate_showroom) +"iPf" = ( +/obj/structure/cable, +/obj/machinery/button/door/directional/east{ + name = "shutter control"; + id = "xbprotect1" + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "iPm" = ( /obj/structure/rack, /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -24878,13 +24899,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) -"iPW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/tank/oxygen{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "iQt" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/food_packaging, @@ -24927,6 +24941,14 @@ /obj/item/newspaper, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) +"iRy" = ( +/obj/machinery/door/airlock/command{ + name = "Research Director's Observatory" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/rd, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/command/heads_quarters/rd) "iRB" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted{ dir = 1 @@ -25178,12 +25200,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) -"iXB" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "iXR" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -25267,14 +25283,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"jac" = ( -/obj/structure/cable, -/obj/effect/spawner/random/trash/garbage{ - spawn_scatter_radius = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "jaf" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green, @@ -25478,12 +25486,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/maintenance/department/cargo) -"jdP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "jdW" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners{ dir = 1 @@ -25498,13 +25500,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) -"jej" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "jer" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/landmark/event_spawn, @@ -25529,15 +25524,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"jeV" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "jeY" = ( /obj/structure/railing/corner{ dir = 1 @@ -25569,6 +25555,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"jfq" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","medbay") + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "jfr" = ( /obj/effect/spawner/random/trash/garbage{ spawn_loot_count = 3; @@ -25614,12 +25610,6 @@ /obj/item/clothing/glasses/meson, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"jgl" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/holosign_creator/atmos, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "jgs" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -25772,13 +25762,6 @@ /obj/docking_port/stationary/syndicate, /turf/open/space/openspace, /area/space) -"jiP" = ( -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/station/asteroid) "jjp" = ( /obj/item/reagent_containers/cup/bottle/fake_gbs, /turf/closed/mineral/random/stationside/asteroid/porus{ @@ -26113,15 +26096,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"joD" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "joH" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -26175,6 +26149,7 @@ }, /obj/structure/closet/secure_closet/captains, /obj/machinery/firealarm/directional/north, +/obj/item/storage/lockbox/medal, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain/private) "jpe" = ( @@ -26336,6 +26311,12 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"jsf" = ( +/obj/structure/sign/warning/chem_diamond/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/structure/girder, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "jsn" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/decal/cleanable/dirt/dust, @@ -26947,6 +26928,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/station/medical/psychology) +"jCP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/hallway/secondary/entry) "jCT" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/purple{ @@ -27094,17 +27081,6 @@ }, /turf/open/floor/engine, /area/station/medical/chemistry) -"jEw" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/structure/closet/crate/science{ - opened = 1; - icon_state = "scicrateopen" - }, -/obj/item/tank, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "jED" = ( /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/freezer, @@ -27543,6 +27519,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) +"jLY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "jMa" = ( /obj/machinery/light/dim/directional/south, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ @@ -27908,14 +27891,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical) -"jSR" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "jSV" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -28238,6 +28213,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/cargo) +"jZv" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "jZx" = ( /obj/structure/closet/emcloset, /turf/open/floor/iron/textured, @@ -28589,19 +28570,6 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron, /area/station/service/hydroponics) -"keb" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research/glass{ - name = "Secure Pen" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "ked" = ( /obj/structure/cable, /turf/open/floor/wood, @@ -28914,13 +28882,6 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"kke" = ( -/obj/structure/tank_dispenser, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/radio/intercom/directional/north, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kkf" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/plating, @@ -29478,10 +29439,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"krO" = ( -/obj/structure/cable, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "krP" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) @@ -29605,6 +29562,14 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"ktI" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 4 + }, +/obj/structure/fireaxecabinet/directional/east, +/turf/open/floor/iron, +/area/station/command/bridge) "ktL" = ( /turf/open/floor/iron, /area/station/engineering/atmos/upper) @@ -29649,6 +29614,10 @@ }, /turf/open/floor/plating, /area/station/science/genetics) +"kvd" = ( +/obj/structure/lattice/catwalk, +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "kvj" = ( /obj/machinery/light/directional/north, /obj/structure/table, @@ -29682,6 +29651,10 @@ /obj/item/reagent_containers/cup/rag, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"kvW" = ( +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "kvX" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/trash/mess, @@ -29975,14 +29948,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"kAI" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/science/ordnance/testlab) "kAW" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt/dust, @@ -30008,18 +29973,6 @@ /obj/structure/cable, /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) -"kBr" = ( -/obj/structure/barricade/wooden, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 4 - }, -/obj/item/flashlight/glowstick/blue{ - start_on = 1; - light_range = 2 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "kBt" = ( /obj/machinery/modular_computer/preset/civilian, /obj/machinery/button/door/directional/north{ @@ -30252,16 +30205,6 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet/restrooms) -"kEM" = ( -/obj/effect/turf_decal/box/corners{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kFi" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -30528,6 +30471,15 @@ /obj/effect/spawner/random/decoration/statue, /turf/open/floor/plating/airless, /area/space/nearstation) +"kJW" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "kKc" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -30545,15 +30497,6 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/iron/textured_large, /area/station/hallway/primary/central) -"kKC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "kKJ" = ( /obj/machinery/rnd/destructive_analyzer, /obj/machinery/light/directional/north, @@ -30620,6 +30563,16 @@ luminosity = 2 }, /area/station/science/ordnance/bomb) +"kMl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "kMr" = ( /obj/structure/transport/linear/public, /obj/machinery/elevator_control_panel/directional/north{ @@ -30811,12 +30764,6 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, /area/station/engineering/lobby) -"kQB" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/structure/sign/poster/official/wtf_is_co2/directional/north, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "kQF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/engine, @@ -30934,14 +30881,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"kSc" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/machinery/light/small/dim/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "kSm" = ( /obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/table, @@ -31155,10 +31094,6 @@ "kUX" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmospherics_engine) -"kVh" = ( -/obj/effect/turf_decal/sand/plating, -/turf/closed/wall/rust, -/area/station/medical/chemistry/minisat) "kVF" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -31257,6 +31192,13 @@ /obj/machinery/light/directional/north, /turf/open/floor/circuit, /area/station/engineering/storage/tech) +"kYi" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "kYk" = ( /obj/machinery/door/poddoor/shutters{ id = "secmechbay"; @@ -31338,19 +31280,6 @@ /obj/structure/sign/poster/official/random/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"kZf" = ( -/obj/structure/table/reinforced, -/obj/item/stack/sheet/plasteel{ - amount = 15 - }, -/obj/item/assembly/prox_sensor{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/structure/fireaxecabinet/mechremoval/directional/east, -/obj/item/stack/sheet/glass/fifty, -/turf/open/floor/iron/dark/textured, -/area/station/science/robotics/lab) "kZg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31409,6 +31338,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/service/hydroponics) +"kZW" = ( +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0 + }, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "laf" = ( /obj/effect/spawner/random/structure/chair_comfy{ dir = 4 @@ -31445,6 +31384,11 @@ /obj/effect/landmark/start/lawyer, /turf/open/floor/iron/dark, /area/station/security/office) +"laD" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "laF" = ( /obj/structure/closet{ name = "evidence closet 1" @@ -31531,20 +31475,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"lcj" = ( -/obj/item/stack/sheet/glass, -/obj/item/clothing/glasses/welding, -/obj/item/disk/tech_disk{ - pixel_y = 6 - }, -/obj/item/reagent_containers/dropper, -/obj/structure/table, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/mapping_helpers/requests_console/ore_update, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron/white, -/area/station/science/lab) "lcv" = ( /obj/machinery/camera/autoname/directional/south, /turf/open/floor/glass/reinforced, @@ -31561,6 +31491,23 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/station/science/xenobiology) +"ldf" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Minisat" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry/minisat) "ldo" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -31602,12 +31549,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"leZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/hallway/secondary/entry) "lfd" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/access/all/engineering/external, @@ -32701,15 +32642,6 @@ "lAj" = ( /turf/closed/wall, /area/station/construction/mining/aux_base) -"lAl" = ( -/obj/structure/window/spawner/directional/east, -/obj/machinery/portable_atmospherics/pipe_scrubber, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "lAm" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -32726,6 +32658,12 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/maintenance/department/medical/central) +"lAt" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "lAy" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, @@ -32755,15 +32693,6 @@ dir = 4 }, /area/station/command/meeting_room) -"lBm" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 9 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "lBu" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -32795,11 +32724,6 @@ /obj/structure/chair/sofa/bench/left, /turf/open/floor/iron/white/textured_large, /area/station/science/research) -"lBZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "lCk" = ( /obj/effect/turf_decal/siding/dark_blue{ dir = 1 @@ -33206,9 +33130,20 @@ /area/station/hallway/secondary/exit/departure_lounge) "lIZ" = ( /obj/effect/turf_decal/sand/plating, -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"lJo" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "lJq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -33363,6 +33298,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/blue, /area/station/command/heads_quarters/cmo) +"lMC" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "lMI" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -33769,13 +33714,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/bridge) -"lUy" = ( -/obj/structure/cable, -/obj/effect/landmark/navigate_destination/dockarrival, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/hallway/secondary/entry) "lUF" = ( /obj/structure/transport/linear/public, /obj/machinery/elevator_control_panel{ @@ -33829,14 +33767,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"lVy" = ( -/obj/machinery/door/airlock/command{ - name = "Research Director's Observatory" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/rd, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/command/heads_quarters/rd) "lVB" = ( /turf/closed/mineral/random/stationside/asteroid/porus, /area/station/maintenance/department/science) @@ -34223,7 +34153,7 @@ /turf/open/floor/iron, /area/station/cargo/lobby) "mds" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/delivery, /obj/machinery/camera/autoname/directional/west, @@ -34318,6 +34248,16 @@ /obj/machinery/light/dim/directional/south, /turf/open/floor/wood, /area/station/service/library) +"mfw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "mfA" = ( /obj/machinery/exoscanner, /obj/effect/turf_decal/siding/wideplating_new/dark/end{ @@ -34329,17 +34269,13 @@ /obj/effect/baseturf_helper/reinforced_plating/ceiling, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"mgi" = ( -/obj/machinery/door/poddoor/shutters{ - id = "ordauxgarage"; +"mfP" = ( +/obj/machinery/atmospherics/components/tank/air/layer4, +/obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, -/obj/effect/turf_decal/sand/plating, -/obj/effect/turf_decal/stripes/asteroid/end{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/science/ordnance) +/turf/open/floor/iron/white, +/area/station/medical/virology) "mgn" = ( /obj/docking_port/stationary{ dir = 8; @@ -34522,16 +34458,20 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"miR" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment{ - dir = 9 +"miU" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/plasteel{ + amount = 15 }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) +/obj/item/assembly/prox_sensor{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/structure/fireaxecabinet/mechremoval/directional/east, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/iron/fifty, +/turf/open/floor/iron/dark/textured, +/area/station/science/robotics/lab) "miV" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, @@ -34586,6 +34526,24 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron, /area/station/engineering/atmos) +"mjU" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) +"mjY" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "mjZ" = ( /obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/iron, @@ -34641,6 +34599,11 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/command/gateway) +"mkV" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "mkX" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -34850,14 +34813,6 @@ "mnP" = ( /turf/open/floor/iron, /area/station/service/hydroponics) -"mnS" = ( -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "mnU" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -34958,13 +34913,15 @@ /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"mqb" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 +"mqc" = ( +/obj/structure/closet/crate/freezer, +/obj/item/food/icecreamsandwich, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/obj/structure/sign/departments/chemistry/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "mqz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/east, @@ -35529,6 +35486,15 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"mAC" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","rd") + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "mAF" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, @@ -35784,17 +35750,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"mFa" = ( -/obj/machinery/door/firedoor/heavy, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/door/airlock/research{ - name = "Ordnance Auxiliary Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "mFb" = ( /obj/structure/fans/tiny, /obj/machinery/door/poddoor/massdriver_chapel, @@ -35895,11 +35850,6 @@ }, /turf/open/floor/engine, /area/station/command/heads_quarters/captain/private) -"mHc" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/ordnance/storage) "mHf" = ( /obj/structure/table, /obj/item/controller, @@ -36025,6 +35975,15 @@ /obj/machinery/atmospherics/pipe/layer_manifold/yellow/visible, /turf/open/floor/plating, /area/station/engineering/atmos) +"mJD" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "mJG" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -36202,6 +36161,14 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/iron, /area/station/hallway/primary/central) +"mMe" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "mMp" = ( /obj/machinery/door/airlock/highsecurity, /obj/effect/mapping_helpers/airlock/autoname, @@ -36246,6 +36213,9 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"mMT" = ( +/turf/closed/wall, +/area/station/service/kitchen/coldroom) "mNl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, @@ -36443,17 +36413,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood, /area/station/commons/lounge) -"mRC" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Xenobiology Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "mRI" = ( /obj/effect/mob_spawn/corpse/human/clown, /turf/open/misc/asteroid, @@ -36462,6 +36421,16 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/engineering/main) +"mSe" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 10 + }, +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "mSf" = ( /obj/machinery/mass_driver{ dir = 1; @@ -36477,14 +36446,6 @@ /obj/item/clothing/head/fedora, /turf/open/floor/wood, /area/station/commons/lounge) -"mSG" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 1 - }, -/obj/machinery/meter, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "mSK" = ( /turf/open/floor/iron/white, /area/station/commons/fitness/recreation) @@ -36500,6 +36461,18 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"mTg" = ( +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "mTs" = ( /obj/machinery/holopad, /obj/effect/landmark/event_spawn, @@ -36555,6 +36528,18 @@ "mUs" = ( /turf/open/floor/iron/white, /area/station/medical/storage) +"mUA" = ( +/obj/machinery/light/small/dim/directional/west, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "mUC" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -36763,19 +36748,6 @@ }, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) -"mYh" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - name = "Security Shutters"; - id = "xbprotect1"; - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/firealarm/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "mYs" = ( /obj/machinery/door/airlock/public/glass{ name = "Gateway Chamber" @@ -37104,6 +37076,11 @@ }, /turf/closed/wall, /area/station/service/bar) +"ndE" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/turf/open/floor/plating, +/area/station/science/ordnance/testlab) "ndI" = ( /obj/structure/table, /obj/item/hand_labeler, @@ -37149,6 +37126,20 @@ /obj/machinery/digital_clock/directional/west, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"neb" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/pipe_dispenser{ + pixel_x = 3; + pixel_y = 7 + }, +/obj/item/pipe_dispenser, +/obj/machinery/power/apc/auto_name/directional/south{ + areastring = "/area/station/science/ordnance/burnchamber" + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nee" = ( /turf/open/floor/iron/dark/corner{ dir = 4 @@ -37286,18 +37277,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"nfk" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 5 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "nfn" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -37571,6 +37550,12 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/exam_room) +"nki" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "nkA" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 1 @@ -37604,12 +37589,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"nlx" = ( +"nlz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "nlI" = ( /obj/effect/landmark/start/depsec/engineering, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -37663,11 +37649,6 @@ /obj/structure/marker_beacon/purple, /turf/open/space/basic, /area/space/nearstation) -"nmS" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/structure/grille, -/turf/open/floor/plating, -/area/station/maintenance/central/lesser) "nmX" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /obj/structure/disposalpipe/segment, @@ -37698,7 +37679,7 @@ id = "qmprivacy"; name = "Privacy Shutters Control" }, -/obj/machinery/keycard_auth/directional/west{ +/obj/machinery/keycard_auth/wall_mounted/directional/west{ pixel_y = 12 }, /turf/open/floor/wood, @@ -37883,6 +37864,12 @@ }, /turf/open/floor/iron/white, /area/station/security/medical) +"nqi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nql" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -38312,7 +38299,7 @@ }, /obj/structure/cable, /obj/effect/mapping_helpers/apc/cell_5k, -/turf/open/floor/circuit/green, +/turf/open/floor/circuit/green/telecomms/mainframe, /area/station/ai_monitored/turret_protected/ai) "nAa" = ( /obj/machinery/door/firedoor/border_only{ @@ -38441,6 +38428,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) +"nCm" = ( +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "nCo" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/structure/cable, @@ -38651,6 +38641,16 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"nGV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk/multiz{ + dir = 1 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "nHj" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron, @@ -38696,17 +38696,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"nIa" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "nIb" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -38742,10 +38731,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/misc/asteroid, /area/station/maintenance/department/cargo) -"nIQ" = ( -/obj/item/radio/intercom/directional/south, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "nIS" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -38759,6 +38744,14 @@ }, /turf/open/floor/wood/parquet, /area/station/cargo/boutique) +"nJD" = ( +/obj/structure/cable, +/obj/effect/turf_decal/sand/plating, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/turf/open/floor/plating, +/area/station/asteroid) "nJF" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/east{ @@ -39019,12 +39012,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central) -"nNl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "nNo" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -39097,6 +39084,11 @@ /obj/effect/turf_decal/tile/dark_blue, /turf/open/floor/iron, /area/station/command/bridge) +"nPw" = ( +/obj/structure/water_source/puddle, +/obj/item/reagent_containers/cup/watering_can, +/turf/open/floor/grass, +/area/station/security/prison/garden) "nPM" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -39119,17 +39111,6 @@ "nPW" = ( /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"nQl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 4 - }, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","rd") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "nQm" = ( /obj/machinery/camera/motion/directional/west{ network = list("aicore"); @@ -39262,13 +39243,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) -"nTZ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "nUi" = ( /obj/structure/table/reinforced/rglass, /obj/item/clipboard, @@ -39282,6 +39256,11 @@ /obj/item/emergency_bed, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) +"nUL" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "nUS" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -39304,6 +39283,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/xenobiology) +"nVm" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/storage/box/monkeycubes, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "nVp" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -39331,8 +39320,12 @@ pixel_y = -1 }, /obj/item/storage/box/gloves{ - pixel_x = -4; - pixel_y = 8 + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/storage/box/masks{ + pixel_x = -5; + pixel_y = -1 }, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) @@ -39497,6 +39490,13 @@ dir = 8 }, /area/station/engineering/atmos/storage/gas) +"nZW" = ( +/obj/structure/barricade/wooden, +/obj/machinery/atmospherics/components/binary/pump/on/green/visible{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "nZY" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/reagent_dispensers/watertank, @@ -39510,6 +39510,26 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron/dark/textured, /area/station/science/robotics/lab) +"oag" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/storage/box/beakers{ + pixel_x = 10; + pixel_y = 14 + }, +/obj/item/storage/box/syringes{ + pixel_x = 10; + pixel_y = 4 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "oas" = ( /obj/structure/table, /obj/item/phone{ @@ -39688,6 +39708,7 @@ /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /obj/structure/disposalpipe/segment, +/obj/machinery/scanner_gate/preset_guns, /turf/open/floor/iron, /area/station/security/brig/entrance) "odG" = ( @@ -39786,6 +39807,17 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/glass, /area/station/command/meeting_room) +"ofG" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/machinery/light/directional/south, +/obj/machinery/camera/autoname/directional/west{ + network = list("ss13","rd") + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "ofL" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/turf_decal/stripes/line, @@ -39865,6 +39897,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/security/prison/work) +"oia" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Secure Pen" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "oix" = ( /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) @@ -39901,12 +39946,11 @@ }, /turf/open/floor/iron/textured, /area/station/cargo/drone_bay) -"ojR" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) +"ojS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "oka" = ( /obj/effect/turf_decal/siding/purple{ dir = 1 @@ -39929,6 +39973,30 @@ }, /turf/open/floor/wood, /area/station/service/lawoffice) +"okf" = ( +/obj/machinery/light/directional/south, +/obj/structure/table, +/obj/item/clothing/mask/gas{ + pixel_x = 8 + }, +/obj/item/clothing/mask/gas{ + pixel_y = 5; + pixel_x = 16 + }, +/obj/item/clothing/mask/gas{ + pixel_x = 12; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = 1; + pixel_x = -5 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = -2; + pixel_x = -5 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "okg" = ( /obj/machinery/holopad, /obj/effect/landmark/event_spawn, @@ -40385,11 +40453,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"osT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "osX" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -40410,6 +40473,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/bridge) +"otJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "otY" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -40852,8 +40922,10 @@ /area/station/maintenance/department/science) "oBU" = ( /obj/machinery/food_cart, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_cold_room, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "oCb" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 1 @@ -40962,6 +41034,10 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) +"oEo" = ( +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/turf/closed/wall, +/area/station/hallway/secondary/service) "oEp" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -40993,6 +41069,15 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"oEP" = ( +/obj/structure/window/spawner/directional/east, +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "oEZ" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ @@ -41026,17 +41111,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"oFp" = ( -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/effect/turf_decal/siding/purple{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/rd) "oFu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -41199,18 +41273,6 @@ }, /turf/open/floor/iron, /area/station/security/warden) -"oIu" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_y = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron/white/textured_corner{ - dir = 1 - }, -/area/station/science/xenobiology) "oID" = ( /obj/structure/lattice, /obj/effect/spawner/random/structure/grille, @@ -41485,7 +41547,7 @@ name = "AI Core Shutters" }, /obj/structure/cable, -/turf/open/floor/circuit/green, +/turf/open/floor/circuit/green/telecomms/mainframe, /area/station/ai_monitored/turret_protected/ai) "oOb" = ( /obj/effect/turf_decal/tile/neutral{ @@ -41528,12 +41590,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark, /area/station/command/bridge) -"oOP" = ( -/obj/structure/cable, -/obj/structure/fireaxecabinet/directional/south, -/obj/effect/turf_decal/tile/dark_blue/half/contrasted, -/turf/open/floor/iron, -/area/station/command/bridge) "oOR" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/green{ @@ -41949,6 +42005,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"oVS" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "oVV" = ( /obj/machinery/camera/directional/east{ c_tag = "Xenobiology Lab - Secure Pen"; @@ -42681,17 +42742,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) -"piH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "piS" = ( /obj/structure/girder/displaced, /obj/effect/turf_decal/sand/plating, @@ -42750,14 +42800,6 @@ dir = 8 }, /area/station/service/theater) -"pjL" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -5; - pixel_y = 6 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "pjN" = ( /obj/structure/transit_tube/horizontal{ dir = 2 @@ -42922,6 +42964,17 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) +"pmp" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Minisat" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/obj/effect/landmark/navigate_destination/chemfactory, +/turf/open/floor/iron/white, +/area/station/medical/chemistry/minisat) "pmC" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron/dark, @@ -43260,6 +43313,13 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"psQ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/pipe_scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "psT" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -43535,10 +43595,6 @@ /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating/airless, /area/station/maintenance/department/medical/central) -"pxU" = ( -/obj/effect/turf_decal/sand/plating, -/turf/closed/wall, -/area/station/medical/chemistry/minisat) "pxY" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, @@ -43878,10 +43934,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/chemistry) -"pDr" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "pDs" = ( /obj/structure/chair, /obj/machinery/light/small/directional/north, @@ -44144,6 +44196,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) +"pIk" = ( +/obj/structure/closet/crate/science{ + opened = 1; + icon_state = "scicrateopen" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/stripes/line, +/obj/item/tank, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "pIp" = ( /obj/structure/railing{ dir = 4 @@ -44224,6 +44286,21 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) +"pJU" = ( +/obj/item/stack/sheet/glass, +/obj/item/stack/sheet/iron/fifty, +/obj/item/clothing/glasses/welding, +/obj/item/disk/tech_disk{ + pixel_y = 6 + }, +/obj/item/reagent_containers/dropper, +/obj/structure/table, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/iron/white, +/area/station/science/lab) "pKb" = ( /obj/effect/spawner/random/trash/cigbutt{ spawn_random_offset = 4; @@ -44572,13 +44649,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/carpet, /area/station/commons/dorms) -"pQG" = ( -/obj/machinery/atmospherics/components/trinary/mixer{ - dir = 4 - }, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "pQM" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 1; @@ -44745,7 +44815,7 @@ /obj/structure/kitchenspike, /obj/machinery/light/directional/west, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "pTt" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -45436,15 +45506,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"qeY" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qfu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/textured_large, @@ -45688,6 +45749,12 @@ /obj/structure/window/spawner/directional/north, /turf/open/misc/grass, /area/station/ai_monitored/turret_protected/aisat/foyer) +"qjs" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","rd") + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "qjw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -45849,11 +45916,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/storage/primary) -"qmI" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron, -/area/station/science/ordnance) "qmU" = ( /obj/item/radio/intercom/command/directional/west, /turf/open/floor/glass, @@ -45900,14 +45962,6 @@ }, /turf/open/floor/iron/white/smooth_half, /area/station/science/robotics/lab) -"qnV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/broken/directional/north, -/obj/machinery/atmospherics/components/tank/oxygen{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "qob" = ( /obj/structure/table, /obj/item/stock_parts/micro_laser{ @@ -46186,6 +46240,13 @@ /obj/machinery/air_sensor/nitrous_tank, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"qsj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/tank/oxygen{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "qsu" = ( /obj/machinery/light/directional/north, /obj/machinery/rnd/production/protolathe/department/engineering, @@ -46369,6 +46430,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"qwB" = ( +/obj/item/shovel/spade, +/turf/open/floor/grass, +/area/station/security/prison/garden) "qwG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46667,6 +46732,18 @@ }, /turf/open/floor/carpet, /area/station/medical/psychology) +"qDM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister, +/obj/effect/turf_decal/box/red, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "qDP" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46800,20 +46877,22 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"qGr" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/effect/turf_decal/caution/stand_clear/red, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "qGB" = ( /obj/machinery/ticket_machine/directional/north, /obj/structure/chair/sofa/bench, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"qGD" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/stack/sheet/mineral/plasma, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "qGN" = ( /obj/structure/table/wood, /obj/effect/spawner/random/entertainment/deck, @@ -46937,16 +47016,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"qIQ" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "qIS" = ( /obj/machinery/cryo_cell, /obj/structure/window/reinforced/spawner/directional/west, @@ -47182,14 +47251,6 @@ /obj/effect/spawner/random/structure/table_or_rack, /turf/open/floor/plating, /area/station/maintenance/port/lesser) -"qOt" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qOz" = ( /obj/structure/girder, /turf/open/floor/plating, @@ -47494,6 +47555,14 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"qUi" = ( +/obj/effect/turf_decal/bot_red, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/processor/slime, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "qUl" = ( /obj/effect/turf_decal/tile/neutral, /obj/structure/table, @@ -47536,13 +47605,6 @@ dir = 1 }, /area/station/engineering/atmos) -"qVB" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "qVD" = ( /obj/structure/railing, /obj/structure/table, @@ -47673,6 +47735,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"qXj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "qXm" = ( /turf/open/floor/iron/showroomfloor, /area/station/engineering/main) @@ -47694,6 +47761,12 @@ /obj/effect/spawner/random/techstorage/security_all, /turf/open/floor/iron/textured, /area/station/engineering/storage/tech) +"qXE" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/sign/poster/official/wtf_is_co2/directional/north, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "qXK" = ( /obj/effect/turf_decal/tile/red, /obj/effect/landmark/event_spawn, @@ -47923,6 +47996,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/ai_monitored/turret_protected/ai_upload_foyer) +"rbt" = ( +/obj/machinery/door/airlock{ + name = "Kitchen Cold Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "rbw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, @@ -47946,13 +48029,6 @@ dir = 8 }, /area/station/hallway/secondary/exit/departure_lounge) -"rbS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "rce" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -48025,6 +48101,11 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security/mechbay) +"rcH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/wrench, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "rcP" = ( /obj/effect/turf_decal/stripes/asteroid/corner, /turf/open/misc/asteroid, @@ -48551,15 +48632,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"rkd" = ( -/obj/structure/closet/crate/science, -/obj/item/wrench, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/firealarm/directional/west, -/obj/effect/spawner/random/maintenance, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "rkm" = ( /obj/machinery/washing_machine, /turf/open/floor/iron/freezer, @@ -48713,6 +48785,7 @@ pixel_y = 8 }, /obj/effect/turf_decal/stripes/line, +/obj/item/stack/sheet/mineral/plasma, /turf/open/floor/iron/white/textured_large, /area/station/science/xenobiology) "rms" = ( @@ -48818,20 +48891,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security) -"roK" = ( -/obj/machinery/door/airlock/research{ - name = "Ordnance Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/obj/structure/cable, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 4 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/ordnance) "roO" = ( /obj/machinery/door/airlock/security/glass{ name = "Prison Wing" @@ -48854,10 +48913,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"rpC" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating, -/area/station/science/ordnance/storage) "rpD" = ( /obj/structure/closet/secure_closet/brig/genpop, /obj/machinery/light/dim/directional/east, @@ -49581,11 +49636,6 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) -"rBq" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/purple, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "rBt" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -49677,6 +49727,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"rCD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "rCL" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -49842,14 +49903,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/external, /turf/open/floor/plating, /area/station/cargo/storage) -"rEV" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "rFb" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -49873,15 +49926,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) -"rFA" = ( -/obj/structure/window/spawner/directional/east, -/obj/machinery/portable_atmospherics/pump, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "rFK" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/decal/cleanable/rubble, @@ -50093,11 +50137,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"rJv" = ( -/obj/structure/sign/warning/chem_diamond/directional/south, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "rJy" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot, @@ -50258,7 +50297,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "rNJ" = ( /turf/closed/wall, /area/station/maintenance/solars/port/fore) @@ -50302,6 +50341,12 @@ /obj/item/holosign_creator/robot_seat/restaurant, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"rPh" = ( +/obj/effect/turf_decal/sand/plating, +/obj/machinery/light/small/directional/south, +/obj/structure/broken_flooring/pile, +/turf/open/floor/plating, +/area/station/science/ordnance) "rPi" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/window/spawner/directional/west, @@ -50345,6 +50390,30 @@ }, /turf/open/floor/iron/textured_large, /area/station/hallway/primary/central) +"rPT" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 16; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) +"rPV" = ( +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/station/science/ordnance) "rQb" = ( /obj/effect/turf_decal/siding/thinplating_new/end, /obj/effect/decal/cleanable/dirt/dust, @@ -50501,14 +50570,6 @@ dir = 1 }, /area/station/engineering/atmos) -"rSB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "rSF" = ( /obj/effect/turf_decal/siding, /obj/structure/table, @@ -50806,7 +50867,7 @@ /turf/open/floor/iron, /area/station/cargo/storage) "rWI" = ( -/obj/structure/reagent_dispensers/watertank, +/obj/structure/reagent_dispensers/watertank/high, /obj/effect/turf_decal/bot{ dir = 1 }, @@ -50854,6 +50915,14 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/command/heads_quarters/qm) +"rXf" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 6 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/xenobiology) "rXg" = ( /obj/structure/spirit_board, /obj/item/storage/box/bodybags{ @@ -51069,6 +51138,14 @@ /obj/machinery/holopad, /turf/open/floor/iron, /area/station/service/hydroponics) +"rZE" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "rZJ" = ( /obj/effect/turf_decal/siding/thinplating_new, /obj/effect/decal/cleanable/dirt/dust, @@ -51117,12 +51194,6 @@ }, /turf/open/floor/carpet/black, /area/station/command/heads_quarters/hos) -"sar" = ( -/obj/machinery/camera/autoname/directional/south{ - network = list("ss13","rd") - }, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "sas" = ( /obj/machinery/door/airlock/command/glass{ name = "Emergency Spatial Evacuation" @@ -51221,6 +51292,12 @@ /obj/structure/lattice/catwalk, /turf/open/openspace, /area/station/science/xenobiology) +"sbS" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "sbU" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/structure/crate, @@ -51292,7 +51369,7 @@ /turf/closed/wall, /area/station/cargo/storage) "sdn" = ( -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/glass/reinforced/plasma, /area/station/command/heads_quarters/rd) "sdA" = ( @@ -51302,6 +51379,12 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/execution/transfer) +"sdB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken/directional/north, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "sdW" = ( /obj/structure/railing{ dir = 9 @@ -51576,11 +51659,6 @@ /obj/effect/landmark/blobstart, /turf/open/floor/iron/dark, /area/station/security/lockers) -"siU" = ( -/obj/item/pickaxe, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "siX" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible, /obj/machinery/meter/monitored/waste_loop, @@ -51644,6 +51722,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"sjT" = ( +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron, +/area/station/cargo/storage) "sjW" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ dir = 4 @@ -51817,6 +51901,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"smH" = ( +/obj/machinery/atmospherics/components/binary/valve/digital{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "smM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52002,13 +52095,6 @@ /obj/effect/spawner/random/trash/bucket, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"spU" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "sqb" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -52206,16 +52292,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"stk" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/sand/plating, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) "stp" = ( /obj/structure/railing{ dir = 1 @@ -52279,6 +52355,14 @@ }, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) +"suo" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution/stand_clear/red, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "suq" = ( /obj/effect/landmark/start/station_engineer, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52500,6 +52584,7 @@ /area/station/engineering/atmos) "syF" = ( /obj/effect/landmark/start/prisoner, +/obj/item/plant_analyzer, /turf/open/floor/grass, /area/station/security/prison/garden) "syL" = ( @@ -52994,6 +53079,42 @@ }, /turf/open/floor/iron/white/textured_large, /area/station/science/research) +"sHo" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron/fifty{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/construction/plumbing{ + pixel_x = 34; + pixel_y = 6 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 26; + pixel_y = 2 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 25; + pixel_y = 1 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 24; + pixel_y = -1 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 23; + pixel_y = -3 + }, +/obj/item/stack/ducts/fifty{ + pixel_x = 23; + pixel_y = -5 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "sHz" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -53479,14 +53600,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/xenobiology) -"sQU" = ( -/obj/machinery/light/directional/south, -/obj/structure/table, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "sRj" = ( /obj/structure/sign/poster/official/random/directional/east, /obj/effect/turf_decal/siding/purple{ @@ -53661,6 +53774,12 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"sUD" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/central/lesser) "sUI" = ( /obj/machinery/door/airlock{ name = "Kitchen Cold Room" @@ -53669,7 +53788,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "sUM" = ( /obj/item/radio/intercom/directional/west, /turf/open/openspace, @@ -54796,6 +54915,11 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, /area/station/maintenance/central/lesser) +"tpN" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/medical/treatment_center) "tqk" = ( /obj/machinery/conveyor{ id = "garbage"; @@ -54949,6 +55073,15 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/iron, /area/station/security/prison) +"tsm" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "tsq" = ( /obj/structure/chair/sofa/bench/right{ dir = 1 @@ -55079,6 +55212,20 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"tuL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/door/airlock/research/glass{ + name = "Chemistry Minisat" + }, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "tuR" = ( /obj/machinery/door/firedoor/border_only, /obj/structure/railing, @@ -55124,23 +55271,12 @@ }, /turf/open/floor/wood/parquet, /area/station/service/theater) -"tvt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "tvB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"tvQ" = ( -/obj/structure/chair/sofa/bench, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/iron, -/area/station/security/prison) "twf" = ( /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "soup"; @@ -55171,7 +55307,7 @@ /obj/structure/kitchenspike, /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "txo" = ( /obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/engine, @@ -55477,14 +55613,6 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/textured, /area/station/cargo/miningoffice) -"tCz" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "tCE" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55826,13 +55954,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/warden) -"tIs" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "tIE" = ( /obj/effect/landmark/secequipment, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -56297,11 +56418,6 @@ /obj/structure/sign/poster/random/directional/north, /turf/open/openspace, /area/station/science/research) -"tPE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "tPJ" = ( /obj/machinery/light_switch/directional/west, /obj/structure/disposalpipe/segment, @@ -56437,6 +56553,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/security/brig/entrance) +"tRZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "tSc" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron, @@ -56547,15 +56670,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/warden) -"tUr" = ( -/obj/machinery/light/small/dim/directional/west, -/obj/effect/mapping_helpers/broken_floor, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/turf_decal/trimline/yellow/filled/corner{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/maintenance/department/medical) "tUD" = ( /obj/structure/cable, /turf/open/floor/iron/dark/side{ @@ -56566,7 +56680,7 @@ /obj/structure/table/wood, /obj/item/flashlight/lamp, /obj/machinery/camera/autoname/directional/north, -/obj/machinery/keycard_auth/directional/north, +/obj/machinery/keycard_auth/wall_mounted/directional/north, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/hop) "tUG" = ( @@ -56848,12 +56962,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) -"tZR" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "tZW" = ( /obj/machinery/camera/autoname/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56891,6 +56999,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/science) +"uaw" = ( +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/rd) "uay" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -57707,11 +57826,6 @@ /obj/machinery/atmospherics/components/binary/valve, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"uoP" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, -/obj/effect/turf_decal/tile/blue/fourcorners, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/medical/treatment_center) "uoY" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, @@ -57832,7 +57946,7 @@ dir = 10 }, /obj/structure/cable, -/obj/machinery/keycard_auth/directional/west{ +/obj/machinery/keycard_auth/wall_mounted/directional/west{ pixel_y = -10 }, /obj/item/pen/screwdriver, @@ -58161,22 +58275,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage) -"uwV" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - id = "ordstorage" - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/button/door/directional/east{ - req_access = list("ordnance"); - name = "Ordnance Storage Shutter Control"; - id = "ordstorage" - }, -/obj/effect/turf_decal/caution/stand_clear/red, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "uwW" = ( /obj/structure/cable/layer1, /turf/open/floor/iron, @@ -58234,6 +58332,15 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) +"uya" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uyc" = ( /obj/machinery/light/cold/directional/west, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -58440,6 +58547,16 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/airless, /area/station/asteroid) +"uBU" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "uCj" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/red/opposingcorners{ @@ -58693,14 +58810,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/prison) -"uGx" = ( -/obj/item/toy/plush/lizard_plushie/green{ - name = "Hauls-The-Crates" - }, -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/station/maintenance/department/cargo) "uGS" = ( /obj/structure/chair/office/tactical{ dir = 8 @@ -58718,12 +58827,6 @@ /obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) -"uHz" = ( -/obj/structure/lattice/catwalk, -/turf/open/openspace{ - initial_gas_mix = "n2=100;TEMP=80" - }, -/area/station/science/xenobiology) "uHA" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -58829,9 +58932,7 @@ "uJq" = ( /obj/machinery/computer/records/medical, /obj/effect/turf_decal/tile/red/fourcorners, -/obj/machinery/computer/security/telescreen/cmo/directional/north{ - name = "Medbay Monitor" - }, +/obj/machinery/computer/security/telescreen/med_sec/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) "uJt" = ( @@ -58921,6 +59022,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"uLi" = ( +/obj/structure/cable, +/obj/effect/landmark/navigate_destination/dockarrival, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/hallway/secondary/entry) "uLj" = ( /obj/machinery/door/poddoor/shutters/window{ id = "gateshutter"; @@ -59569,17 +59677,6 @@ dir = 1 }, /area/station/command/heads_quarters/qm) -"uWI" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Chemistry Lab" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/effect/landmark/navigate_destination/chemfactory, -/turf/open/floor/iron/white, -/area/station/medical/chemistry/minisat) "uWX" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -59592,19 +59689,6 @@ }, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/upper) -"uXb" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "uXe" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -59759,7 +59843,7 @@ "uZg" = ( /obj/machinery/icecream_vat, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen) +/area/station/service/kitchen/coldroom) "uZx" = ( /turf/closed/wall, /area/station/hallway/primary/central) @@ -59987,12 +60071,6 @@ }, /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) -"veF" = ( -/obj/effect/turf_decal/tile/brown/fourcorners, -/obj/structure/railing, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/iron, -/area/station/cargo/storage) "veW" = ( /obj/structure/extinguisher_cabinet/directional/north, /turf/closed/wall, @@ -60349,10 +60427,6 @@ /obj/machinery/light/directional/south, /turf/open/openspace, /area/station/security/warden) -"vlz" = ( -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vlD" = ( /obj/structure/table/wood, /obj/machinery/light_switch/directional/north, @@ -60423,6 +60497,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/construction/mining/aux_base) +"vmH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/broken_canister_frame, +/obj/structure/sign/poster/random/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/department/science) "vnb" = ( /obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine/airless, @@ -60655,6 +60735,7 @@ /turf/open/floor/iron, /area/station/engineering/lobby) "vqN" = ( +/obj/machinery/vending/cytopro, /turf/open/floor/iron/dark/small, /area/station/science/cytology) "vqY" = ( @@ -60668,18 +60749,6 @@ dir = 8 }, /area/station/service/theater) -"vrG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/turf_decal/box/red, -/obj/machinery/light/directional/south, -/turf/open/floor/iron/dark/smooth_large, -/area/station/science/ordnance) "vrR" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/wood, @@ -61121,6 +61190,15 @@ dir = 8 }, /area/station/science/xenobiology) +"vBN" = ( +/obj/structure/window/spawner/directional/east, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/iron/dark/smooth_large, +/area/station/science/ordnance) "vBV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61354,6 +61432,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"vFL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "vFM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -61757,15 +61841,6 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron, /area/station/engineering/main) -"vNl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 10 - }, -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "vNB" = ( /obj/machinery/vending/tool, /obj/effect/decal/cleanable/dirt, @@ -61975,13 +62050,6 @@ "vQB" = ( /turf/closed/wall, /area/station/cargo/boutique) -"vQP" = ( -/obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "vQT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62182,6 +62250,16 @@ }, /turf/open/floor/iron/solarpanel/airless, /area/station/solars/port) +"vUk" = ( +/obj/machinery/atmospherics/components/trinary/mixer{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "vUn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62202,6 +62280,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) +"vUJ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "vUO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, @@ -62425,15 +62508,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/dark, /area/station/commons/locker) -"vZu" = ( -/obj/machinery/atmospherics/components/tank/air{ - piping_layer = 4 - }, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/medical/virology) "vZF" = ( /obj/structure/dresser, /obj/effect/decal/cleanable/dirt, @@ -62487,6 +62561,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"wan" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/garbage{ + spawn_scatter_radius = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/central/lesser) "war" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -62699,12 +62781,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"wea" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "weg" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 1 @@ -62795,13 +62871,6 @@ }, /turf/open/floor/iron/textured, /area/station/engineering/atmos) -"wfU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "wfW" = ( /obj/structure/lattice/catwalk, /obj/item/food/pie/cream, @@ -63034,7 +63103,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "wlf" = ( -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/effect/turf_decal/tile/dark_green/opposingcorners, /turf/open/floor/iron, @@ -63082,6 +63150,19 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/textured_large, /area/station/service/hydroponics/garden) +"wlO" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/box/red, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "wlR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/open/floor/plating, @@ -63126,17 +63207,6 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"wmM" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/cable, -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/green/hidden{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "wmO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/glass/reinforced, @@ -63172,12 +63242,6 @@ dir = 8 }, /area/station/science/xenobiology) -"wnH" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/open/floor/iron/white, -/area/station/science/ordnance/storage) "wnL" = ( /turf/open/floor/plating, /area/station/medical/medbay/central) @@ -63469,6 +63533,14 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"wtu" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "wtw" = ( /obj/structure/extinguisher_cabinet/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -63573,6 +63645,12 @@ /obj/effect/mapping_helpers/mail_sorting/service/hydroponics, /turf/open/floor/wood/tile, /area/station/service/bar) +"wvs" = ( +/obj/structure/chair/sofa/bench, +/obj/effect/landmark/start/prisoner, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/security/prison) "wvt" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/mapping_helpers/airlock/access/any/supply/maintenance, @@ -63686,16 +63764,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"wxP" = ( -/obj/structure/cable, -/obj/machinery/airalarm/directional/north, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "wxQ" = ( /obj/machinery/computer/operating{ dir = 8 @@ -64066,6 +64134,16 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/teleporter) +"wDb" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "wDe" = ( /obj/effect/turf_decal/siding/white{ dir = 1 @@ -64232,6 +64310,15 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, /area/station/command/gateway) +"wFb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lab) "wFw" = ( /obj/structure/cable, /obj/structure/closet/emcloset, @@ -64438,6 +64525,10 @@ "wKO" = ( /turf/open/floor/glass, /area/station/maintenance/department/medical) +"wKR" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "wKT" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -64696,23 +64787,6 @@ /obj/machinery/gravity_generator/main, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) -"wOJ" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/obj/item/stack/sheet/iron/fifty, -/obj/item/construction/plumbing, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/item/stack/ducts/fifty, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","medbay") - }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) "wOK" = ( /obj/structure/chair/comfy/brown{ dir = 8; @@ -64738,15 +64812,6 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"wPP" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Xenobiology Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "wPU" = ( /obj/machinery/light/small/directional/west, /turf/open/misc/asteroid, @@ -64834,6 +64899,13 @@ }, /turf/open/floor/iron, /area/station/security/brig/entrance) +"wRL" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "wRN" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ @@ -65296,15 +65368,6 @@ /obj/machinery/vending/wallmed/directional/south, /turf/open/floor/iron/white, /area/station/command/heads_quarters/cmo) -"xaw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ - dir = 8 - }, -/obj/structure/disposalpipe/trunk/multiz{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) "xay" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65483,10 +65546,12 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "xcC" = ( -/obj/machinery/light/cold/dim/directional/north, /obj/item/radio/intercom/directional/east, /obj/machinery/vending/drugs, /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","medbay") + }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) "xdf" = ( @@ -65588,17 +65653,6 @@ "xeS" = ( /turf/open/floor/iron, /area/station/commons/storage/primary) -"xeT" = ( -/obj/structure/cable, -/obj/machinery/button/door/directional/east{ - name = "shutter control"; - id = "xbprotect1" - }, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/kirbyplants/random, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/xenobiology) "xeW" = ( /obj/effect/turf_decal/tile/brown{ dir = 8 @@ -65666,13 +65720,6 @@ /obj/machinery/photobooth, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"xgc" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/science/lab) "xgn" = ( /obj/structure/mannequin/skeleton{ starting_items = list() @@ -66203,13 +66250,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) -"xqG" = ( -/obj/structure/cable, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/flat_white, -/area/station/hallway/secondary/entry) "xqO" = ( /obj/docking_port/stationary/escape_pod{ dir = 8 @@ -66480,6 +66520,22 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /turf/open/floor/iron, /area/station/engineering/atmos) +"xvo" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/door/directional/east{ + req_access = list("ordnance"); + name = "Ordnance Storage Shutter Control"; + id = "ordstorage" + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "xvr" = ( /obj/machinery/computer/prisoner/management{ dir = 1 @@ -66610,6 +66666,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/engineering/atmos) +"xxN" = ( +/obj/machinery/light/small/dim/directional/north, +/obj/machinery/atmospherics/components/unary/passive_vent, +/turf/open/floor/engine/o2, +/area/station/science/ordnance) "xxO" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/flora/bush/fullgrass/style_random, @@ -66634,6 +66695,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/library) +"xxY" = ( +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "xyG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/power/apc/auto_name/directional/south, @@ -66873,6 +66943,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/explab) +"xCs" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "xCw" = ( /obj/effect/turf_decal/siding/purple, /obj/structure/chair/sofa/bench, @@ -67213,16 +67290,6 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"xJt" = ( -/obj/effect/turf_decal/sand/plating, -/obj/machinery/light/small/directional/south, -/obj/structure/broken_flooring/pile, -/obj/machinery/atmospherics/components/binary/pump/off/green/hidden{ - dir = 4; - name = "Aux Oxygen To Port" - }, -/turf/open/floor/plating, -/area/station/science/ordnance) "xJA" = ( /obj/structure/table/wood/fancy/blue, /obj/effect/spawner/random/aimodule/neutral, @@ -67233,6 +67300,15 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) +"xJK" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/poddoor/shutters/window/preopen{ + id = "ordstorage" + }, +/obj/effect/turf_decal/caution/stand_clear/red, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white, +/area/station/science/ordnance/storage) "xJQ" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -67244,6 +67320,14 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"xJR" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "xJT" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 @@ -67374,7 +67458,7 @@ name = "Captain's Fax Machine" }, /obj/structure/table/reinforced, -/obj/machinery/keycard_auth/directional/south{ +/obj/machinery/keycard_auth/wall_mounted/directional/south{ pixel_y = -24; pixel_x = 8 }, @@ -67468,6 +67552,17 @@ }, /turf/open/floor/wood/tile, /area/station/service/bar) +"xOB" = ( +/obj/machinery/door/airlock/research{ + name = "Ordnance Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, +/obj/structure/cable, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance) "xOC" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted, /obj/structure/disposalpipe/segment, @@ -67646,6 +67741,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured_half, /area/station/cargo/storage) +"xSW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/white/smooth_half{ + dir = 8 + }, +/area/station/science/xenobiology) "xTa" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -67871,12 +67974,12 @@ /area/station/service/kitchen) "xXm" = ( /obj/structure/table, -/obj/item/storage/box/masks{ - pixel_x = 4; - pixel_y = 4 +/obj/item/clothing/glasses/science{ + pixel_y = 2 + }, +/obj/item/clothing/glasses/science{ + pixel_y = -2 }, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) @@ -67961,6 +68064,12 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/service/bar) +"xYE" = ( +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/science/ordnance) "xYG" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -68053,6 +68162,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"yaH" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/ordnance/storage) "yaM" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/decal/cleanable/dirt, @@ -68286,10 +68400,13 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"yew" = ( -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/department/medical) +"yeK" = ( +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/hallway/secondary/entry) "yeO" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -68362,6 +68479,14 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/commons/lounge) +"ygt" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance, +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/dim/directional/north, +/turf/open/floor/iron/white, +/area/station/maintenance/department/medical) "ygw" = ( /turf/closed/wall/r_wall, /area/station/security/detectives_office) @@ -81687,7 +81812,7 @@ jtd bPP gUa mxq -uGx +fZg bVs ycz bVs @@ -82243,9 +82368,9 @@ phV kFT kFT qIS -osT -uoP -ioh +ojS +tpN +aju gzw dKw amK @@ -82422,8 +82547,8 @@ iUF dUc xrb xrb -dEG -dEG +nPw +qwB iqf cKn pjt @@ -82500,9 +82625,9 @@ hQK dPg fvo jPO -osT -dci -piH +ojS +kvW +rCD xaC dKw dKw @@ -82757,9 +82882,9 @@ sGt ltj fvo pwn -eaL -eUB -dgR +isy +hSB +cnd uPg bui yit @@ -82935,7 +83060,7 @@ cLf dUc cLf xrb -nEx +hAS syF ckc sqk @@ -83014,9 +83139,9 @@ bhZ pgJ fvo lcM -eaL -eaL -nIa +isy +isy +lJo crz bui yit @@ -83706,7 +83831,7 @@ cLf iUF cLf sNu -nEx +hAS rXZ vjm hbw @@ -84226,7 +84351,7 @@ hME hME tSc wUe -tvQ +wvs imQ rhY tsk @@ -91728,7 +91853,7 @@ acc tQF ewJ uFW -jrX +wan acc acc acc @@ -91983,9 +92108,9 @@ mbZ acc acc acc -acc +wMb eFP -jac +jrX kuP kuP kuP @@ -92240,9 +92365,9 @@ jrn acc nZY ihH -acc -acc -jrX +nUL +eFP +lIr lIr lIr lIr @@ -92497,10 +92622,10 @@ qpb acc jOD uFW -nmS uFW -jrX +nki lIr +bQY lHi dyX uWr @@ -92755,9 +92880,9 @@ mCo ewJ uFW jXL -uFW -jdP +kYi lIr +gvs wlf fvd cik @@ -93013,8 +93138,8 @@ acc jrX siG jrX -jrX lIr +oEo otA xlX bcX @@ -93269,10 +93394,10 @@ bIi acc jrX gGm -enu -enu -enu -enu +mMT +mMT +mMT +mMT edv eBb hRB @@ -93522,15 +93647,15 @@ dTU pMD acc kYl -jUd +sUD dGc fDN -enu -enu +mMT +mMT twW pTn -enu -enu +mMT +mMT hwk hRB jkF @@ -93782,12 +93907,12 @@ heh jUd acc fDN -enu +mMT uZg byb rNs -rNs -sUI +nlz +rbt cXL enu tGt @@ -94039,12 +94164,12 @@ acc acc acc fDN -enu +mMT oBU aAg cYH aJv -enu +mMT drJ shG vMb @@ -94296,12 +94421,12 @@ acB jmn atX mUW -enu +mMT fNy rNs rNs dCh -enu +mMT alP enu nii @@ -94553,12 +94678,12 @@ gGS bcu bcu pPy -enu -enu +mMT +mMT sUI -enu -enu -enu +mMT +mMT +mMT duS pQM pYu @@ -96574,7 +96699,7 @@ hSi sRM kZA gkQ -oOP +dBn eKR eKR juw @@ -97087,7 +97212,7 @@ jTd rkz lrc eHa -vQP +ktI ita hOb cwq @@ -103790,7 +103915,7 @@ tdk hkc swi dHy -cBB +aEL trL nMP xOU @@ -104038,7 +104163,7 @@ wWY eZN cPt alA -qIQ +wDb irJ rBI cPt @@ -104294,8 +104419,8 @@ vfJ xbu gMK cPt -lcj -tCz +pJU +wtu dfr mKF cPt @@ -104315,7 +104440,7 @@ qnQ xcb wCO tld -kZf +miU azv azv azv @@ -104552,7 +104677,7 @@ eIV gMK cPt voQ -tCz +wtu urh ooy cPt @@ -104809,7 +104934,7 @@ gLw jmY cPt kKJ -hEw +ebU xWb cUe cPt @@ -105066,7 +105191,7 @@ rXG raz cPt toV -hEw +ebU irJ cPt cPt @@ -105323,7 +105448,7 @@ oBP raz wtr rrq -aNF +wFb irJ jRN jyQ @@ -105580,9 +105705,9 @@ oBP vfJ cPt cPt -wxP -xgc -hld +eBw +gIM +giJ ugh aZs jDP @@ -105832,7 +105957,7 @@ fYe vxX vxX vfJ -xAd +gZF oBP xAd kHG @@ -108410,8 +108535,8 @@ aku ouA jJe ilp -ixU -ixU +gOY +gOY gOY gOY gOY @@ -108667,14 +108792,14 @@ aku aku ilp ilp -jTB -rpC gOY -iAx +xxN +aam +xYE boy gql abh -xaw +nGV uPL sSN nal @@ -108927,9 +109052,9 @@ jTB jTB jTB gOY -pQG -atb -qVB +vUk +wlO +nqi iOH fQr gOY @@ -109181,12 +109306,12 @@ aku ilp jTB jTB -mHc -wnH +ief +jZv gOY -nQl -jSR -nTZ +ifv +kMl +cZs urY czh uPL @@ -109439,13 +109564,13 @@ ilp jTB jGd eBH -cQX -enX -rSB +otJ +mTg +hYG bwj -mSG +jLY rSh -qOt +xJR gOY wOn gOY @@ -109697,15 +109822,15 @@ jTB dkr hbH naU -gsw -fSD +bmr +smH lCw -vlz +fDz fDz fDz bPc efJ -dPh +ofG gOY cxg cxg @@ -109954,10 +110079,10 @@ jTB sqJ wiT rBt -aPG -qeY +suo +lMC aMG -vlz +fDz xTs fDz fDz @@ -110211,10 +110336,10 @@ jTB dEn lIn tra -qGr -kKC -mqb -vlz +suo +xxY +aMG +fDz fDz mfC fDz @@ -110468,16 +110593,16 @@ jTB gbV jqY rus -fuF -gzF -kEM +xJK +hVC +uya fDz fDz fDz oWy fDz dyd -vrG +qDM gOY cxg vxX @@ -110722,11 +110847,11 @@ aku ilp ilp jTB -cuA -cuA -nNl -uwV -vNl +wKR +wKR +vFL +xvo +mSe nCo tGW tGW @@ -110980,13 +111105,13 @@ ieo ilp jTB jTB -kQB -ioL +qXE +yaH gOY aks tTK tvB -cSI +tRZ nkM vxZ dyS @@ -111225,7 +111350,7 @@ cLf cLf cLf cLf -fYe +vxX vxX ilp pkw @@ -111242,8 +111367,8 @@ jTB gOY gOY tTK -rFA -lAl +oEP +vBN xfQ cAG xXF @@ -111494,13 +111619,13 @@ aku fbN gsW gsW -mnS -mnS +rZE +rZE gOY iJZ lcd -ecM -eKT +eih +neb nkM vxZ pZK @@ -111749,15 +111874,15 @@ uOo aku aku pkw -mgi -rkd -aMS -hVm -mFa -elG -uXb +hhd +bEz +laD +laD +fVO cmn -jgl +lcd +cmn +acN efL cQu wgI @@ -112007,12 +112132,12 @@ aku aku aku ajs -gop -cqf -xJt +pIk +dpA +rPh gOY -joD -ffK +mAC +uBU cut rcR efL @@ -112264,13 +112389,13 @@ aku aku aku vjB -jEw +psQ cmn -cqt +czC gOY -kke -wmM -auA +gAV +hFz +wRL icz efL nbS @@ -112527,7 +112652,7 @@ gsW gOY gOY gOY -roK +xOB gOY nkM nkM @@ -112780,11 +112905,11 @@ aku aku aku xAd -wfU -rbS -kAI -ojR -lBm +upd +upd +ndE +mkV +dcc uvx mna gXw @@ -113037,8 +113162,8 @@ aku aku vfR vfJ -dGX upd +efF moe jxe aaR @@ -113294,8 +113419,8 @@ tsz lJq obA vfJ -kBr -vfJ +egt +nZW moe tLh dlE @@ -113550,9 +113675,9 @@ ouk uYH aQm obA +vmH upd bnb -upd moe rHG bpW @@ -113807,9 +113932,9 @@ lJq jBM lJq obA -qnV -iPW -hkG +sdB +rcH +qsj moe mJU bpW @@ -144425,10 +144550,10 @@ vxX mUQ kLL cts -caH +gQL lCA pux -kVh +eYP iJm mUQ mUQ @@ -145453,10 +145578,10 @@ vxX iJm iJm eYP -kVh +eYP qMK tAk -pxU +gHN iJm iJm fnh @@ -145968,8 +146093,8 @@ vxX iJm uKm eYP -uWI -dir +pmp +ldf eYP fnh qoN @@ -146224,7 +146349,7 @@ vxX vxX vxX uKm -tUr +mUA iLo lYg oHC @@ -146481,10 +146606,10 @@ unk vxX vxX oTe -ctf -pDr +rPT +atT cMK -rJv +jsf fnh kGS fnh @@ -146736,13 +146861,13 @@ ibx ibx unk hvw -jiP +fXo uKm -yew -stk +eOA +jSE hgS jHQ -jHQ +mjU jHQ bhV jHQ @@ -146994,9 +147119,9 @@ ibx fvF duU hmA -exS -nlx -miR +nJD +hyL +kJW kYT kYT kYT @@ -147231,7 +147356,7 @@ sdc ilr gDQ qWY -veF +sjT oZQ oZQ oZQ @@ -147251,9 +147376,9 @@ vxX unk ibx vxX -vxX -siU -spU +unk +ygt +dXH kYT bUZ vzG @@ -147508,10 +147633,10 @@ wOU vxX ibx vxX -vxX -fnh -spU -kYT +bGk +bGk +tuL +bGk rRy cOb ycI @@ -147766,9 +147891,9 @@ vxX taj vxX bGk -kYT -rEV -kYT +mqc +mfw +bGk bGk ncR ncR @@ -148023,8 +148148,8 @@ ibx ibx vxX bGk -wOJ -jeV +sHo +mJD tGR hNN pLA @@ -148280,7 +148405,7 @@ ibx vxX vxX bGk -kSc +jfq dhj dhj xmy @@ -152408,7 +152533,7 @@ wYY tSn xas xhJ -vZu +mfP xOF dgS kzI @@ -154692,25 +154817,25 @@ wjI wjI uXD cYC -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP dFc uXD uXD @@ -154949,7 +155074,7 @@ uXD uXD uXD uGW -leZ +jCP rCL sTB kAc @@ -154967,7 +155092,7 @@ kAc kAc sTB vAo -leZ +jCP sZF pLP pLP @@ -155206,7 +155331,7 @@ aLN aLN uXD jYf -leZ +jCP vVC sxV sxV @@ -155224,7 +155349,7 @@ sxV sxV sxV mJV -leZ +jCP sZF pLP pLP @@ -155463,7 +155588,7 @@ aLN aLN ntQ hPS -leZ +jCP sby sxV sxV @@ -155481,7 +155606,7 @@ sxV sxV sxV hrI -xqG +yeK wDr uXD uXD @@ -155720,7 +155845,7 @@ aLN aLN hVN hPS -leZ +jCP sby sxV sxV @@ -155738,7 +155863,7 @@ sxV sxV sxV hrI -leZ +jCP lGP rzJ gMk @@ -155977,7 +156102,7 @@ aLN jhc jYG hPS -leZ +jCP sby sxV sxV @@ -155995,7 +156120,7 @@ sxV sxV idV hrI -leZ +jCP khL uXD uet @@ -156234,7 +156359,7 @@ aLN aLN vzi hPS -leZ +jCP sby sxV sxV @@ -156252,7 +156377,7 @@ sxV sxV sxV hrI -leZ +jCP lGP rzJ gMk @@ -156491,7 +156616,7 @@ aLN aLN uXD hPS -leZ +jCP sby sxV sxV @@ -156509,7 +156634,7 @@ sxV sxV sxV hrI -leZ +jCP qgy uXD uXD @@ -156748,7 +156873,7 @@ aLN aLN uXD cDl -leZ +jCP vVC sxV sxV @@ -156766,7 +156891,7 @@ sxV sxV sxV mJV -leZ +jCP sZF pLP pLP @@ -157005,7 +157130,7 @@ jJb jJb jJb ata -leZ +jCP hbb xkO nhm @@ -157023,7 +157148,7 @@ nhm nhm xkO lCp -leZ +jCP sZF pLP pLP @@ -157262,25 +157387,25 @@ dRq bfN uhi bOr -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -lUy -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ -leZ +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +uLi +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP +jCP wLu uXD uXD @@ -176776,7 +176901,7 @@ iSz uba vfJ nzk -qmI +rPV wYI elT elT @@ -177039,8 +177164,8 @@ wFI mmU ibE wts -oFp -oFp +uaw +uaw tcx qJN uHQ @@ -178068,7 +178193,7 @@ hEi hEi hEi hEi -lVy +iRy iFN rEv vjQ @@ -178325,7 +178450,7 @@ ivx ivx ivx wkG -nIQ +bhq iFN iFN iFN @@ -178582,7 +178707,7 @@ moe wkG wkG wkG -sar +qjs moe vxX vxX @@ -183735,7 +183860,7 @@ gQq klu xEs xEs -iOk +bNG xEs xEs qRY @@ -183992,7 +184117,7 @@ gQq sbR gQq arS -drx +eEg qad gQq abm @@ -184249,7 +184374,7 @@ gQq sbR gQq ibl -tZR +dzL qad gQq abm @@ -184506,7 +184631,7 @@ gQq sbR gQq ibl -tZR +dzL qad gQq abm @@ -184763,7 +184888,7 @@ ubn gYI ybO xgq -tZR +dzL ueJ ybO gYI @@ -185015,17 +185140,17 @@ wBd rWL jQS jQS -wea -tPE -tPE -tvt -tvt -tZR -tvt -tvt -tZR -tZR -aXc +bXe +qXj +qXj +lAt +lAt +dzL +lAt +lAt +dzL +dzL +aFb jQS jQS geB @@ -185272,17 +185397,17 @@ wBd hAL jQS ojC -tPE +qXj lKY lKY -lBZ +vUJ nRj nem ciV -tPE +qXj lKY lKY -tZR +dzL kkD jQS cku @@ -185529,17 +185654,17 @@ jQS hAL jQS qWt -tPE +qXj lKY hQH -gjo +cAq csf oIh pPY -xeT +iPf gCP lKY -tZR +dzL hLA jQS cku @@ -185786,7 +185911,7 @@ wBd hAL jQS jQS -agM +gvj gMy gwx jQS @@ -185796,7 +185921,7 @@ wmO jQS xDf gtE -mYh +hMf jQS jQS cku @@ -186041,21 +186166,21 @@ oJt wAT ezg agA -wPP -tIs -tPE +cVs +cUf +qXj lKY -bBJ +qUi wmO -uHz -uHz -uHz +ybO +ybO +ybO wmO rmi lKY -tZR -gmb -mRC +dzL +tsm +gCV awC vbV wAT @@ -186300,17 +186425,17 @@ wBd rWL jQS uVe -tPE +qXj avA -iox +nVm wmO -uHz -uHz -uHz +ybO +ybO +ybO wmO xGG uBm -lBZ +vUJ rWp jQS hAL @@ -186557,17 +186682,17 @@ jQS hye jQS qZX -tPE +qXj lKY -oIu +qGD wmO -uHz -uHz -uHz +ybO +ybO +ybO wmO bLI lKY -lBZ +vUJ gDl jQS hye @@ -186814,17 +186939,17 @@ jQS jQS jQS iXn -ieU +mMe cWL tMz jQS wmO -inz +kZW jgA jQS tMz ybo -aqG +sbS lVq jQS jQS @@ -187069,11 +187194,11 @@ hhX hhX fZF jQS -pjL +rXf jEt -gdM +aMf rdn -dck +xSW wnA wnA wnA @@ -187081,9 +187206,9 @@ wnA viT bUl cNh -iXB +mjY jEt -nfk +oag jQS fZF hhX @@ -187326,21 +187451,21 @@ hhX hhX fZF jQS -fSi +cCr fXW -jej -krO -krO -krO -krO -krO -krO -krO -krO -krO -rBq +xCs +awy +awy +awy +awy +awy +awy +awy +awy +awy +oVS mCT -sQU +okf jQS fZF hhX @@ -187590,7 +187715,7 @@ cWc wnA wnA jfD -krO +awy olE wnA wnA @@ -187847,7 +187972,7 @@ jQS bGL vBD rxC -krO +awy jpe wnA trg @@ -188104,7 +188229,7 @@ jQS tbU byC tbU -keb +oia tbU byC tbU @@ -188358,13 +188483,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -ybO -gQq -gQq -gQq +nCm +nCm +nCm +kvd +nCm +nCm +nCm jQS fZF hhX @@ -188615,13 +188740,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -ybO -gQq -gQq -gQq +nCm +nCm +nCm +kvd +nCm +nCm +nCm jQS fZF hhX @@ -188872,13 +188997,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -gQq -gQq -gQq -gQq +nCm +nCm +nCm +nCm +nCm +nCm +nCm jQS fZF hhX @@ -189129,13 +189254,13 @@ hhX hhX fZF jQS -gQq -gQq -gQq -gQq -gQq -gQq -gQq +nCm +nCm +nCm +nCm +nCm +nCm +nCm jQS fZF hhX @@ -189387,11 +189512,11 @@ hhX fZF jQS jQS -gQq -gQq -gQq -gQq -gQq +nCm +nCm +nCm +nCm +nCm jQS jQS fZF diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json index e83101d74d733..af3ffa3521293 100644 --- a/_maps/multiz_debug.json +++ b/_maps/multiz_debug.json @@ -11,17 +11,13 @@ ], "traits": [ { - "Up": true, "Linkage": "Cross" }, { - "Up": true, - "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/_maps/northstar.json b/_maps/northstar.json index bd1a53c562272..fdae8ac42f387 100644 --- a/_maps/northstar.json +++ b/_maps/northstar.json @@ -14,23 +14,17 @@ "space_empty_levels": 2, "traits": [ { - "Up": true, "Linkage": "Cross" }, { - "Up": true, - "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Up": true, - "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" }, { - "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/_maps/safehouses/bathroom.dmm b/_maps/safehouses/bathroom.dmm index 76712d6193c44..69ad0b25e9520 100644 --- a/_maps/safehouses/bathroom.dmm +++ b/_maps/safehouses/bathroom.dmm @@ -27,7 +27,7 @@ dir = 4 }, /obj/machinery/light/small/blacklight/directional/east, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "v" = ( /obj/machinery/light/small/blacklight/directional/east, @@ -68,7 +68,7 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "M" = ( /obj/effect/decal/cleanable/dirt, diff --git a/_maps/safehouses/den.dmm b/_maps/safehouses/den.dmm index 15debc7e284e6..9b0b37f535150 100644 --- a/_maps/safehouses/den.dmm +++ b/_maps/safehouses/den.dmm @@ -18,7 +18,7 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "e" = ( /obj/structure/table/reinforced/plastitaniumglass, @@ -59,7 +59,7 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "z" = ( /obj/effect/turf_decal/trimline/yellow/corner{ diff --git a/_maps/safehouses/dig.dmm b/_maps/safehouses/dig.dmm index 73f0d247dfbe4..aa26f980d6089 100644 --- a/_maps/safehouses/dig.dmm +++ b/_maps/safehouses/dig.dmm @@ -20,7 +20,7 @@ dir = 8 }, /obj/effect/landmark/bitrunning/cache_goal_turf, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "i" = ( /obj/effect/turf_decal/siding/yellow{ @@ -98,7 +98,7 @@ /obj/effect/turf_decal/loading_area, /obj/effect/turf_decal/box/corners, /obj/effect/landmark/bitrunning/cache_goal_turf, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "T" = ( /obj/effect/landmark/bitrunning/hololadder_spawn, diff --git a/_maps/safehouses/ice.dmm b/_maps/safehouses/ice.dmm index f7faa99739652..f9716de71032f 100644 --- a/_maps/safehouses/ice.dmm +++ b/_maps/safehouses/ice.dmm @@ -60,7 +60,7 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "p" = ( /obj/structure/railing, @@ -69,7 +69,7 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "u" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -148,7 +148,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/small/directional/west, -/obj/machinery/smartfridge/drying_rack, +/obj/machinery/smartfridge/drying/rack, /turf/open/floor/iron, /area/virtual_domain/safehouse) "O" = ( diff --git a/_maps/safehouses/lavaland_boss.dmm b/_maps/safehouses/lavaland_boss.dmm index 7331a5b79d7a0..56141803990a5 100644 --- a/_maps/safehouses/lavaland_boss.dmm +++ b/_maps/safehouses/lavaland_boss.dmm @@ -63,7 +63,7 @@ /obj/machinery/light/directional/east, /obj/structure/railing, /obj/effect/landmark/bitrunning/cache_goal_turf, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "A" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ diff --git a/_maps/safehouses/mine.dmm b/_maps/safehouses/mine.dmm index 904c3c5378e8a..4bf99ab14f3ac 100644 --- a/_maps/safehouses/mine.dmm +++ b/_maps/safehouses/mine.dmm @@ -26,7 +26,7 @@ }, /obj/machinery/light/directional/east, /obj/effect/landmark/bitrunning/cache_goal_turf, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "B" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -52,7 +52,7 @@ }, /obj/structure/railing, /obj/effect/landmark/bitrunning/cache_goal_turf, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "H" = ( /obj/machinery/door/airlock/external/glass{ diff --git a/_maps/safehouses/shuttle.dmm b/_maps/safehouses/shuttle.dmm index 75fe975258c51..19f0c4b73aacc 100644 --- a/_maps/safehouses/shuttle.dmm +++ b/_maps/safehouses/shuttle.dmm @@ -16,7 +16,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/bitrunning/cache_goal_turf, /obj/effect/turf_decal/loading_area, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "i" = ( /obj/effect/turf_decal/stripes/line{ @@ -41,7 +41,7 @@ /obj/machinery/light/small/directional/south, /obj/effect/landmark/bitrunning/cache_goal_turf, /obj/effect/turf_decal/loading_area, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "m" = ( /obj/modular_map_connector, diff --git a/_maps/safehouses/shuttle_space.dmm b/_maps/safehouses/shuttle_space.dmm index 0029f5b0a6e7d..2f4071a834755 100644 --- a/_maps/safehouses/shuttle_space.dmm +++ b/_maps/safehouses/shuttle_space.dmm @@ -67,7 +67,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/bitrunning/cache_goal_turf, /obj/effect/turf_decal/loading_area, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "z" = ( /obj/effect/turf_decal/stripes/line{ @@ -98,7 +98,7 @@ /obj/machinery/light/small/directional/south, /obj/effect/landmark/bitrunning/cache_goal_turf, /obj/effect/turf_decal/loading_area, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "E" = ( /obj/effect/turf_decal/stripes/line{ diff --git a/_maps/safehouses/wood.dmm b/_maps/safehouses/wood.dmm index 05fbb97f915fb..5faa33faa4181 100644 --- a/_maps/safehouses/wood.dmm +++ b/_maps/safehouses/wood.dmm @@ -19,7 +19,7 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "v" = ( /obj/machinery/light/small/directional/east, @@ -50,7 +50,7 @@ /obj/effect/turf_decal/loading_area{ dir = 4 }, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/safehouse) "T" = ( /obj/effect/landmark/bitrunning/hololadder_spawn, diff --git a/_maps/shuttles/cargo_delta.dmm b/_maps/shuttles/cargo_delta.dmm index 75b2b6cb23270..c12c7c1787841 100644 --- a/_maps/shuttles/cargo_delta.dmm +++ b/_maps/shuttles/cargo_delta.dmm @@ -79,7 +79,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/docking_port/mobile/supply{ - dir = 4 + dir = 4; + port_direction = 8 }, /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/plating, diff --git a/_maps/shuttles/cargo_kilo.dmm b/_maps/shuttles/cargo_kilo.dmm index 948369f49085a..e0dc7be8bef72 100644 --- a/_maps/shuttles/cargo_kilo.dmm +++ b/_maps/shuttles/cargo_kilo.dmm @@ -91,7 +91,8 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/access/all/supply/general, /obj/docking_port/mobile/supply{ - dir = 4 + dir = 4; + port_direction = 8 }, /turf/open/floor/mineral/plastitanium, /area/shuttle/supply) diff --git a/_maps/shuttles/cargo_pubby.dmm b/_maps/shuttles/cargo_pubby.dmm index c3d064bc59d17..4ff003c70b3a1 100644 --- a/_maps/shuttles/cargo_pubby.dmm +++ b/_maps/shuttles/cargo_pubby.dmm @@ -140,7 +140,8 @@ /area/shuttle/supply) "R" = ( /obj/docking_port/mobile/supply{ - dir = 4 + dir = 4; + port_direction = 8 }, /obj/machinery/door/airlock/shuttle{ name = "Supply Shuttle Airlock" diff --git a/_maps/shuttles/emergency_cruise.dmm b/_maps/shuttles/emergency_cruise.dmm index c111505c14789..13b160b653190 100644 --- a/_maps/shuttles/emergency_cruise.dmm +++ b/_maps/shuttles/emergency_cruise.dmm @@ -220,7 +220,7 @@ /turf/open/floor/iron, /area/shuttle/escape) "fL" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/carpet/executive, /area/shuttle/escape) "fY" = ( @@ -2262,7 +2262,7 @@ /turf/template_noop, /area/shuttle/escape) "Xu" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /obj/effect/turf_decal/siding/wood{ dir = 1 }, diff --git a/_maps/shuttles/emergency_humpback.dmm b/_maps/shuttles/emergency_humpback.dmm index f76d06925a343..195f342cd3caa 100644 --- a/_maps/shuttles/emergency_humpback.dmm +++ b/_maps/shuttles/emergency_humpback.dmm @@ -115,7 +115,7 @@ /area/shuttle/escape/brig) "gW" = ( /obj/structure/window/reinforced/plasma/spawner/directional/east, -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/mineral/plastitanium, /area/shuttle/escape) "hd" = ( diff --git a/_maps/shuttles/emergency_imfedupwiththisworld.dmm b/_maps/shuttles/emergency_imfedupwiththisworld.dmm index 6513f090c53c8..cf53733c42351 100644 --- a/_maps/shuttles/emergency_imfedupwiththisworld.dmm +++ b/_maps/shuttles/emergency_imfedupwiththisworld.dmm @@ -30,9 +30,7 @@ /area/shuttle/escape) "k" = ( /obj/machinery/light/directional/east, -/obj/machinery/vending/boozeomat{ - req_access = null - }, +/obj/machinery/vending/boozeomat, /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/shuttle/escape) diff --git a/_maps/shuttles/emergency_kilo.dmm b/_maps/shuttles/emergency_kilo.dmm index 4ebd7843239aa..1c8148a774a9e 100644 --- a/_maps/shuttles/emergency_kilo.dmm +++ b/_maps/shuttles/emergency_kilo.dmm @@ -325,7 +325,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 8 }, -/obj/machinery/keycard_auth/directional/east, +/obj/machinery/keycard_auth/wall_mounted/directional/east, /turf/open/floor/mineral/plastitanium, /area/shuttle/escape) "bZ" = ( @@ -962,7 +962,7 @@ /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/obj/machinery/keycard_auth/directional/west, +/obj/machinery/keycard_auth/wall_mounted/directional/west, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm index 74b18ef61b4de..1e1ae99d2ea5b 100644 --- a/_maps/shuttles/emergency_luxury.dmm +++ b/_maps/shuttles/emergency_luxury.dmm @@ -589,7 +589,7 @@ /turf/open/floor/carpet/green, /area/shuttle/escape/luxury) "zq" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/closed/indestructible/riveted/plastinum/nodiagonal, /area/shuttle/escape/brig) "zt" = ( diff --git a/_maps/shuttles/emergency_northstar.dmm b/_maps/shuttles/emergency_northstar.dmm index e934a65b722fa..798a4d9671a4e 100644 --- a/_maps/shuttles/emergency_northstar.dmm +++ b/_maps/shuttles/emergency_northstar.dmm @@ -183,10 +183,10 @@ pixel_x = -3; pixel_y = 2 }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/shuttle/escape) "qf" = ( -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/shuttle/escape) "qK" = ( /obj/machinery/stasis, @@ -347,7 +347,7 @@ /obj/machinery/door/airlock/survival_pod/glass{ name = "Emergency Shuttle Treatment" }, -/turf/open/floor/catwalk_floor/flat_white, +/turf/open/floor/catwalk_floor/iron_white, /area/shuttle/escape) "Eh" = ( /obj/machinery/power/shuttle_engine/propulsion/left, diff --git a/_maps/shuttles/emergency_tranquility.dmm b/_maps/shuttles/emergency_tranquility.dmm index 3019f72a1d2da..ae3924becbc02 100644 --- a/_maps/shuttles/emergency_tranquility.dmm +++ b/_maps/shuttles/emergency_tranquility.dmm @@ -453,7 +453,7 @@ /area/shuttle/escape) "jb" = ( /obj/machinery/barsign/all_access/directional/north, -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/open/floor/stone, /area/shuttle/escape) "jl" = ( @@ -1696,7 +1696,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /turf/open/floor/carpet/royalblue, /area/shuttle/escape) "Gh" = ( @@ -2129,7 +2129,7 @@ /area/shuttle/escape) "NZ" = ( /obj/machinery/status_display/evac/directional/west, -/obj/machinery/keycard_auth/directional/south, +/obj/machinery/keycard_auth/wall_mounted/directional/south, /obj/machinery/light/floor, /turf/open/floor/carpet/royalblue, /area/shuttle/escape) diff --git a/_maps/shuttles/ert_bounty.dmm b/_maps/shuttles/ert_bounty.dmm index 03be12a36a771..b1fbf895fa586 100644 --- a/_maps/shuttles/ert_bounty.dmm +++ b/_maps/shuttles/ert_bounty.dmm @@ -18,7 +18,9 @@ movement_force = list("KNOCKDOWN"=0,"THROW"=0); name = "hunter shuttle"; rechargeTime = 1800; - shuttle_id = "huntership" + shuttle_id = "huntership"; + port_direction = 4; + preferred_direction = 4 }, /obj/structure/fans/tiny, /turf/open/floor/pod/dark, @@ -205,7 +207,9 @@ /area/shuttle/hunter) "H" = ( /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/hunter{ - dir = 8 + dir = 8; + y_offset = 6; + x_offset = 3 }, /turf/open/floor/pod/dark, /area/shuttle/hunter) diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm index 69a4d6fa18cec..42366d373d8d3 100644 --- a/_maps/shuttles/ferry_base.dmm +++ b/_maps/shuttles/ferry_base.dmm @@ -48,7 +48,7 @@ dir = 8; shuttle_id = "ferry"; name = "ferry shuttle"; - port_direction = 2 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm index b5bb7186693e8..5bb79a3e56ed7 100644 --- a/_maps/shuttles/ferry_lighthouse.dmm +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -142,7 +142,7 @@ dir = 8; shuttle_id = "ferry"; name = "The Lighthouse"; - port_direction = 2 + preferred_direction = 4 }, /turf/open/floor/mineral/titanium/blue, /area/shuttle/transport) diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm index fc986bcda5030..a4fd0c9e19b74 100644 --- a/_maps/shuttles/ferry_meat.dmm +++ b/_maps/shuttles/ferry_meat.dmm @@ -105,7 +105,7 @@ dir = 8; shuttle_id = "ferry"; name = "ferry shuttle"; - port_direction = 2 + preferred_direction = 4 }, /turf/open/floor/iron/freezer, /area/shuttle/transport) diff --git a/_maps/shuttles/hunter_mi13_foodtruck.dmm b/_maps/shuttles/hunter_mi13_foodtruck.dmm index 5fe7324e8e83b..6ece8822d802a 100644 --- a/_maps/shuttles/hunter_mi13_foodtruck.dmm +++ b/_maps/shuttles/hunter_mi13_foodtruck.dmm @@ -123,7 +123,7 @@ /turf/open/floor/circuit/red/off, /area/shuttle/hunter/mi13_foodtruck) "eA" = ( -/obj/machinery/vending/medical/syndicate_access/cybersun, +/obj/machinery/vending/medical/syndicate/cybersun, /obj/machinery/airalarm/directional/west, /obj/effect/mapping_helpers/airalarm/syndicate_access, /turf/open/floor/circuit/red/off, diff --git a/_maps/shuttles/infiltrator_advanced.dmm b/_maps/shuttles/infiltrator_advanced.dmm index 9f93df25b0479..1800d638fc540 100644 --- a/_maps/shuttles/infiltrator_advanced.dmm +++ b/_maps/shuttles/infiltrator_advanced.dmm @@ -710,7 +710,7 @@ /area/shuttle/syndicate/eva) "bP" = ( /obj/effect/turf_decal/bot, -/obj/machinery/vending/medical/syndicate_access, +/obj/machinery/vending/medical/syndicate, /turf/open/floor/mineral/plastitanium, /area/shuttle/syndicate/medical) "bQ" = ( diff --git a/_maps/shuttles/pirate_default.dmm b/_maps/shuttles/pirate_default.dmm index 43c72a9d2bfa3..182f51ad3b6a2 100644 --- a/_maps/shuttles/pirate_default.dmm +++ b/_maps/shuttles/pirate_default.dmm @@ -567,9 +567,7 @@ /turf/open/floor/iron, /area/shuttle/pirate) "bH" = ( -/obj/machinery/vending/boozeomat/all_access{ - onstation = 0 - }, +/obj/machinery/vending/boozeomat, /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/shuttle/pirate) diff --git a/_maps/shuttles/pirate_dutchman.dmm b/_maps/shuttles/pirate_dutchman.dmm index 1d1a0b0902b86..a00fff6e7e9fb 100644 --- a/_maps/shuttles/pirate_dutchman.dmm +++ b/_maps/shuttles/pirate_dutchman.dmm @@ -359,10 +359,33 @@ }, /turf/open/floor/carpet/blue/airless, /area/shuttle/pirate/flying_dutchman) +"nb" = ( +/obj/structure/mounted_gun/canister_gatling, +/turf/open/floor/wood/airless, +/area/shuttle/pirate/flying_dutchman) "pG" = ( /obj/structure/window/reinforced/shuttle/survival_pod, /turf/open/floor/wood/airless, /area/shuttle/pirate/flying_dutchman) +"qG" = ( +/obj/item/ammo_casing/canister_shot{ + pixel_y = 8; + pixel_x = -8 + }, +/obj/item/ammo_casing/canister_shot{ + pixel_y = -8; + pixel_x = -8 + }, +/obj/item/ammo_casing/canister_shot{ + pixel_x = 6; + pixel_y = -8 + }, +/obj/item/ammo_casing/canister_shot{ + pixel_y = 8; + pixel_x = 6 + }, +/turf/open/floor/wood/airless, +/area/shuttle/pirate/flying_dutchman) "rd" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/effect/turf_decal/siding/wood/corner{ @@ -1234,7 +1257,7 @@ fW St QM da -WB +nb WB RQ eG @@ -1261,7 +1284,7 @@ km sC mG bn -WB +qG WB xY WR diff --git a/_maps/shuttles/pirate_ex_interdyne.dmm b/_maps/shuttles/pirate_ex_interdyne.dmm index dce984f19c993..4dd64e4cdbe04 100644 --- a/_maps/shuttles/pirate_ex_interdyne.dmm +++ b/_maps/shuttles/pirate_ex_interdyne.dmm @@ -291,9 +291,9 @@ /area/shuttle/pirate) "aS" = ( /obj/effect/turf_decal/tile/dark_blue/opposingcorners, -/obj/structure/closet/crate/freezer/blood, /obj/machinery/light/small/blacklight/directional/south, /obj/machinery/iv_drip, +/obj/structure/closet/crate/secure/freezer/interdyne/blood, /turf/open/floor/iron/dark, /area/shuttle/pirate) "aW" = ( @@ -775,7 +775,7 @@ /area/shuttle/pirate) "OL" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted, -/obj/machinery/vending/medical/syndicate_access, +/obj/machinery/vending/medical/syndicate, /turf/open/floor/iron/dark, /area/shuttle/pirate) "Po" = ( diff --git a/_maps/shuttles/pirate_grey.dmm b/_maps/shuttles/pirate_grey.dmm index 22356be732c36..50594b83d9b59 100644 --- a/_maps/shuttles/pirate_grey.dmm +++ b/_maps/shuttles/pirate_grey.dmm @@ -183,7 +183,7 @@ /turf/open/floor/plating, /area/shuttle/pirate) "gQ" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /turf/closed/wall, /area/shuttle/pirate) "hk" = ( @@ -1495,9 +1495,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/shuttle/pirate) -"ZU" = ( -/turf/closed/wall, -/area/shuttle/pirate) (1,1,1) = {" je @@ -1671,7 +1668,7 @@ qm Ti "} (10,1,1) = {" -ZU +Pn Ut kw CH @@ -1686,7 +1683,7 @@ Yj rV Tq uE -ZU +Pn HD "} (11,1,1) = {" @@ -1705,7 +1702,7 @@ wX Oa Tq Lo -ZU +Pn ei "} (12,1,1) = {" @@ -1714,7 +1711,7 @@ sB GE Yj Nu -ZU +Pn am Eq yN @@ -1731,7 +1728,7 @@ HD HD XX vJ -ZU +Pn SB Nm Vw @@ -1743,14 +1740,14 @@ Sh gQ dd xy -ZU +Pn HD "} (14,1,1) = {" pk pS pU -ZU +Pn QO Ac Wc @@ -1766,10 +1763,10 @@ Sh zB "} (15,1,1) = {" -ZU +Pn dI Sv -ZU +Pn Bu xO yf @@ -1788,7 +1785,7 @@ zB zB vM lO -ZU +Pn tJ xO ax @@ -1852,17 +1849,17 @@ sm CY fj DG -ZU +Pn Ci Sh Gb xm -ZU +Pn je "} (20,1,1) = {" je -ZU +Pn ia NI yU @@ -1871,18 +1868,18 @@ bv aD cJ tU -ZU +Pn xl Sh AR lO -ZU +Pn je "} (21,1,1) = {" je -ZU -ZU +Pn +Pn xm yU OG @@ -1890,30 +1887,30 @@ qo pT De sh -ZU +Pn Zc -ZU +Pn pB -ZU -ZU +Pn +Pn je "} (22,1,1) = {" je je -ZU +Pn EA ll FI Hh -ZU -ZU +Pn +Pn Hh -ZU +Pn gz -ZU +Pn RX -ZU +Pn je je "} @@ -1930,8 +1927,8 @@ ti Yf FI aV -ZU -ZU +Pn +Pn je je je @@ -1949,7 +1946,7 @@ Am FT pk pk -ZU +Pn je je je @@ -1962,8 +1959,8 @@ je je pk zB -ZU -ZU +Pn +Pn zB pk pk diff --git a/_maps/shuttles/pirate_irs.dmm b/_maps/shuttles/pirate_irs.dmm index 4fd5a8c357342..c78c73a75380e 100644 --- a/_maps/shuttles/pirate_irs.dmm +++ b/_maps/shuttles/pirate_irs.dmm @@ -946,9 +946,7 @@ }, /area/shuttle/pirate) "Cf" = ( -/obj/machinery/vending/autodrobe{ - onstation = 0 - }, +/obj/machinery/vending/autodrobe, /obj/effect/turf_decal/siding/dark_green{ dir = 6 }, @@ -1642,9 +1640,7 @@ /turf/open/floor/wood, /area/shuttle/pirate) "QT" = ( -/obj/machinery/vending/boozeomat/all_access{ - onstation = 0 - }, +/obj/machinery/vending/boozeomat, /turf/closed/wall/mineral/titanium, /area/shuttle/pirate) "QV" = ( diff --git a/_maps/shuttles/pirate_silverscale.dmm b/_maps/shuttles/pirate_silverscale.dmm index 6d9c7537bde18..b95c32be7d1e7 100644 --- a/_maps/shuttles/pirate_silverscale.dmm +++ b/_maps/shuttles/pirate_silverscale.dmm @@ -492,9 +492,7 @@ /turf/open/floor/iron/dark, /area/shuttle/pirate) "CW" = ( -/obj/machinery/vending/boozeomat/all_access{ - onstation = 0 - }, +/obj/machinery/vending/boozeomat, /turf/open/floor/iron/dark/textured, /area/shuttle/pirate) "DX" = ( @@ -967,9 +965,7 @@ /turf/open/floor/carpet/royalblack, /area/shuttle/pirate) "XB" = ( -/obj/machinery/vending/boozeomat/all_access{ - onstation = 0 - }, +/obj/machinery/vending/boozeomat, /obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 10 diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 8aa60f4e93bd2..ed2e2a17b9077 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -1272,9 +1272,7 @@ /area/shuttle/abandoned/medbay) "cL" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical{ - req_access = null - }, +/obj/machinery/vending/medical, /obj/machinery/airalarm/directional/north, /obj/effect/mapping_helpers/airalarm/all_access, /turf/open/floor/iron/white, diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm index df697dc1739c1..fbcca99889a4e 100644 --- a/_maps/shuttles/whiteship_cere.dmm +++ b/_maps/shuttles/whiteship_cere.dmm @@ -581,7 +581,7 @@ /turf/open/floor/pod/dark, /area/shuttle/abandoned/cargo) "CC" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/unlocked, diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index efc2302379730..f75f87001b517 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -101,7 +101,7 @@ /turf/open/floor/plating, /area/shuttle/abandoned/crew) "ap" = ( -/obj/machinery/vending/boozeomat/all_access, +/obj/machinery/vending/boozeomat, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/shuttles/whiteship_kilo.dmm b/_maps/shuttles/whiteship_kilo.dmm index 3dda9d34da2a1..0192f6aa1188a 100644 --- a/_maps/shuttles/whiteship_kilo.dmm +++ b/_maps/shuttles/whiteship_kilo.dmm @@ -399,14 +399,7 @@ /turf/open/floor/plating, /area/shuttle/abandoned/cargo) "ry" = ( -/obj/machinery/porta_turret/centcom_shuttle/weak{ - dir = 4; - name = "Old Mining Turret"; - lethal_projectile = /obj/projectile/kinetic/miner; - lethal_projectile_sound = 'sound/weapons/kinetic_accel.ogg'; - stun_projectile = /obj/projectile/kinetic/miner; - stun_projectile_sound = 'sound/weapons/kinetic_accel.ogg' - }, +/obj/machinery/porta_turret/centcom_shuttle/weak/mining, /turf/closed/wall/mineral/titanium, /area/shuttle/abandoned/bar) "rC" = ( diff --git a/_maps/shuttles/whiteship_obelisk.dmm b/_maps/shuttles/whiteship_obelisk.dmm index 0f1e07b1a213e..9a680e80e2b08 100644 --- a/_maps/shuttles/whiteship_obelisk.dmm +++ b/_maps/shuttles/whiteship_obelisk.dmm @@ -732,9 +732,7 @@ /turf/open/floor/mineral/titanium/white, /area/shuttle/abandoned/medbay) "Qp" = ( -/obj/machinery/vending/medical{ - req_access = null - }, +/obj/machinery/vending/medical, /turf/open/floor/mineral/titanium/white, /area/shuttle/abandoned/medbay) "RG" = ( diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 39024a6f0a391..491aac07280c5 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -82,9 +82,8 @@ /area/shuttle/abandoned) "cE" = ( /obj/effect/turf_decal/bot_white, -/obj/machinery/atmospherics/components/tank/air{ - dir = 1; - piping_layer = 4 +/obj/machinery/atmospherics/components/tank/air/layer4{ + dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, diff --git a/_maps/templates/battlecruiser_starfury.dmm b/_maps/templates/battlecruiser_starfury.dmm index 59d6b325fdaac..410cad31a81c7 100644 --- a/_maps/templates/battlecruiser_starfury.dmm +++ b/_maps/templates/battlecruiser_starfury.dmm @@ -1061,7 +1061,7 @@ }, /area/shuttle/sbc_starfury) "ea" = ( -/obj/machinery/vending/medical/syndicate_access/cybersun, +/obj/machinery/vending/medical/syndicate/cybersun, /turf/open/floor/iron, /area/shuttle/sbc_starfury) "ec" = ( @@ -1723,7 +1723,7 @@ /turf/open/floor/pod/light, /area/shuttle/sbc_starfury) "gH" = ( -/obj/machinery/vending/boozeomat/syndicate_access, +/obj/machinery/vending/boozeomat/syndicate, /obj/effect/turf_decal/siding/wood{ dir = 8 }, @@ -2364,11 +2364,11 @@ /obj/structure/rack{ dir = 8 }, -/obj/item/gun/ballistic/revolver/syndicate{ +/obj/item/gun/ballistic/revolver/badass{ pixel_x = 2; pixel_y = 5 }, -/obj/item/gun/ballistic/revolver/syndicate{ +/obj/item/gun/ballistic/revolver/badass{ pixel_x = -1; pixel_y = 2 }, diff --git a/_maps/templates/holodeck_holdoutbunker.dmm b/_maps/templates/holodeck_holdoutbunker.dmm index 782cbd919aa89..fccad07bfed85 100644 --- a/_maps/templates/holodeck_holdoutbunker.dmm +++ b/_maps/templates/holodeck_holdoutbunker.dmm @@ -28,12 +28,6 @@ }, /turf/open/floor/holofloor/asteroid, /area/template_noop) -"x" = ( -/obj/structure/foamedmetal, -/obj/structure/window/spawner/directional/east, -/obj/structure/bookcase/random/fiction, -/turf/open/floor/holofloor/asteroid, -/area/template_noop) "I" = ( /obj/structure/table, /obj/item/gun/energy/laser, @@ -62,7 +56,7 @@ a "} (2,1,1) = {" b -x +b b b b diff --git a/_maps/templates/lazy_templates/ninja_den.dmm b/_maps/templates/lazy_templates/ninja_den.dmm index 88f4bce19d45a..f538a4e509673 100644 --- a/_maps/templates/lazy_templates/ninja_den.dmm +++ b/_maps/templates/lazy_templates/ninja_den.dmm @@ -1567,7 +1567,6 @@ /turf/open/floor/wood/tile, /area/centcom/central_command_areas/holding) "JV" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/food/grown/rice, /obj/item/food/grown/rice, /obj/item/food/grown/rice, @@ -1583,6 +1582,9 @@ /obj/item/food/grown/onion/red, /obj/item/food/grown/onion/red, /obj/item/food/grown/coffee, +/obj/structure/closet/secure_closet/freezer/fridge/open{ + name = "kitchen cabinet" + }, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/holding) "Kb" = ( diff --git a/_maps/templates/lazy_templates/voidwalker_void.dmm b/_maps/templates/lazy_templates/voidwalker_void.dmm new file mode 100644 index 0000000000000..2f4dadf760098 --- /dev/null +++ b/_maps/templates/lazy_templates/voidwalker_void.dmm @@ -0,0 +1,1101 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/floor/black, +/area/centcom/voidwalker_void) +"z" = ( +/obj/effect/wisp_food, +/turf/open/floor/black, +/area/centcom/voidwalker_void) +"W" = ( +/obj/effect/landmark/voidwalker_void, +/turf/open/floor/black, +/area/centcom/voidwalker_void) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +a +a +W +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +W +a +a +a +"} +(5,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(8,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(10,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(11,1,1) = {" +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(12,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(13,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(14,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(16,1,1) = {" +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(17,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(18,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(19,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(20,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +a +a +a +a +a +a +a +a +a +"} +(21,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(24,1,1) = {" +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +"} +(25,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(26,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(27,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(28,1,1) = {" +a +a +a +W +a +a +a +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(29,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(30,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +W +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(31,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(32,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/templates/lazy_templates/wizard_den.dmm b/_maps/templates/lazy_templates/wizard_den.dmm index 887e1c0817639..a909cc94c23b2 100644 --- a/_maps/templates/lazy_templates/wizard_den.dmm +++ b/_maps/templates/lazy_templates/wizard_den.dmm @@ -665,9 +665,6 @@ /turf/open/floor/engine/cult, /area/centcom/wizard_station) "KL" = ( -/obj/structure/railing{ - dir = 8 - }, /obj/structure/railing{ dir = 8 }, diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index d4681507a37e4..2bae50e8ba790 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -35,9 +35,7 @@ /turf/open/floor/pod/dark, /area/misc/survivalpod) "h" = ( -/obj/machinery/vending/boozeomat/all_access{ - onstation = 0 - }, +/obj/machinery/vending/boozeomat, /turf/open/floor/pod/dark, /area/misc/survivalpod) "i" = ( @@ -146,9 +144,7 @@ /turf/open/floor/carpet/black, /area/misc/survivalpod) "z" = ( -/obj/machinery/vending/cigarette{ - onstation = 0 - }, +/obj/machinery/vending/cigarette, /turf/open/floor/carpet/black, /area/misc/survivalpod) "A" = ( @@ -226,10 +222,7 @@ /turf/open/floor/carpet/black, /area/misc/survivalpod) "L" = ( -/obj/machinery/vending/snack/blue{ - req_access = null; - onstation = 0 - }, +/obj/machinery/vending/snack/blue, /turf/open/floor/carpet/black, /area/misc/survivalpod) "M" = ( diff --git a/_maps/tramstation.json b/_maps/tramstation.json index 7336decb3d7f5..5f5825dce68fe 100644 --- a/_maps/tramstation.json +++ b/_maps/tramstation.json @@ -11,12 +11,10 @@ }, "traits": [ { - "Up": true, "Baseturf": "/turf/open/misc/asteroid/airless", "Linkage": "Cross" }, { - "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/_maps/virtual_domains/abductor_ship.dmm b/_maps/virtual_domains/abductor_ship.dmm index 35bf563eb45c4..b182c50ed6683 100644 --- a/_maps/virtual_domains/abductor_ship.dmm +++ b/_maps/virtual_domains/abductor_ship.dmm @@ -1,7 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "bK" = ( /turf/closed/wall/mineral/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cp" = ( /obj/structure/table/abductor, /obj/item/food/soylentgreen{ @@ -9,7 +9,7 @@ pixel_y = 5 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cr" = ( /obj/item/flashlight/lantern{ pixel_x = 4; @@ -31,7 +31,7 @@ "fk" = ( /obj/effect/mob_spawn/corpse/human/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ge" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -40,7 +40,7 @@ desc = "A funky looking disc, built into the floor." }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gO" = ( /obj/structure/table/abductor, /obj/item/poster/random_abductor{ @@ -48,7 +48,7 @@ pixel_y = 3 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ih" = ( /obj/structure/table/abductor, /obj/item/storage/belt/military/abductor{ @@ -60,7 +60,7 @@ pixel_y = -1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kl" = ( /obj/structure/table_frame/abductor, /obj/item/organ/internal/lungs{ @@ -72,7 +72,7 @@ pixel_y = 1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kt" = ( /obj/structure/table/abductor, /obj/item/multitool/abductor{ @@ -84,11 +84,11 @@ pixel_x = -1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kN" = ( /obj/machinery/fat_sucker, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lC" = ( /obj/structure/table/abductor, /obj/item/clothing/head/helmet/abductor{ @@ -100,10 +100,10 @@ pixel_y = -4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lN" = ( -/turf/open/floor/holofloor/hyperspace, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "lR" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -111,11 +111,11 @@ "lW" = ( /obj/machinery/iv_drip, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mR" = ( /obj/machinery/abductor/pad, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nT" = ( /obj/structure/table/abductor, /obj/item/food/soylentgreen{ @@ -123,19 +123,18 @@ pixel_y = -1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "oL" = ( /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pL" = ( -/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, -/turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/closed/indestructible/alien/nodiagonal, +/area/virtual_domain) "pT" = ( /obj/effect/decal/cleanable/blood/footprints, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rw" = ( /obj/structure/table/abductor, /obj/item/toy/plush/abductor/agent{ @@ -143,7 +142,7 @@ pixel_y = 8 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rY" = ( /obj/modular_map_root/safehouse{ key = "abductor" @@ -158,14 +157,14 @@ pixel_y = -3 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "to" = ( /obj/effect/decal/cleanable/molten_object{ pixel_x = 9; pixel_y = 7 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uk" = ( /obj/structure/table/abductor, /obj/item/wrench/abductor{ @@ -177,35 +176,35 @@ pixel_y = 4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uw" = ( /obj/structure/bed/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ux" = ( /obj/machinery/door/airlock/abductor{ name = "Command Center"; locked = 1 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uD" = ( /obj/machinery/computer/camera_advanced/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vY" = ( /obj/machinery/door/airlock/abductor{ name = "Repair Bay" }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vZ" = ( /obj/machinery/abductor/gland_dispenser, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xB" = ( /turf/closed/indestructible/opsglass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xM" = ( /obj/effect/decal/cleanable/molten_object{ pixel_x = -6; @@ -213,58 +212,62 @@ }, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yt" = ( /obj/effect/decal/cleanable/blood/xtracks, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "zX" = ( /obj/machinery/abductor/experiment, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "AG" = ( /obj/item/shell/server, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"Bj" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/alien/nodiagonal, +/area/virtual_domain) "Fy" = ( /obj/effect/decal/cleanable/molten_object/large{ pixel_x = -5; pixel_y = 14 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GX" = ( /obj/structure/chair/office{ dir = 4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "IC" = ( /obj/structure/table/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JC" = ( /obj/item/organ/external/tail/cat, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JR" = ( /obj/machinery/door/airlock/abductor{ name = "Experimentation Lab" }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JU" = ( /obj/structure/closet/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KK" = ( /obj/structure/bed/abductor, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KX" = ( -/turf/closed/indestructible/binary, -/area/space) +/turf/open/floor/holofloor/hyperspace, +/area/space/virtual_domain) "Lz" = ( /obj/structure/table/abductor, /obj/item/melee/baton/abductor{ @@ -277,40 +280,40 @@ pixel_y = 7 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mr" = ( /obj/machinery/chem_dispenser/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "MC" = ( /obj/item/kirbyplants/photosynthetic, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ne" = ( /obj/machinery/abductor/console, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NW" = ( /obj/structure/server, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "PB" = ( /obj/item/organ/external/antennae, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Qp" = ( /turf/template_noop, -/area/space) +/area/template_noop) "QC" = ( /obj/structure/chair/comfy/teal{ dir = 8 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Rd" = ( /obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Rg" = ( /obj/structure/table/abductor, /obj/item/ammo_box/magazine/smgm45, @@ -327,17 +330,17 @@ "RI" = ( /obj/machinery/door/airlock/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sd" = ( /obj/machinery/recharge_station, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ub" = ( /obj/structure/chair/comfy/shuttle{ dir = 8 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Uf" = ( /obj/item/flashlight/seclite{ pixel_x = 9; @@ -364,20 +367,20 @@ pixel_x = 3 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "UX" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vl" = ( /obj/machinery/harvester, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "VE" = ( /obj/structure/table/abductor, /obj/item/storage/box/alienhandcuffs, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "VY" = ( /obj/effect/mob_spawn/corpse/human/abductor{ pixel_x = 9; @@ -385,7 +388,7 @@ }, /obj/effect/decal/cleanable/xenoblood, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "We" = ( /obj/structure/table/abductor, /obj/item/dualsaber/green{ @@ -402,27 +405,27 @@ /obj/structure/table/abductor, /obj/item/weldingtool/abductor, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "WS" = ( /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "XU" = ( /obj/effect/decal/cleanable/xenoblood/xgibs/body, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yq" = ( /obj/effect/decal/cleanable/xenoblood/xsplatter, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YV" = ( /turf/closed/indestructible/alien, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZM" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 }, /turf/open/floor/plating/abductor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" Qp @@ -440,18 +443,14 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +pL +pL +pL +pL +pL +pL +pL Qp Qp Qp @@ -480,20 +479,16 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +YV +YV +YV +YV +YV +YV +YV +YV +pL Qp Qp Qp @@ -520,22 +515,18 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +YV +kN +lW +uw +IC +IC +uw +lW +kN +YV +pL Qp Qp Qp @@ -560,24 +551,20 @@ Qp Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL +YV +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +YV +pL Qp Qp Qp @@ -600,26 +587,22 @@ Qp Qp Qp Qp -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -Qp -Qp -Qp -Qp +pL +YV +WS +WS +WS +WS +WS +WS +WS +WS +WS +oL +WS +WS +YV +pL Qp Qp Qp @@ -640,28 +623,24 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV -YV -YV -YV -YV -YV -YV -YV -YV -YV +pL YV +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS +WS YV -KX -KX -Qp -Qp -Qp -Qp +pL Qp Qp Qp @@ -672,38 +651,34 @@ Qp "} (7,1,1) = {" Qp +lN +lN +lN +lN Qp Qp Qp Qp -Qp -Qp -Qp -Qp -KX -KX +pL YV +WS +WS +WS +MC YV YV YV -kN -lW -uw -IC -IC -uw -lW -kN +WS +WS YV YV YV +MC +WS +WS +WS YV -KX -KX -Qp -Qp -Qp -Qp +pL Qp Qp Qp @@ -712,40 +687,36 @@ Qp Qp "} (8,1,1) = {" +lN +lN +KX +KX +lN Qp Qp Qp -Qp -Qp -Qp -Qp -Qp -KX -KX +pL YV +lW +WS +WS YV YV YV -WS -WS -WS -WS -WS -WS -WS -WS +bK +YV WS WS YV YV YV YV -KX -KX -Qp -Qp -Qp -Qp +YV +WS +WS +lW +YV +pL Qp Qp Qp @@ -753,178 +724,14 @@ Qp Qp "} (9,1,1) = {" -Qp -Qp -Qp -KX -KX -KX -KX -KX -KX -YV -YV -YV -YV -WS -WS -WS -WS -WS -WS -WS -WS -WS -oL -WS -WS -YV -YV -YV -YV -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(10,1,1) = {" -Qp -Qp -KX -KX -lN -lN -lN -lN -YV -YV -YV -YV -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -WS -YV -YV -YV -YV -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(11,1,1) = {" -Qp -KX -KX -lN -lN -lN lN -YV -YV -YV -YV -WS -WS -WS -MC -YV -YV -YV -WS -WS -YV -YV -YV -MC -WS -WS -WS -YV -YV -YV -YV KX KX -Qp -Qp -Qp -Qp -Qp -Qp -"} -(12,1,1) = {" KX -KX -lN -lN -lN lN -YV -YV -YV -YV -lW -WS -WS -YV -YV -YV -bK -YV -WS -WS -YV -YV -YV -YV -YV -WS -WS -lW -YV -YV -YV -YV -KX -KX Qp Qp -Qp -Qp -Qp -"} -(13,1,1) = {" -KX -lN -lN -lN -lN -YV -YV -YV +pL YV WS WS @@ -947,24 +754,20 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp Qp "} -(14,1,1) = {" -KX -lN +(10,1,1) = {" lN +KX +KX +KX lN -YV -YV -YV +Qp +pL YV WS WS @@ -989,22 +792,18 @@ UX WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp "} -(15,1,1) = {" -KX -lN +(11,1,1) = {" lN +KX +KX +KX lN -YV -bK +pL YV UX WS @@ -1031,20 +830,16 @@ Vl WS MC YV -bK -YV -YV -KX -KX +pL Qp Qp "} -(16,1,1) = {" -KX -lN -lN +(12,1,1) = {" lN -YV +KX +KX +KX +pL bK YV WS @@ -1073,18 +868,14 @@ YV YV YV YV -bK -YV -YV -KX -Qp +Bj Qp "} -(17,1,1) = {" -KX -lN -lN +(13,1,1) = {" lN +KX +KX +KX YV bK YV @@ -1115,18 +906,14 @@ YV AG YV YV -bK -YV -KX -Qp -Qp +pL "} -(18,1,1) = {" -KX -lN -lN +(14,1,1) = {" lN -YV +KX +KX +KX +pL YV YV MC @@ -1156,17 +943,14 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(19,1,1) = {" -KX -lN -lN +(15,1,1) = {" lN +KX +KX +KX +xB pL YV YV @@ -1175,7 +959,6 @@ YV YV YV YV -YV MC WS WS @@ -1197,18 +980,14 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(20,1,1) = {" -KX -lN +(16,1,1) = {" lN -pL -pL +KX +KX +xB +xB uD ZM ZM @@ -1238,17 +1017,13 @@ xB xB xB YV -bK -YV -KX -Qp -Qp +pL "} -(21,1,1) = {" -KX -lN +(17,1,1) = {" lN -pL +KX +KX +xB Ne WS WS @@ -1279,17 +1054,13 @@ WS WS WS YV -bK -YV -KX -Qp -Qp +pL "} -(22,1,1) = {" -KX -lN +(18,1,1) = {" lN -pL +KX +KX +xB Lz WS WS @@ -1320,17 +1091,13 @@ WS oL WS YV -bK -YV -KX -Qp -Qp +pL "} -(23,1,1) = {" -KX -lN +(19,1,1) = {" lN -pL +KX +KX +xB Ne WS WS @@ -1361,18 +1128,14 @@ WS WS WS YV -bK -YV -KX -Qp -Qp +pL "} -(24,1,1) = {" -KX -lN +(20,1,1) = {" lN -pL -pL +KX +KX +xB +xB uD Ub Ub @@ -1402,17 +1165,14 @@ xB xB xB YV -bK -YV -KX -Qp -Qp +pL "} -(25,1,1) = {" -KX -lN -lN +(21,1,1) = {" lN +KX +KX +KX +xB pL YV YV @@ -1421,7 +1181,6 @@ YV YV YV YV -YV MC WS WS @@ -1443,18 +1202,14 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(26,1,1) = {" -KX -lN -lN +(22,1,1) = {" lN -YV +KX +KX +KX +pL YV YV MC @@ -1484,17 +1239,13 @@ NW WS NW YV -bK -YV -KX -Qp -Qp +pL "} -(27,1,1) = {" -KX -lN -lN +(23,1,1) = {" lN +KX +KX +KX YV bK YV @@ -1525,18 +1276,14 @@ bK AG YV YV -bK -YV -KX -Qp -Qp +pL "} -(28,1,1) = {" -KX -lN -lN +(24,1,1) = {" lN -YV +KX +KX +KX +pL bK YV WS @@ -1565,20 +1312,16 @@ YV YV YV YV -bK -YV -YV -KX -Qp +pL Qp "} -(29,1,1) = {" -KX -lN +(25,1,1) = {" lN +KX +KX +KX lN -YV -bK +pL YV WS WS @@ -1605,22 +1348,18 @@ UX WS MC YV -bK -YV -YV -KX -KX +pL Qp Qp "} -(30,1,1) = {" -KX -lN +(26,1,1) = {" lN +KX +KX +KX lN -YV -YV -YV +Qp +pL YV WS WS @@ -1645,24 +1384,20 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp "} -(31,1,1) = {" -KX -lN -lN +(27,1,1) = {" lN +KX +KX +KX lN -YV -YV -YV +Qp +Qp +pL YV gF WS @@ -1685,26 +1420,22 @@ WS WS gF YV -YV -YV -YV -KX -KX +pL Qp Qp Qp Qp "} -(32,1,1) = {" -KX -KX -lN +(28,1,1) = {" lN lN +KX +KX lN -YV -YV -YV +Qp +Qp +Qp +pL YV lW oL @@ -1725,28 +1456,24 @@ WS WS lW YV -YV -YV -YV -KX -KX +pL Qp Qp Qp Qp Qp "} -(33,1,1) = {" +(29,1,1) = {" Qp -KX -KX lN lN lN lN -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV WS WS @@ -1765,11 +1492,7 @@ WS WS oL YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1777,18 +1500,18 @@ Qp Qp Qp "} -(34,1,1) = {" +(30,1,1) = {" Qp Qp -KX -KX -lN -lN -lN -lN -YV -YV -YV +Qp +Qp +Qp +Qp +Qp +Qp +Qp +Qp +pL YV WS WS @@ -1805,11 +1528,7 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1818,19 +1537,19 @@ Qp Qp Qp "} -(35,1,1) = {" +(31,1,1) = {" Qp Qp Qp -KX -KX -KX -KX -KX -KX -YV -YV -YV +Qp +Qp +Qp +Qp +Qp +Qp +Qp +Qp +pL YV WS WS @@ -1845,11 +1564,7 @@ WS WS WS YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1859,7 +1574,7 @@ Qp Qp Qp "} -(36,1,1) = {" +(32,1,1) = {" Qp Qp Qp @@ -1868,11 +1583,11 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV zX WS @@ -1885,11 +1600,7 @@ GX WS zX YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1900,7 +1611,7 @@ Qp Qp Qp "} -(37,1,1) = {" +(33,1,1) = {" Qp Qp Qp @@ -1910,11 +1621,11 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV Sd sv @@ -1925,11 +1636,7 @@ Sd kt Sd YV -YV -YV -YV -KX -KX +pL Qp Qp Qp @@ -1941,7 +1648,7 @@ Qp Qp Qp "} -(38,1,1) = {" +(34,1,1) = {" Qp Qp Qp @@ -1952,14 +1659,11 @@ Qp Qp Qp Qp -KX -KX -YV -YV -YV -YV -YV -YV +Qp +Qp +Qp +Qp +pL YV YV YV @@ -1968,213 +1672,7 @@ YV YV YV YV -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(39,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -KX -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(40,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(41,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(42,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -"} -(43,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +pL Qp Qp Qp @@ -2187,19 +1685,7 @@ Qp Qp Qp "} -(44,1,1) = {" -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp -Qp +(35,1,1) = {" Qp Qp Qp @@ -2215,6 +1701,14 @@ Qp Qp Qp Qp +pL +pL +pL +pL +pL +pL +pL +pL Qp Qp Qp diff --git a/_maps/virtual_domains/ash_drake.dmm b/_maps/virtual_domains/ash_drake.dmm index f789e44fbc69f..e4189071fbba0 100644 --- a/_maps/virtual_domains/ash_drake.dmm +++ b/_maps/virtual_domains/ash_drake.dmm @@ -34,6 +34,10 @@ /obj/structure/marker_beacon/bronze, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) +"p" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) "q" = ( /mob/living/simple_animal/hostile/megafauna/dragon, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -42,12 +46,8 @@ /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors/virtual_domain) "u" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) -"v" = ( /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "G" = ( /obj/structure/marker_beacon/purple, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -71,56 +71,55 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u u "} (2,1,1) = {" -v -s +u s s s @@ -164,10 +163,11 @@ s s s s -v +p +u "} (3,1,1) = {" -v +u s s s @@ -212,10 +212,10 @@ s J J s -v +u "} (4,1,1) = {" -v +u s s J @@ -260,10 +260,10 @@ J J J s -v +u "} (5,1,1) = {" -v +u s s J @@ -308,10 +308,10 @@ J J s s -v +u "} (6,1,1) = {" -v +u s s J @@ -356,10 +356,10 @@ J J s s -v +u "} (7,1,1) = {" -v +u s s J @@ -404,10 +404,10 @@ J J J s -v +u "} (8,1,1) = {" -v +u s s J @@ -452,10 +452,10 @@ J J s s -v +u "} (9,1,1) = {" -v +u s J J @@ -500,10 +500,10 @@ a J J s -v +u "} (10,1,1) = {" -v +u s J J @@ -548,10 +548,10 @@ a J J s -v +u "} (11,1,1) = {" -v +u s s J @@ -596,10 +596,10 @@ a J J s -v +u "} (12,1,1) = {" -v +u s s J @@ -644,10 +644,10 @@ J J J s -v +u "} (13,1,1) = {" -v +u s s J @@ -692,10 +692,10 @@ a J J s -v +u "} (14,1,1) = {" -v +u s s J @@ -740,10 +740,10 @@ a J J s -v +u "} (15,1,1) = {" -v +u s J J @@ -788,10 +788,10 @@ a J J s -v +u "} (16,1,1) = {" -v +u s J J @@ -836,10 +836,10 @@ a J J s -v +u "} (17,1,1) = {" -v +u s s J @@ -884,10 +884,10 @@ a J J s -v +u "} (18,1,1) = {" -v +u s s J @@ -932,10 +932,10 @@ J J s s -v +u "} (19,1,1) = {" -v +u s J J @@ -980,10 +980,10 @@ a J J s -v +u "} (20,1,1) = {" -v +u s J J @@ -1028,10 +1028,10 @@ a J J s -v +u "} (21,1,1) = {" -v +u s s J @@ -1076,10 +1076,10 @@ a J s s -v +u "} (22,1,1) = {" -v +u s s J @@ -1124,10 +1124,10 @@ a J s s -v +u "} (23,1,1) = {" -v +u s J J @@ -1172,10 +1172,10 @@ a J s s -v +u "} (24,1,1) = {" -v +u s J J @@ -1220,10 +1220,10 @@ a J J s -v +u "} (25,1,1) = {" -v +u s s J @@ -1268,10 +1268,10 @@ J J J s -v +u "} (26,1,1) = {" -v +u s s J @@ -1316,10 +1316,10 @@ a J J s -v +u "} (27,1,1) = {" -v +u s s J @@ -1364,10 +1364,10 @@ a J J s -v +u "} (28,1,1) = {" -v +u s J J @@ -1412,10 +1412,10 @@ J J J s -v +u "} (29,1,1) = {" -v +u s J J @@ -1460,10 +1460,10 @@ J J s s -v +u "} (30,1,1) = {" -v +u s s J @@ -1508,10 +1508,10 @@ J J s s -v +u "} (31,1,1) = {" -v +u s s a @@ -1556,10 +1556,10 @@ J J J s -v +u "} (32,1,1) = {" -v +u s s a @@ -1604,10 +1604,10 @@ J J J s -v +u "} (33,1,1) = {" -v +u s s s @@ -1652,10 +1652,10 @@ J J J s -v +u "} (34,1,1) = {" -v +u s s s @@ -1700,53 +1700,53 @@ s s s s -v +u "} (35,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u +u "} diff --git a/_maps/virtual_domains/beach_bar.dmm b/_maps/virtual_domains/beach_bar.dmm index 5e1c6f753b8ac..0b3a037c463f1 100644 --- a/_maps/virtual_domains/beach_bar.dmm +++ b/_maps/virtual_domains/beach_bar.dmm @@ -169,9 +169,6 @@ }, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"iz" = ( -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "iR" = ( /obj/structure/table, /obj/item/book/manual/wiki/barman_recipes, @@ -213,9 +210,8 @@ /turf/open/floor/sepia, /area/virtual_domain/fullbright) "kv" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "kG" = ( /obj/structure/table, /obj/machinery/reagentgrinder, @@ -498,9 +494,6 @@ /obj/item/clothing/glasses/sunglasses, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"xW" = ( -/turf/open/space/basic, -/area/space) "ya" = ( /obj/structure/table/wood, /obj/item/reagent_containers/pill/zoom, @@ -1015,6 +1008,10 @@ /obj/machinery/computer/slot_machine, /turf/open/floor/wood, /area/virtual_domain/fullbright) +"VE" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/random/volcanic, +/area/lavaland/surface/outdoors/virtual_domain) "VH" = ( /obj/machinery/light/directional/west, /turf/open/floor/wood, @@ -1129,42 +1126,42 @@ pr pr pr pr -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv kv "} (2,1,1) = {" @@ -1172,8 +1169,7 @@ pr pr pr pr -iz -Al +kv Al Al Al @@ -1208,14 +1204,15 @@ Al Al Al Al -iz +VE +kv "} (3,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1251,14 +1248,14 @@ gl gl gl Al -iz +kv "} (4,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1294,14 +1291,14 @@ gl gl gl Al -iz +kv "} (5,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1337,14 +1334,14 @@ gl gl gl Al -iz +kv "} (6,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1380,14 +1377,14 @@ gl gl gl Al -iz +kv "} (7,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1423,14 +1420,14 @@ ml FM gl Al -iz +kv "} (8,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1466,14 +1463,14 @@ ml ml gl Al -iz +kv "} (9,1,1) = {" pr pr pr pr -iz +kv Al gl gl @@ -1509,14 +1506,14 @@ ml ml gl Al -iz +kv "} (10,1,1) = {" pr pr pr pr -iz +kv Al Al Al @@ -1552,14 +1549,14 @@ ml ml gl Al -iz +kv "} (11,1,1) = {" -iz -iz -iz -iz -iz +kv +kv +kv +kv +kv Al Al Al @@ -1595,10 +1592,10 @@ ml ml gl Al -iz +kv "} (12,1,1) = {" -iz +kv Al Al Al @@ -1638,10 +1635,10 @@ ml ml gl Al -iz +kv "} (13,1,1) = {" -iz +kv Al Fn Fn @@ -1681,10 +1678,10 @@ ml sT gl Al -iz +kv "} (14,1,1) = {" -iz +kv Al Fn VA @@ -1724,10 +1721,10 @@ gl gl gl Al -iz +kv "} (15,1,1) = {" -iz +kv Al Fn VA @@ -1767,10 +1764,10 @@ gl gl gl Al -iz +kv "} (16,1,1) = {" -iz +kv Al Fn pC @@ -1810,10 +1807,10 @@ gl gl gl Al -iz +kv "} (17,1,1) = {" -iz +kv Al Fn Mw @@ -1853,10 +1850,10 @@ gl gl gl Al -iz +kv "} (18,1,1) = {" -iz +kv Al Fn Mz @@ -1896,10 +1893,10 @@ gl gl gl Al -iz +kv "} (19,1,1) = {" -iz +kv Al Fn Fn @@ -1939,10 +1936,10 @@ gl gl gl Al -iz +kv "} (20,1,1) = {" -iz +kv Al Fn zU @@ -1982,10 +1979,10 @@ gl Al gl Al -iz +kv "} (21,1,1) = {" -iz +kv Al Fn wD @@ -2025,10 +2022,10 @@ Al Al Al Al -iz +kv "} (22,1,1) = {" -iz +kv Al Fn Fn @@ -2060,18 +2057,18 @@ Ww dj Fn Al -iz -iz -iz -iz -iz -iz -iz -iz -iz +kv +kv +kv +kv +kv +kv +kv +kv +kv "} (23,1,1) = {" -iz +kv Al xb Fn @@ -2103,7 +2100,8 @@ Ww dj Fn Al -iz +kv +pr pr pr pr @@ -2111,10 +2109,9 @@ pr pr pr pr -xW "} (24,1,1) = {" -iz +kv Al xb Fn @@ -2146,7 +2143,8 @@ Ww pZ Fn Al -iz +kv +pr pr pr pr @@ -2154,10 +2152,9 @@ pr pr pr pr -xW "} (25,1,1) = {" -iz +kv Al xb Fn @@ -2189,7 +2186,8 @@ Ww dj Fn Al -iz +kv +pr pr pr pr @@ -2197,10 +2195,9 @@ pr pr pr pr -xW "} (26,1,1) = {" -iz +kv Al xb Fn @@ -2232,7 +2229,8 @@ Ww dj Fn Al -iz +kv +pr pr pr pr @@ -2240,10 +2238,9 @@ pr pr pr pr -xW "} (27,1,1) = {" -iz +kv Al Fn Fn @@ -2275,7 +2272,8 @@ KZ dj Fn Al -iz +kv +pr pr pr pr @@ -2283,10 +2281,9 @@ pr pr pr pr -xW "} (28,1,1) = {" -iz +kv Al Fn Nr @@ -2318,7 +2315,8 @@ Ww pZ Fn Al -iz +kv +pr pr pr pr @@ -2326,10 +2324,9 @@ pr pr pr pr -xW "} (29,1,1) = {" -iz +kv Al Fn wD @@ -2361,7 +2358,8 @@ Bu Xt Fn Al -iz +kv +pr pr pr pr @@ -2369,10 +2367,9 @@ pr pr pr pr -xW "} (30,1,1) = {" -iz +kv Al Fn Ds @@ -2404,7 +2401,8 @@ Fn Fn Fn Al -iz +kv +pr pr pr pr @@ -2412,10 +2410,9 @@ pr pr pr pr -xW "} (31,1,1) = {" -iz +kv Al Fn TG @@ -2447,7 +2444,8 @@ Fn Al Al Al -iz +kv +pr pr pr pr @@ -2455,10 +2453,9 @@ pr pr pr pr -xW "} (32,1,1) = {" -iz +kv Al Fn TG @@ -2490,7 +2487,8 @@ Fn Fn Al Al -iz +kv +pr pr pr pr @@ -2498,10 +2496,9 @@ pr pr pr pr -xW "} (33,1,1) = {" -iz +kv Al Fn EP @@ -2533,7 +2530,8 @@ OW Fn Fn Al -iz +kv +pr pr pr pr @@ -2541,10 +2539,9 @@ pr pr pr pr -xW "} (34,1,1) = {" -iz +kv Al Fn Xv @@ -2576,7 +2573,8 @@ aE jg Fn Al -iz +kv +pr pr pr pr @@ -2584,10 +2582,9 @@ pr pr pr pr -xW "} (35,1,1) = {" -iz +kv Al Fn Fn @@ -2619,7 +2616,8 @@ aE NM Fn Al -iz +kv +pr pr pr pr @@ -2627,10 +2625,9 @@ pr pr pr pr -xW "} (36,1,1) = {" -iz +kv Al Fn kK @@ -2662,7 +2659,8 @@ aE uk Fn Al -iz +kv +pr pr pr pr @@ -2670,10 +2668,9 @@ pr pr pr pr -xW "} (37,1,1) = {" -iz +kv Al Fn Ia @@ -2705,7 +2702,8 @@ Cv Fn Fn Al -iz +kv +pr pr pr pr @@ -2713,10 +2711,9 @@ pr pr pr pr -xW "} (38,1,1) = {" -iz +kv Al Fn tZ @@ -2748,7 +2745,8 @@ Fn Fn Al Al -iz +kv +pr pr pr pr @@ -2756,10 +2754,9 @@ pr pr pr pr -xW "} (39,1,1) = {" -iz +kv Al Fn Fn @@ -2791,7 +2788,8 @@ Al Al Al Al -iz +kv +pr pr pr pr @@ -2799,10 +2797,9 @@ pr pr pr pr -xW "} (40,1,1) = {" -iz +kv Al Al Al @@ -2834,7 +2831,8 @@ Al Al Al Al -iz +kv +pr pr pr pr @@ -2842,48 +2840,47 @@ pr pr pr pr -xW "} (41,1,1) = {" -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -iz -pr -pr -pr -pr -pr -pr -pr -xW +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +kv +pr +pr +pr +pr +pr +pr +pr +pr "} diff --git a/_maps/virtual_domains/blood_drunk_miner.dmm b/_maps/virtual_domains/blood_drunk_miner.dmm index 7fffbabfc0b62..e8f55523670fa 100644 --- a/_maps/virtual_domains/blood_drunk_miner.dmm +++ b/_maps/virtual_domains/blood_drunk_miner.dmm @@ -13,9 +13,8 @@ /turf/template_noop, /area/virtual_domain/safehouse) "d" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "f" = ( /obj/structure/stone_tile{ dir = 1 @@ -85,9 +84,6 @@ /obj/structure/stone_tile/cracked, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"v" = ( -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "w" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -117,6 +113,10 @@ /obj/effect/mob_spawn/corpse/human/miner, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) +"D" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) "G" = ( /obj/structure/stone_tile{ dir = 4 @@ -208,56 +208,55 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d d "} (2,1,1) = {" -v -s +d s s s @@ -301,10 +300,11 @@ s s s s -v +D +d "} (3,1,1) = {" -v +d s s s @@ -349,10 +349,10 @@ s J J s -v +d "} (4,1,1) = {" -v +d s s J @@ -397,10 +397,10 @@ J J J s -v +d "} (5,1,1) = {" -v +d s s J @@ -445,10 +445,10 @@ J J s s -v +d "} (6,1,1) = {" -v +d s s J @@ -493,10 +493,10 @@ J J s s -v +d "} (7,1,1) = {" -v +d s s J @@ -541,10 +541,10 @@ J J J s -v +d "} (8,1,1) = {" -v +d s s J @@ -589,10 +589,10 @@ J J s s -v +d "} (9,1,1) = {" -v +d s J J @@ -637,10 +637,10 @@ a J J s -v +d "} (10,1,1) = {" -v +d s J J @@ -685,10 +685,10 @@ a J J s -v +d "} (11,1,1) = {" -v +d s s J @@ -733,10 +733,10 @@ a J J s -v +d "} (12,1,1) = {" -v +d s s J @@ -781,10 +781,10 @@ J J J s -v +d "} (13,1,1) = {" -v +d s s J @@ -829,10 +829,10 @@ a J J s -v +d "} (14,1,1) = {" -v +d s s J @@ -877,10 +877,10 @@ a J J s -v +d "} (15,1,1) = {" -v +d s J J @@ -925,10 +925,10 @@ a J J s -v +d "} (16,1,1) = {" -v +d s J J @@ -973,10 +973,10 @@ a J J s -v +d "} (17,1,1) = {" -v +d s s J @@ -1021,10 +1021,10 @@ a J J s -v +d "} (18,1,1) = {" -v +d s s J @@ -1069,10 +1069,10 @@ J J s s -v +d "} (19,1,1) = {" -v +d s J J @@ -1117,10 +1117,10 @@ a J J s -v +d "} (20,1,1) = {" -v +d s J J @@ -1165,10 +1165,10 @@ a J J s -v +d "} (21,1,1) = {" -v +d s s J @@ -1213,10 +1213,10 @@ a J s s -v +d "} (22,1,1) = {" -v +d s s J @@ -1261,10 +1261,10 @@ a J s s -v +d "} (23,1,1) = {" -v +d s J J @@ -1309,10 +1309,10 @@ a J s s -v +d "} (24,1,1) = {" -v +d s J J @@ -1357,10 +1357,10 @@ a J J s -v +d "} (25,1,1) = {" -v +d s s J @@ -1405,10 +1405,10 @@ J J J s -v +d "} (26,1,1) = {" -v +d s s J @@ -1453,10 +1453,10 @@ a J J s -v +d "} (27,1,1) = {" -v +d s s J @@ -1501,10 +1501,10 @@ a J J s -v +d "} (28,1,1) = {" -v +d s J J @@ -1549,10 +1549,10 @@ J J J s -v +d "} (29,1,1) = {" -v +d s J J @@ -1597,10 +1597,10 @@ J J s s -v +d "} (30,1,1) = {" -v +d s s J @@ -1645,10 +1645,10 @@ J J s s -v +d "} (31,1,1) = {" -v +d s s a @@ -1693,10 +1693,10 @@ J J J s -v +d "} (32,1,1) = {" -v +d s s a @@ -1741,10 +1741,10 @@ J J J s -v +d "} (33,1,1) = {" -v +d s s s @@ -1789,10 +1789,10 @@ J J J s -v +d "} (34,1,1) = {" -v +d s s s @@ -1837,53 +1837,53 @@ s s s s -v +d "} (35,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d +d "} diff --git a/_maps/virtual_domains/breeze_bay.dmm b/_maps/virtual_domains/breeze_bay.dmm index a0b8a7b036a63..5fa537bccdecb 100644 --- a/_maps/virtual_domains/breeze_bay.dmm +++ b/_maps/virtual_domains/breeze_bay.dmm @@ -13,6 +13,10 @@ "e" = ( /turf/open/floor/carpet/red, /area/virtual_domain/fullbright) +"f" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/water/beach, +/area/virtual_domain/fullbright) "g" = ( /obj/item/toy/beach_ball/branded, /turf/open/misc/beach/sand, @@ -174,10 +178,6 @@ /obj/machinery/light/small/directional/west, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"Z" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/virtual_domain/fullbright) (1,1,1) = {" a @@ -204,7 +204,7 @@ a a a a -Z +a "} (2,1,1) = {" a @@ -230,7 +230,7 @@ i Q i i -i +f a "} (3,1,1) = {" diff --git a/_maps/virtual_domains/bubblegum.dmm b/_maps/virtual_domains/bubblegum.dmm index ef6957448925a..5343fe7d17b77 100644 --- a/_maps/virtual_domains/bubblegum.dmm +++ b/_maps/virtual_domains/bubblegum.dmm @@ -46,9 +46,6 @@ /mob/living/simple_animal/hostile/megafauna/bubblegum, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"F" = ( -/turf/open/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "G" = ( /obj/structure/marker_beacon/violet, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -61,10 +58,13 @@ /obj/structure/marker_beacon/indigo, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"R" = ( +"N" = ( /obj/effect/baseturf_helper/virtual_domain, -/turf/open/indestructible/binary, +/turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors/virtual_domain) +"R" = ( +/turf/open/indestructible/binary, +/area/virtual_domain) "S" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -91,66 +91,65 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R R "} (2,1,1) = {" -F -Z +R Z Z Z @@ -204,10 +203,11 @@ Z Z Z Z -F +N +R "} (3,1,1) = {" -F +R Z Z Z @@ -262,10 +262,10 @@ Z Z Z Z -F +R "} (4,1,1) = {" -F +R Z Z Z @@ -287,7 +287,7 @@ Z Z Z Z -F +R Z Z Z @@ -303,7 +303,7 @@ Z Z Z Z -F +R Z Z Z @@ -320,10 +320,10 @@ Z Z Z Z -F +R "} (5,1,1) = {" -F +R Z Z Z @@ -378,10 +378,10 @@ Z Z Z Z -F +R "} (6,1,1) = {" -F +R Z Z Z @@ -436,13 +436,13 @@ Z Z Z Z -F +R "} (7,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -494,13 +494,13 @@ Z Z Z Z -F +R "} (8,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -552,13 +552,13 @@ Z Z Z Z -F +R "} (9,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -610,10 +610,10 @@ Z Z Z Z -F +R "} (10,1,1) = {" -F +R Z Z Z @@ -666,12 +666,12 @@ Z Z Z Z -F +R Z -F +R "} (11,1,1) = {" -F +R Z Z Z @@ -724,12 +724,12 @@ Z Z Z Z -F +R Z -F +R "} (12,1,1) = {" -F +R Z Z Z @@ -784,10 +784,10 @@ Z Z Z Z -F +R "} (13,1,1) = {" -F +R Z Z Z @@ -842,10 +842,10 @@ Z Z Z Z -F +R "} (14,1,1) = {" -F +R Z Z Z @@ -900,10 +900,10 @@ Z Z Z Z -F +R "} (15,1,1) = {" -F +R Z Z Z @@ -958,10 +958,10 @@ Z Z Z Z -F +R "} (16,1,1) = {" -F +R Z Z Z @@ -1016,10 +1016,10 @@ Z Z Z Z -F +R "} (17,1,1) = {" -F +R Z Z Z @@ -1074,10 +1074,10 @@ Z Z Z Z -F +R "} (18,1,1) = {" -F +R Z Z Z @@ -1132,10 +1132,10 @@ Z Z Z Z -F +R "} (19,1,1) = {" -F +R Z Z Z @@ -1190,10 +1190,10 @@ Z Z Z Z -F +R "} (20,1,1) = {" -F +R Z Z Z @@ -1248,10 +1248,10 @@ Z Z Z Z -F +R "} (21,1,1) = {" -F +R Z Z Z @@ -1306,10 +1306,10 @@ Z Z Z Z -F +R "} (22,1,1) = {" -F +R Z Z Z @@ -1364,10 +1364,10 @@ Z Z Z Z -F +R "} (23,1,1) = {" -F +R Z Z Z @@ -1422,10 +1422,10 @@ Z Z Z Z -F +R "} (24,1,1) = {" -F +R Z Z Z @@ -1480,13 +1480,13 @@ Z Z Z Z -F +R "} (25,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -1538,10 +1538,10 @@ Z Z Z Z -F +R "} (26,1,1) = {" -F +R Z Z Z @@ -1595,11 +1595,11 @@ Z Z Z Z -F -F +R +R "} (27,1,1) = {" -F +R Z Z Z @@ -1654,10 +1654,10 @@ Z Z Z Z -F +R "} (28,1,1) = {" -F +R Z Z Z @@ -1712,10 +1712,10 @@ Z Z Z Z -F +R "} (29,1,1) = {" -F +R Z Z Z @@ -1770,10 +1770,10 @@ Z Z Z Z -F +R "} (30,1,1) = {" -F +R Z Z Z @@ -1828,10 +1828,10 @@ Z Z Z Z -F +R "} (31,1,1) = {" -F +R Z Z Z @@ -1886,10 +1886,10 @@ Z Z Z Z -F +R "} (32,1,1) = {" -F +R Z Z Z @@ -1944,10 +1944,10 @@ Z Z Z Z -F +R "} (33,1,1) = {" -F +R Z Z Z @@ -2002,10 +2002,10 @@ Z Z Z Z -F +R "} (34,1,1) = {" -F +R Z Z Z @@ -2060,10 +2060,10 @@ Z Z Z Z -F +R "} (35,1,1) = {" -F +R Z Z Z @@ -2118,10 +2118,10 @@ Z Z Z Z -F +R "} (36,1,1) = {" -F +R Z Z Z @@ -2176,10 +2176,10 @@ Z Z Z Z -F +R "} (37,1,1) = {" -F +R Z Z Z @@ -2234,10 +2234,10 @@ Z Z Z Z -F +R "} (38,1,1) = {" -F +R Z Z Z @@ -2292,10 +2292,10 @@ Z Z Z Z -F +R "} (39,1,1) = {" -F +R Z Z Z @@ -2350,10 +2350,10 @@ Z Z Z Z -F +R "} (40,1,1) = {" -F +R Z Z Z @@ -2408,10 +2408,10 @@ Z Z Z Z -F +R "} (41,1,1) = {" -F +R Z Z Z @@ -2466,13 +2466,13 @@ Z Z Z Z -F +R "} (42,1,1) = {" -F +R Z Z -F +R Z Z Z @@ -2524,10 +2524,10 @@ Z Z Z Z -F +R "} (43,1,1) = {" -F +R Z Z Z @@ -2582,10 +2582,10 @@ Z Z Z Z -F +R "} (44,1,1) = {" -F +R Z Z Z @@ -2640,10 +2640,10 @@ Z Z Z Z -F +R "} (45,1,1) = {" -F +R Z Z Z @@ -2698,10 +2698,10 @@ Z Z Z Z -F +R "} (46,1,1) = {" -F +R Z Z Z @@ -2756,10 +2756,10 @@ Z Z Z Z -F +R "} (47,1,1) = {" -F +R Z Z Z @@ -2814,10 +2814,10 @@ Z Z Z Z -F +R "} (48,1,1) = {" -F +R Z Z Z @@ -2872,10 +2872,10 @@ Z Z Z Z -F +R "} (49,1,1) = {" -F +R Z Z Z @@ -2925,15 +2925,15 @@ Z Z Z Z -F +R Z Z Z Z -F +R "} (50,1,1) = {" -F +R Z Z Z @@ -2988,10 +2988,10 @@ Z Z Z Z -F +R "} (51,1,1) = {" -F +R Z Z Z @@ -3046,18 +3046,18 @@ Z Z Z Z -F +R "} (52,1,1) = {" -F +R Z Z Z Z Z Z -F -F +R +R Z Z Z @@ -3070,7 +3070,7 @@ Z Z Z Z -F +R Z Z Z @@ -3093,7 +3093,7 @@ Z Z Z Z -F +R Z Z Z @@ -3104,10 +3104,10 @@ Z Z Z Z -F +R "} (53,1,1) = {" -F +R Z Z Z @@ -3143,7 +3143,7 @@ Z Z Z Z -F +R Z Z Z @@ -3162,10 +3162,10 @@ Z Z Z Z -F +R "} (54,1,1) = {" -F +R Z Z Z @@ -3203,7 +3203,7 @@ Z Z Z Z -F +R Z Z Z @@ -3215,68 +3215,68 @@ Z Z Z Z -F +R Z Z Z Z -F +R "} (55,1,1) = {" -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F -F +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R +R "} diff --git a/_maps/virtual_domains/clown_planet.dmm b/_maps/virtual_domains/clown_planet.dmm index 72cc1280b63cc..37e00bd45fcbf 100644 --- a/_maps/virtual_domains/clown_planet.dmm +++ b/_maps/virtual_domains/clown_planet.dmm @@ -7,15 +7,15 @@ /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "aI" = ( /obj/item/bikehorn/airhorn, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "aM" = ( /obj/item/bikehorn, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "aP" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -23,7 +23,7 @@ /obj/effect/decal/cleanable/food/pie_smudge, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ba" = ( /obj/structure/mecha_wreckage/honker, /obj/structure/disposalpipe/segment{ @@ -31,7 +31,7 @@ invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bi" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -39,19 +39,20 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bp" = ( /turf/open/indestructible/light, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bq" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "by" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -59,26 +60,26 @@ }, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bR" = ( /obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/hope, /obj/effect/decal/cleanable/blood/old, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "bU" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "cw" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "cM" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -87,7 +88,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "cW" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -95,21 +96,21 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ed" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /obj/machinery/light/small/directional/west, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "eE" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "fh" = ( /obj/effect/mob_spawn/corpse/human/damaged, /obj/effect/decal/cleanable/blood/old, @@ -118,7 +119,13 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) +"gd" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "gr" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -127,25 +134,24 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/effect/baseturf_helper/virtual_domain, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "gH" = ( /obj/item/bikehorn, /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "gK" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "hK" = ( /obj/item/clothing/head/cone, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "hY" = ( /turf/template_noop, /area/template_noop) @@ -157,24 +163,24 @@ dir = 4 }, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ik" = ( /turf/open/lava/smooth, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "iR" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ki" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "kn" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -182,7 +188,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lj" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -191,14 +197,14 @@ dir = 8 }, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lm" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/machinery/light/small/directional/east, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lr" = ( /obj/item/bikehorn, /obj/effect/decal/cleanable/dirt, @@ -207,60 +213,63 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "lx" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ly" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "lP" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "mD" = ( /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "mE" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "mF" = ( /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "nE" = ( /obj/effect/mapping_helpers/no_lava, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "oA" = ( /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "oI" = ( /obj/structure/table/glass, /obj/item/grown/bananapeel/bluespace, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "pl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ps" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) +"qg" = ( +/turf/closed/wall/r_wall, +/area/lavaland/surface/outdoors/virtual_domain) "qM" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 @@ -268,7 +277,7 @@ /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "rg" = ( /obj/item/coin/bananium, /obj/item/coin/bananium, @@ -276,19 +285,13 @@ /obj/item/coin/bananium, /obj/machinery/light/small/directional/west, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "rh" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/open/indestructible/white, -/area/virtual_domain) -"rr" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/closed/indestructible/binary, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "rH" = ( /obj/structure/disposalpipe/junction/yjunction{ dir = 1; @@ -297,46 +300,39 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) -"rT" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/closed/indestructible/binary, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "sq" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "sT" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 1 }, /obj/effect/mapping_helpers/mail_sorting/supply/qm_office, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tt" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/indestructible/light, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tv" = ( /obj/effect/mob_spawn/corpse/human/damaged, /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "tF" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "tI" = ( /obj/item/coin/bananium, /obj/item/coin/bananium, @@ -344,15 +340,15 @@ /obj/item/coin/bananium, /obj/machinery/light/small/directional/east, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "uX" = ( /obj/effect/mapping_helpers/no_lava, /mob/living/basic/clown, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "uY" = ( /turf/closed/mineral/bananium, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "uZ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -362,13 +358,13 @@ /obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/escape, /obj/item/pen/fourcolor, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "wz" = ( /obj/machinery/light/small/directional/south, /obj/effect/mapping_helpers/no_lava, /mob/living/basic/clown, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "xt" = ( /obj/modular_map_root/safehouse{ key = "mine" @@ -379,17 +375,17 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "yz" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "yS" = ( /obj/structure/marker_beacon/yellow, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "yZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -397,16 +393,16 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "zm" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "zA" = ( /obj/structure/statue/bananium/clown, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "zF" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -415,14 +411,14 @@ dir = 8 }, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Aa" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /obj/effect/turf_decal/tile/red/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Bi" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -431,7 +427,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Cp" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -439,7 +435,7 @@ }, /obj/machinery/light/small/directional/west, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Cs" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -448,7 +444,7 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Do" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -456,7 +452,7 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "DL" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -464,35 +460,42 @@ /obj/item/bikehorn, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ex" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) +"Fb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + invisibility = 101 + }, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "FI" = ( /obj/item/reagent_containers/cup/glass/trophy/gold_cup, /obj/structure/table/glass, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Gg" = ( /obj/structure/table/glass, /obj/item/gun/magic/staff/honk, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Hq" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Hr" = ( /obj/structure/table/glass, /obj/item/clothing/shoes/clown_shoes/banana_shoes, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "HQ" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -500,10 +503,13 @@ /obj/machinery/light/small/directional/east, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ie" = ( +/obj/structure/disposalpipe/segment{ + invisibility = 101 + }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "Iz" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -511,20 +517,20 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "IN" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "IY" = ( /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Jv" = ( /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "JB" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -533,28 +539,28 @@ /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ka" = ( /obj/effect/decal/cleanable/food/pie_smudge, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Kh" = ( /obj/effect/mob_spawn/corpse/human/damaged, /obj/effect/decal/cleanable/blood/old, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "KG" = ( /obj/item/pickaxe, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "KI" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Lv" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -562,18 +568,18 @@ }, /obj/machinery/light/small/directional/east, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Nv" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "NB" = ( /obj/machinery/disposal/delivery_chute, /obj/structure/disposalpipe/trunk{ dir = 1 }, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "NL" = ( /obj/machinery/disposal/delivery_chute{ desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN"; @@ -583,12 +589,12 @@ /obj/structure/disposalpipe/trunk, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "NW" = ( /obj/structure/table/glass, /obj/item/reagent_containers/spray/waterflower/superlube, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ok" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -596,7 +602,7 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ov" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -604,7 +610,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "PJ" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -612,10 +618,10 @@ }, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "PM" = ( /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "PQ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -623,20 +629,20 @@ }, /obj/item/pickaxe, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "QP" = ( /turf/template_noop, /area/virtual_domain/safehouse) "QX" = ( /obj/structure/closet/crate/secure/bitrunning/encrypted, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Rh" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Rx" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -645,13 +651,7 @@ /obj/structure/table, /obj/item/flashlight/lamp/bananalamp, /turf/open/indestructible/white, -/area/virtual_domain) -"RU" = ( -/obj/structure/disposalpipe/segment{ - invisibility = 101 - }, -/turf/closed/indestructible/binary, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Sg" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -660,13 +660,13 @@ /obj/effect/decal/cleanable/food/pie_smudge, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Sm" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Tm" = ( /obj/effect/decal/cleanable/food/pie_smudge, /obj/structure/disposalpipe/segment{ @@ -674,13 +674,13 @@ }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Tx" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "TH" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -689,60 +689,59 @@ dir = 8 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "TK" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/closed/wall/r_wall, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ug" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UL" = ( /obj/effect/decal/cleanable/oil, /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UN" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/plating, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UQ" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "UY" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Vx" = ( /obj/structure/disposalpipe/segment{ - dir = 4; - invisibility = 101 + dir = 5 }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "VI" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "VQ" = ( /turf/open/floor/noslip, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Ww" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -751,40 +750,42 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/indestructible/permalube, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "WB" = ( /obj/machinery/disposal/delivery_chute{ dir = 1 }, /obj/structure/disposalpipe/trunk, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "WT" = ( -/obj/machinery/door/airlock/bananium, +/obj/machinery/door/airlock/bananium{ + use_power = 0 + }, /turf/open/floor/carpet, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "WX" = ( /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Xp" = ( /obj/machinery/light/directional/south, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "XB" = ( /obj/machinery/light/directional/north, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "Yb" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/indestructible/honk, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "YP" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/indestructible/white, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) "ZR" = ( /obj/structure/disposalpipe/trunk{ dir = 8 @@ -793,44 +794,44 @@ dir = 4 }, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/virtual_domain) +/area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -Ie -Ie -rT -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -rr hY +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF hY hY hY @@ -842,9 +843,9 @@ hY hY "} (2,1,1) = {" -Ie -Ie -Vx +hY +tF +gd Ie Ie Ie @@ -876,7 +877,7 @@ Ie Ie Ie Vx -hY +tF hY hY hY @@ -888,41 +889,41 @@ hY hY "} (3,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Vx hY +tF +Fb +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +Fb +tF hY hY hY @@ -934,41 +935,41 @@ hY hY "} (4,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -by -by -by +hY +tF +Fb +tF +tF +tF +qg +qg +qg ik ik ik ik ik -by -by -Ie -Ie -Ie -Ie -Ie -by -by +qg +qg +tF +tF +hY +tF +tF +qg +qg ik ik ik -by -by -by -Ie -Ie -Ie -Ie -Vx +qg +qg +qg +tF +tF hY +tF +Fb +tF hY hY hY @@ -980,13 +981,13 @@ hY hY "} (5,1,1) = {" -Ie -Ie -Vx -Ie -Ie -by -by +hY +tF +Fb +tF +tF +qg +qg ik ik ik @@ -995,26 +996,26 @@ Sm Hq Sm ik -by -by -Ie -Ie -Ie -by -by +qg +qg +tF +tF +tF +qg +qg ik ik tq mD ik ik -by -by -Ie -Ie -Ie -Vx -hY +qg +qg +tF +tF +tF +Fb +tF hY hY hY @@ -1026,12 +1027,12 @@ hY hY "} (6,1,1) = {" -Ie -Ie -Vx -Ie -by -by +hY +tF +Fb +tF +qg +qg ik ik IN @@ -1042,11 +1043,11 @@ yZ aP Sm ik -by -by -by -by -by +qg +qg +qg +qg +qg Nv IY tq @@ -1055,12 +1056,12 @@ ik ik ik ik -by -by -Ie -Ie -Vx -hY +qg +qg +tF +tF +Fb +tF hY hY hY @@ -1072,14 +1073,14 @@ hY hY "} (7,1,1) = {" -Ie -Ie -Vx -Ie -by +hY +tF +Fb +tF +qg ik ik -by +qg Bi cw UQ @@ -1088,11 +1089,11 @@ UQ UY KI ik -by +qg IY Jv IY -by +qg IY Jv Kh @@ -1102,11 +1103,11 @@ ik tq ik ik -by -Ie -Ie -Vx -hY +qg +tF +tF +Fb +tF hY hY hY @@ -1118,11 +1119,11 @@ hY hY "} (8,1,1) = {" -Ie -Ie -Vx -by -by +hY +tF +Fb +qg +qg ik IN Tm @@ -1133,7 +1134,7 @@ UQ Sm KI KI -by +qg zm oA IY @@ -1144,15 +1145,15 @@ Jv IY IY IY -by +qg ik mD ik -by -by -Ie -Vx -hY +qg +qg +tF +Fb +tF hY hY hY @@ -1164,10 +1165,10 @@ hY hY "} (9,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik ik UN @@ -1180,14 +1181,14 @@ KI YP Cp uY -by +qg sq oA IY -by -by +qg +qg Jv -by +qg IY IY IY @@ -1195,25 +1196,25 @@ tq ik ik ik -by -Ie -Vx -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie +qg +tF +Fb +tF +tF +tF +tF +tF +tF +tF +tF +tF tF "} (10,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik IN UQ @@ -1227,8 +1228,8 @@ YP YP KG uY -by -by +qg +qg oA IY IY @@ -1238,28 +1239,28 @@ IY gH Jv Xp -by +qg ik ik -by -by +qg +qg KI +qg +qg +qg +qg +qg +qg +qg +qg by -by -by -by -by -by -by -by -by -Ie +tF "} (11,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik yz fh @@ -1277,7 +1278,7 @@ oA oA oA IY -by +qg IY IY Jv @@ -1287,8 +1288,8 @@ IY ik tq ik -by -by +qg +qg iR PM PM @@ -1298,14 +1299,14 @@ PM PM PM PM -by -Ie +qg +tF "} (12,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik Hq TK @@ -1319,12 +1320,12 @@ PQ tt bp uY -by +qg oA oA IY IY -by +qg IY IY IY @@ -1334,7 +1335,7 @@ ik tq ik ik -by +qg iR yS PM @@ -1344,14 +1345,14 @@ PM PM yS PM -by -Ie +qg +tF "} (13,1,1) = {" -Ie -Ie -Vx -by +tF +tF +Fb +qg ik UN UQ @@ -1364,23 +1365,23 @@ KI YP Lv WX -by -by +qg +qg oA IY IY -by -by +qg +qg IY IY -by +qg IY Jv ik mD tq ik -by +qg iR PM PM @@ -1390,12 +1391,12 @@ PM PM PM PM -by -Ie +qg +tF "} (14,1,1) = {" -Ie -by +tF +qg KI nE nE @@ -1412,12 +1413,12 @@ KI ps TK Sm -by -by -by +qg +qg +qg zA rg -by +qg XB IY Jv @@ -1426,7 +1427,7 @@ IY ik tq ik -by +qg iR PM QP @@ -1436,16 +1437,16 @@ QP QP xt PM -by -Ie +qg +tF "} (15,1,1) = {" -Ie -by +tF +qg ij hK nE -by +qg yz UQ UQ @@ -1458,13 +1459,13 @@ Do Iz kn Ww -by -by +qg +qg FI mF mF mF -by +qg IY Jv Jv @@ -1472,7 +1473,7 @@ IY ik tq ik -by +qg ZR PM QP @@ -1482,12 +1483,12 @@ QP QP QP PM -by -Ie +qg +tF "} (16,1,1) = {" -Ie -by +tF +qg VQ uX NL @@ -1505,20 +1506,20 @@ pl Do Ex UY -by +qg Ug oI NW mF -by -by +qg +qg Jv IY IY ik tq ik -by +qg PM PM QP @@ -1528,16 +1529,16 @@ QP QP QP PM -by -Ie +qg +tF "} (17,1,1) = {" -Ie -by +tF +qg VQ bR wz -by +qg Hq UQ Sm @@ -1560,11 +1561,11 @@ WT IY Jv IY -by +qg ik tq ik -by +qg PM PM QP @@ -1574,12 +1575,12 @@ QP QP QP PM -by -Ie +qg +tF "} (18,1,1) = {" -Ie -by +tF +qg VQ uX PJ @@ -1597,12 +1598,12 @@ Ok mE rH pl -by +qg mF Hr Gg mF -by +qg IY IY IY @@ -1610,7 +1611,7 @@ IY ik tq ik -by +qg PM PM QP @@ -1620,17 +1621,17 @@ QP QP QP PM -by -Ie +qg +tF "} (19,1,1) = {" -Ie -by +tF +qg zF uX nE -by -by +qg +qg Ww Ww Ww @@ -1643,12 +1644,12 @@ UY Ka KI tv -by +qg FI mF mF QX -by +qg IY IY IY @@ -1656,7 +1657,7 @@ IY ik tq ik -by +qg lj PM QP @@ -1666,34 +1667,34 @@ QP QP QP PM -by -Ie +qg +tF "} (20,1,1) = {" -Ie -by +tF +qg KI nE nE ik -by +qg Ww Ww Cs Do Do KI -by -by +qg +qg bQ -by +qg ba -by +qg IY -by +qg zA tI -by +qg XB IY Jv @@ -1702,7 +1703,7 @@ IY ik tq ik -by +qg iR PM QP @@ -1712,17 +1713,17 @@ QP QP gr PM -by -Ie +qg +tF "} (21,1,1) = {" -Ie -Ie -Vx -by +tF +tF +Fb +qg ik -by -by +qg +qg Do Do Do @@ -1732,13 +1733,13 @@ KI rh ed gK -by +qg UL Sm IY IY -by -by +qg +qg Kh IY IY @@ -1748,7 +1749,7 @@ ik tq mD ik -by +qg iR PM PM @@ -1758,17 +1759,17 @@ PM PM PM PM -by -Ie +qg +tF "} (22,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik -by -by +qg +qg JB Sg KI @@ -1779,12 +1780,12 @@ YP bp bp uY -by +qg bQ oA IY IY -by +qg IY Jv IY @@ -1794,7 +1795,7 @@ ik tq ik ik -by +qg iR PM PM @@ -1804,14 +1805,14 @@ PM PM PM PM -by -Ie +qg +tF "} (23,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik cM eE @@ -1827,7 +1828,7 @@ bp WB TK Aa -by +qg IY IY Jv @@ -1836,11 +1837,11 @@ Jv IY aM Xp -by +qg tq ik -by -by +qg +qg iR PM PM @@ -1850,17 +1851,17 @@ PM PM PM PM -by -Ie +qg +tF "} (24,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik -by -by +qg +qg lP Do Do @@ -1871,7 +1872,7 @@ bq Rh WX uY -by +qg oA oA IY @@ -1880,33 +1881,33 @@ Jv Jv IY IY -by -by +qg +qg ik mD ik -by -by +qg +qg KI -by -by -by -by -by -by -by -by -by -Ie +qg +qg +qg +qg +qg +qg +qg +qg +qg +tF "} (25,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik -by -by +qg +qg pl Do KI @@ -1916,7 +1917,7 @@ KI rh lm uY -by +qg sq oA IY @@ -1924,35 +1925,35 @@ IY IY IY IY -by +qg IY IY ik mD ik ik -by -Ie -Vx -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie -Ie +qg +tF +Fb +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF "} (26,1,1) = {" -Ie -Ie -Vx -by +hY +tF +Fb +qg ik ik -by +qg yd Do Do @@ -1960,8 +1961,8 @@ Do Ex lx KI -by -by +qg +qg oA oA IY @@ -1972,15 +1973,15 @@ aM IY IY IY -by +qg ik tq ik -by -by -Ie -Vx -hY +qg +qg +tF +Fb +tF hY hY hY @@ -1992,41 +1993,41 @@ hY hY "} (27,1,1) = {" -Ie -Ie -Vx -by -by +hY +tF +Fb +qg +qg ik -by -by +qg +qg Ex lx HQ UQ UQ bU -by +qg ik -by +qg Yb IY IY -by +qg IY IY -by +qg IY IY ik mD ik ik -by -Ie -Ie -Vx -hY +qg +tF +tF +Fb +tF hY hY hY @@ -2038,27 +2039,27 @@ hY hY "} (28,1,1) = {" -Ie -Ie -Vx -Ie -by -by +hY +tF +Fb +tF +qg +qg ik ik -by +qg mD -by +qg Ka lP mD -by +qg ik -by -by -by -by -by +qg +qg +qg +qg +qg IY IY IY @@ -2067,12 +2068,12 @@ ik ik ik ik -by -by -Ie -Ie -Vx -hY +qg +qg +tF +tF +Fb +tF hY hY hY @@ -2084,41 +2085,41 @@ hY hY "} (29,1,1) = {" -Ie -Ie -Vx -Ie -Ie -by -by +hY +tF +Fb +tF +tF +qg +qg ik ik ik tq tq tq -by +qg ik -by -by -Ie -Ie -Ie -by -by +qg +qg +tF +tF +tF +qg +qg ik ik mD tq ik ik -by -by -Ie -Ie -Ie -Vx -hY +qg +qg +tF +tF +tF +Fb +tF hY hY hY @@ -2130,41 +2131,41 @@ hY hY "} (30,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -by -by -by +hY +tF +Fb +tF +tF +tF +qg +qg +qg ik ik ik ik ik -by -by -Ie -Ie -Ie -Ie -Ie -by -by +qg +qg +tF +tF +hY +tF +tF +qg +qg ik ik ik -by -by -by -Ie -Ie -Ie -Ie -Vx +qg +qg +qg +tF +tF hY +tF +Fb +tF hY hY hY @@ -2176,41 +2177,41 @@ hY hY "} (31,1,1) = {" -Ie -Ie -Vx -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Ie -by -by -by -by -by -Ie -Ie -Ie -Ie -Ie -Ie -Vx hY +tF +Fb +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +tF +qg +qg +qg +qg +qg +tF +tF +tF +tF +tF +tF +Fb +tF hY hY hY @@ -2222,56 +2223,9 @@ hY hY "} (32,1,1) = {" -Ie -Ie -VI -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -RU -ly -hY -hY -hY -hY -hY hY -hY -hY -hY -hY -"} -(33,1,1) = {" -Ie -Ie -Ie -Ie +tF +VI Ie Ie Ie @@ -2302,7 +2256,54 @@ Ie Ie Ie Ie +ly +tF +hY +hY +hY +hY +hY +hY +hY +hY +hY +"} +(33,1,1) = {" hY +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF +tF hY hY hY diff --git a/_maps/virtual_domains/colossus.dmm b/_maps/virtual_domains/colossus.dmm index 19570e13daf81..d246ad52fa1e7 100644 --- a/_maps/virtual_domains/colossus.dmm +++ b/_maps/virtual_domains/colossus.dmm @@ -34,9 +34,8 @@ /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) "q" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/open/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "r" = ( /obj/machinery/light/small/blacklight/directional/south, /obj/effect/baseturf_helper/virtual_domain, @@ -45,13 +44,14 @@ "s" = ( /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors/virtual_domain) +"t" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors/virtual_domain) "u" = ( /obj/structure/marker_beacon/indigo, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) -"v" = ( -/turf/open/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "x" = ( /obj/structure/marker_beacon/purple, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -91,56 +91,55 @@ /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q q "} (2,1,1) = {" -v -k +q k k k @@ -184,10 +183,11 @@ k k k k -v +t +q "} (3,1,1) = {" -v +q k a a @@ -232,10 +232,10 @@ a k k k -v +q "} (4,1,1) = {" -v +q k a a @@ -280,10 +280,10 @@ a a a k -v +q "} (5,1,1) = {" -v +q k a a @@ -328,10 +328,10 @@ a a s k -v +q "} (6,1,1) = {" -v +q k a a @@ -376,10 +376,10 @@ a s s k -v +q "} (7,1,1) = {" -v +q k a a @@ -424,10 +424,10 @@ a a s k -v +q "} (8,1,1) = {" -v +q k a a @@ -472,10 +472,10 @@ a a k k -v +q "} (9,1,1) = {" -v +q k a a @@ -520,10 +520,10 @@ a a k k -v +q "} (10,1,1) = {" -v +q k k a @@ -568,10 +568,10 @@ a a k k -v +q "} (11,1,1) = {" -v +q k k a @@ -616,10 +616,10 @@ a a a k -v +q "} (12,1,1) = {" -v +q k k a @@ -664,10 +664,10 @@ a a a k -v +q "} (13,1,1) = {" -v +q k k a @@ -712,10 +712,10 @@ a a a k -v +q "} (14,1,1) = {" -v +q k a a @@ -760,10 +760,10 @@ a a a k -v +q "} (15,1,1) = {" -v +q k a a @@ -808,10 +808,10 @@ a a a k -v +q "} (16,1,1) = {" -v +q k a a @@ -856,10 +856,10 @@ a a a k -v +q "} (17,1,1) = {" -v +q k a a @@ -904,10 +904,10 @@ a a a k -v +q "} (18,1,1) = {" -v +q k a a @@ -952,10 +952,10 @@ a a a k -v +q "} (19,1,1) = {" -v +q k a a @@ -1000,10 +1000,10 @@ a a a k -v +q "} (20,1,1) = {" -v +q k a a @@ -1048,10 +1048,10 @@ a a a k -v +q "} (21,1,1) = {" -v +q k a a @@ -1096,10 +1096,10 @@ U N a k -v +q "} (22,1,1) = {" -v +q k a a @@ -1144,10 +1144,10 @@ U U a k -v +q "} (23,1,1) = {" -v +q k a a @@ -1192,10 +1192,10 @@ U U a k -v +q "} (24,1,1) = {" -v +q k a a @@ -1240,10 +1240,10 @@ U U a k -v +q "} (25,1,1) = {" -v +q k a a @@ -1288,10 +1288,10 @@ U U a k -v +q "} (26,1,1) = {" -v +q k a a @@ -1336,10 +1336,10 @@ U U a k -v +q "} (27,1,1) = {" -v +q k a a @@ -1384,10 +1384,10 @@ U D a k -v +q "} (28,1,1) = {" -v +q k a a @@ -1432,10 +1432,10 @@ a a a k -v +q "} (29,1,1) = {" -v +q k a a @@ -1480,10 +1480,10 @@ a a a k -v +q "} (30,1,1) = {" -v +q k a a @@ -1528,10 +1528,10 @@ a a a k -v +q "} (31,1,1) = {" -v +q k a a @@ -1576,10 +1576,10 @@ a a a k -v +q "} (32,1,1) = {" -v +q k a a @@ -1624,10 +1624,10 @@ a a a k -v +q "} (33,1,1) = {" -v +q k a a @@ -1672,10 +1672,10 @@ a a a k -v +q "} (34,1,1) = {" -v +q k k a @@ -1720,10 +1720,10 @@ a a a k -v +q "} (35,1,1) = {" -v +q k k a @@ -1768,10 +1768,10 @@ a a a k -v +q "} (36,1,1) = {" -v +q k k a @@ -1816,10 +1816,10 @@ a a a k -v +q "} (37,1,1) = {" -v +q k k a @@ -1864,10 +1864,10 @@ a a k k -v +q "} (38,1,1) = {" -v +q k a a @@ -1912,10 +1912,10 @@ a a k k -v +q "} (39,1,1) = {" -v +q k a a @@ -1960,10 +1960,10 @@ a a a k -v +q "} (40,1,1) = {" -v +q k a a @@ -2008,10 +2008,10 @@ a a a k -v +q "} (41,1,1) = {" -v +q k a a @@ -2056,10 +2056,10 @@ a a a k -v +q "} (42,1,1) = {" -v +q k a a @@ -2104,10 +2104,10 @@ a a a k -v +q "} (43,1,1) = {" -v +q k a k @@ -2152,10 +2152,10 @@ k a a k -v +q "} (44,1,1) = {" -v +q k k k @@ -2200,53 +2200,53 @@ k k k k -v +q "} (45,1,1) = {" -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v -v +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q "} diff --git a/_maps/virtual_domains/fredingtonfastingbear.dmm b/_maps/virtual_domains/fredingtonfastingbear.dmm index 4da8210c90e1a..422395c72bc97 100644 --- a/_maps/virtual_domains/fredingtonfastingbear.dmm +++ b/_maps/virtual_domains/fredingtonfastingbear.dmm @@ -1,11 +1,11 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aV" = ( /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bu" = ( /obj/machinery/oven/range, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bL" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -14,7 +14,7 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/greenglow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bP" = ( /obj/structure/sign/poster/official/report_crimes, /turf/closed/indestructible/reinforced, @@ -23,7 +23,7 @@ /obj/machinery/chem_dispenser/drinks/beer, /obj/structure/table/wood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bW" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -32,7 +32,7 @@ pixel_y = 6 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cn" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -41,40 +41,41 @@ pixel_y = 2 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cp" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /mob/living/basic/bear/snow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cY" = ( /obj/structure/sign/poster/official/no_erp/directional/north, /obj/structure/sign/poster/official/no_erp/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dl" = ( /obj/structure/sign/poster/contraband/blood_geometer/directional/south, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dz" = ( /obj/structure/table/wood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dN" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/blood/xtracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dV" = ( /obj/structure/table/glass, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ex" = ( -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/obj/structure/sign/poster/contraband/bountyhunters/directional/south, +/turf/template_noop, +/area/virtual_domain) "eE" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -83,28 +84,28 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "eW" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fd" = ( /obj/structure/table/wood/poker, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fo" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/shaker{ pixel_x = 5 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fy" = ( /obj/machinery/stove, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fz" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -114,15 +115,15 @@ pixel_y = 6 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fU" = ( /obj/effect/decal/cleanable/blood/footprints, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gl" = ( /obj/structure/sign/poster/contraband/blasto_detergent, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gL" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -132,7 +133,7 @@ }, /obj/machinery/light/built/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hq" = ( /obj/structure/table/reinforced, /obj/item/flashlight/seclite{ @@ -147,11 +148,11 @@ "hI" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hK" = ( /obj/item/trash/popcorn, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hR" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -160,7 +161,7 @@ /obj/effect/decal/cleanable/confetti, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "jE" = ( /obj/structure/sign/poster/abductor/ayy_over_tizira, /obj/structure/sign/poster/official/the_owl, @@ -174,71 +175,71 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kf" = ( /obj/structure/chair/stool/bar/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "km" = ( /obj/structure/chair/sofa/corp/left{ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kL" = ( /obj/machinery/light/built/directional/west, /obj/item/light/tube/broken, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lc" = ( /obj/machinery/vending/boozeomat, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lL" = ( /obj/structure/table, /obj/item/kitchen/rollingpin/illegal, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lP" = ( /obj/machinery/vending/sovietsoda, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lS" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ma" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/table, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ms" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mC" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/table, /obj/item/food/pizza, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mX" = ( /obj/machinery/computer/arcade/amputation{ dir = 1 }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ng" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nF" = ( /obj/effect/spawner/structure/window/reinforced/indestructible, /turf/open/floor/iron, @@ -251,11 +252,11 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/item/clothing/mask/animal/small/bear/cursed, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nX" = ( /obj/structure/chair/sofa/corp/left, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ob" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -263,12 +264,12 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/greenglow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "of" = ( /obj/structure/railing, /obj/effect/decal/cleanable/fuel_pool/hivis, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "oO" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -276,23 +277,23 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pr" = ( /obj/machinery/light/built/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pK" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 4 }, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pX" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/item/restraints/legcuffs/beartrap/prearmed, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ql" = ( /obj/structure/table/reinforced, /obj/item/toy/plush/nukeplushie{ @@ -307,20 +308,20 @@ /area/virtual_domain/protected_space/fullbright) "qK" = ( /turf/closed/indestructible/fakedoor, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rc" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "re" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ri" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -329,14 +330,14 @@ }, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rB" = ( /obj/item/trash/boritos/green{ pixel_x = 4; pixel_y = 11 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rD" = ( /obj/machinery/door/poddoor{ id = "door2" @@ -350,21 +351,20 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sg" = ( -/obj/structure/sign/poster/contraband/bountyhunters/directional/south, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/template_noop, +/area/virtual_domain) "si" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table, /obj/item/balloon_mallet, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sk" = ( /obj/machinery/computer/slot_machine, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sl" = ( /obj/effect/spawner/structure/window/reinforced/indestructible, /obj/structure/sign/poster/contraband/space_cola/directional/north, @@ -375,28 +375,28 @@ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "td" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/chempuff, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "to" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "tC" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "tI" = ( /obj/item/trash/can, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "tN" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -405,7 +405,7 @@ /obj/structure/table/wood/poker, /obj/item/trash/ready_donk, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ud" = ( /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/cafeteria, @@ -415,40 +415,40 @@ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uZ" = ( /obj/effect/decal/cleanable/food/salt, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ve" = ( /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vk" = ( /obj/structure/railing, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vm" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vs" = ( /obj/structure/closet/secure_closet/freezer/cream_pie, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vw" = ( /mob/living/basic/bear/butter, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vy" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/cleanable/blood/gibs/down, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vz" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/iron, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vF" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -458,18 +458,18 @@ id = "door2" }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vG" = ( /obj/structure/closet/secure_closet/freezer/kitchen, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vR" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table, /obj/item/trash/tray, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vT" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -478,7 +478,7 @@ }, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "wM" = ( /obj/item/toy/balloon/heart, /obj/machinery/light/built/directional/west, @@ -486,47 +486,47 @@ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xa" = ( /obj/structure/railing, /obj/structure/curtain/cloth/fancy/mechanical/start_closed, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xk" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/structure/table, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xv" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/structure/sign/poster/official/moth_hardhat/directional/west, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xY" = ( /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yz" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yB" = ( /obj/structure/railing, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "zU" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ag" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -534,11 +534,11 @@ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ak" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "AF" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/bottle/goldschlager{ @@ -549,23 +549,23 @@ pixel_x = -4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bc" = ( /turf/template_noop, /area/virtual_domain/safehouse) "Bf" = ( /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bj" = ( /obj/machinery/computer/arcade/amputation, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bo" = ( /obj/machinery/door/airlock, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "BU" = ( /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/cafeteria, @@ -578,16 +578,16 @@ }, /obj/effect/decal/cleanable/blood/gibs/up, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Cm" = ( /turf/template_noop, -/area/space) +/area/template_noop) "Ct" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/light/built/directional/east, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Dx" = ( /obj/effect/decal/cleanable/fuel_pool, /obj/effect/decal/cleanable/confetti, @@ -596,7 +596,7 @@ "Dz" = ( /mob/living/basic/bear/fightpit, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "DV" = ( /obj/machinery/door/airlock, /turf/open/floor/iron/cafeteria, @@ -609,14 +609,14 @@ }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "EP" = ( /obj/structure/railing{ dir = 4 }, /obj/effect/decal/cleanable/leaper_sludge, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Fc" = ( /turf/closed/indestructible/reinforced, /area/virtual_domain/protected_space/fullbright) @@ -625,29 +625,29 @@ /obj/machinery/light/built/directional/west, /obj/structure/fake_stairs/wood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "FA" = ( /obj/effect/decal/cleanable/food/flour, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Gb" = ( /obj/item/trash/peanuts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Gn" = ( /obj/machinery/light/built/directional/east, /obj/effect/decal/cleanable/food/tomato_smudge, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GD" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GK" = ( /obj/structure/closet/crate/trashcart/filled, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Hi" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -655,12 +655,12 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ho" = ( /obj/effect/decal/cleanable/fuel_pool/hivis, /mob/living/basic/bear/fightpit, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "HE" = ( /obj/structure/table/reinforced, /obj/item/gun/energy/laser{ @@ -685,11 +685,11 @@ "HG" = ( /obj/structure/curtain/cloth/fancy/mechanical, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "If" = ( /mob/living/basic/bear/russian, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Io" = ( /obj/structure/closet/crate/trashcart/filled, /turf/open/misc/dirt/jungle, @@ -697,12 +697,12 @@ "IX" = ( /obj/machinery/computer/arcade/amputation, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "IY" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck/syndicate, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Jh" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -712,13 +712,13 @@ pixel_y = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JD" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JF" = ( /obj/modular_map_root/safehouse{ key = "wood" @@ -735,11 +735,11 @@ }, /obj/item/trash/pistachios, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KJ" = ( /mob/living/basic/bear/fightpit, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ln" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -748,11 +748,11 @@ }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "LP" = ( /obj/item/trash/shrimp_chips, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "LU" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -762,7 +762,7 @@ id = "door1" }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mc" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -774,24 +774,24 @@ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mm" = ( /obj/structure/chair/stool/bar/directional/north, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mq" = ( /obj/structure/sign/poster/contraband/ambrosia_vulgaris/directional/west, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ML" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "MO" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "MS" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -800,84 +800,84 @@ pixel_y = 2 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ne" = ( /turf/closed/indestructible/binary, -/area/space) +/area/virtual_domain/fullbright) "Nz" = ( /obj/structure/sign/poster/official/pda_ad/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NA" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NE" = ( /obj/structure/sign/poster/abductor/ayy_cops/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Od" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ox" = ( /obj/structure/sign/poster/official/the_owl, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "OB" = ( /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "OD" = ( /mob/living/basic/bear/russian, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "OM" = ( /obj/structure/table, /obj/effect/decal/cleanable/food/salt, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Pm" = ( /obj/structure/chair/sofa/corp/right, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "PK" = ( /obj/structure/curtain/cloth/fancy/mechanical, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Qg" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/item/toy/balloon/heart, /obj/machinery/light/built/directional/west, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "RB" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/light/built/directional/west, /obj/effect/decal/cleanable/glass/plastitanium, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sp" = ( /obj/structure/chair/sofa/corp, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sr" = ( /obj/effect/decal/cleanable/blood/footprints{ dir = 4 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "SE" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/light/built/directional/east, /obj/effect/decal/cleanable/glass/plastitanium, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "SW" = ( /obj/machinery/door/poddoor{ id = "door1" @@ -891,11 +891,11 @@ pixel_y = 6 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Tp" = ( /obj/structure/sign/poster/official/soft_cap_pop_art, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Tq" = ( /turf/open/misc/dirt/jungle, /area/virtual_domain/fullbright) @@ -907,34 +907,34 @@ }, /obj/effect/decal/cleanable/insectguts, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "TR" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/effect/decal/cleanable/ants/fire, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "TW" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /mob/living/basic/bear/snow, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Uj" = ( /obj/structure/curtain/bounty/start_closed, /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "Ux" = ( /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "UR" = ( /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "UW" = ( /obj/structure/sign/poster/official/no_erp/directional/north, /turf/closed/indestructible/reinforced, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vd" = ( /turf/open/floor/iron/cafeteria, /area/virtual_domain/protected_space/fullbright) @@ -942,14 +942,14 @@ /obj/structure/table, /obj/item/kitchen/tongs, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vs" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/decal/cleanable/blood/gibs/old, /obj/machinery/light/built/directional/west, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "VS" = ( /obj/structure/table/reinforced, /obj/item/modular_computer/laptop/preset/civilian, @@ -958,7 +958,7 @@ "VW" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Wj" = ( /obj/structure/sign/poster/contraband/free_key/directional, /turf/closed/indestructible/reinforced, @@ -966,7 +966,7 @@ "Wy" = ( /obj/effect/decal/cleanable/molten_object/large, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "WG" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -975,11 +975,11 @@ }, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "XG" = ( /obj/machinery/roulette, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yd" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -987,26 +987,26 @@ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ye" = ( /obj/structure/table/glass, /obj/item/reagent_containers/cup/soda_cans/grey_bull, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yy" = ( /obj/machinery/computer/arcade/amputation{ dir = 1 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YK" = ( /obj/effect/spawner/random/trash, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YL" = ( /obj/item/trash/raisins, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YT" = ( /obj/machinery/button/door/directional/west{ id = "door1" @@ -1016,30 +1016,30 @@ "Zf" = ( /obj/machinery/deepfryer, /turf/open/floor/iron/kitchen/small, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Zj" = ( /mob/living/basic/bear/fightpit, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Zp" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZL" = ( /obj/structure/railing{ dir = 4 }, /turf/open/floor/wood, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZU" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/effect/decal/cleanable/confetti, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZZ" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -1047,7 +1047,7 @@ dir = 8 }, /turf/open/floor/iron/kitchen, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" Cm @@ -1095,9 +1095,6 @@ Cm Cm Cm Cm -Cm -Cm -Cm "} (2,1,1) = {" Cm @@ -1115,6 +1112,13 @@ Cm Cm Cm Cm +Uj +Uj +Uj +Uj +Uj +Uj +Uj Cm Cm Cm @@ -1138,6 +1142,8 @@ Cm Cm Cm Cm +"} +(3,1,1) = {" Cm Cm Cm @@ -1148,13 +1154,18 @@ Cm Cm Cm Cm -"} -(3,1,1) = {" Cm Cm Cm Cm Cm +Uj +MO +OB +OB +OB +OB +Uj Cm Cm Cm @@ -1178,6 +1189,8 @@ Cm Cm Cm Cm +"} +(4,1,1) = {" Cm Cm Cm @@ -1193,13 +1206,18 @@ Cm Cm Cm Cm +Uj +OB +OB +OB +OB +Zj +Uj Cm Cm Cm Cm Cm -"} -(4,1,1) = {" Cm Cm Cm @@ -1218,12 +1236,10 @@ Cm Cm Cm Cm +"} +(5,1,1) = {" Cm Cm -Ne -Ne -Ne -Ne Cm Cm Cm @@ -1237,6 +1253,13 @@ Cm Cm Cm Cm +Uj +vm +OB +OB +OB +vm +Uj Cm Cm Cm @@ -1248,8 +1271,6 @@ Cm Cm Cm Cm -"} -(5,1,1) = {" Cm Cm Cm @@ -1262,19 +1283,30 @@ Cm Cm Cm Cm +"} +(6,1,1) = {" Cm Cm Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne +Cm +Cm +ve +ve +ve +ve +ve +ve +Ox +ve +ve +ve +ve +ve +OB +OB +OB +ve +ve Cm Cm Cm @@ -1299,12 +1331,29 @@ Cm Cm Cm "} -(6,1,1) = {" +(7,1,1) = {" Cm Cm Cm Cm Cm +ve +sk +Ux +Ux +kL +Ux +Ux +UR +Ux +Ux +Ux +Fy +EP +ZL +ZL +wM +ve Cm Cm Cm @@ -1315,16 +1364,6 @@ Cm Cm Cm Cm -Ne -Uj -Uj -Uj -Uj -Uj -Uj -Uj -Ne -Ne Cm Cm Cm @@ -1338,18 +1377,41 @@ Cm Cm Cm Cm +"} +(8,1,1) = {" Cm Cm Cm Cm Cm +ve +GK +Gb +Ux +IX +rB +YL +mX +UR +Ux +Ux +Ux +UR +UR +Ux +Ux +ve Cm Cm +ve +ve +ve +ve +ve +ve Cm Cm Cm -"} -(7,1,1) = {" Cm Cm Cm @@ -1362,23 +1424,38 @@ Cm Cm Cm Cm +"} +(9,1,1) = {" Cm Cm -Ne -Ne -Uj -MO -OB -OB -OB -OB -Uj -Ne Cm Cm Cm +gl +GK +Ux +Ux +Bj +Ux +Ux +Yy +Bf +Ux +Ux +Ux +Zp +rc +re +Ux +ve Cm Cm +ve +Ux +Ux +Ux +Ux +ve Cm Cm Cm @@ -1394,15 +1471,38 @@ Cm Cm Cm Cm +"} +(10,1,1) = {" Cm Cm Cm Cm -"} -(8,1,1) = {" Cm +ve +GK +Ux +Ux +Bj +UR +Ux +Yy +Ux +Ux +Ux +Ux +Ke +re +re +Ux +Tp Cm Cm +ve +Ux +vw +Ux +Ux +ve Cm Cm Cm @@ -1414,29 +1514,42 @@ Cm Cm Cm Cm -Ne -Ne -Uj -OB -OB -OB -OB -Zj -Uj -Ne -Ne -Ne Cm Cm Cm Cm +"} +(11,1,1) = {" Cm Cm Cm Cm Cm +ve +sk +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +re +re +re +Ux +ve Cm Cm +ve +Ux +Ux +Ux +Ux +ve Cm Cm Cm @@ -1448,98 +1561,49 @@ Cm Cm Cm Cm -"} -(9,1,1) = {" Cm Cm Cm Cm +"} +(12,1,1) = {" Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne Uj -vm -OB -OB -OB -vm Uj -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(10,1,1) = {" -Cm -Cm -Cm -Cm -Cm -Ne +Uj +Uj ve ve ve ve +Ux +Ux +Ux +Wy ve ve -Ox +NE +Ux +Ux +Ux +Ux +Ho ve ve ve ve ve -OB -OB -OB ve ve -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm +ve +ve +ve +UW +UW +cY +UW +ve +ve Cm Cm Cm @@ -1549,29 +1613,43 @@ Cm Cm Cm "} -(11,1,1) = {" -Cm -Cm -Cm -Cm +(13,1,1) = {" Cm -Ne +Uj +OB +OB +dl +hI +to +Vs +dN +vT +oO +ML +EO +WG +Qg ve -sk -Ux -Ux -kL -Ux -Ux -UR Ux +xY Ux Ux -Fy -EP -ZL -ZL -wM +NA +NA +NA +NA +RB +NA +NA +zU +NA +NA +NA +yz +yz +yz +yz +nP ve Ne Ne @@ -1581,1092 +1659,373 @@ Ne Ne Ne Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(12,1,1) = {" -Cm -Cm -Cm -Cm +(14,1,1) = {" Cm -Ne +Uj +OB +OB +OB +xa +jZ +to +eW +bW +ma +to +hR +tC +MS ve -GK -Gb -Ux -IX -rB -YL -mX -UR Ux +XG +XG Ux +NA +pX +NA +NA +NA +NA +NA +NA +NA +NA +td +yz +LU +yz +ob +bL +ve +Ne +Bc +Bc +Bc +Bc +Bc +JF +Ne +"} +(15,1,1) = {" +Cm +Uj +OB +OB +OB +HG +of +ML +ZU +mC +vR +ML +tC +Jh +to Ux -UR -UR Ux +Od +tZ Ux +TR +ve ve -Ne -Ne ve ve ve ve ve +Fc +Fc +sl +SW +Fc +Wj +Fc +ve +ve ve +Bc +Bc +Bc +Bc +Bc +Bc Ne +"} +(16,1,1) = {" Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(13,1,1) = {" -Cm -Cm -Cm -Cm -Cm -Ne -gl -GK -Ux -Ux -Bj -Ux -Ux -Yy -Bf -Ux -Ux -Ux -Zp -rc -re -Ux -ve -Ne -Ne -ve -Ux -Ux -Ux -Ux -ve -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(14,1,1) = {" -Cm -Cm -Cm -Ne -Ne -Ne -ve -GK -Ux -Ux -Bj -UR -Ux -Yy -Ux -Ux -Ux -Ux -Ke -re -re -Ux -Tp -Ne -Ne -ve -Ux -vw -Ux -Ux -ve -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(15,1,1) = {" -Cm -Ne -Ne -Ne -Ne -Ne -ve -sk -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -re -re -re -Ux -ve -Ne -Ne -ve -Ux -Ux -Ux -Ux -ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(16,1,1) = {" -Cm -Ne -Uj -Uj -Uj -Uj -ve -ve -ve -ve -Ux -Ux -Ux -Wy -ve -ve -NE -Ux -Ux -Ux -Ux -Ho -ve -ve -ve -ve -ve -ve -ve -ve -ve -ve -UW -UW -cY -UW -ve -ve -Ne -Ne -Cm -Cm -Cm -Cm -Ne -Ne -Cm -Cm -"} -(17,1,1) = {" -Cm -Ne Uj OB OB -dl -hI +OB +HG +vk to -Vs -dN -vT -oO ML -EO -WG -Qg -ve +Ln +ZZ +to +ZZ +Yd +eW Ux -xY +hK +fd Ux Ux NA -NA -NA -NA -RB -NA -NA -zU -NA -NA -NA -yz -yz -yz -yz -nP +vz +tI +VW ve +sg +sg +sg +Fc +hq +ud +Dx +YT +Vd +Fc +Tq +Tq +Tq +Bc +Bc +Bc +Bc +Bc +Bc Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -"} -(18,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -xa -jZ -to -eW -bW -ma -to -hR -tC -MS -ve -Ux -XG -XG -Ux -NA -pX -NA -NA -NA -NA -NA -NA -NA -NA -td -yz -LU -yz -ob -bL -ve -Ne -Bc -Bc -Bc -Bc -Bc -JF -Ne -Cm -Cm -"} -(19,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -HG -of -ML -ZU -mC -vR -ML -tC -Jh -to -Ux -Ux -Od -tZ -Ux -TR -ve -ve -ve -ve -ve -ve -ve -Fc -Fc -sl -SW -Fc -Wj -Fc -ve -ve -ve -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(20,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -HG -vk -to -ML -Ln -ZZ -to -ZZ -Yd -eW -Ux -hK -fd -Ux -Ux -NA -vz -tI -VW -ve -ex -ex -ex -Fc -hq -ud -Dx -YT -Vd -Fc -Tq -Tq -Tq -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(21,1,1) = {" -Cm -Ne -Uj -OB -OB -OB -HG -vk -ML -to -ML -cn -ML -to -ML -ZU -Ux -Ux -fd -Ux -Ux -NA -Ux -Ux -lP -qK -ex -ex -sg -jE -VS -Vd -Vd -Vd -Vd -DV -Tq -Tq -Tq -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(22,1,1) = {" -Cm -Ne -Uj -OB -OB -pK -PK -yB -to -ML -EO -Ag -to -Ag -EO -eW -Ux -Ux -fd -Ux -Ux -NA -vz -LP -lc -ve -ex -ex -ex -JW -ql -BU -ud -HE -Vd -Fc -Io -Tq -Tq -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(23,1,1) = {" -Cm -Ne -Uj -OB -OB -pK -xa -Mc -JD -ZU -xk -tC -ML -si -ma -ZU -YK -Ux -fd -IY -Ux -NA -ve -ve -ve -ve -ve -ve -ve -Fc -Fc -nF -rD -Fc -bP -Fc -ve -ve -ve -Bc -Bc -Bc -Bc -Bc -Bc -Ne -Cm -Cm -"} -(24,1,1) = {" -Cm -Ne -Uj -OB -OB -If -ve -ML -rY -ML -tC -Jh -to -ma -fz -TW -ve -Ux -XG -XG -Ux -NA -NA -NA -NA -NA -NA -NA -xv -NA -NA -NA -yz -vF -yz -yz -Hi -ve -Ne -Bc -Bc -Bc -Bc -Bc -tN -Ne -Cm -Cm -"} -(25,1,1) = {" -Cm -Ne -Uj -OB -OB -vm -ve -lS -gL -ms -ri -TG -eW -Yd -Ce -Ct -ve -Ux -Ux -Ux -Ux -cp -NA -NA -NA -SE -NA -NA -vy -NA -NA -NA -yz -yz -yz -yz -eE -ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -"} -(26,1,1) = {" -Cm -Ne -Uj -Uj -Uj -Uj -ve -ve -ve -ve -GD -Ux -Ux -Ux -ve -ve -ve -Ux -Ux -Ux -Ux -Ux -ve -ve -ve -ve -ve -ve -qK -ve -ve -Nz -ve -ve -ve -ve -ve -ve -Ne -Ne -Ne -Ne -Cm -Cm -Ne -Cm -Cm -Cm -"} -(27,1,1) = {" -Cm -Ne -Ne -Ne -Ne -Ne -ve -OD -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(28,1,1) = {" -Cm -Cm -Ne -Ne -Ne -Ne -ve -kf -kf -kf -kf -kf -kf -Ux -Ux -Ux -Ux -Ux -Pm -Ye -km -Ux -ve -ve -ve -ve -ve -ve -ve -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(29,1,1) = {" -Cm -Cm -Cm -Cm -Ne -Ne -ve -dz -dz -dz -dz -dz -dz -Mm -Ux -Ux -Ux -Ux -Sp -dV -ur -Ux -Bo -aV -uZ -KJ -Ve -lL -ve -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(30,1,1) = {" -Cm -Cm -Cm -Cm +(17,1,1) = {" Cm -Ne -Mq -bR -Ux -Ux +Uj +OB +OB +OB +HG +vk +ML +to +ML +cn +ML +to +ML +ZU Ux Ux -dz -Mm +fd Ux Ux +NA Ux -Dz -nX -Ti -sR Ux -Bo -aV -aV -FA -aV -OM -ve -Ne +lP +qK +sg +sg +ex +jE +VS +Vd +Vd +Vd +Vd +DV +Tq +Tq +Tq +Bc +Bc +Bc +Bc +Bc +Bc Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(31,1,1) = {" -Cm -Cm -Cm -Cm +(18,1,1) = {" Cm -Ne -ve -lc -Ux -fo -AF -pr -dz -Mm +Uj +OB +OB +pK +PK +yB +to +ML +EO +Ag +to +Ag +EO +eW Ux Ux -ng -fU -fU -pr +fd Ux Ux +NA +vz +LP +lc ve -ve -ve -vG -aV -Zf -ve -Ne +sg +sg +sg +JW +ql +BU +ud +HE +Vd +Fc +Io +Tq +Tq +Bc +Bc +Bc +Bc +Bc +Bc Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(32,1,1) = {" -Cm -Cm -Cm -Cm +(19,1,1) = {" Cm -Ne -ve -ve -qK -ve -ve +Uj +OB +OB +pK +xa +Mc +JD +ZU +xk +tC +ML +si +ma +ZU +YK +Ux +fd +IY +Ux +NA ve ve ve ve -Ux -Sr ve ve ve +Fc +Fc +nF +rD +Fc +bP +Fc ve ve ve +Bc +Bc +Bc +Bc +Bc +Bc Ne +"} +(20,1,1) = {" +Cm +Uj +OB +OB +If ve -vG -aV -fy +ML +rY +ML +tC +Jh +to +ma +fz +TW +ve +Ux +XG +XG +Ux +NA +NA +NA +NA +NA +NA +NA +xv +NA +NA +NA +yz +vF +yz +yz +Hi ve Ne +Bc +Bc +Bc +Bc +Bc +tN Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm "} -(33,1,1) = {" -Cm -Cm -Cm +(21,1,1) = {" Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne +Uj +OB +OB +vm +ve +lS +gL +ms +ri +TG +eW +Yd +Ce +Ct ve Ux -Sr +Ux +Ux +Ux +cp +NA +NA +NA +SE +NA +NA +vy +NA +NA +NA +yz +yz +yz +yz +eE ve Ne Ne @@ -2674,122 +2033,47 @@ Ne Ne Ne Ne -ve -vs -Gn -bu -ve Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm +Ne "} -(34,1,1) = {" -Cm -Cm -Cm +(22,1,1) = {" Cm -Ne -Ne -ve -ve +Uj +Uj +Uj +Uj ve ve ve ve +GD +Ux +Ux +Ux ve ve ve Ux Ux +Ux +Ux +Ux ve ve ve ve ve ve -Ne +qK ve ve +Nz +ve ve ve ve -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(35,1,1) = {" -Cm -Cm -Cm -Cm -Ne -Ne ve -Ux -Ux -Ux -Ux -Ux -Dz -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux ve -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm Cm Cm Cm @@ -2799,19 +2083,18 @@ Cm Cm Cm "} -(36,1,1) = {" +(23,1,1) = {" +Cm Cm Cm Cm Cm -Ne -Ne ve -Ak -Ux -Ux -Ux -Ux +OD +Ux +Ux +Ux +Ux Ux Ux Ux @@ -2823,58 +2106,6 @@ Ux Ux Ux ve -Ne -Ne -Ne -Ne -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -Cm -"} -(37,1,1) = {" -Cm -Cm -Cm -Cm -Ne -Ne -ve -ve -ve -qK -qK -ve -ve -ve -ve -ve -ve -ve -ve -qK -qK -ve -ve -Ne -Ne Cm Cm Cm @@ -2899,36 +2130,35 @@ Cm Cm Cm "} -(38,1,1) = {" -Cm -Cm -Cm +(24,1,1) = {" Cm -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne -Ne Cm Cm Cm Cm +ve +kf +kf +kf +kf +kf +kf +Ux +Ux +Ux +Ux +Ux +Pm +Ye +km +Ux +ve +ve +ve +ve +ve +ve +ve Cm Cm Cm @@ -2946,19 +2176,36 @@ Cm Cm Cm Cm +"} +(25,1,1) = {" Cm Cm -"} -(39,1,1) = {" Cm Cm Cm -Ne -Ne -Ne -Ne -Ne -Ne +ve +dz +dz +dz +dz +dz +dz +Mm +Ux +Ux +Ux +Ux +Sp +dV +ur +Ux +Bo +aV +uZ +KJ +Ve +lL +ve Cm Cm Cm @@ -2976,11 +2223,36 @@ Cm Cm Cm Cm +"} +(26,1,1) = {" Cm Cm Cm Cm Cm +Mq +bR +Ux +Ux +Ux +Ux +dz +Mm +Ux +Ux +Ux +Dz +nX +Ti +sR +Ux +Bo +aV +aV +FA +aV +OM +ve Cm Cm Cm @@ -2999,15 +2271,35 @@ Cm Cm Cm "} -(40,1,1) = {" +(27,1,1) = {" Cm Cm Cm Cm -Ne -Ne -Ne Cm +ve +lc +Ux +fo +AF +pr +dz +Mm +Ux +Ux +ng +fU +fU +pr +Ux +Ux +ve +ve +ve +vG +aV +Zf +ve Cm Cm Cm @@ -3025,12 +2317,36 @@ Cm Cm Cm Cm +"} +(28,1,1) = {" Cm Cm Cm Cm Cm +ve +ve +qK +ve +ve +ve +ve +ve +ve +Ux +Sr +ve +ve +ve +ve +ve +ve Cm +ve +vG +aV +fy +ve Cm Cm Cm @@ -3049,13 +2365,12 @@ Cm Cm Cm "} -(41,1,1) = {" +(29,1,1) = {" Cm Cm Cm Cm Cm -Ne Cm Cm Cm @@ -3064,12 +2379,21 @@ Cm Cm Cm Cm +ve +Ux +Sr +ve Cm Cm Cm Cm Cm Cm +ve +vs +Gn +bu +ve Cm Cm Cm @@ -3087,19 +2411,41 @@ Cm Cm Cm Cm +"} +(30,1,1) = {" Cm Cm Cm Cm Cm +ve +ve +ve +ve +ve +ve +ve +ve +ve +Ux +Ux +ve +ve +ve +ve +ve +ve Cm +ve +ve +ve +ve +ve Cm Cm Cm Cm Cm -"} -(42,1,1) = {" Cm Cm Cm @@ -3112,11 +2458,30 @@ Cm Cm Cm Cm +"} +(31,1,1) = {" Cm Cm Cm Cm Cm +ve +Ux +Ux +Ux +Ux +Ux +Dz +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +ve Cm Cm Cm @@ -3140,16 +2505,33 @@ Cm Cm Cm Cm +"} +(32,1,1) = {" Cm Cm Cm Cm Cm +ve +Ak +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +Ux +ve Cm Cm Cm -"} -(43,1,1) = {" Cm Cm Cm @@ -3170,11 +2552,30 @@ Cm Cm Cm Cm +"} +(33,1,1) = {" Cm Cm Cm Cm Cm +ve +ve +ve +qK +qK +ve +ve +ve +ve +ve +ve +ve +ve +qK +qK +ve +ve Cm Cm Cm diff --git a/_maps/virtual_domains/gondola_asteroid.dmm b/_maps/virtual_domains/gondola_asteroid.dmm index 6ed8763f9a6f5..d01ab29e14032 100644 --- a/_maps/virtual_domains/gondola_asteroid.dmm +++ b/_maps/virtual_domains/gondola_asteroid.dmm @@ -1,38 +1,39 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "c" = ( /turf/open/space/basic, -/area/space) +/area/space/virtual_domain) "e" = ( -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/mineral/random, +/area/virtual_domain) "g" = ( /obj/structure/marker_beacon{ light_color = "#FFE8AA"; light_range = 20 }, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "h" = ( /turf/closed/mineral/random, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "m" = ( /obj/structure/closet/crate/secure/bitrunning/encrypted/gondola, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "n" = ( /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "o" = ( /turf/template_noop, /area/template_noop) "q" = ( /obj/structure/flora/tree/palm, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "r" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -40,22 +41,25 @@ "s" = ( /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "t" = ( /turf/template_noop, /area/virtual_domain/safehouse) +"v" = ( +/turf/open/misc/asteroid/airless, +/area/virtual_domain) "w" = ( /obj/structure/water_source/puddle, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "y" = ( /obj/structure/flora/bush/stalky/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "z" = ( /mob/living/basic/pet/gondola/virtual_domain, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "A" = ( /obj/structure/chair/wood{ dir = 8 @@ -64,27 +68,23 @@ /area/virtual_domain/safehouse) "C" = ( /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "D" = ( /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "F" = ( /obj/structure/flora/bush/grassy/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "I" = ( /obj/structure/flora/bush/reed/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "J" = ( /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) -"K" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "M" = ( /obj/structure/table/wood, /obj/item/storage/bag/tray, @@ -95,7 +95,7 @@ "N" = ( /obj/structure/flora/bush/large/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "O" = ( /obj/modular_map_root/safehouse{ key = "shuttle_space" @@ -105,19 +105,19 @@ "Q" = ( /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "T" = ( /obj/structure/flora/bush/sunny/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "V" = ( /obj/structure/flora/coconuts, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "W" = ( /obj/structure/flora/bush/ferny/style_random, /turf/open/floor/grass, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" o @@ -245,7 +245,7 @@ h h a a -K +a o o o @@ -469,7 +469,7 @@ h h h h -e +v a a a @@ -514,7 +514,7 @@ C h h h -e +v c c c @@ -559,7 +559,7 @@ C h h h -e +v c c c @@ -604,7 +604,7 @@ C h h h -e +v c c c @@ -649,7 +649,7 @@ C h h h -e +v c c c @@ -694,7 +694,7 @@ C h h h -e +v c c c @@ -739,7 +739,7 @@ h h h h -e +v c c c @@ -784,7 +784,7 @@ h h h h -e +v c c c @@ -829,7 +829,7 @@ h h h h -e +v c c c @@ -1021,7 +1021,7 @@ a "} (21,1,1) = {" a -e +v h h h @@ -1066,8 +1066,8 @@ a "} (22,1,1) = {" a -e -e +v +v h h h @@ -1111,8 +1111,8 @@ a "} (23,1,1) = {" a -e -e +v +v h h h @@ -1156,8 +1156,8 @@ a "} (24,1,1) = {" a -e -e +v +v h h h @@ -1202,8 +1202,8 @@ a (25,1,1) = {" a a -e -e +v +v h h h @@ -1247,8 +1247,8 @@ a (26,1,1) = {" o a -e -e +v +v h h h @@ -1292,8 +1292,8 @@ a (27,1,1) = {" o a -e -e +v +v h h h @@ -1337,8 +1337,8 @@ a (28,1,1) = {" o a -e -e +v +v h h h @@ -1383,8 +1383,8 @@ a o a a -e -e +v +v h h h @@ -1428,8 +1428,8 @@ a o o a -e -e +v +v h h C @@ -1457,8 +1457,8 @@ C h h h -e -e +v +v c c c @@ -1473,7 +1473,7 @@ a o o a -e +v h h C @@ -1501,9 +1501,9 @@ C h h h -e -e -e +v +v +v c c c @@ -1545,9 +1545,9 @@ h h h h -e -e -e +v +v +v h h a @@ -1590,8 +1590,8 @@ h h h h -e -e +v +v h h h @@ -1664,11 +1664,11 @@ h h h h -e -e -e -e -e +v +v +v +v +v h h h diff --git a/_maps/virtual_domains/grasslands_hunt.dmm b/_maps/virtual_domains/grasslands_hunt.dmm new file mode 100644 index 0000000000000..c77bdae196f42 --- /dev/null +++ b/_maps/virtual_domains/grasslands_hunt.dmm @@ -0,0 +1,6650 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aj" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/water, +/area/virtual_domain/fullbright) +"av" = ( +/obj/structure/flora/bush/pointy/style_random, +/obj/structure/flora/bush/ferny/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"aD" = ( +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"aZ" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"bd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"br" = ( +/obj/structure/flora/bush/reed/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"bG" = ( +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"bI" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"bU" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/holofloor/basalt, +/area/virtual_domain/fullbright) +"ce" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"cL" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"cS" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/holofloor/basalt, +/area/virtual_domain/fullbright) +"cZ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"dk" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"ec" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"ep" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"eE" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"fa" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"fm" = ( +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"fK" = ( +/turf/closed/indestructible/rock, +/area/virtual_domain/fullbright) +"fZ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"gT" = ( +/obj/structure/table/wood, +/obj/item/gun/ballistic/rifle/boltaction{ + pixel_y = 8 + }, +/obj/item/gun/ballistic/rifle/boltaction{ + pixel_y = 4 + }, +/obj/item/gun/ballistic/rifle/boltaction, +/turf/template_noop, +/area/virtual_domain/safehouse) +"hH" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"ic" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"iy" = ( +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"iT" = ( +/obj/structure/flora/bush/pointy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"jc" = ( +/obj/structure/flora/bush/stalky/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"jo" = ( +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"jq" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"kd" = ( +/obj/structure/flora/tree/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"kj" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"kq" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"kG" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"kM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"kX" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"lf" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"lh" = ( +/obj/structure/flora/bush/pointy/style_random, +/turf/closed/indestructible/rock, +/area/virtual_domain/fullbright) +"lF" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"lK" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"lN" = ( +/obj/structure/flora/bush/reed/style_random, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"lQ" = ( +/obj/structure/table/wood, +/obj/item/storage/cans/sixbeer, +/turf/template_noop, +/area/virtual_domain/safehouse) +"nn" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"nE" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"nK" = ( +/obj/structure/flora/bush/pointy/style_random, +/obj/structure/flora/bush/grassy/style_random, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"od" = ( +/obj/item/knife/hunting, +/obj/structure/table/wood, +/turf/template_noop, +/area/virtual_domain/safehouse) +"or" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"oy" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/bush/pointy/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"oJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"oT" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/ferny/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"ph" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"pn" = ( +/obj/structure/flora/bush/ferny/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"pJ" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"rj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"rx" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/tree/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"rO" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"rW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"sq" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"st" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/misc/dirt/station, +/area/virtual_domain/fullbright) +"sx" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"sZ" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"tw" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/misc/dirt/station, +/area/virtual_domain/fullbright) +"tM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"tZ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"uh" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"uk" = ( +/turf/open/water, +/area/virtual_domain/fullbright) +"uA" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"uN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/water, +/area/virtual_domain/fullbright) +"vF" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"vN" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"vS" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"we" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"wq" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"wT" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"xj" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/ferny/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"xw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"xE" = ( +/obj/structure/flora/bush/ferny/style_random, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"yr" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"yC" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"zb" = ( +/obj/structure/flora/bush/stalky/style_random, +/obj/effect/turf_decal/weather/dirt, +/turf/open/water, +/area/virtual_domain/fullbright) +"zd" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"zr" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/obj/structure/flora/rock/pile/jungle/large/style_3, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"zX" = ( +/obj/modular_map_root/safehouse{ + key = "wood" + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"An" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"Az" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"AM" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"AP" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/tree/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Be" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Bl" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Bn" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"BR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"BS" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/holofloor/basalt, +/area/virtual_domain/fullbright) +"Co" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Cw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"CH" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Dk" = ( +/obj/effect/landmark/bitrunning/loot_signal, +/turf/template_noop, +/area/virtual_domain/safehouse) +"DM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"DT" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Es" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"EW" = ( +/obj/structure/flora/rock/pile/style_2, +/turf/open/floor/holofloor/basalt, +/area/virtual_domain/fullbright) +"Fm" = ( +/obj/structure/flora/tree/jungle/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"FC" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/leavy, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Gt" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/bush/ferny/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"HT" = ( +/obj/structure/flora/bush/flowers_br/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Ib" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/tree/jungle/small/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Ik" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"IC" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"IQ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"Jr" = ( +/obj/structure/flora/tree/jungle/small/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Js" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle/style_2, +/turf/open/water, +/area/virtual_domain/fullbright) +"Jv" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"Jw" = ( +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"JD" = ( +/obj/structure/flora/bush/pointy/style_random, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"JF" = ( +/turf/open/floor/holofloor/basalt, +/area/virtual_domain/fullbright) +"KE" = ( +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"KR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"Lx" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"LN" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Mh" = ( +/obj/structure/flora/bush/pale/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"No" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"NG" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"NY" = ( +/obj/structure/flora/tree/stump, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/misc/dirt/station, +/area/virtual_domain/fullbright) +"PA" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"PM" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/misc/dirt/station, +/area/virtual_domain/fullbright) +"PX" = ( +/turf/open/misc/dirt/station, +/area/virtual_domain/fullbright) +"Qh" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"QA" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"QM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Rl" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/grassy/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Rs" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"RL" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/tree/jungle/small/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"RY" = ( +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/ferny/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Se" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Sm" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"SK" = ( +/obj/structure/flora/rock/pile/jungle/style_random, +/turf/open/misc/dirt/station, +/area/virtual_domain/fullbright) +"SP" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/structure/flora/bush/lavendergrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"SW" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 10 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Tx" = ( +/obj/structure/flora/bush/ferny/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"TF" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/reed/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"Vi" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/holofloor/basalt, +/area/virtual_domain/fullbright) +"Vt" = ( +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"VN" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) +"XP" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 9 + }, +/turf/open/water, +/area/virtual_domain/fullbright) +"Yw" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile/jungle/style_3, +/turf/open/water, +/area/virtual_domain/fullbright) +"YF" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"YH" = ( +/obj/structure/flora/bush/stalky/style_random, +/turf/open/water, +/area/virtual_domain/fullbright) +"YY" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) +"Zk" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/virtual_domain/fullbright) + +(1,1,1) = {" +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +ec +"} +(2,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(3,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(4,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +JF +JF +JF +JF +JF +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +No +No +yC +LN +LN +yC +yC +aD +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(5,1,1) = {" +VN +fK +fK +fK +fK +fK +cS +JF +JF +JF +JF +cS +JF +JF +JF +fK +fK +SK +SK +PX +PX +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +No +nn +yC +yC +AP +LN +yC +aD +CH +CH +CH +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(6,1,1) = {" +VN +fK +fK +fK +fK +uk +YH +uk +uk +uk +JF +JF +JF +YH +YH +uk +uk +An +An +ep +PM +PM +PM +SK +PX +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +CH +fm +fm +fm +CH +yC +yC +LN +yC +yC +iT +aD +nn +CH +No +nn +yC +yC +yC +yC +Fm +fm +aD +CH +CH +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(7,1,1) = {" +VN +fK +uk +uk +uk +uk +uk +uk +uk +uk +uk +uk +uk +uk +uk +uk +Jv +uk +uk +uk +An +An +ep +PM +PM +PM +tw +PX +PX +SK +fK +fK +LN +yC +yC +CH +CH +aD +Fm +iT +aD +aD +yC +yC +yC +aD +iy +iT +aD +aD +yC +aD +yC +yC +yC +yC +fm +fm +CH +CH +CH +CH +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(8,1,1) = {" +VN +fK +fK +uk +uk +uk +uk +Jv +uk +YH +uk +uk +uk +uk +uk +YH +tZ +jq +jq +tZ +YH +uk +uk +An +An +zd +oJ +vF +PM +SK +SK +SK +Rl +LN +yC +yC +yC +aD +iT +aD +yC +aD +Fm +nn +aD +aD +aD +aD +aD +aD +aD +kd +nn +nn +nn +nn +aD +aD +aD +nn +wT +fm +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(9,1,1) = {" +VN +fK +uk +uk +uk +uk +JF +JF +EW +JF +JF +JF +uk +JF +JF +fK +SK +PX +PX +PM +vN +YH +uk +uk +aj +st +bI +Jw +TF +vF +PM +PX +QM +yC +yC +yC +yC +nn +pn +aD +aD +aD +aD +aD +pn +pn +nn +nn +aD +nn +iT +pn +aD +aD +aD +RL +fm +aD +yC +yC +AP +wT +nn +aD +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(10,1,1) = {" +VN +fK +fK +fK +fK +JF +JF +cS +JF +JF +JF +JF +JF +fK +fK +fK +fK +fK +PX +PM +cZ +or +tZ +jq +uk +An +uk +uk +YH +kj +PM +NY +PM +lf +yC +KE +aD +aD +Jr +iT +aD +aD +pn +aD +aD +iy +nn +nn +aD +aD +kd +iT +nn +aD +aD +fm +aD +yC +yC +yC +yC +yC +yC +nn +nn +aD +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(11,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +JF +fK +fK +JF +JF +fK +fK +fK +fK +fK +fK +SK +PX +tw +PM +PM +BR +jq +uk +uk +uk +aj +PM +tw +PX +Cw +KE +aD +yC +aD +aD +aD +aD +nn +Fm +Tx +yC +yC +yC +yC +yC +LN +fm +pn +aD +aD +nn +aD +aD +yC +yC +yC +yC +yC +AP +aD +aD +aD +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(12,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +aD +yC +pJ +PM +PM +PX +PX +PX +PX +tw +BR +uk +uk +aj +PX +tw +tw +Bl +yC +aD +aD +aD +aD +nn +aD +aD +nn +aD +yC +yC +yC +AP +yC +yC +nn +aD +CH +nn +nn +aD +aD +nn +nn +aD +nn +nn +nn +nn +aD +aD +iT +aD +aD +fK +fK +fK +fK +fK +VN +"} +(13,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +aD +aD +pn +Mh +LN +lK +lK +rj +PX +PX +PX +PM +PM +bI +uk +aj +PM +tw +PX +Zk +Mh +yC +yC +aD +aD +nn +aD +aD +RL +yC +yC +yC +yC +yC +yC +yC +nn +iy +yC +yC +yC +aD +Fm +iT +aD +nn +aD +aD +aD +aD +aD +aD +Fm +iT +nn +fK +fK +fK +fK +fK +VN +"} +(14,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +nn +nn +nn +aD +pn +jo +fm +yC +LN +LN +yC +kX +xj +PX +PX +PM +bI +YH +aj +PX +PX +PM +QM +fm +yC +yC +yC +aD +aD +CH +aD +nn +yC +yC +yC +AP +yC +yC +yC +nn +iT +yC +yC +yC +aD +iT +aD +aD +aD +aD +iy +fm +aD +nn +nn +nn +aD +aD +fK +fK +fK +fK +fK +VN +"} +(15,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +nn +nn +nn +nn +nn +nn +aD +pn +yC +pn +KE +KE +aD +yC +oT +aZ +tw +PX +PX +bI +uk +uk +IQ +tw +PM +PX +Rl +LN +yC +yC +aD +aD +iy +yC +yC +yC +yC +yC +yC +yC +yC +aD +pn +aD +aD +aD +aD +aD +aD +aD +aD +wT +aD +nn +aD +aD +yC +aD +aD +aD +nn +nn +fK +fK +fK +fK +VN +"} +(16,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +nn +nn +wT +wT +nn +pn +fm +fm +aD +aD +aD +yC +aD +aD +aD +aZ +tw +PM +Ik +uk +uk +uk +aj +tw +PM +PX +Rl +yC +yC +yC +aD +aD +pn +aD +aD +yC +yC +yC +aD +yC +aD +aD +Fm +fm +aD +yC +CH +aD +aD +aD +aD +Fm +iT +aD +aD +aD +aD +nn +nn +aD +nn +nn +fK +fK +fK +fK +VN +"} +(17,1,1) = {" +VN +fK +fK +fK +fK +LN +LN +yC +nn +nn +RL +oy +nn +aD +Fm +nK +CH +fm +yC +yC +aD +aD +aD +aZ +tw +PM +Sm +uk +uk +uk +aj +tw +PM +PX +rW +yC +yC +aD +aD +aD +Fm +pn +aD +aD +yC +aD +aD +aD +aD +aD +fm +fm +aD +nn +aD +aD +aD +nn +aD +fm +fm +aD +aD +Lx +Lx +Lx +Lx +Lx +zX +aD +fK +fK +fK +fK +VN +"} +(18,1,1) = {" +VN +fK +fK +fK +yC +yC +AP +iT +aD +aD +iT +aD +aD +pn +JD +aD +pn +Fm +iT +aD +yC +yC +aD +kG +PX +PX +Sm +uk +Jv +YH +aj +PM +tw +wq +aD +yC +aD +aD +aD +nn +CH +CH +aD +aD +aD +aD +aD +Fm +aD +nn +nn +aD +aD +aD +aD +nn +nn +aD +aD +aD +aD +aD +fm +Lx +gT +lQ +Lx +Lx +Lx +aD +fK +fK +fK +fK +VN +"} +(19,1,1) = {" +VN +fK +fK +fK +yC +yC +yC +aD +nn +nn +CH +aD +fm +aD +aD +aD +xE +iT +pn +aD +yC +yC +KE +KE +SP +PX +BR +uk +uk +uk +aj +PM +tw +Zk +Mh +aD +aD +aD +aD +aD +CH +nn +aD +aD +Fm +pn +aD +aD +aD +aD +aD +aD +iy +wT +aD +nn +kq +sx +kq +aD +sx +Az +sx +Lx +Lx +Lx +Lx +Lx +Lx +aD +fK +fK +fK +fK +VN +"} +(20,1,1) = {" +VN +fK +fK +fK +yC +yC +yC +aD +nn +nn +aD +fm +fm +fm +aD +nn +nn +aD +aD +aD +iy +iT +aD +KE +kG +PX +PM +bI +uk +uk +aj +PM +tw +lf +yC +yC +yC +CH +nn +aD +aD +bG +aD +nn +pn +aD +aD +yC +yC +yC +aD +aD +fm +Az +sx +Vt +PX +PX +PX +ic +PX +PM +PX +Lx +Lx +Lx +Lx +Lx +Lx +aD +fK +fK +fK +fK +VN +"} +(21,1,1) = {" +VN +fK +fK +fK +yr +fm +aD +aD +nn +nn +kd +yC +Jr +fm +fm +nn +nn +aD +fm +fm +iT +aD +aD +yC +aZ +PX +PM +vN +YH +uk +aj +PM +PX +Rl +LN +yC +aD +aD +aD +aD +yC +aD +aD +yC +aD +yC +yC +yC +yC +yC +yC +aD +fa +PX +PX +rW +YF +NG +PX +PX +PX +PX +wq +Lx +Lx +Lx +Lx +Lx +Lx +nn +fK +fK +fK +fK +VN +"} +(22,1,1) = {" +VN +fK +fK +fK +yC +aD +nn +aD +aD +aD +yC +yC +yC +aD +Jr +aD +aD +pn +Fm +fm +pn +aD +nn +yC +aZ +PM +PM +vN +Jw +uk +aj +PX +PX +lF +LN +LN +nn +nn +aD +aD +aD +aD +aD +aD +nn +nn +nn +AP +yC +yC +yC +PA +PM +PX +wq +yC +aD +aD +cL +YF +YF +bd +fm +Lx +Dk +Lx +od +Lx +Lx +nn +fK +fK +fK +fK +VN +"} +(23,1,1) = {" +VN +fK +fK +fK +fm +fm +nn +Fm +yC +yC +yC +yC +yC +nn +nn +aD +aD +pn +fm +nn +nn +nn +aD +fm +fm +ce +PM +cZ +Jw +YH +aj +tw +PX +PX +Zk +aD +nn +nn +nn +aD +aD +Jr +nn +aD +nn +nn +nn +aD +yC +sx +Vt +PX +PX +Be +aD +yC +aD +aD +aD +aD +aD +aD +aD +Lx +Lx +Lx +Lx +Lx +AM +nn +fK +fK +fK +fK +VN +"} +(24,1,1) = {" +VN +fK +fK +fK +Fm +fm +aD +aD +yC +yC +yC +yC +yC +nn +nn +nn +nn +aD +aD +yC +yC +yC +aD +Mh +fm +hH +PX +PM +cZ +uk +uk +ep +PM +PX +Bn +aD +nn +nn +nn +nn +aD +aD +aD +yC +aD +aD +aD +aD +Vt +PX +rW +bd +bd +aD +yC +yC +yC +aD +aD +aD +fm +pn +aD +aD +aD +nn +nn +nn +aD +nn +fK +fK +fK +fK +VN +"} +(25,1,1) = {" +VN +fK +fK +fK +iT +aD +RL +pn +nn +yC +yC +AP +nn +nn +aD +aD +aD +Fm +yC +yC +oT +yC +yC +aD +yC +aZ +PX +PM +PX +nE +uk +uk +ep +PX +PX +Ib +yC +yC +nn +nn +aD +aD +aD +aD +pn +pn +nn +aD +aD +YF +aD +yC +yC +yC +yC +yC +yC +yC +nn +aD +Fm +iT +aD +yC +aD +pn +fm +fm +aD +aD +fK +fK +fK +fK +VN +"} +(26,1,1) = {" +VN +fK +fK +aD +aD +aD +iT +aD +nn +yC +yC +yC +nn +aD +aD +iy +aD +aD +aD +yC +oT +yC +aD +aD +yC +yC +SP +PX +tw +PM +BR +uk +ph +tw +PX +rW +yC +yC +yC +nn +aD +nn +aD +aD +aD +Fm +pn +aD +aD +yC +aD +yC +yC +yC +yC +yC +yC +yC +nn +aD +iT +nn +aD +aD +aD +nn +iy +fm +aD +fK +fK +fK +fK +fK +VN +"} +(27,1,1) = {" +VN +fK +fK +aD +nn +nn +pn +aD +nn +nn +nn +yC +nn +aD +aD +aD +aD +aD +aD +aD +AP +fm +yC +aD +CH +KE +KE +SP +PX +PM +PX +sq +PX +PX +Es +aD +yC +yC +yC +aD +aD +aD +aD +aD +aD +pn +aD +aD +yC +aD +aD +nn +nn +nn +yC +yC +yC +rx +wT +pn +aD +aD +aD +aD +pn +iT +iT +nn +nn +fK +fK +fK +fK +fK +VN +"} +(28,1,1) = {" +VN +fK +fK +CH +nn +nn +Fm +fm +aD +nn +rx +aD +aD +nn +aD +nn +nn +nn +aD +fm +fm +yC +yC +yC +aD +aD +yC +kG +PX +tw +PX +sq +tw +PX +Zk +aD +yC +yC +aD +aD +aD +Fm +aD +aD +nn +nn +aD +aD +aD +aD +nn +iy +aD +aD +nn +yC +nn +wT +nn +aD +aD +aD +aD +aD +pn +Fm +iT +aD +aD +fK +fK +fK +fK +fK +VN +"} +(29,1,1) = {" +VN +fK +fK +CH +nn +nn +fm +pn +fm +fm +aD +aD +aD +aD +Fm +nn +nn +nn +nn +aD +aD +aD +yC +yC +aD +yC +yC +yC +rj +PX +tw +uN +PM +Co +KE +aD +aD +yC +aD +aD +aD +aD +aD +aD +yC +yC +yC +aD +aD +aD +iT +aD +aD +Fm +aD +aD +nn +aD +aD +aD +Fm +aD +aD +yC +aD +fm +fm +aD +fK +fK +fK +fK +fK +fK +VN +"} +(30,1,1) = {" +VN +fK +fK +CH +CH +aD +aD +nn +iT +Fm +fm +aD +aD +aD +iT +nn +nn +nn +fm +pn +nn +aD +aD +yC +aD +aD +yC +aD +Vt +PX +PX +uN +PM +Se +yC +yC +aD +aD +aD +nn +nn +aD +yC +yC +yr +yC +yC +aD +aD +aD +kd +iT +aD +aD +aD +fm +fm +aD +nn +aD +aD +aD +yC +yC +aD +aD +aD +aD +aD +aD +fK +fK +fK +fK +VN +"} +(31,1,1) = {" +VN +fK +fK +CH +aD +aD +aD +aD +aD +iT +aD +nn +nn +nn +aD +aD +aD +aD +kd +fm +nn +aD +aD +iT +yC +aD +aD +yC +aZ +tw +PM +uN +PM +PX +Zk +yC +aD +aD +aD +nn +nn +aD +aD +yC +yC +yC +yC +yC +aD +nn +nn +nn +nn +aD +aD +aD +Fm +iT +aD +aD +yC +yC +yC +yC +yC +yC +aD +pn +pn +nn +fK +fK +fK +fK +VN +"} +(32,1,1) = {" +VN +fK +fK +fK +aD +fm +nn +nn +nn +aD +aD +nn +RL +nn +CH +aD +aD +aD +fm +fm +aD +aD +iT +Fm +pn +aD +yC +yC +aZ +PX +PM +Js +tw +PX +Bn +aD +aD +aD +aD +nn +nn +aD +nn +nn +Fm +yC +yC +aD +aD +nn +nn +nn +nn +aD +aD +nn +fm +aD +yC +AP +yC +yC +yC +yC +yC +yC +Gt +nn +Jr +fm +fK +fK +fK +fK +VN +"} +(33,1,1) = {" +VN +fK +fK +fK +aD +iy +wT +nn +nn +pn +aD +aD +iT +aD +aD +yC +nn +nn +nn +aD +aD +aD +nn +iT +aD +aD +aD +yC +aZ +PX +PX +Yw +PX +tw +PX +Zk +yC +aD +aD +RL +yC +aD +aD +aD +nn +nn +nn +kd +aD +aD +No +nn +aD +aD +aD +aD +aD +aD +yC +yC +yC +yC +yC +yC +yC +AP +wT +nn +fm +aD +fK +fK +fK +fK +VN +"} +(34,1,1) = {" +VN +fK +fK +fK +aD +nn +fm +aD +aD +Fm +bG +aD +nn +nn +nn +rx +yC +yC +yC +nn +aD +aD +aD +aD +nn +nn +nn +Mh +hH +PX +PX +bI +ep +tw +PM +Zk +yC +yC +aD +yC +aD +aD +aD +aD +aD +aD +aD +aD +aD +aD +iy +dk +nn +aD +kd +nn +aD +aD +yC +LN +yC +dk +yC +yC +yC +oT +nn +nn +aD +nn +fK +fK +fK +fK +VN +"} +(35,1,1) = {" +VN +fK +fK +fK +aD +aD +aD +aD +aD +pn +pn +yC +yC +yC +yC +nn +yC +yC +yC +nn +RL +aD +aD +aD +yC +yC +yC +fm +hH +PX +tw +bI +ph +PX +PM +Zk +yC +aD +aD +aD +aD +yC +aD +aD +nn +aD +aD +aD +aD +aD +yC +yC +nn +aD +aD +aD +aD +Gt +nn +rx +LN +yC +yC +yC +yC +yC +nn +nn +aD +fK +fK +fK +fK +fK +VN +"} +(36,1,1) = {" +VN +fK +fK +aD +yC +aD +kd +aD +aD +aD +pn +yC +yC +yC +yC +nn +yC +yC +yC +aD +iT +aD +Fm +yC +yC +yC +LN +fm +we +PM +tw +uN +PM +PX +PM +rW +aD +aD +nn +nn +nn +aD +aD +kd +aD +aD +aD +rx +nn +nn +yC +yC +nn +aD +iT +iT +aD +pn +nn +nn +yC +nn +yC +yC +AP +nn +nn +aD +aD +fK +fK +fK +fK +fK +VN +"} +(37,1,1) = {" +VN +fK +fK +yC +yC +yC +yC +aD +yC +aD +Fm +pn +aD +aD +aD +yC +aD +nn +nn +nn +aD +aD +aD +aD +yC +yC +yC +hH +PX +PM +PX +uN +PM +PX +Es +aD +Mh +fm +yC +yC +nn +nn +nn +aD +aD +aD +aD +nn +nn +yC +yC +yC +yC +yC +rx +iT +aD +aD +pn +iT +aD +RL +yC +yC +yC +nn +aD +pn +fm +fK +fK +fK +fK +fK +VN +"} +(38,1,1) = {" +VN +fK +fK +yC +LN +LN +yC +aD +yC +aD +pn +pn +aD +aD +aD +aD +Fm +fm +aD +aD +iy +fm +aD +aD +aD +yC +aD +Vt +PX +PX +XP +aj +PM +PX +QM +rO +Mh +aD +yC +yC +yC +aD +aD +aD +aD +aD +yC +yC +yC +yC +yC +yC +yC +yC +iT +aD +aD +iy +aD +aD +aD +iT +aD +nn +nn +nn +aD +pn +kd +fK +fK +fK +fK +fK +VN +"} +(39,1,1) = {" +VN +fK +fK +yC +AP +LN +LN +aD +yC +yC +RL +pn +nn +aD +aD +nn +fm +fm +aD +aD +fm +fm +aD +aD +Jr +fm +aD +yC +IC +PX +SK +bI +ep +PX +PX +PX +Zk +yC +yC +yC +yC +yC +aD +nn +kd +aD +yC +yC +AP +yC +yC +yC +yC +yC +aD +aD +aD +iT +iT +aD +aD +aD +aD +iT +iT +aD +aD +aD +iT +fK +fK +fK +fK +fK +VN +"} +(40,1,1) = {" +VN +fK +fK +yC +yC +yC +kd +nn +yC +yC +nn +aD +nn +aD +fm +fm +aD +aD +nn +nn +aD +aD +nn +aD +fm +aD +yC +yC +aZ +PX +PX +bI +zb +PM +PX +PX +Zk +fm +yC +yC +yC +aD +iT +aD +aD +aD +aD +yC +iT +yC +yC +yC +AP +yC +aD +aD +aD +rx +nn +nn +aD +nn +pn +kd +iT +aD +aD +aD +aD +fK +fK +fK +fK +fK +VN +"} +(41,1,1) = {" +VN +fK +aD +yC +yC +yC +aD +nn +yC +yC +nn +aD +aD +aD +Fm +yC +yC +aD +nn +nn +Fm +fm +aD +aD +KE +aD +aD +yC +aZ +PX +PM +BR +YH +vF +PM +PX +Bn +aD +aD +yC +nn +nn +Fm +iT +CH +aD +aD +aD +aD +iT +yC +yC +yC +aD +aD +nn +nn +nn +nn +nn +aD +aD +pn +pn +aD +nn +aD +aD +fK +fK +fK +fK +fK +fK +VN +"} +(42,1,1) = {" +VN +fK +yC +yC +RL +aD +aD +nn +yC +oT +nn +aD +aD +aD +yC +yC +yr +aD +aD +aD +aD +aD +aD +fm +fm +aD +aD +RY +kG +PX +PM +PX +bI +Jw +vF +PM +PX +Zk +yC +aD +nn +nn +iT +iy +iT +nn +aD +nn +pn +Fm +yC +yC +yC +aD +aD +aD +aD +nn +nn +iT +aD +aD +aD +yC +yC +aD +aD +fK +fK +fK +fK +fK +fK +fK +VN +"} +(43,1,1) = {" +VN +fK +yC +yC +Gt +aD +aD +nn +nn +AP +nn +aD +Jr +aD +aD +aD +aD +aD +nn +nn +nn +aD +aD +Jr +oT +aD +KE +RY +eE +PX +PM +PM +bI +YH +sZ +PM +PX +Zk +yC +aD +nn +aD +aD +iT +aD +aD +aD +nn +pn +iT +iT +yC +aD +aD +aD +rx +iT +aD +iy +iT +aD +pn +yC +dk +yC +yC +CH +fK +fK +fK +fK +fK +fK +fK +VN +"} +(44,1,1) = {" +VN +fK +fK +aD +nn +aD +nn +nn +yC +oT +yC +nn +aD +aD +aD +fm +fm +aD +nn +nn +nn +nn +aD +oT +yC +nn +aD +KE +Qh +PX +PX +PX +Sm +uk +DM +PX +tw +Zk +yC +aD +nn +aD +nn +nn +nn +aD +yC +aD +aD +pn +pn +aD +aD +aD +aD +iT +aD +aD +aD +aD +aD +kd +yC +yC +yC +yC +CH +fK +fK +fK +fK +fK +fK +fK +VN +"} +(45,1,1) = {" +VN +fK +fK +aD +aD +Jr +Gt +nn +yC +yC +yC +nn +aD +aD +fm +Fm +fm +yC +yC +yC +rx +wT +yC +yC +yC +nn +aD +aZ +PM +PX +KR +TF +YH +aj +tw +PX +PM +rW +CH +aD +yC +yC +yC +aD +aD +aD +aD +pn +aD +aD +Jr +iT +nn +nn +aD +yC +aD +yC +yC +aD +yC +yC +yC +AP +dk +yC +CH +fK +fK +fK +fK +fK +fK +fK +VN +"} +(46,1,1) = {" +VN +fK +fK +fK +nn +aD +aD +nn +yC +AP +yC +aD +aD +wT +fm +oT +oT +yC +yC +yC +nn +nn +aD +yC +yC +nn +KE +aZ +PX +PX +tw +Sm +uk +aj +tw +PX +wq +aD +aD +aD +yC +yC +yC +yC +aD +nn +aD +kd +nn +aD +pn +aD +aD +pn +aD +aD +yC +yC +yC +yC +yC +yC +yC +yC +yC +yC +aD +fK +fK +fK +fK +fK +fK +fK +VN +"} +(47,1,1) = {" +VN +fK +fK +fK +nn +aD +nn +aD +nn +aD +aD +aD +aD +yC +yC +yC +yC +yC +yC +yC +aD +aD +Fm +aD +aD +bG +aD +Vt +PX +PM +Ik +uk +uk +ph +PX +Es +yC +iT +iy +yC +aD +yC +aD +Fm +av +aD +pn +pn +pn +nn +aD +aD +iT +iT +pn +nn +nn +nn +rx +nn +yC +yC +yC +yC +yC +yC +iT +fK +fK +fK +fK +fK +fK +fK +VN +"} +(48,1,1) = {" +VN +fK +fK +fK +nn +aD +aD +kd +pn +aD +aD +aD +rx +nn +nn +AP +yC +yC +yC +oT +yC +aD +aD +nn +nn +aD +yC +PA +PX +Ik +uk +uk +aj +PX +PX +Zk +yC +aD +iT +yC +yC +yC +aD +iT +pn +nn +aD +aD +nn +aD +aD +nn +aD +Fm +iT +aD +aD +aD +fm +fm +nn +nn +yC +yC +yC +AP +iT +fK +fK +fK +fK +fK +fK +fK +VN +"} +(49,1,1) = {" +VN +fK +fK +CH +nn +aD +pn +pn +aD +aD +nn +aD +pn +aD +nn +nn +yC +yC +yC +Fm +fm +fm +aD +aD +aD +yC +aZ +PX +PX +bI +uk +YH +aj +PM +FC +aD +aD +aD +aD +yC +aD +yC +yC +yC +aD +aD +aD +nn +aD +aD +aD +aD +pn +iT +aD +aD +aD +yC +CH +aD +aD +nn +nn +yC +aD +iT +pn +fK +fK +fK +fK +fK +fK +fK +VN +"} +(50,1,1) = {" +VN +fK +fK +nn +aD +aD +aD +yC +yC +CH +aD +nn +aD +aD +aD +pn +nn +nn +nn +fm +fm +aD +aD +aD +Fm +yC +aZ +PX +PM +bI +uk +uk +ph +PM +Zk +yC +Mh +fm +aD +yC +aD +yC +yC +yC +aD +yC +aD +aD +yC +aD +Mh +fm +aD +pn +aD +aD +yr +yC +aD +pn +pn +aD +nn +nn +nn +aD +aD +aD +fK +fK +fK +fK +fK +fK +VN +"} +(51,1,1) = {" +VN +fK +fK +No +aD +aD +nn +yC +AP +aD +aD +aD +iT +aD +aD +iy +pn +aD +aD +aD +aD +nn +aD +aD +yC +yC +aZ +PX +PM +bI +uk +aj +PX +PX +Zk +yC +fm +fm +fm +aD +KE +yC +yC +yC +aD +nn +Jr +yC +yC +yC +fm +fm +Mh +Jr +yC +aD +yC +yC +LN +fm +kd +fm +aD +kd +aD +aD +aD +aD +fK +fK +fK +fK +fK +fK +VN +"} +(52,1,1) = {" +VN +fK +fK +nn +aD +aD +nn +nn +nn +aD +aD +aD +Fm +Gt +nn +nn +aD +aD +nn +aD +HT +aD +aD +iT +aD +yC +aZ +PX +PM +bI +uk +aj +tw +PX +DT +vS +rO +rO +rO +sx +aD +KE +KE +aD +KE +sx +sx +vS +vS +vS +rO +uA +fm +aD +yC +aD +yC +yC +nn +fm +fm +aD +aD +aD +nn +pn +nn +fm +nn +fK +fK +fK +fK +fK +VN +"} +(53,1,1) = {" +VN +fK +fK +nn +nn +RL +aD +aD +aD +aD +aD +aD +aD +yC +nn +nn +nn +aD +Jr +HT +yC +yC +aD +Fm +iT +yC +aZ +PX +PX +bI +uk +aj +PX +PM +PM +PM +tw +tw +tw +PX +Se +kM +kM +aD +PA +PX +tw +PX +PM +tw +PX +PX +lF +vS +yC +yC +KE +aD +bG +aD +aD +nn +aD +aD +aD +aD +RL +fm +nn +fK +fK +fK +fK +fK +VN +"} +(54,1,1) = {" +VN +fK +fK +fK +nn +nn +aD +Fm +CH +bG +aD +HT +HT +HT +aD +HT +aD +HT +aD +aD +yC +yC +fm +fm +fm +aD +Vt +PM +tw +BR +uk +uk +An +An +ep +PX +PX +PM +PM +PX +PX +PX +PX +fZ +PM +PX +PX +PM +PM +PM +PX +PX +PX +PX +QM +vS +sx +KE +yC +KE +aD +nn +aD +nn +fm +aD +fm +nn +nn +nn +fK +fK +fK +fK +VN +"} +(55,1,1) = {" +VN +fK +fK +fK +nn +nn +aD +aD +iT +aD +HT +HT +HT +HT +HT +aD +yC +aD +aD +nn +aD +aD +yC +aD +aD +fm +hH +PX +PX +PM +jc +uk +uk +uk +uk +An +oJ +TF +TF +vF +PM +PM +tw +PX +tw +PX +Ik +An +An +ep +PM +PX +tw +tw +PM +PM +PX +xw +aD +KE +yC +nn +aD +aD +kd +fm +CH +No +nn +nn +fK +fK +fK +fK +VN +"} +(56,1,1) = {" +VN +fK +fK +fK +fK +aD +aD +aD +Fm +iT +HT +HT +HT +HT +HT +HT +aD +aD +Fm +fm +aD +nn +aD +nn +aD +fm +fm +tM +PX +PX +br +YH +uk +uk +Jv +uk +uk +YH +YH +sZ +PM +PM +PX +SK +Ik +An +uk +uk +uk +uk +oJ +ep +tw +tw +tw +PX +PM +Zk +yC +yC +aD +KE +aD +aD +fm +No +CH +CH +fK +fK +fK +fK +fK +fK +VN +"} +(57,1,1) = {" +VN +fK +fK +fK +fK +yC +yC +yC +aD +HT +HT +HT +zr +HT +HT +HT +aD +aD +fm +fm +fm +aD +aD +iT +fm +aD +fm +Mh +rj +PX +cZ +lN +YH +uk +uk +uk +uk +uk +uk +YH +oJ +oJ +An +An +uk +uk +uk +uk +uk +uk +uk +uk +An +ep +PM +PX +PM +QM +yC +yC +aD +nn +nn +nn +aD +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(58,1,1) = {" +VN +fK +fK +fK +fK +yC +yC +yr +aD +aD +HT +HT +HT +HT +HT +HT +aD +aD +nn +nn +aD +nn +iT +iy +fm +aD +yC +yC +Vt +PX +PX +PM +nE +jq +jq +jq +jq +jq +uk +uk +uk +jq +uk +uk +uk +uk +jq +tZ +tZ +jq +uk +uk +uk +uk +ep +PX +NY +tw +rW +aD +aD +nn +nn +nn +aD +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(59,1,1) = {" +VN +fK +fK +fK +fK +yC +yC +yC +yC +yC +aD +HT +HT +HT +HT +aD +aD +aD +yC +AP +yC +nn +aD +iT +aD +nn +yC +yC +aD +rj +PX +PM +PM +PX +PM +PM +PM +tw +BR +uk +aj +st +bI +uk +jq +ph +PX +tw +PM +PM +BR +uk +uk +uk +aj +PM +PX +PM +Bn +yC +CH +CH +CH +aD +nn +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(60,1,1) = {" +VN +fK +fK +fK +fK +AP +LN +yC +yC +oT +HT +HT +aD +pn +pn +HT +aD +yC +yC +yC +yC +nn +Fm +aD +nn +nn +yC +yC +nn +aD +rj +PX +PX +SW +PM +PM +PM +PM +PX +BR +jq +Rs +tZ +ph +PX +PX +PX +PM +tw +PX +PM +vN +YH +uk +uk +IQ +PM +PX +PM +Zk +dk +dk +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(61,1,1) = {" +VN +fK +fK +fK +fK +fm +aD +yC +oT +Fm +iT +aD +nn +pn +aD +aD +aD +yr +yC +yC +yC +nn +fm +aD +nn +nn +nn +AP +yC +yC +aD +QA +QA +kG +PX +PM +tw +PX +NY +PX +PM +PM +PM +PX +PX +PX +PX +PX +wq +IC +PM +vN +Jw +uk +uk +kj +PM +PX +PX +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(62,1,1) = {" +VN +fK +fK +fK +fK +CH +aD +aD +aD +aD +aD +iy +iT +aD +HT +yC +fm +fm +fm +aD +aD +pn +fm +aD +aD +nn +nn +yC +yC +yC +iT +aD +KE +KE +bd +bd +YY +IC +PM +PM +PX +PX +PX +Es +YY +YY +bd +bd +aD +aZ +PM +cZ +or +YH +uk +uk +An +vF +PX +SK +SK +bU +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(63,1,1) = {" +VN +fK +fK +fK +fK +fK +nn +aD +aD +yC +yC +yC +yC +Fm +aD +aD +aD +nn +AP +aD +aD +pn +Fm +iT +CH +aD +nn +nn +nn +RL +nn +aD +yC +yC +yC +nn +yC +yC +bd +YY +YY +YY +cL +yC +yC +yC +yC +aD +KE +kG +PX +PM +PM +Sm +uk +uk +uk +kj +PM +PX +BS +JF +cS +JF +JF +JF +JF +JF +fK +fK +fK +fK +fK +fK +VN +"} +(64,1,1) = {" +VN +fK +fK +fK +fK +fK +nn +aD +aD +yC +yC +yC +aD +nn +nn +nn +fm +aD +nn +aD +yC +aD +iT +fm +nn +aD +aD +aD +aD +yC +aD +aD +yC +yC +aD +nn +yC +yC +aD +yC +yC +yC +fm +fm +Mh +fm +aD +KE +KE +KE +rj +PX +PX +BR +jq +jq +jq +uk +An +An +uk +uk +uk +uk +JF +JF +JF +JF +fK +fK +fK +fK +fK +fK +VN +"} +(65,1,1) = {" +VN +fK +fK +fK +fK +fK +nn +aD +aD +aD +AP +iT +aD +nn +nn +nn +Fm +iT +nn +yC +yC +yC +yC +aD +aD +fm +fm +fm +aD +aD +aD +fm +nn +nn +aD +aD +aD +aD +Fm +fm +fm +fm +yC +yC +aD +Jr +fm +aD +aD +yC +aZ +PM +PX +PM +PM +PX +PX +bI +uk +uk +uk +uk +uk +YH +JF +JF +EW +JF +JF +JF +JF +fK +fK +fK +VN +"} +(66,1,1) = {" +VN +fK +fK +fK +fK +fK +RL +Gt +aD +aD +iT +aD +pn +nn +nn +nn +iT +fm +nn +yC +yC +yC +yC +aD +aD +aD +Fm +nn +nn +nn +aD +aD +Fm +fm +aD +nn +nn +fm +fm +fm +aD +fm +yC +yC +aD +aD +uh +yC +CH +yC +yC +fK +PX +PX +PX +PX +tw +BR +uk +YH +YH +uk +uk +uk +uk +uk +JF +JF +JF +EW +JF +fK +fK +fK +VN +"} +(67,1,1) = {" +VN +fK +fK +fK +fK +fK +wT +nn +aD +CH +aD +aD +iy +fm +aD +nn +yC +nn +yC +yC +yC +AP +yC +yC +nn +aD +fm +nn +nn +nn +aD +aD +fm +fm +aD +Fm +aD +aD +aD +nn +nn +aD +aD +aD +Fm +fm +yC +yC +fK +fK +fK +fK +fK +fK +fK +SK +PX +PX +Vi +JF +JF +JF +Jv +uk +uk +uk +YH +YH +uk +uk +uk +JF +fK +fK +VN +"} +(68,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +CH +aD +aD +iT +aD +aD +kd +yC +yC +AP +yC +yC +yC +yC +uh +yC +nn +aD +aD +nn +nn +nn +nn +aD +nn +CH +CH +nn +nn +nn +CH +nn +nn +aD +aD +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +SK +PX +SK +bU +JF +JF +JF +JF +YH +uk +uk +uk +uk +uk +uk +uk +fK +fK +VN +"} +(69,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +nn +aD +nn +rx +iT +aD +aD +yC +yC +LN +yC +yC +dk +yC +yC +yC +nn +aD +aD +nn +RL +nn +nn +aD +aD +No +No +nn +nn +No +CH +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +JF +EW +JF +JF +JF +JF +uk +uk +uk +uk +uk +Jv +uk +uk +fK +VN +"} +(70,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +lh +iT +iT +iT +CH +aD +aD +nn +rx +LN +yC +yC +yC +yC +yC +aD +Fm +aD +aD +CH +CH +aD +aD +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +JF +JF +JF +JF +JF +JF +JF +JF +JF +fK +uk +uk +uk +uk +fK +VN +"} +(71,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +aD +nn +wT +fm +CH +nn +wT +nn +nn +aD +aD +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +cS +JF +JF +JF +JF +fK +fK +fK +fK +fK +fK +VN +"} +(72,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(73,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(74,1,1) = {" +VN +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +fK +VN +"} +(75,1,1) = {" +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +VN +"} diff --git a/_maps/virtual_domains/hierophant.dmm b/_maps/virtual_domains/hierophant.dmm index 997dfa74faceb..89035dc714910 100644 --- a/_maps/virtual_domains/hierophant.dmm +++ b/_maps/virtual_domains/hierophant.dmm @@ -9,6 +9,10 @@ }, /turf/open/indestructible/hierophant/two, /area/lavaland/surface/outdoors/virtual_domain) +"g" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/lavaland/surface/outdoors/virtual_domain) "h" = ( /obj/effect/light_emitter{ set_cap = 3; @@ -33,9 +37,6 @@ "w" = ( /turf/template_noop, /area/virtual_domain/safehouse) -"y" = ( -/turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) "E" = ( /mob/living/simple_animal/hostile/megafauna/hierophant, /turf/open/indestructible/hierophant/two, @@ -59,55 +60,54 @@ /turf/open/indestructible/hierophant, /area/lavaland/surface/outdoors/virtual_domain) "W" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/lavaland/surface/outdoors/virtual_domain) +/area/virtual_domain/fullbright) "Y" = ( /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, /area/lavaland/surface/outdoors/virtual_domain) (1,1,1) = {" -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W o o -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W W "} (2,1,1) = {" -y +W r r r @@ -131,11 +131,10 @@ r r r r -y +W o o -y -Y +W Y Y Y @@ -144,10 +143,11 @@ Y Y Y Y -y +g +W "} (3,1,1) = {" -y +W r a a @@ -171,10 +171,10 @@ a a a r -y +W o o -y +W Y Y Y @@ -184,10 +184,10 @@ Y Y Y Y -y +W "} (4,1,1) = {" -y +W r a a @@ -211,10 +211,10 @@ a a a r -y -y -y -y +W +W +W +W Y Y Y @@ -224,10 +224,10 @@ Y Y Y Y -y +W "} (5,1,1) = {" -y +W r a a @@ -253,8 +253,8 @@ a a r r -y -y +W +W Y Y Y @@ -264,10 +264,10 @@ Y Y Y Y -y +W "} (6,1,1) = {" -y +W r a h @@ -294,7 +294,7 @@ a a a r -y +W Y Y Y @@ -304,10 +304,10 @@ Y Y Y Y -y +W "} (7,1,1) = {" -y +W r a h @@ -344,10 +344,10 @@ Y Y Y Y -y +W "} (8,1,1) = {" -y +W r a a @@ -384,10 +384,10 @@ Y Y Y Y -y +W "} (9,1,1) = {" -y +W r a a @@ -411,7 +411,7 @@ a a a r -y +W r S a @@ -424,10 +424,10 @@ Y Y Y Y -y +W "} (10,1,1) = {" -y +W r a a @@ -451,8 +451,8 @@ a a a r -y -y +W +W r a a @@ -464,10 +464,10 @@ w w H Y -y +W "} (11,1,1) = {" -y +W r a r @@ -491,9 +491,9 @@ a r a r -y -y -y +W +W +W r a a @@ -504,10 +504,10 @@ w w w Y -y +W "} (12,1,1) = {" -y +W r a a @@ -531,9 +531,9 @@ a a a r -y -y -y +W +W +W r a a @@ -544,10 +544,10 @@ w w w Y -y +W "} (13,1,1) = {" -y +W r h a @@ -571,9 +571,9 @@ a a h r -y -y -y +W +W +W r a a @@ -584,10 +584,10 @@ w w w Y -y +W "} (14,1,1) = {" -y +W r a a @@ -611,9 +611,9 @@ a a a r -y -y -y +W +W +W r a a @@ -624,10 +624,10 @@ w w w Y -y +W "} (15,1,1) = {" -y +W r a r @@ -651,9 +651,9 @@ a r a r -y -y -y +W +W +W r a a @@ -664,10 +664,10 @@ w w w Y -y +W "} (16,1,1) = {" -y +W r a a @@ -691,8 +691,8 @@ a a a r -y -y +W +W r a a @@ -704,10 +704,10 @@ w w u Y -y +W "} (17,1,1) = {" -y +W r a a @@ -731,7 +731,7 @@ a a a r -y +W r a a @@ -744,10 +744,10 @@ Y Y Y Y -y +W "} (18,1,1) = {" -y +W r a a @@ -784,10 +784,10 @@ Y Y Y Y -y +W "} (19,1,1) = {" -y +W r a h @@ -824,10 +824,10 @@ Y Y Y Y -y +W "} (20,1,1) = {" -y +W r a h @@ -854,7 +854,7 @@ a a a r -y +W Y Y Y @@ -864,10 +864,10 @@ Y Y Y Y -y +W "} (21,1,1) = {" -y +W r a a @@ -893,8 +893,8 @@ a a r r -y -y +W +W Y Y Y @@ -904,10 +904,10 @@ Y Y Y Y -y +W "} (22,1,1) = {" -y +W r a a @@ -931,10 +931,10 @@ a a a r -y -y -y -y +W +W +W +W Y Y Y @@ -944,10 +944,10 @@ Y Y Y Y -y +W "} (23,1,1) = {" -y +W r a a @@ -971,10 +971,10 @@ a a a r -y +W o o -y +W Y Y Y @@ -984,10 +984,10 @@ Y Y Y Y -y +W "} (24,1,1) = {" -y +W r r r @@ -1011,10 +1011,10 @@ r r r r -y +W o o -y +W Y Y Y @@ -1024,45 +1024,45 @@ Y Y Y Y -y +W "} (25,1,1) = {" -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W +W o o -y -y -y -y -y -y -y -y -y -y -y +W +W +W +W +W +W +W +W +W +W +W "} diff --git a/_maps/virtual_domains/island_brawl.dmm b/_maps/virtual_domains/island_brawl.dmm index 2c8a12c6c5793..62a63f81bab2e 100644 --- a/_maps/virtual_domains/island_brawl.dmm +++ b/_maps/virtual_domains/island_brawl.dmm @@ -442,6 +442,10 @@ /obj/machinery/food_cart, /turf/open/floor/plating, /area/virtual_domain) +"eZ" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/water/beach, +/area/virtual_domain/fullbright) "fe" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -1145,10 +1149,6 @@ }, /turf/open/floor/wood/large, /area/virtual_domain) -"oX" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/virtual_domain/fullbright) "oZ" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/siding/wood{ @@ -2540,7 +2540,7 @@ /area/virtual_domain) "GD" = ( /obj/effect/landmark/bitrunning/permanent_exit, -/turf/open/floor/bitrunning_transport, +/turf/open/indestructible/bitrunning_transport, /area/virtual_domain/protected_space/fullbright) "GI" = ( /turf/open/floor/iron/dark/textured_large, @@ -3416,7 +3416,7 @@ /turf/open/floor/wood/parquet, /area/virtual_domain) "QX" = ( -/obj/machinery/vending/boozeomat/all_access{ +/obj/machinery/vending/boozeomat{ desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one. May not work for bartenders that don't have Nanotrasen bank accounts." }, /turf/open/floor/wood/large, @@ -3466,12 +3466,7 @@ /area/virtual_domain/fullbright) "Rk" = ( /obj/structure/table/glass, -/obj/machinery/fax{ - fax_name = "Beach Hotel Fax"; - name = "Beach Hotel's Fax Machine"; - pixel_y = 8; - visible_to_network = 0 - }, +/obj/item/storage/box/donkpockets, /turf/open/floor/iron/dark/diagonal, /area/virtual_domain) "Rs" = ( @@ -3813,7 +3808,7 @@ /turf/open/floor/iron/dark/diagonal, /area/virtual_domain) "Uk" = ( -/obj/machinery/vending/autodrobe/all_access, +/obj/machinery/vending/autodrobe, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) "Um" = ( @@ -5695,7 +5690,7 @@ SR SR SR SR -oX +SR "} (19,1,1) = {" SR @@ -5776,7 +5771,7 @@ cO cO cO cO -cO +eZ SR "} (20,1,1) = {" diff --git a/_maps/virtual_domains/meta_central.dmm b/_maps/virtual_domains/meta_central.dmm new file mode 100644 index 0000000000000..2fc87ae17c818 --- /dev/null +++ b/_maps/virtual_domains/meta_central.dmm @@ -0,0 +1,8434 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ab" = ( +/obj/machinery/newscaster/directional/west, +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = -4 + }, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/carpet, +/area/virtual_domain) +"ac" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Command Hallway" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ai" = ( +/obj/structure/broken_flooring/corner/always_floorplane/directional/south, +/turf/open/floor/plating, +/area/virtual_domain) +"an" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Showroom Shutters" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"as" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + name = "Showroom Shutters" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"at" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/item/storage/box/mothic_rations{ + pixel_y = -9; + pixel_x = 6 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"au" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/toy/figure/detective{ + pixel_y = 13 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"av" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"aw" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor/right/directional/north{ + name = "Head of Personnel's Desk"; + req_access = list("hop") + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ay" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/item/surgicaldrill, +/turf/open/indestructible/meat, +/area/virtual_domain) +"aA" = ( +/obj/item/restraints/legcuffs/beartrap/prearmed, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"aC" = ( +/obj/structure/fluff/paper/stack, +/turf/open/floor/iron, +/area/virtual_domain) +"aO" = ( +/obj/structure/toilet{ + pixel_y = 13 + }, +/obj/machinery/light/directional/south, +/obj/machinery/light_switch/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/virtual_domain) +"aQ" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/effect/decal/cleanable/food/egg_smudge, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"aT" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate, +/turf/open/floor/plating, +/area/virtual_domain) +"aV" = ( +/obj/structure/flora/bush/large/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"aZ" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/robot_debris/limb, +/obj/machinery/exoscanner, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron, +/area/virtual_domain) +"ba" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"bb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/spawner/random/trash, +/turf/open/floor/iron, +/area/virtual_domain) +"bd" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "floor4" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"bf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "floor7" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"bg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = 9; + pixel_y = 2 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"bl" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/status_display/evac/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"bm" = ( +/obj/item/clothing/mask/surgical, +/obj/effect/mob_spawn/corpse/human/doctor, +/turf/open/indestructible/meat, +/area/virtual_domain) +"br" = ( +/obj/effect/spawner/random/decoration/showcase, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/carpet, +/area/virtual_domain) +"bs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/assembly/flash, +/turf/open/floor/iron, +/area/virtual_domain) +"bu" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/bonfire/prelit, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"bw" = ( +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"bO" = ( +/obj/structure/bed/maint, +/obj/item/bedsheet/pirate, +/turf/open/floor/carpet, +/area/virtual_domain) +"bP" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L6" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"bQ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/ai_module/malf, +/turf/open/floor/iron, +/area/virtual_domain) +"bR" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"bS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/iron, +/area/virtual_domain) +"bT" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/stock_parts/subspace/filter{ + pixel_x = 15 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"bU" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"bW" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"bZ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/effect/turf_decal/caution/red, +/turf/open/floor/iron, +/area/virtual_domain) +"cj" = ( +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"ck" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "w"; + pixel_y = -15; + pixel_x = -17 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "e"; + pixel_y = -16; + pixel_x = -2 + }, +/obj/effect/decal/cleanable/blood{ + pixel_y = -13 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"cp" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/holosign/barrier, +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/iron, +/area/virtual_domain) +"cr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/virtual_domain) +"cw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = -4; + pixel_y = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"cx" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/kirbyplants/organic/plant16, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"cz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"cB" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt, +/obj/effect/spawner/random/trash/bin, +/turf/open/floor/iron, +/area/virtual_domain) +"cC" = ( +/obj/structure/sign/map/left{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-left-MS"; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"cD" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/bin, +/turf/open/floor/wood, +/area/virtual_domain) +"cF" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"cH" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/structure/flora/bush/large/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"cI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = 5; + pixel_y = 7 + }, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron, +/area/virtual_domain) +"cK" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/obj/structure/railing, +/turf/open/floor/iron, +/area/virtual_domain) +"cN" = ( +/obj/structure/sign/departments/court/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/barricade/security, +/turf/open/floor/iron, +/area/virtual_domain) +"cO" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/item/trash/fleet_ration, +/obj/effect/decal/cleanable/food/egg_smudge, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"cW" = ( +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/virtual_domain) +"cZ" = ( +/obj/machinery/button/door/directional/west{ + name = "Privacy Shutters Control" + }, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"db" = ( +/turf/open/floor/carpet, +/area/virtual_domain) +"dc" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/virtual_domain) +"dd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"di" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"dk" = ( +/obj/machinery/button/door/directional/south{ + name = "E.V.A. Storage Shutter Control" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/suit_storage_unit/void_old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"dl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash, +/turf/open/floor/iron, +/area/virtual_domain) +"dz" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/structure/bed/dogbed/ian, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/wood, +/area/virtual_domain) +"dA" = ( +/obj/structure/holosign/barrier/medical, +/turf/closed/indestructible/fakedoor, +/area/virtual_domain) +"dC" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"dD" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"dE" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/virtual_domain) +"dP" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 4 + }, +/obj/structure/sign/directions/command{ + pixel_y = -8 + }, +/turf/closed/wall/r_wall, +/area/virtual_domain) +"dU" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"dX" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/effect/turf_decal/bot, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"dY" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/banner/medical, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"dZ" = ( +/obj/item/storage/belt/utility, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/structure/rack, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/button/door/directional/south{ + name = "Gateway Shutter Control" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ej" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"ek" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"ep" = ( +/obj/structure/table/wood, +/obj/item/storage/briefcase/secure{ + desc = "A large briefcase with a digital locking system, and the Nanotrasen logo emblazoned on the sides."; + name = "\improper Nanotrasen-brand secure briefcase exhibit"; + pixel_y = 2 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"er" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"eu" = ( +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"ey" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"ez" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/obj/item/storage/toolbox/emergency{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/item/wrench, +/obj/item/multitool, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/incident_display/delam/directional/south, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"eA" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/bookcase/random, +/obj/machinery/light/broken/directional/west, +/turf/open/floor/iron, +/area/virtual_domain) +"eB" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"eD" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L3" + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/iron, +/area/virtual_domain) +"eG" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"eN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"eR" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/computer/old{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"eV" = ( +/obj/machinery/light/directional/west, +/obj/structure/table, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = -4; + pixel_y = 6 + }, +/obj/item/grenade/chem_grenade/smart_metal_foam{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"eX" = ( +/obj/structure/meateor_fluff/abandoned_headcrab_egg, +/turf/open/indestructible/meat, +/area/virtual_domain) +"eZ" = ( +/obj/structure/meateor_fluff/eyeball, +/obj/effect/mob_spawn/corpse/human/doctor, +/turf/open/indestructible/meat, +/area/virtual_domain) +"fc" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/barricade/sandbags, +/obj/structure/railing, +/turf/open/floor/iron, +/area/virtual_domain) +"fh" = ( +/turf/open/floor/plating, +/area/virtual_domain) +"fj" = ( +/obj/structure/closet/crate/cargo, +/obj/effect/spawner/random/maintenance/no_decals/seven, +/turf/open/floor/iron, +/area/virtual_domain) +"fn" = ( +/obj/item/camera/detective{ + pixel_y = 4; + pixel_x = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"fr" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"fz" = ( +/obj/machinery/pdapainter{ + pixel_y = 2 + }, +/obj/machinery/requests_console/directional/north{ + department = "Head of Personnel's Desk"; + name = "Head of Personnel's Requests Console" + }, +/turf/open/floor/wood, +/area/virtual_domain) +"fB" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/virtual_domain) +"fC" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/screwdriver, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 16; + icon_state = "candle2_lit"; + pixel_x = 17 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"fD" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/armory/laser_gun, +/turf/template_noop, +/area/virtual_domain/safehouse) +"fF" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"fG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/decal/cleanable/glass, +/obj/item/clothing/head/costume/party, +/turf/open/floor/iron, +/area/virtual_domain) +"fK" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/virtual_domain) +"fN" = ( +/obj/structure/sign/directions/science{ + pixel_y = -8 + }, +/obj/structure/sign/directions/medical{ + pixel_y = 8 + }, +/obj/structure/sign/directions/evac, +/turf/closed/wall/r_wall, +/area/virtual_domain) +"fP" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"fQ" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"gb" = ( +/obj/structure/flora/rock/pile/jungle, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"ge" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/structure/flora/tree/jungle/small/style_4, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"gg" = ( +/obj/item/storage/medkit/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"gj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron, +/area/virtual_domain) +"gk" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/fluff/paper/stack, +/obj/item/flashlight/lamp/green, +/turf/open/floor/iron, +/area/virtual_domain) +"gt" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"gC" = ( +/obj/item/kirbyplants/synthetic, +/turf/open/floor/plating, +/area/virtual_domain) +"gE" = ( +/turf/open/floor/wood, +/area/virtual_domain) +"gM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/bodypart/head/robot, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/digital_clock/directional/north, +/obj/item/knife/combat/cyborg{ + pixel_x = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"gU" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/carpet, +/area/virtual_domain) +"hb" = ( +/obj/structure/table/wood, +/obj/item/camera{ + pixel_y = 4 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/carpet, +/area/virtual_domain) +"hc" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron, +/area/virtual_domain) +"hd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"hg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/holosign/barrier, +/turf/open/floor/iron, +/area/virtual_domain) +"hh" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/carpet, +/area/virtual_domain) +"hi" = ( +/obj/structure/broken_flooring/pile/directional/west, +/obj/structure/holosign/barrier, +/turf/open/floor/plating, +/area/virtual_domain) +"hj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Command Hallway" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"hp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ht" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/obj/effect/spawner/random/trash, +/turf/open/floor/iron, +/area/virtual_domain) +"hv" = ( +/obj/structure/bed/medical/emergency, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/vending/wallmed/directional/west, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/iron, +/area/virtual_domain) +"hw" = ( +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/iron, +/area/virtual_domain) +"hz" = ( +/obj/structure/reagent_dispensers/wall/virusfood/directional/south, +/obj/structure/meateor_fluff/eyeball, +/turf/open/indestructible/meat, +/area/virtual_domain) +"hF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/iron, +/area/virtual_domain) +"hG" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Gateway Chamber" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"hR" = ( +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"hU" = ( +/obj/structure/frame/computer, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"hV" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/closet/crate/secure/syndicrate, +/turf/open/floor/iron, +/area/virtual_domain) +"hX" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"hZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/virtual_domain) +"id" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"ie" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/virtual_domain) +"ii" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/holosign/barrier/atmos, +/turf/open/floor/plating, +/area/virtual_domain) +"il" = ( +/obj/structure/table, +/obj/machinery/newscaster/directional/north, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"im" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/turf/open/indestructible/meat, +/area/virtual_domain) +"iv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/plating, +/area/virtual_domain) +"ix" = ( +/obj/item/trash/fleet_ration, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"iy" = ( +/obj/machinery/holopad, +/turf/open/floor/iron, +/area/virtual_domain) +"iA" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/large/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"iH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/item/trash/can, +/turf/open/floor/carpet, +/area/virtual_domain) +"iI" = ( +/obj/structure/closet/crate, +/obj/item/stack/cable_coil, +/obj/item/crowbar, +/obj/item/screwdriver{ + pixel_y = 16 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"iK" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"iP" = ( +/obj/effect/decal/cleanable/food/flour, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"iQ" = ( +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/structure/table, +/obj/item/stack/sheet/plasteel{ + amount = 10 + }, +/obj/machinery/airalarm/directional/west, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/crowbar, +/obj/item/wrench, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"iY" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/status_display/evac/directional/east, +/obj/item/stock_parts/subspace/crystal{ + pixel_y = -12; + pixel_x = 6 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"iZ" = ( +/obj/item/storage/box/mothic_rations{ + pixel_y = -7 + }, +/obj/effect/decal/cleanable/food/tomato_smudge, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"ja" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"jc" = ( +/obj/item/shard, +/turf/open/floor/carpet, +/area/virtual_domain) +"jd" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/neutral, +/obj/item/chair{ + dir = 1 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"jh" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/wood, +/area/virtual_domain) +"jk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/virtual_domain) +"jm" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/clothing/mask/facehugger/dead, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"jt" = ( +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"jx" = ( +/obj/effect/turf_decal/siding/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/dark/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "med" + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"jy" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/computer/old{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/wood, +/area/virtual_domain) +"jz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"jC" = ( +/obj/item/ammo_box/magazine/wt550m9, +/turf/open/floor/plating, +/area/virtual_domain) +"jD" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/egg/burst, +/turf/open/floor/plating, +/area/virtual_domain) +"jF" = ( +/obj/machinery/holopad/secure, +/obj/item/storage/box/lethalshot{ + pixel_y = 7 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"jG" = ( +/obj/machinery/light_switch/directional/east, +/obj/structure/table/glass, +/obj/item/clothing/head/utility/chefhat{ + pixel_x = 6; + pixel_y = 11 + }, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"jR" = ( +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"kc" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/mine/gas/plasma, +/turf/open/floor/wood, +/area/virtual_domain) +"kd" = ( +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron, +/area/virtual_domain) +"kg" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/trash/boritos/red, +/turf/open/floor/carpet, +/area/virtual_domain) +"ki" = ( +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = 2 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"km" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"kn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Vacant Commissary Shutter" + }, +/obj/structure/noticeboard/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"kp" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + name = "Bridge Blast Door" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"kt" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"kv" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "floor4-old" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"kx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/virtual_domain) +"kI" = ( +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron, +/area/virtual_domain) +"kK" = ( +/obj/structure/sign/directions/command{ + dir = 4; + pixel_y = -8 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 4 + }, +/turf/closed/wall, +/area/virtual_domain) +"kM" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "floor4" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"kN" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + name = "E.V.A. Storage Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/virtual_domain) +"kW" = ( +/obj/structure/table, +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"lb" = ( +/obj/item/stack/sheet/iron, +/turf/open/floor/iron, +/area/virtual_domain) +"ld" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Vacant Commissary Shutter" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"lk" = ( +/obj/item/grenade/c4/x4, +/turf/open/floor/plating, +/area/virtual_domain) +"lt" = ( +/obj/machinery/camera/motion/directional/east{ + c_tag = "E.V.A. Storage" + }, +/obj/machinery/requests_console/directional/east{ + department = "EVA"; + name = "EVA Requests Console" + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"lu" = ( +/obj/structure/chair/stool/directional/east, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"lv" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/pickaxe/rusted, +/turf/open/floor/iron, +/area/virtual_domain) +"lx" = ( +/obj/structure/barricade/sandbags, +/obj/machinery/deployable_turret{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"lC" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Command Hallway" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"lD" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "E.V.A. Storage" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/iron, +/area/virtual_domain) +"lE" = ( +/obj/structure/sign/departments/science, +/turf/closed/wall, +/area/virtual_domain) +"lG" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"lJ" = ( +/obj/item/tank/internals/oxygen, +/obj/effect/decal/cleanable/glass, +/obj/effect/gibspawner/human, +/turf/open/floor/plating, +/area/virtual_domain) +"lK" = ( +/obj/structure/table/wood, +/obj/structure/sign/picture_frame/showroom/one{ + pixel_x = -8; + pixel_y = 32 + }, +/obj/structure/sign/picture_frame/showroom/two{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/item/ammo_casing/shotgun/buckshot/spent, +/turf/open/floor/wood, +/area/virtual_domain) +"lL" = ( +/obj/structure/table, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/hand_labeler, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/window/spawner/directional/south, +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"lM" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L6" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "c"; + pixel_x = -11; + pixel_y = 16 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "o"; + pixel_y = 16; + pixel_x = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"lN" = ( +/obj/item/bodybag{ + pixel_y = 5; + pixel_x = -6 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 9; + pixel_y = -5 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"lQ" = ( +/obj/structure/spacevine{ + can_spread = 0 + }, +/turf/closed/wall, +/area/virtual_domain) +"lT" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/virtual_domain) +"lU" = ( +/obj/structure/fluff/paper/stack, +/obj/structure/marker_beacon/bronze, +/turf/open/floor/plating, +/area/virtual_domain) +"lY" = ( +/obj/machinery/light/directional/east, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"mb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/button/door/directional/south{ + name = "Gateway Shutter Control"; + pixel_y = -34 + }, +/obj/machinery/button/door/directional/south{ + name = "E.V.A. Storage Shutter Control" + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/carpet, +/area/virtual_domain) +"mc" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"mf" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L4" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"mi" = ( +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/structure/rack, +/obj/item/storage/briefcase/secure, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"mj" = ( +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = -13; + pixel_y = 8; + icon_state = "candle3_lit" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"mo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + name = "Showroom Shutters" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/virtual_domain) +"mq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"mt" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"mw" = ( +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 6 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"my" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/computer/records/security/laptop/syndie, +/obj/structure/sign/poster/official/state_laws/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"mI" = ( +/obj/structure/bookcase/random, +/turf/open/floor/iron, +/area/virtual_domain) +"mK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"mO" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/structure/flora/bush/large/style_random, +/obj/structure/spacevine{ + can_spread = 0 + }, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"mP" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/ammo_casing/shotgun/buckshot/spent, +/turf/open/floor/carpet, +/area/virtual_domain) +"mQ" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"mR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"mW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"nq" = ( +/obj/effect/mob_spawn/corpse/human/scientist, +/turf/open/misc/dirt/dark/jungle, +/area/virtual_domain) +"nw" = ( +/obj/structure/punji_sticks/spikes, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"ny" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/light/broken/directional/west, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"nz" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/clothing/head/costume/party, +/turf/open/floor/iron, +/area/virtual_domain) +"nO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"nP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/barricade/sandbags, +/obj/structure/railing, +/turf/open/floor/iron, +/area/virtual_domain) +"nS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"nU" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/sign/departments/aiupload/directional/north, +/obj/effect/decal/cleanable/shreds, +/obj/item/card/emag, +/turf/open/floor/iron, +/area/virtual_domain) +"nW" = ( +/obj/machinery/light_switch{ + pixel_x = 38; + pixel_y = -35 + }, +/obj/machinery/button/flasher{ + pixel_x = 38; + pixel_y = -25 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/bed/maint, +/obj/item/bedsheet/pirate{ + dir = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"nY" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/computer/old{ + dir = 8 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"nZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/fluff/paper/stack{ + dir = 1 + }, +/obj/item/book, +/turf/open/floor/iron, +/area/virtual_domain) +"od" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/leafy, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"ok" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/borg/upgrade/pinpointer, +/turf/open/floor/iron, +/area/virtual_domain) +"ol" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/item/modular_computer/laptop{ + icon_state = "laptop"; + pixel_y = 12; + pixel_x = 2 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"on" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/stack, +/turf/open/floor/iron, +/area/virtual_domain) +"oo" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Gateway Maintenance" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"op" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/effect/turf_decal/siding/dark{ + dir = 5 + }, +/obj/structure/closet/body_bag, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"oy" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"oA" = ( +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/turf/open/floor/iron, +/area/virtual_domain) +"oD" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"oH" = ( +/obj/structure/sign/plaques/kiddie/perfect_man{ + pixel_y = 32 + }, +/obj/effect/spawner/random/decoration/showcase, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"oI" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Corporate Showroom" + }, +/turf/open/floor/wood, +/area/virtual_domain) +"oM" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/carpet, +/area/virtual_domain) +"oO" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/fullupgrade{ + dir = 8 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"oQ" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"oS" = ( +/obj/structure/barricade/sandbags, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"pb" = ( +/obj/item/radio/intercom/directional/north{ + pixel_y = 34 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"pc" = ( +/obj/structure/fluff/paper/stack{ + dir = 9 + }, +/obj/item/book, +/turf/open/floor/iron, +/area/virtual_domain) +"pd" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating, +/area/virtual_domain) +"pr" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/structure/closet/crate/cargo, +/obj/effect/spawner/random/maintenance/no_decals/seven, +/turf/open/floor/iron, +/area/virtual_domain) +"ps" = ( +/turf/closed/wall, +/area/virtual_domain) +"pv" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/item/trash/fleet_ration, +/turf/open/floor/iron, +/area/virtual_domain) +"pA" = ( +/obj/structure/broken_flooring/side/directional/west, +/turf/open/floor/plating, +/area/virtual_domain) +"pB" = ( +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/engineering{ + dir = 4 + }, +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = -8 + }, +/turf/closed/wall, +/area/virtual_domain) +"pD" = ( +/turf/closed/indestructible/fakedoor/maintenance, +/area/virtual_domain) +"pE" = ( +/obj/structure/fluff/paper/stack{ + dir = 10 + }, +/obj/item/flashlight/lamp/green, +/turf/open/floor/iron, +/area/virtual_domain) +"pI" = ( +/obj/effect/decal/cleanable/xenoblood/xgibs/up, +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/virtual_domain) +"pJ" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"pK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/ammo_casing/shotgun/buckshot/spent, +/turf/open/floor/wood, +/area/virtual_domain) +"pL" = ( +/obj/item/extinguisher, +/turf/open/floor/plating, +/area/virtual_domain) +"pN" = ( +/obj/structure/meateor_fluff/eyeball, +/turf/open/indestructible/meat, +/area/virtual_domain) +"pO" = ( +/obj/effect/decal/cleanable/robot_debris/old, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/fluff/paper/stack{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"pP" = ( +/obj/machinery/button/door/directional/north{ + name = "Privacy Shutters Control" + }, +/obj/machinery/computer/old, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood, +/area/virtual_domain) +"pQ" = ( +/obj/machinery/ticket_machine/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"pR" = ( +/obj/structure/broken_flooring/pile/directional/north, +/turf/open/floor/plating, +/area/virtual_domain) +"pT" = ( +/obj/structure/barricade/sandbags, +/obj/machinery/deployable_turret/hmg, +/obj/structure/railing/corner/end/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"pV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"pW" = ( +/obj/structure/alien/weeds, +/obj/item/flamethrower/full/tank, +/turf/open/floor/plating, +/area/virtual_domain) +"pX" = ( +/obj/item/photo/old{ + pixel_y = 14 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"qa" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor5" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"qk" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/carpet, +/area/virtual_domain) +"qq" = ( +/obj/structure/broken_flooring/side/directional/west, +/obj/structure/sign/warning/gas_mask/directional/north, +/turf/open/floor/plating, +/area/virtual_domain) +"qr" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/virtual_domain) +"qu" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/chair{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"qv" = ( +/obj/item/kirbyplants/organic/plant21, +/obj/structure/sign/departments/botany/directional/east, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"qz" = ( +/obj/structure/table/wood, +/obj/machinery/light_switch/directional/west, +/obj/item/storage/briefcase/secure{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/wood, +/area/virtual_domain) +"qI" = ( +/obj/machinery/light/directional/east, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"qJ" = ( +/obj/machinery/light/floor, +/obj/item/stack/sheet/iron, +/turf/open/floor/iron, +/area/virtual_domain) +"qL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/trash/semki/healthy, +/turf/open/floor/iron, +/area/virtual_domain) +"qM" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/effect/decal/cleanable/dirt, +/obj/item/mop, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"qP" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/turf/open/floor/iron, +/area/virtual_domain) +"qS" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/requests_console/directional/east{ + department = "Captain's Desk"; + name = "Captain's Requests Console" + }, +/obj/structure/frame/computer{ + dir = 8 + }, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = 5 + }, +/obj/item/stack/cable_coil/cut, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/wood, +/area/virtual_domain) +"qY" = ( +/obj/item/reagent_containers/cup/bottle/random_virus, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ra" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L13" + }, +/obj/effect/decal/cleanable/crayon/x{ + pixel_x = -6; + pixel_y = -15 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"rb" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"re" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/iron, +/area/virtual_domain) +"rf" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/ammo_casing/spent{ + dir = 9 + }, +/obj/item/ammo_casing/spent{ + dir = 10; + pixel_x = -13; + pixel_y = -8 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating, +/area/virtual_domain) +"rh" = ( +/obj/machinery/light/directional/north, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"rj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"rm" = ( +/obj/structure/lattice, +/obj/effect/decal/cleanable/blood/gibs/torso, +/turf/open/space/basic, +/area/virtual_domain) +"ro" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"rq" = ( +/obj/machinery/vending/cigarette, +/obj/item/gun/ballistic/shotgun/lethal{ + pixel_y = 13 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"rr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/iron, +/area/virtual_domain) +"rs" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"rt" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"rv" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/virtual_domain) +"ry" = ( +/obj/structure/sign/map/left{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-left-MS"; + pixel_y = 32 + }, +/obj/structure/showcase/machinery/tv/broken, +/turf/open/floor/wood, +/area/virtual_domain) +"rz" = ( +/obj/machinery/computer/old{ + dir = 4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"rC" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"rJ" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/carpet, +/area/virtual_domain) +"rO" = ( +/obj/item/disk/nuclear/fake/obvious, +/turf/open/floor/carpet, +/area/virtual_domain) +"rP" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"rQ" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/pen, +/turf/open/floor/wood, +/area/virtual_domain) +"rW" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood, +/area/virtual_domain) +"rX" = ( +/obj/machinery/photocopier, +/turf/open/floor/carpet, +/area/virtual_domain) +"sa" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"sc" = ( +/obj/machinery/cell_charger{ + pixel_y = 4 + }, +/obj/structure/table/glass, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"se" = ( +/obj/effect/mine/explosive/flame, +/turf/open/floor/carpet, +/area/virtual_domain) +"sf" = ( +/obj/effect/turf_decal/tile/blue, +/obj/structure/flora/rock/icy, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"si" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"sm" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/suit_storage_unit/void_old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"sr" = ( +/obj/effect/spawner/random/engineering/flashlight, +/turf/open/floor/plating, +/area/virtual_domain) +"ss" = ( +/obj/item/stock_parts/micro_laser/high, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"st" = ( +/obj/item/seeds/coffee, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"sz" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/safe/floor, +/obj/item/stack/spacecash/c10000, +/obj/item/stack/spacecash/c10000, +/obj/item/stack/spacecash/c10000, +/obj/item/stack/sheet/mineral/gold, +/turf/open/floor/wood, +/area/virtual_domain) +"sA" = ( +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/carpet, +/area/virtual_domain) +"sB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"sF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/storage/briefcase/lawyer, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"sI" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/frame/computer, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"sS" = ( +/obj/structure/lattice, +/obj/structure/marker_beacon/bronze, +/turf/open/space/basic, +/area/virtual_domain) +"sX" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/effect/turf_decal/caution/red, +/obj/item/clothing/suit/caution{ + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"sZ" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/banner/science, +/turf/open/floor/iron, +/area/virtual_domain) +"te" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel" + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"tf" = ( +/obj/effect/rune, +/obj/item/knife/envy, +/turf/open/floor/plating, +/area/virtual_domain) +"th" = ( +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"tj" = ( +/obj/structure/bed/dogbed/renault, +/mob/living/basic/pet/fox, +/obj/item/stack/spacecash/c1000{ + pixel_y = 15; + pixel_x = 5 + }, +/obj/item/storage/briefcase/secure/syndie{ + pixel_y = 13; + pixel_x = -6 + }, +/obj/item/stack/sheet/mineral/diamond{ + pixel_x = 9; + pixel_y = 9 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"tk" = ( +/obj/machinery/button/door/directional/west{ + id = "bridge blast"; + name = "Bridge Access Blast Door Control" + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"tl" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin, +/turf/open/floor/plating, +/area/virtual_domain) +"tn" = ( +/obj/effect/decal/cleanable/xenoblood/xgibs/core, +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/virtual_domain) +"to" = ( +/obj/item/boulder{ + pixel_x = 7; + pixel_y = 9 + }, +/obj/item/boulder{ + icon_state = "rock_medium"; + pixel_x = -12; + pixel_y = 8 + }, +/obj/item/boulder{ + icon_state = "boulder_medium"; + pixel_x = -4; + pixel_y = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"tq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"tu" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"tw" = ( +/obj/structure/flora/rock/pile/jungle, +/obj/effect/mob_spawn/corpse/human/scientist, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"ty" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"tF" = ( +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain) +"tI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/trash/can/food/pine_nuts, +/turf/open/floor/iron, +/area/virtual_domain) +"tM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/crowbar, +/turf/open/floor/iron, +/area/virtual_domain) +"tO" = ( +/obj/structure/sign/directions/evac, +/obj/structure/sign/directions/medical{ + pixel_y = 8 + }, +/obj/structure/sign/directions/science{ + pixel_y = -8 + }, +/turf/closed/wall, +/area/virtual_domain) +"tR" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/iron, +/area/virtual_domain) +"tS" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/iron, +/area/virtual_domain) +"tV" = ( +/obj/structure/table/wood, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/item/folder/blue, +/obj/item/clothing/head/collectable/hop{ + name = "novelty HoP hat" + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"tW" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/mob_spawn/corpse/human/scientist, +/turf/open/misc/dirt/dark/jungle, +/area/virtual_domain) +"ub" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/glass, +/obj/effect/mine/explosive/flame, +/turf/open/floor/plating, +/area/virtual_domain) +"ud" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/trash/cheesie, +/turf/open/floor/iron, +/area/virtual_domain) +"uf" = ( +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/virtual_domain) +"ug" = ( +/obj/structure/holosign/barrier/wetsign, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"uk" = ( +/obj/structure/marker_beacon/bronze, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/virtual_domain) +"ul" = ( +/obj/machinery/door/poddoor/preopen{ + name = "Bridge Blast Door" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"up" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"uq" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/tree/jungle/small/style_4, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"ut" = ( +/obj/structure/sign/directions/engineering{ + dir = 4 + }, +/obj/structure/sign/directions/security{ + dir = 1; + pixel_y = 8 + }, +/obj/structure/sign/directions/command{ + dir = 8; + pixel_y = -8 + }, +/turf/closed/wall, +/area/virtual_domain) +"uw" = ( +/obj/item/clothing/shoes/magboots{ + pixel_x = -4; + pixel_y = 3 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ux" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"uz" = ( +/turf/template_noop, +/area/template_noop) +"uA" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron, +/area/virtual_domain) +"uB" = ( +/turf/closed/indestructible/meat, +/area/virtual_domain) +"uD" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/iron, +/area/virtual_domain) +"uH" = ( +/obj/structure/bookcase, +/turf/open/floor/wood, +/area/virtual_domain) +"uP" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/item/radio/intercom/directional/west, +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = 2 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/carpet, +/area/virtual_domain) +"uS" = ( +/turf/closed/wall/r_wall, +/area/virtual_domain) +"uT" = ( +/obj/structure/mop_bucket/janitorialcart{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"uX" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"uY" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/blood, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/exoscanner, +/obj/effect/turf_decal/bot_red, +/turf/open/floor/iron, +/area/virtual_domain) +"vf" = ( +/obj/structure/broken_flooring/corner/directional/east, +/turf/open/floor/plating, +/area/virtual_domain) +"vg" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/pew/right, +/obj/item/reagent_containers/cup/glass/coffee, +/turf/open/floor/iron, +/area/virtual_domain) +"vi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/book/manual/wiki/detective, +/turf/open/floor/iron, +/area/virtual_domain) +"vn" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"vo" = ( +/obj/effect/turf_decal/tile/bar, +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/iron, +/area/virtual_domain) +"vt" = ( +/obj/machinery/bluespace_beacon, +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/virtual_domain) +"vw" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"vy" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L12" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"vA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/trash/candle, +/turf/open/floor/plating, +/area/virtual_domain) +"vI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/button/door/directional/east{ + name = "Teleporter Shutter Control"; + pixel_y = 5 + }, +/obj/structure/alien/weeds, +/turf/open/floor/iron, +/area/virtual_domain) +"vK" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"vM" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"vN" = ( +/obj/structure/broken_flooring/pile/directional/west, +/turf/open/floor/plating, +/area/virtual_domain) +"vO" = ( +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/iron, +/area/virtual_domain) +"vU" = ( +/obj/machinery/recharger, +/turf/open/floor/plating, +/area/virtual_domain) +"vV" = ( +/obj/structure/chair/comfy/brown{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"vW" = ( +/obj/machinery/light/directional/north, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/iron, +/area/virtual_domain) +"wa" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/trash/popcorn/caramel, +/turf/open/floor/iron, +/area/virtual_domain) +"wi" = ( +/obj/machinery/holopad, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"wj" = ( +/obj/effect/spawner/random/trash/bin, +/turf/open/floor/iron, +/area/virtual_domain) +"wl" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/rock/pile/jungle, +/obj/structure/flora/bush/leavy/style_3, +/obj/structure/flora/tree/jungle/small/style_2, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"wn" = ( +/obj/machinery/light_switch/directional/south, +/obj/structure/table/wood, +/obj/item/razor{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/glass/flask/gold, +/turf/open/floor/carpet, +/area/virtual_domain) +"wo" = ( +/obj/structure/table/wood, +/obj/item/radio/intercom/directional/north, +/obj/machinery/light/small/directional/north, +/obj/machinery/coffeemaker/impressa, +/turf/open/floor/wood, +/area/virtual_domain) +"wq" = ( +/obj/structure/reagent_dispensers/wall/virusfood/directional/south, +/obj/item/clothing/mask/surgical, +/obj/structure/meateor_fluff/abandoned_headcrab_egg, +/turf/open/indestructible/meat, +/area/virtual_domain) +"wu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ww" = ( +/obj/item/knife/shiv/plastitanium, +/turf/open/floor/carpet, +/area/virtual_domain) +"wA" = ( +/obj/structure/table/glass, +/obj/structure/safe, +/obj/item/storage/toolbox/guncase/cqc, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"wB" = ( +/obj/structure/sign/directions/command{ + dir = 1; + pixel_y = -8 + }, +/turf/closed/wall/r_wall, +/area/virtual_domain) +"wD" = ( +/obj/machinery/airalarm/directional/north, +/obj/structure/closet/secure_closet/personal, +/obj/effect/spawner/random/bureaucracy/briefcase, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"wH" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/iron, +/area/virtual_domain) +"wL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/button/door/directional/south{ + name = "Bridge Access Blast Door Control" + }, +/obj/machinery/button/door/directional/south{ + name = "Council Chamber Blast Door Control"; + pixel_y = -34 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"wN" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/plating, +/area/virtual_domain) +"wP" = ( +/obj/structure/sign/directions/medical{ + dir = 8; + pixel_y = 8 + }, +/obj/structure/sign/directions/evac, +/obj/structure/sign/directions/science{ + dir = 4; + pixel_y = -8 + }, +/turf/closed/wall, +/area/virtual_domain) +"wV" = ( +/obj/effect/spawner/random/trash/garbage{ + spawn_scatter_radius = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"wY" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/landmark/bitrunning/cache_spawn, +/obj/machinery/light/broken/directional/north, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"xb" = ( +/obj/structure/sign/map/right{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-right-MS"; + pixel_y = 32 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"xd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"xe" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/plating, +/area/virtual_domain) +"xj" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/iron, +/area/virtual_domain) +"xu" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"xI" = ( +/obj/item/disk/data{ + pixel_x = 9; + pixel_y = -1 + }, +/obj/item/disk/tech_disk{ + pixel_x = -2; + pixel_y = -3 + }, +/obj/item/disk/design_disk{ + name = "component design disk"; + pixel_y = 6 + }, +/obj/structure/table/wood, +/obj/item/toy/talking/ai{ + name = "\improper Nanotrasen-brand toy AI"; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"xK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/iron, +/area/virtual_domain) +"xV" = ( +/obj/machinery/button/door/directional/west{ + name = "Council Chamber Blast Door Control" + }, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"xW" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/glass, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/virtual_domain) +"yc" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"yh" = ( +/obj/structure/chair/office{ + dir = 1; + pixel_x = -11 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"yn" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + name = "E.V.A. Storage Shutter" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"yq" = ( +/obj/structure/filingcabinet/chestdrawer{ + pixel_y = 2; + pixel_x = 7 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"yt" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/grille/broken, +/obj/structure/cable, +/turf/open/floor/plating, +/area/virtual_domain) +"yw" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/item/trash/popcorn, +/turf/open/floor/iron, +/area/virtual_domain) +"yx" = ( +/obj/structure/grille/broken, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/glass, +/obj/effect/mine/explosive/flame, +/turf/open/floor/plating, +/area/virtual_domain) +"yy" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"yz" = ( +/turf/closed/indestructible/fakedoor, +/area/virtual_domain) +"yC" = ( +/obj/structure/showcase/machinery/tv/broken, +/turf/open/floor/carpet, +/area/virtual_domain) +"yD" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"yE" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"yH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"yI" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/bikehorn/rubberducky, +/obj/machinery/light_switch/directional/west, +/obj/structure/window/reinforced/spawner/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"yK" = ( +/obj/effect/turf_decal/tile/purple, +/turf/open/floor/iron, +/area/virtual_domain) +"yM" = ( +/obj/structure/chair/comfy/brown, +/turf/open/floor/wood, +/area/virtual_domain) +"yN" = ( +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/structure/bed/medical/emergency, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/iron, +/area/virtual_domain) +"yO" = ( +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/spacevine{ + can_spread = 0 + }, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"yP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hop"; + name = "Privacy Shutters" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"yT" = ( +/obj/item/seeds/cucumber, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"zb" = ( +/obj/item/clothing/head/costume/party, +/turf/open/floor/plating, +/area/virtual_domain) +"ze" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"zg" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/table/glass, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/suture, +/turf/open/floor/plating, +/area/virtual_domain) +"zj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"zo" = ( +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = -4 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"zq" = ( +/obj/structure/mop_bucket, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"zw" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/trash/ready_donk{ + pixel_y = 10 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"zx" = ( +/obj/structure/grille/broken, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/glass, +/obj/item/stack/rods, +/turf/open/floor/plating, +/area/virtual_domain) +"zA" = ( +/obj/machinery/firealarm/directional/east, +/obj/structure/table/glass, +/obj/item/papercutter, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"zB" = ( +/obj/structure/broken_flooring/side/directional/north, +/obj/effect/decal/cleanable/crayon{ + icon_state = "m"; + pixel_y = 17; + pixel_x = -13 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"zE" = ( +/obj/machinery/holopad, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"zL" = ( +/obj/item/reagent_containers/cup/bottle/random_virus, +/obj/effect/decal/cleanable/blood/gibs/down, +/turf/open/indestructible/meat, +/area/virtual_domain) +"zO" = ( +/obj/item/stack/rods/ten, +/turf/open/floor/plating, +/area/virtual_domain) +"zP" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"zQ" = ( +/obj/item/storage/belt/security/full{ + pixel_x = 8; + pixel_y = -6 + }, +/obj/item/storage/belt/security/full, +/obj/item/storage/belt/security/full{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/structure/table/reinforced, +/turf/template_noop, +/area/virtual_domain/safehouse) +"zR" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"zT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/closet/body_bag, +/turf/open/floor/iron, +/area/virtual_domain) +"Ad" = ( +/obj/item/clothing/head/cone{ + pixel_y = -5; + pixel_x = 7 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Ah" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron, +/area/virtual_domain) +"Ao" = ( +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Ar" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent, +/turf/open/floor/plating, +/area/virtual_domain) +"Ax" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/item/radio/off, +/turf/open/floor/iron, +/area/virtual_domain) +"Ay" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"AA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"AC" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/virtual_domain) +"AD" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/clothing/head/cone{ + pixel_y = 3; + pixel_x = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"AM" = ( +/obj/structure/fluff/paper/stack{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain) +"AN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/clothing/suit/caution{ + pixel_y = -9 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"AP" = ( +/obj/structure/grille, +/obj/item/shard{ + icon_state = "medium"; + pixel_y = -6 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/virtual_domain) +"AQ" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/ammo_casing/spent{ + dir = 10 + }, +/obj/item/ammo_casing/spent{ + dir = 9; + pixel_x = -19; + pixel_y = -5 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"AR" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/storage/medkit/regular{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/iron, +/area/virtual_domain) +"AV" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"AX" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/virtual_domain) +"Bd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/iron, +/area/virtual_domain) +"Bg" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/chair, +/turf/open/floor/iron, +/area/virtual_domain) +"Bh" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Bj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/broken/directional/south, +/obj/item/stack/rods, +/turf/open/floor/iron, +/area/virtual_domain) +"Bn" = ( +/obj/item/ammo_casing/spent, +/turf/open/floor/plating, +/area/virtual_domain) +"Bp" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"Bt" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -1; + pixel_y = 4 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Bv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Bw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"BF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner, +/turf/open/floor/iron, +/area/virtual_domain) +"BJ" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L1" + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"BK" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/obj/machinery/computer/old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"BM" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 6 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"BN" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L14" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"BP" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters" + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"BZ" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/meat, +/area/virtual_domain) +"Ca" = ( +/obj/item/gun/ballistic/shotgun/riot{ + pixel_y = 6 + }, +/obj/item/gun/ballistic/shotgun/riot, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Cb" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron, +/area/virtual_domain) +"Cc" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/leavy/style_2, +/obj/structure/spacevine{ + can_spread = 0 + }, +/obj/structure/flora/bush/large/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"Cd" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/weeds/node, +/turf/open/floor/plating, +/area/virtual_domain) +"Cg" = ( +/obj/effect/turf_decal/tile/purple, +/obj/item/restraints/legcuffs/beartrap/prearmed, +/turf/open/floor/iron, +/area/virtual_domain) +"Cn" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/closet/crate/cargo, +/obj/effect/spawner/random/maintenance/no_decals/seven, +/turf/open/floor/iron, +/area/virtual_domain) +"Cr" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L10" + }, +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/iron, +/area/virtual_domain) +"Cw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/directional/west, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Cx" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -6 + }, +/obj/machinery/recharger{ + pixel_x = 6 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Cy" = ( +/obj/machinery/light_switch/directional/south, +/obj/effect/spawner/random/vending/colavend, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Cz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"CA" = ( +/obj/structure/flora/rock/pile/jungle, +/obj/structure/barricade/sandbags, +/turf/open/misc/dirt/dark/jungle, +/area/virtual_domain) +"CC" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/plating, +/area/virtual_domain) +"CJ" = ( +/obj/structure/holosign/barrier, +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/iron, +/area/virtual_domain) +"CK" = ( +/obj/structure/sign/map/left{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-left-MS"; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/item/banner/security, +/turf/open/floor/iron, +/area/virtual_domain) +"CL" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "floor3-old" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"CM" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"CQ" = ( +/obj/effect/decal/cleanable/xenoblood, +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/virtual_domain) +"Dc" = ( +/obj/effect/turf_decal/bot_white/right, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/clothing/head/cone{ + pixel_y = 3; + pixel_x = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Dk" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Dl" = ( +/obj/structure/water_source/puddle, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"Dp" = ( +/obj/structure/chair/sofa/bench/solo, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Dx" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/turf/open/floor/iron, +/area/virtual_domain) +"DA" = ( +/obj/item/seeds/cocoapod, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"DC" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/spacevine{ + can_spread = 0 + }, +/obj/structure/flora/bush/large/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"DF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/detective_scanner{ + pixel_x = -7; + pixel_y = -6 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"DL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Showroom Shutters" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/virtual_domain) +"DM" = ( +/turf/closed/indestructible/fakedoor/engineering, +/area/virtual_domain) +"DO" = ( +/obj/machinery/door/airlock/maintenance, +/turf/open/floor/plating, +/area/virtual_domain) +"DP" = ( +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/virtual_domain) +"DQ" = ( +/obj/machinery/power/shieldwallgen, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"DU" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/obj/item/knife/butcher, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"DV" = ( +/turf/open/misc/dirt/dark/jungle, +/area/virtual_domain) +"DW" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 8 + }, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron, +/area/virtual_domain) +"Ec" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/flora/tree/jungle/small/style_5, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"Ed" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/virtual_domain) +"El" = ( +/obj/effect/decal/cleanable/blood/gibs/limb, +/obj/structure/meateor_fluff/flesh_pod_open, +/turf/open/indestructible/meat, +/area/virtual_domain) +"En" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"Er" = ( +/obj/structure/rack, +/obj/item/tank/jetpack/carbondioxide{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Es" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/mecha_wreckage/ripley/paddy, +/turf/open/floor/iron, +/area/virtual_domain) +"Eu" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"EC" = ( +/obj/item/flashlight/lamp/green{ + pixel_x = -6; + pixel_y = -5 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"ED" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/effect/decal/cleanable/vomit, +/turf/open/floor/iron, +/area/virtual_domain) +"EF" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/blue, +/obj/structure/closet/crate/cardboard, +/obj/effect/spawner/random/maintenance/no_decals/seven, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"EH" = ( +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"EK" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/reagent_containers/spray/chemsprayer/party, +/turf/open/floor/iron, +/area/virtual_domain) +"EQ" = ( +/obj/machinery/door/poddoor/preopen{ + name = "Bridge Blast Door" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"ET" = ( +/obj/structure/table/glass, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/computer/security/wooden_tv{ + pixel_x = 1; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"EV" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L7" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "e"; + pixel_y = -16; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "guy"; + pixel_y = -5 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Fc" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/clothing/suit/bio_suit/virology, +/obj/item/clothing/head/bio_hood/virology{ + pixel_y = 10; + pixel_x = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/obj/structure/sign/warning/biohazard/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"Fd" = ( +/turf/open/space/basic, +/area/space) +"Ff" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, +/obj/structure/bodycontainer/morgue, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Fg" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/banner/medical, +/turf/open/indestructible/meat, +/area/virtual_domain) +"Fh" = ( +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Fj" = ( +/obj/structure/table/optable, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/plating, +/area/virtual_domain) +"Fl" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/decal/cleanable/vomit/toxic, +/turf/open/floor/iron, +/area/virtual_domain) +"Fp" = ( +/obj/structure/showcase/machinery/tv{ + dir = 1; + pixel_x = 2; + pixel_y = 3 + }, +/obj/structure/table/wood, +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"Fr" = ( +/obj/effect/decal/cleanable/xenoblood/xgibs/down, +/obj/structure/alien/weeds, +/turf/open/floor/plating, +/area/virtual_domain) +"Fw" = ( +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/rods/fifty, +/obj/item/stack/rods/fifty, +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"FA" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"FC" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/window{ + name = "Gateway Access Shutter" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"FF" = ( +/obj/structure/sign/warning/secure_area, +/turf/closed/wall/r_wall, +/area/virtual_domain) +"FG" = ( +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"FI" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/light_switch/directional/east, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"FK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/stack/sheet/iron, +/turf/open/floor/iron, +/area/virtual_domain) +"FN" = ( +/obj/structure/closet/crate/preopen, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/rods/fifty, +/obj/item/storage/toolbox/emergency, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/effect/spawner/random/engineering/flashlight, +/turf/open/floor/iron, +/area/virtual_domain) +"FO" = ( +/obj/structure/flora/rock/pile/jungle, +/obj/structure/flora/tree/jungle/small/style_6, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"FR" = ( +/obj/item/storage/toolbox/drone, +/turf/open/floor/iron, +/area/virtual_domain) +"FS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/gibspawner/human, +/turf/open/floor/plating, +/area/virtual_domain) +"FT" = ( +/obj/item/clothing/mask/surgical, +/obj/structure/meateor_fluff/eyeball, +/obj/effect/decal/cleanable/vomit/toxic, +/turf/open/indestructible/meat, +/area/virtual_domain) +"FV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"FZ" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/marker_beacon/bronze, +/turf/open/floor/plating, +/area/virtual_domain) +"Gi" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/fluff/paper/stack{ + dir = 6 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Gk" = ( +/obj/machinery/door/window/left/directional/south{ + name = "HoP's Desk" + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/virtual_domain) +"Gm" = ( +/obj/structure/meateor_fluff/flesh_pod_open, +/turf/open/indestructible/meat, +/area/virtual_domain) +"Gn" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Gq" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Gr" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"Gs" = ( +/obj/item/clothing/mask/gas, +/turf/open/floor/plating, +/area/virtual_domain) +"Gx" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Head of Personnel" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/wood, +/area/virtual_domain) +"Gy" = ( +/obj/structure/flora/rock/pile/jungle/large/style_random, +/turf/open/misc/dirt/dark/jungle, +/area/virtual_domain) +"GA" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"GD" = ( +/obj/structure/lattice, +/obj/effect/decal/cleanable/blood/gibs, +/turf/open/space/basic, +/area/virtual_domain) +"GG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/sandbags, +/turf/open/floor/wood, +/area/virtual_domain) +"GJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/cardboard/mothic{ + pixel_y = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"GQ" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"GS" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/computer/old{ + dir = 8 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"GT" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/virtual_domain) +"Hb" = ( +/obj/effect/spawner/random/trash, +/turf/open/floor/iron, +/area/virtual_domain) +"Hc" = ( +/obj/structure/rack, +/obj/item/gun/ballistic/revolver/golden, +/turf/open/floor/plating, +/area/virtual_domain) +"Hd" = ( +/turf/open/floor/iron, +/area/virtual_domain) +"Hg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = -9; + icon_state = "candle2_lit" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Hh" = ( +/obj/machinery/shower/directional/south, +/obj/structure/curtain, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/spawner/random/trash/graffiti, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/iron/white, +/area/virtual_domain) +"Hl" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/virtual_domain) +"Hs" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron, +/area/virtual_domain) +"Ht" = ( +/obj/machinery/firealarm/directional/north, +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Hv" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command/glass{ + name = "Bridge" + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Hw" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/chair/office{ + dir = 4; + pixel_x = -10 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"HC" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/item/trash/fleet_ration, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"HG" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/virtual_domain) +"HH" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/highsecurity{ + name = "Secure Network Access" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"HM" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain) +"HP" = ( +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/plating, +/area/virtual_domain) +"HS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/obj/item/flashlight/flare/candle/infinite{ + pixel_x = 13; + pixel_y = 8; + icon_state = "candle3_lit" + }, +/obj/item/trash/candle, +/turf/open/floor/plating, +/area/virtual_domain) +"HX" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/item/banner/command, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Ie" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/ammo_casing/spent{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Ii" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Ij" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/item/storage/toolbox/electrical{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Il" = ( +/obj/structure/lattice, +/obj/item/ammo_box/strilka310/surplus, +/turf/open/space/basic, +/area/virtual_domain) +"Io" = ( +/obj/structure/fluff/paper/stack{ + dir = 10 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Iq" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/turf/open/floor/wood, +/area/virtual_domain) +"Ir" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/carpet, +/area/virtual_domain) +"Iw" = ( +/obj/structure/closet/crate/cardboard{ + pixel_y = 8 + }, +/obj/item/spear/explosive, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"IC" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"IH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"IJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/iron, +/area/virtual_domain) +"IL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/barricade/sandbags, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"IM" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/ammo_casing/spent, +/obj/item/ammo_casing/spent{ + dir = 10; + pixel_x = -13; + pixel_y = -8 + }, +/obj/item/ammo_casing/spent{ + dir = 9; + pixel_x = -13; + pixel_y = 9 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"IS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/iron, +/area/virtual_domain) +"IU" = ( +/obj/item/radio/off, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Jh" = ( +/obj/machinery/door/window/left/directional/north{ + name = "Captain's Bedroom" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/wood, +/area/virtual_domain) +"Ji" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/crate/trashcart/filled, +/turf/open/floor/plating, +/area/virtual_domain) +"Jm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"JD" = ( +/obj/structure/spider/stickyweb, +/turf/open/floor/iron, +/area/virtual_domain) +"JG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"JK" = ( +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/structure/table/glass, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"JL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/barricade/sandbags, +/obj/structure/railing, +/turf/open/floor/iron, +/area/virtual_domain) +"JM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/iron, +/area/virtual_domain) +"JP" = ( +/turf/open/floor/iron/dark, +/area/virtual_domain) +"JR" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/caution/red{ + dir = 8 + }, +/obj/item/clothing/suit/caution{ + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"JY" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/banner/engineering, +/turf/open/floor/iron, +/area/virtual_domain) +"Ka" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/fluff/paper/stack{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Ke" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"Kf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Kh" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"Kl" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Km" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/virtual_domain) +"Kn" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/item/storage/cans/sixbeer, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Kq" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/structure/holosign/barrier/engineering, +/turf/open/floor/plating, +/area/virtual_domain) +"Kr" = ( +/obj/item/clothing/head/utility/hardhat, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Kv" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L9" + }, +/obj/effect/decal/cleanable/blood{ + icon_state = "floor4"; + pixel_y = -15 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Kw" = ( +/obj/structure/plaque/static_plaque/golden/commission/meta, +/turf/open/floor/iron, +/area/virtual_domain) +"KA" = ( +/obj/item/chair, +/turf/open/floor/iron, +/area/virtual_domain) +"KF" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"KM" = ( +/obj/structure/sign/warning/pods, +/turf/closed/wall, +/area/virtual_domain) +"KN" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/vending/cigarette, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"KP" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/obj/structure/closet/body_bag, +/turf/open/floor/iron, +/area/virtual_domain) +"KQ" = ( +/obj/structure/rack, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/obj/item/assembly/timer, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/obj/machinery/digital_clock/directional/south, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"KR" = ( +/obj/machinery/newscaster/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"KT" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/virtual_domain) +"KW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron, +/area/virtual_domain) +"Lg" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Lh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/iron, +/area/virtual_domain) +"Ll" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"Lm" = ( +/obj/structure/alien/weeds, +/obj/item/clothing/mask/facehugger/dead, +/turf/open/floor/plating, +/area/virtual_domain) +"Lq" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/night/colorless{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/clothing/glasses/night/colorless, +/obj/item/clothing/glasses/night/colorless{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Ls" = ( +/obj/modular_map_root/safehouse{ + key = "shuttle_space" + }, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Lu" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"Lz" = ( +/obj/effect/decal/cleanable/confetti, +/obj/machinery/jukebox/disco{ + anchored = 1; + req_access = null + }, +/turf/open/floor/iron, +/area/virtual_domain) +"LB" = ( +/obj/structure/lattice, +/obj/item/gun/ballistic/rifle/boltaction/surplus, +/turf/open/space/basic, +/area/virtual_domain) +"LD" = ( +/obj/item/kirbyplants/random/dead/research_director, +/turf/open/floor/plating, +/area/virtual_domain) +"LG" = ( +/obj/machinery/firealarm/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"LJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + name = "E.V.A. Storage Shutter Control" + }, +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/suit/bio_suit/virology{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning, +/turf/open/floor/iron, +/area/virtual_domain) +"LK" = ( +/obj/machinery/button/door/directional/east{ + name = "Bridge Access Blast Door Control" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/flora/rock/icy/style_2, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"LL" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/holosign/barrier, +/turf/open/floor/iron, +/area/virtual_domain) +"LN" = ( +/obj/item/kirbyplants, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/item/clothing/neck/stethoscope, +/turf/open/floor/iron, +/area/virtual_domain) +"LP" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"LS" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/virtual_domain) +"LV" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/holosign/barrier, +/turf/open/floor/iron, +/area/virtual_domain) +"Mb" = ( +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Mj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/wood, +/area/virtual_domain) +"Mk" = ( +/obj/structure/table/wood, +/obj/machinery/light/directional/south, +/obj/item/papercutter{ + pixel_x = -4 + }, +/obj/item/paper/fluff/ids_for_dummies, +/turf/open/floor/wood, +/area/virtual_domain) +"Ml" = ( +/obj/effect/decal/cleanable/crayon/x, +/turf/closed/wall/rust, +/area/virtual_domain) +"Mm" = ( +/obj/structure/lattice, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/space/basic, +/area/virtual_domain) +"Mn" = ( +/obj/machinery/holopad, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Mo" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/computer/old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Mq" = ( +/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"Mr" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/iron, +/area/virtual_domain) +"Ms" = ( +/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker{ + pixel_x = 3; + pixel_y = -5 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Mt" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Council Chamber" + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Mu" = ( +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/item/clothing/head/bio_hood/virology{ + pixel_y = 10 + }, +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Mz" = ( +/obj/effect/decal/cleanable/shreds, +/turf/open/floor/iron, +/area/virtual_domain) +"MC" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/barricade/sandbags, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"MF" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"MG" = ( +/turf/open/indestructible/meat, +/area/virtual_domain) +"MJ" = ( +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/effect/spawner/random/trash, +/turf/open/floor/carpet, +/area/virtual_domain) +"ML" = ( +/obj/structure/bed/maint, +/obj/item/bedsheet/pirate, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet, +/area/virtual_domain) +"MM" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/rglass{ + amount = 50 + }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/storage/toolbox/emergency, +/obj/effect/spawner/random/engineering/flashlight, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/window/spawner/directional/south, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"MN" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"MP" = ( +/obj/structure/sign/picture_frame/showroom/three{ + pixel_x = -8; + pixel_y = 32 + }, +/obj/structure/sign/picture_frame/showroom/four{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/effect/spawner/random/trash/bin, +/turf/open/floor/wood, +/area/virtual_domain) +"MS" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/screwdriver, +/turf/open/floor/plating, +/area/virtual_domain) +"MZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/bookcase/random, +/turf/open/floor/iron, +/area/virtual_domain) +"Ne" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/flasher/directional/east{ + pixel_y = -26 + }, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron, +/area/virtual_domain) +"Nh" = ( +/obj/structure/barricade/sandbags, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"Nl" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law{ + pixel_y = 3 + }, +/obj/item/radio/intercom/command/directional/north, +/obj/item/paper/fluff/jobs/engineering/frequencies, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Nm" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"No" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"Nq" = ( +/obj/item/stock_parts/scanning_module/triphasic{ + pixel_x = 4 + }, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"Nr" = ( +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/status_display/ai/directional/north, +/obj/item/stock_parts/subspace/amplifier{ + pixel_y = -6 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Nu" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Ny" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/barricade/security, +/turf/open/floor/iron, +/area/virtual_domain) +"Nz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "council blast"; + name = "Council Blast Doors" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/virtual_domain) +"ND" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/digital_clock/directional/north, +/obj/item/light/bulb/broken{ + pixel_x = 15 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"NG" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"NN" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"NO" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/broken_flooring/singular/always_floorplane/directional/east, +/obj/item/surgery_tray/full/deployed, +/turf/open/floor/plating, +/area/virtual_domain) +"NR" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"NZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/structure/barricade/sandbags, +/obj/structure/railing, +/turf/open/floor/iron, +/area/virtual_domain) +"Oc" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/clothing/mask/party_horn, +/turf/open/floor/iron, +/area/virtual_domain) +"Od" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"Oe" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/iron, +/area/virtual_domain) +"Of" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"Oh" = ( +/obj/effect/spawner/random/decoration/microwave{ + dir = 1; + pixel_y = 2 + }, +/obj/structure/table/wood, +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"Oi" = ( +/obj/structure/holosign/barrier/atmos, +/turf/open/floor/plating, +/area/virtual_domain) +"Oj" = ( +/obj/item/ammo_box/magazine/wt550m9, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"Ol" = ( +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"Om" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L8" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Oq" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Or" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/item/evidencebag, +/turf/open/floor/iron, +/area/virtual_domain) +"Os" = ( +/obj/structure/rack, +/obj/item/aicard, +/obj/item/radio/off, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Ou" = ( +/obj/structure/barricade/sandbags, +/turf/open/floor/iron, +/area/virtual_domain) +"Ov" = ( +/obj/machinery/vending/boozeomat, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/virtual_domain) +"Ox" = ( +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"OC" = ( +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"OD" = ( +/obj/structure/rack, +/obj/item/clothing/shoes/magboots, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/window/spawner/directional/north, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"OE" = ( +/obj/machinery/door/airlock/silver{ + name = "Bathroom" + }, +/turf/open/floor/iron/white, +/area/virtual_domain) +"OS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood, +/area/virtual_domain) +"OU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/trash/popcorn/caramel, +/turf/open/floor/iron, +/area/virtual_domain) +"OV" = ( +/obj/item/flashlight/flare{ + icon_state = "flare-on"; + light_on = 1 + }, +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/virtual_domain) +"OX" = ( +/obj/machinery/fax{ + pixel_y = 9 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Pa" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L4" + }, +/obj/effect/decal/cleanable/crayon{ + icon_state = "l"; + pixel_x = 10; + pixel_y = 16 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Pd" = ( +/obj/item/cigbutt, +/turf/open/floor/wood, +/area/virtual_domain) +"Pg" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/alien/weeds, +/turf/open/floor/iron, +/area/virtual_domain) +"Pk" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/alien/weeds, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Pq" = ( +/obj/item/ammo_casing/spent{ + dir = 1 + }, +/obj/item/ammo_casing/spent{ + dir = 10; + pixel_x = -13; + pixel_y = -8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Py" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/item/radio/intercom/directional/west, +/obj/effect/mapping_helpers/broken_floor, +/obj/item/clothing/mask/facehugger/dead, +/obj/structure/displaycase, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/wood, +/area/virtual_domain) +"PC" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/closet/crate/trashcart/filled, +/turf/open/floor/iron, +/area/virtual_domain) +"PG" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L10" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"PP" = ( +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/obj/machinery/light/small/directional/west, +/obj/item/paper/fluff/gateway, +/obj/item/coin/plasma, +/obj/item/melee/chainofcommand, +/turf/open/floor/wood, +/area/virtual_domain) +"PQ" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"PR" = ( +/obj/machinery/vending/boozeomat/syndicate, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/iron, +/area/virtual_domain) +"PT" = ( +/obj/structure/alien/weeds, +/obj/structure/bed/nest, +/turf/open/floor/plating, +/area/virtual_domain) +"PU" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"PY" = ( +/obj/item/restraints/legcuffs/beartrap/prearmed, +/turf/open/floor/iron, +/area/virtual_domain) +"Qc" = ( +/obj/machinery/firealarm/directional/west, +/obj/structure/alien/weeds, +/obj/structure/alien/weeds/node, +/obj/effect/mob_spawn/corpse/human/assistant/brainrot_infection, +/turf/open/floor/plating, +/area/virtual_domain) +"Qg" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/item/folder/yellow{ + pixel_y = 4 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Qh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/barricade/sandbags, +/obj/structure/railing, +/turf/open/floor/iron, +/area/virtual_domain) +"Qm" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Qp" = ( +/obj/structure/noticeboard/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Qq" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/virtual_domain) +"Qw" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L5" + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/iron, +/area/virtual_domain) +"QA" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + name = "Bridge Blast Door" + }, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable, +/turf/open/floor/plating, +/area/virtual_domain) +"QM" = ( +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/suit_storage_unit/void_old, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"QN" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/item/restraints/handcuffs/cable/white, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/carpet, +/area/virtual_domain) +"QQ" = ( +/obj/item/ammo_casing/shotgun/buckshot/spent, +/turf/open/floor/carpet, +/area/virtual_domain) +"Ra" = ( +/obj/structure/sign/map/right{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-right-MS"; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"Rg" = ( +/obj/machinery/light/cold/directional/east, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/window/spawner/directional/north, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Rj" = ( +/obj/structure/broken_flooring/side/directional/north, +/turf/open/floor/plating, +/area/virtual_domain) +"Rl" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/secure_area/directional/north, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Rn" = ( +/obj/item/clothing/head/cone{ + pixel_y = 3; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/item/storage/toolbox/electrical{ + pixel_y = -5; + pixel_x = -2 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Rx" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Rz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/trash/energybar, +/turf/open/floor/iron, +/area/virtual_domain) +"RB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/holosign/barrier, +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/iron, +/area/virtual_domain) +"RD" = ( +/obj/structure/lattice, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/space/basic, +/area/virtual_domain) +"RE" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/structure/frame/machine/secured, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"RI" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/spawner/random/decoration/showcase, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"RJ" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"RL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/ammo_casing/spent{ + dir = 4 + }, +/obj/item/ammo_casing/spent{ + dir = 9; + pixel_x = -13; + pixel_y = 9 + }, +/obj/item/ammo_casing/spent{ + dir = 8; + pixel_x = -19; + pixel_y = -5 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"RR" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/item/ammo_casing/spent, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"RT" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + name = "HoP Queue Shutters" + }, +/obj/effect/turf_decal/loading_area, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) +"RV" = ( +/obj/machinery/light/directional/north, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/item/banner/security, +/turf/open/floor/iron, +/area/virtual_domain) +"RX" = ( +/obj/effect/spawner/random/decoration/showcase, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"RZ" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Sa" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/suit_storage_unit{ + state_open = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Sj" = ( +/obj/effect/decal/cleanable/blood/gibs/up, +/obj/effect/turf_decal/trimline/blue/filled/warning{ + dir = 10 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Sl" = ( +/obj/effect/spawner/random/vending/snackvend, +/obj/structure/window/reinforced/spawner/directional/east, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Sm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer/fullupgrade, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/iron, +/area/virtual_domain) +"Sq" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 1 + }, +/obj/structure/frame/computer, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = 5 + }, +/obj/item/stack/cable_coil/cut, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Sr" = ( +/obj/item/radio/intercom/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/wood, +/area/virtual_domain) +"Ss" = ( +/obj/machinery/recharger{ + pixel_y = 3 + }, +/obj/item/restraints/handcuffs{ + pixel_y = 3 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Sx" = ( +/obj/machinery/status_display/evac/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/iron, +/area/virtual_domain) +"Sz" = ( +/obj/item/seeds/eggplant, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"SC" = ( +/obj/structure/marker_beacon/bronze, +/obj/structure/broken_flooring/side/directional/north, +/turf/open/floor/plating, +/area/virtual_domain) +"SF" = ( +/obj/structure/flora/bush/jungle/b/style_random, +/obj/structure/flora/bush/lavendergrass/style_random, +/obj/item/flashlight/flare{ + icon_state = "flare-on"; + light_on = 1 + }, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"SG" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/structure/frame/computer, +/obj/item/shard, +/obj/item/stack/cable_coil/cut, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"SH" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"SJ" = ( +/obj/machinery/airalarm/directional/north, +/obj/item/kirbyplants/organic/applebush, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"SK" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"SN" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/virtual_domain) +"SP" = ( +/obj/effect/turf_decal/tile/neutral, +/mob/living/basic/bot/cleanbot/autopatrol, +/turf/open/floor/iron, +/area/virtual_domain) +"SR" = ( +/obj/structure/fluff/paper/stack{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ST" = ( +/obj/structure/alien/weeds, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/virtual_domain) +"SY" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/syringe/lethal/execution, +/obj/item/reagent_containers/syringe/lethal/execution{ + pixel_y = 7; + pixel_x = -4 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"Te" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/obj/effect/mob_spawn/corpse/human/doctor, +/turf/open/indestructible/meat, +/area/virtual_domain) +"Tm" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/virtual_domain) +"To" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/glass, +/obj/item/stack/rods, +/obj/effect/mine/explosive/flame, +/turf/open/floor/plating, +/area/virtual_domain) +"Ty" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L14" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"TC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/virtual_domain) +"TH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/chair/pew/left, +/obj/item/newspaper, +/turf/open/floor/iron, +/area/virtual_domain) +"TJ" = ( +/obj/structure/grille, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/virtual_domain) +"TL" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"TN" = ( +/obj/structure/table/wood, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/item/poster/random_official, +/obj/machinery/button/door/directional/east{ + name = "corporate showroom shutters control" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/carpet, +/area/virtual_domain) +"TP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/virtual_domain) +"TT" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/button/door/directional/north{ + name = "Gateway Shutter Control" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"TW" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Ua" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/sofa/corp/right{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Ue" = ( +/obj/effect/decal/cleanable/glass, +/turf/open/floor/carpet, +/area/virtual_domain) +"Ui" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/item/banner/engineering, +/turf/open/floor/iron, +/area/virtual_domain) +"Uj" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Un" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Uo" = ( +/obj/effect/turf_decal/tile/purple, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"Uq" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 6 + }, +/obj/item/reagent_containers/syringe, +/turf/open/floor/plating, +/area/virtual_domain) +"Ur" = ( +/obj/machinery/vending/cart{ + req_access = list("hop") + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/wood, +/area/virtual_domain) +"Uv" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Ux" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/virtual_domain) +"Uz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron, +/area/virtual_domain) +"UF" = ( +/obj/structure/flora/bush/jungle/a/style_random, +/obj/item/banner/science, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"UJ" = ( +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = 2 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"UP" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/floor/carpet, +/area/virtual_domain) +"UT" = ( +/obj/structure/flora/bush/leavy/style_3, +/obj/structure/flora/bush/sparsegrass/style_random, +/obj/structure/spacevine{ + can_spread = 0 + }, +/obj/effect/mob_spawn/corpse/human/scientist, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"Ve" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Vk" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = -9 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Vr" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/gelpod, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/plating, +/area/virtual_domain) +"Vs" = ( +/turf/closed/indestructible/rock, +/area/virtual_domain) +"Vw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Vz" = ( +/obj/structure/barricade/security, +/turf/open/floor/plating, +/area/virtual_domain) +"VD" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash, +/turf/open/floor/carpet, +/area/virtual_domain) +"VG" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/item/trash/flare, +/turf/open/floor/carpet, +/area/virtual_domain) +"VH" = ( +/obj/item/storage/box/lights/mixed, +/obj/item/flashlight/flare/candle/infinite{ + pixel_y = 16; + icon_state = "candle2_lit"; + pixel_x = -17 + }, +/turf/open/floor/plating, +/area/virtual_domain) +"VO" = ( +/obj/machinery/door/airlock{ + name = "Central Emergency Storage" + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating, +/area/virtual_domain) +"VP" = ( +/obj/structure/rack, +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/radio/off, +/obj/item/radio/off, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"VT" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/chair, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"VZ" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/iron, +/area/virtual_domain) +"Wf" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/obj/item/crowbar, +/turf/open/floor/iron, +/area/virtual_domain) +"Wh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/virtual_domain) +"Wl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Wm" = ( +/obj/machinery/light_switch/directional/north, +/obj/machinery/light/small/directional/north, +/obj/structure/table/wood, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/under/suit/black_really, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood, +/area/virtual_domain) +"Wt" = ( +/obj/structure/flora/grass/jungle/b/style_random, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/misc/dirt/jungle, +/area/virtual_domain) +"Wv" = ( +/obj/machinery/door/firedoor, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"WF" = ( +/obj/structure/table/wood, +/obj/machinery/button/ticket_machine{ + pixel_x = 38 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = 6; + pixel_y = -34 + }, +/obj/machinery/button/door/directional/south{ + pixel_x = -6 + }, +/obj/item/paper_bin/carbon{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/item/stamp/head/hop{ + pixel_x = -4; + pixel_y = 4 + }, +/obj/machinery/button/door/directional/south{ + pixel_x = -6; + pixel_y = -34 + }, +/obj/item/pen{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/machinery/button/photobooth{ + pixel_x = 26 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"WH" = ( +/obj/item/clothing/head/cone{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/crowbar/hammer{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/virtual_domain) +"WL" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/assembly/flash, +/turf/open/floor/iron, +/area/virtual_domain) +"WM" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/trash/chips, +/turf/open/floor/iron, +/area/virtual_domain) +"Xa" = ( +/obj/machinery/requests_console/directional/east{ + department = "Bridge"; + name = "Bridge Requests Console" + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/computer/old, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Xj" = ( +/obj/machinery/light/directional/north, +/obj/structure/sign/map/right{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-right-MS"; + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/spawner/random/trash/bin, +/turf/open/floor/iron, +/area/virtual_domain) +"Xn" = ( +/obj/structure/bed/maint, +/obj/item/bedsheet/pirate{ + dir = 4 + }, +/obj/item/knife/hunting{ + pixel_y = -4 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"Xp" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "L2" + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Xs" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/mine/explosive, +/turf/open/floor/plating, +/area/virtual_domain) +"Xw" = ( +/obj/effect/turf_decal/tile/blue, +/obj/item/boulder{ + icon_state = "boulder_large"; + pixel_y = 7 + }, +/obj/item/boulder{ + icon_state = "boulder_small"; + pixel_x = 9; + pixel_y = -1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Xx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight/lantern{ + light_on = 1 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"XD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron, +/area/virtual_domain) +"XI" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = 5 + }, +/obj/item/stack/cable_coil/cut, +/turf/open/floor/wood, +/area/virtual_domain) +"XJ" = ( +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood{ + pixel_x = -4 + }, +/turf/open/floor/wood, +/area/virtual_domain) +"XK" = ( +/obj/structure/grille, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/virtual_domain) +"XL" = ( +/obj/structure/barricade/sandbags, +/obj/structure/railing/corner/end{ + dir = 4 + }, +/obj/structure/marker_beacon/bronze, +/turf/open/floor/iron, +/area/virtual_domain) +"XM" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/photo/old{ + pixel_x = 4 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"XN" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/bot, +/obj/item/wallframe/light_fixture/small, +/obj/item/stack/cable_coil/cut, +/turf/open/floor/iron, +/area/virtual_domain) +"XW" = ( +/obj/structure/frame/machine/secured, +/obj/structure/marker_beacon/teal, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Yc" = ( +/obj/structure/bed/medical/emergency, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/iron, +/area/virtual_domain) +"Yd" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Yf" = ( +/obj/machinery/recharger{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/structure/secure_safe/directional/east, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/virtual_domain) +"Yg" = ( +/obj/structure/broken_flooring/singular/directional/east, +/turf/open/floor/plating, +/area/virtual_domain) +"Yi" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/virtual_domain) +"Yl" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain) +"Yn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Yo" = ( +/obj/structure/sign/plaques/kiddie/perfect_drone{ + pixel_y = 32 + }, +/obj/structure/table/wood, +/obj/item/storage/backpack/duffelbag/drone, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/carpet, +/area/virtual_domain) +"Yr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/newscaster/directional/east, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/iron, +/area/virtual_domain) +"Ys" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plating, +/area/virtual_domain) +"Yt" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "floor1-old" + }, +/obj/effect/landmark/bitrunning/mob_segment, +/turf/open/floor/iron, +/area/virtual_domain) +"Yv" = ( +/obj/effect/turf_decal/bot_white/left, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/directional/west, +/obj/item/clothing/head/cone{ + pixel_x = 5; + pixel_y = -4 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"YA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/chair/sofa/corp/left{ + dir = 1 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"YB" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/bluespace_vendor/directional/east, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron, +/area/virtual_domain) +"YD" = ( +/obj/item/clothing/head/cone{ + pixel_y = 2; + pixel_x = 6 + }, +/obj/effect/decal/cleanable/glass, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/virtual_domain) +"YG" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/carpet, +/area/virtual_domain) +"YN" = ( +/obj/effect/decal/cleanable/blood{ + icon_state = "floor7" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating, +/area/virtual_domain) +"YQ" = ( +/obj/structure/mirror/directional/north, +/obj/structure/sink/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/weather/dirt, +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/virtual_domain) +"YR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Command Hallway" + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron, +/area/virtual_domain) +"YU" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/turf/open/floor/plating, +/area/virtual_domain) +"Za" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/virtual_domain) +"Zb" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/bottle/potassium{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bottle/phosphorus{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/reagent_containers/cup/bottle/sodium{ + pixel_x = 1 + }, +/obj/machinery/light/directional/east, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/virtual_domain) +"Zc" = ( +/obj/effect/turf_decal/trimline/blue/filled/warning/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"Zh" = ( +/obj/structure/table_frame/wood, +/obj/item/stack/sheet/mineral/wood, +/turf/open/floor/carpet, +/area/virtual_domain) +"Zi" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"Zl" = ( +/obj/machinery/airalarm/directional/south, +/obj/structure/rack, +/obj/item/wrench, +/obj/item/crowbar, +/turf/open/floor/wood, +/area/virtual_domain) +"Zm" = ( +/obj/structure/spacevine{ + can_spread = 0 + }, +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/virtual_domain) +"Zp" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/virtual_domain) +"Zq" = ( +/obj/structure/sign/poster/random/directional/west, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/iron, +/area/virtual_domain) +"Zu" = ( +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"Zx" = ( +/obj/machinery/disposal/bin, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"ZC" = ( +/obj/structure/flora/bush/sparsegrass/style_random, +/turf/open/misc/grass/jungle, +/area/virtual_domain) +"ZD" = ( +/obj/item/trash/candy, +/turf/open/floor/iron, +/area/virtual_domain) +"ZF" = ( +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/virtual_domain) +"ZG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron, +/area/virtual_domain) +"ZH" = ( +/obj/item/clothing/head/cone{ + pixel_y = 3; + pixel_x = 7 + }, +/obj/structure/grille/broken, +/obj/structure/cable, +/turf/open/floor/plating, +/area/virtual_domain) +"ZK" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = 1; + pixel_y = 5 + }, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"ZM" = ( +/obj/item/book/manual/wiki/security_space_law{ + name = "space law"; + pixel_y = 2 + }, +/obj/item/toy/gun, +/obj/item/restraints/handcuffs, +/obj/structure/table/wood, +/obj/item/clothing/head/collectable/hos{ + name = "novelty HoS hat" + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/carpet, +/area/virtual_domain) +"ZP" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/obj/structure/closet/crate/trashcart/filled, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"ZR" = ( +/obj/machinery/door/airlock/command{ + name = "Command Desk" + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"ZS" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, +/area/virtual_domain) +"ZT" = ( +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters" + }, +/turf/open/floor/carpet, +/area/virtual_domain) +"ZV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/mob_spawn/corpse/human/assistant, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/iron, +/area/virtual_domain) +"ZY" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/iron, +/area/virtual_domain) + +(1,1,1) = {" +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +uz +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +uz +HM +HM +HM +HM +HM +HM +uz +uz +uz +uz +uz +uz +uz +uz +uz +"} +(2,1,1) = {" +uz +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +Vs +Vs +Vs +Vs +Vs +ps +ps +ps +ps +ps +HM +HM +HM +ps +ps +pD +ps +HM +uz +uz +uz +uz +uz +uz +uz +uz +uz +"} +(3,1,1) = {" +uz +HM +Vs +Vs +Vs +Vs +Hl +Hl +Hl +Vs +Vs +Vs +ps +ps +ps +ps +tO +ps +ps +ps +Hl +Vs +Vs +Hl +ps +Ao +vM +eB +ps +ps +ps +ps +ps +Zx +Ii +ps +HM +uz +uz +uz +uz +uz +uz +uz +uz +uz +"} +(4,1,1) = {" +uz +HM +Vs +Vs +Vs +DW +bl +pr +Vs +Vs +Vs +Cn +cK +Uj +vN +Ah +nP +nS +gk +eA +Vs +Vs +MZ +nZ +Lg +nS +nS +Jm +dU +xK +ux +CM +KR +nS +ro +ps +HM +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(5,1,1) = {" +uz +HM +ps +Vs +yH +Hd +KT +mc +Hd +fj +dD +Hd +oS +hw +IL +Pq +pT +dD +KT +pc +mI +pE +SR +dD +mK +tR +Hd +JD +Zp +jR +Hd +hw +Hd +MG +kd +ps +ps +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(6,1,1) = {" +HM +HM +pD +yD +mc +Lu +PU +Ol +Ol +Ol +FV +Nm +lY +Lu +JL +RL +RR +Ol +Wv +Ol +on +dd +Ol +dd +ZV +AX +Cz +jt +rP +km +cj +dd +dd +Hd +pN +LN +Hl +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(7,1,1) = {" +HM +uS +uS +er +Hb +Ol +ps +Cb +xj +xj +GT +uS +uS +yP +uS +uS +Gx +uS +uS +ps +kK +lC +ac +fN +uS +uS +uS +uS +uS +uS +uS +uS +qq +kI +eZ +eX +uB +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(8,1,1) = {" +HM +uS +yc +th +Hd +LS +ps +ps +kn +ld +ps +uS +pP +EC +rQ +cZ +db +dc +uS +Zu +ps +pQ +nS +uS +rt +Sa +Fw +eV +iQ +Ij +sm +uS +hR +pN +Fl +Yc +Hl +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(9,1,1) = {" +HM +Hl +eB +Uz +kv +SP +ps +wD +FS +Cw +dD +Wh +dc +ZF +Gk +gU +YG +fh +To +GT +No +cI +ZY +lD +cz +Bw +cw +zj +zE +hF +mW +kN +mq +MG +NN +ps +uB +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(10,1,1) = {" +HM +uS +eB +WL +KT +KP +ps +il +TP +KW +fh +uS +Yf +nY +GS +rX +Ue +ZF +uS +dX +XK +tq +tI +FF +mq +oA +wj +OC +uw +qP +fK +yn +BF +mw +BZ +uB +HM +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(11,1,1) = {" +HM +uS +uS +ol +Mz +uY +ps +iv +dl +HS +fC +uS +uS +uS +uS +ML +DP +Mk +uS +ND +AP +rb +nS +jk +Ax +Wl +Wl +lt +bb +si +IH +kN +ED +El +wq +ps +HM +uz +uz +uz +uz +uz +uz +uz +uz +uz +"} +(12,1,1) = {" +HM +HM +uS +gM +CL +aZ +ps +ps +Hg +tf +fh +ps +rv +uS +Ur +VD +Xn +XI +uS +XN +OV +vN +Bj +uS +QM +GA +OD +ps +Er +Sa +dk +uS +LJ +bm +zL +uB +HM +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(13,1,1) = {" +uz +HM +HH +JM +Kl +VZ +ps +Yi +vA +mj +VH +lJ +Oq +uS +fz +oM +db +rz +To +fQ +TJ +OU +Qm +uS +ps +ps +ps +ps +ps +ps +ps +uS +Fc +BZ +hz +ps +uB +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(14,1,1) = {" +uz +HM +uS +nU +pO +bs +VO +ey +sr +fh +Gs +pL +IU +uS +dz +bO +ww +nW +aw +Ne +RT +bg +Ed +uS +kW +lL +pI +Qc +Fr +DQ +Pk +uS +Mu +qY +ay +im +Hl +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(15,1,1) = {" +uz +HM +uS +qa +Yt +uD +ps +uS +hZ +uS +uS +ps +uf +uS +cD +Kh +yq +WF +uS +YB +uS +TH +nS +uS +ZS +jD +kx +vt +PT +pV +mW +Pg +AN +bZ +Te +Gm +dA +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(16,1,1) = {" +uz +HM +ps +my +iy +Hs +dE +SN +SN +SN +uS +uS +EQ +uS +ps +ps +te +ps +uS +uS +wB +vg +pA +IS +jm +cW +Cd +CQ +Lm +jD +IH +vI +mq +vn +Sj +FT +dA +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(17,1,1) = {" +HM +HM +ps +hV +Hd +bQ +hZ +ii +SN +SN +kp +sI +Un +pJ +oQ +Hv +Xw +sf +ny +JP +ul +tq +Rz +FF +iI +MM +Vr +PT +VP +Rg +Gq +uS +AV +Ll +sX +Fg +Hl +HM +HM +HM +HM +HM +HM +HM +HM +Yl +"} +(18,1,1) = {" +HM +ps +ps +Rl +Hd +cr +FZ +fh +QA +kp +uS +uX +xu +JP +oy +Hv +to +ze +Bv +LK +ul +pR +tu +uS +uS +dE +tn +cW +cW +ps +ps +uS +vW +wH +Zc +JR +ps +ps +ps +ps +ps +ps +ps +ps +ps +HM +"} +(19,1,1) = {" +HM +uS +SJ +bS +pA +lT +fh +fh +yt +fh +Ox +gg +Yn +SK +ZP +ps +ps +ps +Mt +ps +uS +PQ +nS +dE +SN +SN +as +tl +pW +ST +tV +DL +rr +Hd +dD +ZG +Za +sS +SN +sS +SN +sS +SN +sS +ps +HM +"} +(20,1,1) = {" +HM +Hl +Es +mc +Hd +Ux +Ux +lT +AC +lT +vw +fh +ug +ba +mi +ps +uH +ZK +JP +xV +uS +WM +Kf +uS +hZ +hZ +uS +Yo +jh +pK +ep +FF +GJ +FR +Hd +Ka +ps +Fd +Fd +Fd +Fd +Fd +Fd +Fd +ps +HM +"} +(21,1,1) = {" +HM +uS +RV +BJ +Xp +Ol +Ad +vw +ZH +uk +NG +aA +SK +up +Os +ps +ps +Nl +YG +iH +FF +dd +FK +Of +qu +nS +as +RX +Bn +OS +ZF +oI +MF +vf +Xp +ZG +ps +hX +hX +hX +hX +hX +Ls +Fd +ps +HM +"} +(22,1,1) = {" +HM +dP +tS +eD +mf +Ke +dE +ii +uS +Qg +ug +uT +qM +zq +sc +Cy +ps +Mn +db +id +Nz +MF +Hd +bU +Mr +VT +uS +lK +rf +Ie +Oh +uS +Qp +ck +Pa +oD +pB +hX +zQ +Lq +hX +hX +hX +Fd +ps +HM +"} +(23,1,1) = {" +HM +yz +Vz +Qw +bP +Ol +hZ +SN +kp +zP +xu +Mb +RJ +JP +YG +wL +ps +Dp +qk +UJ +Nz +cp +ub +ZD +lb +LP +uS +wo +Ar +jC +Zh +an +PC +pA +lM +Bp +LD +hX +hX +hX +hX +hX +hX +Fd +ps +HM +"} +(24,1,1) = {" +HM +yz +Vz +wN +Om +wi +dE +SN +kp +SG +Vw +bW +MC +hU +TL +DP +ZR +JP +kg +zo +zx +AD +iy +Kw +yH +Dx +oI +ZF +vw +Km +fh +MS +mt +EV +zB +Io +vw +hX +hX +fD +Cx +hX +hX +Fd +ps +HM +"} +(25,1,1) = {" +HM +yz +Vz +wN +Cr +nS +hZ +SN +kp +zP +JP +yh +Hw +wA +hh +mb +ps +nw +se +xW +lk +Ad +CJ +Hd +KA +lG +uS +Wm +Mj +fh +Oj +vw +fh +Kv +PG +KF +gC +hX +hX +hX +hX +hX +hX +Fd +ps +HM +"} +(26,1,1) = {" +HM +tO +Oe +wN +vy +Wf +dE +LB +uS +Bt +gt +Xx +HX +ET +JK +Sl +ps +wY +YG +Gr +yx +Or +ie +bU +qJ +bR +uS +MP +fh +GG +Fp +uS +wN +wN +Rj +fB +wP +hX +hX +hX +Ca +hX +hX +Fd +ps +HM +"} +(27,1,1) = {" +HM +ps +CK +ht +Ty +YA +hZ +Il +kp +BK +di +Mb +Yd +cO +KQ +ps +ps +Ht +rJ +VG +FF +RB +qL +jd +LP +Bg +mo +br +ZF +rW +Mj +oI +MF +ra +BN +yK +ps +hX +hX +hX +hX +hX +rs +Fd +ps +HM +"} +(28,1,1) = {" +HM +ps +Xj +Hd +Hd +Ua +hZ +SN +kp +Sq +Eu +ix +iP +aQ +ez +ps +uH +FI +Ms +KN +uS +Bh +re +uS +dE +dE +uS +oH +Mj +gE +xI +FF +Gi +Hd +aC +Uo +lE +Fd +Fd +Fd +Fd +Fd +Fd +Fd +ps +HM +"} +(29,1,1) = {" +HM +ps +cx +rj +kI +ZY +dE +SN +kp +Mo +Kn +Ss +at +yy +HC +ps +ps +ps +Mt +ps +uS +zw +Ol +hZ +SN +SN +as +RI +Pd +TN +ZM +an +sB +kI +Hd +Cg +Za +sS +SN +sS +SN +sS +SN +sS +ps +HM +"} +(30,1,1) = {" +HM +ps +ps +hi +Hd +hg +dE +SN +kp +kp +uS +pb +iZ +bu +kt +Hv +EF +SK +SK +tk +ul +dd +yw +uS +uS +dE +uS +ps +ps +ps +ps +uS +rh +PY +Ou +CA +lQ +ps +ps +ps +ps +ps +ps +ps +ps +HM +"} +(31,1,1) = {" +HM +HM +ps +sF +pX +vi +hZ +SN +SN +Mm +kp +Xa +fF +DU +RZ +Hv +Iw +qI +Bv +Bv +ul +wa +tM +Nh +zg +Fj +NO +hv +uA +yN +Ff +uS +tq +Hd +DV +UF +Zm +Vs +HM +HM +HM +HM +HM +HM +HM +HM +"} +(32,1,1) = {" +uz +HM +Hl +Ny +yH +DF +dE +SN +GD +RD +uS +uS +uS +zA +jG +uS +uS +uS +BP +uS +wB +dd +pA +Nh +Uq +Rj +wu +XD +wu +Rx +jx +uS +cC +HG +Gy +mO +wl +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(33,1,1) = {" +uz +HM +yz +Ny +fn +Mq +uS +uS +uS +uS +uS +Hh +uS +uS +uS +uS +Ov +rq +db +LG +uS +hd +Ol +lx +vU +hp +lu +ok +hc +fK +op +uS +Ra +nq +Cc +zR +ge +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(34,1,1) = {" +uz +HM +ps +cN +vO +XM +uS +uP +ab +hb +ps +YQ +ps +Py +PP +qz +jF +QQ +YG +YG +BP +Yg +pv +uS +FN +AR +eR +Zb +zT +IH +dZ +uS +PQ +DV +ej +tw +Zm +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(35,1,1) = {" +uz +HM +ps +au +Ay +TW +uS +Zi +vK +wn +ps +aO +ps +ry +ZF +gE +mP +vV +vV +FA +uS +TC +mQ +uS +uS +AA +AA +uS +hZ +hG +hZ +uS +TT +Gy +aV +yO +lQ +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(36,1,1) = {" +uz +HM +ps +LL +KT +LV +uS +yC +jc +UP +ps +OE +ps +xb +XJ +Iq +sA +MJ +SY +tj +uS +dd +ai +ty +uS +bT +ss +Yv +dY +Dk +Vk +FC +mq +UT +SF +MN +lQ +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(37,1,1) = {" +uz +HM +Hl +dd +Hd +nS +pd +YN +dc +rO +yI +gE +ZT +kc +yM +ki +vw +vK +QN +Ir +uS +ud +xd +sa +uS +Nr +XW +Kq +Ii +Hd +fK +FC +mq +cH +gb +ZC +Ec +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(38,1,1) = {" +uz +HM +yz +dd +Hd +FZ +WH +Oi +tF +YU +Jh +gE +ps +jy +qS +Sr +fh +fh +aT +SH +uS +Fh +Ol +Gn +uS +Nq +iY +Dc +dC +jz +qr +FC +mq +Gy +DC +od +FO +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(39,1,1) = {" +uz +HM +yz +fh +mc +yE +Oi +SN +Oi +YD +zO +sz +ps +ps +uS +uS +OX +Xs +fh +uS +uS +dd +iK +uS +uS +uS +uS +uS +uS +oo +uS +FF +fr +DV +MN +EH +iA +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(40,1,1) = {" +uz +HM +Hl +pA +Hd +Kr +Oi +GD +rm +Oi +bd +Zl +ps +Hc +uS +ek +vw +eG +xe +Ji +DO +dd +Ol +DO +ey +eu +fh +wV +vw +ja +Tm +DO +tq +Hd +tW +lQ +uq +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(41,1,1) = {" +uz +HM +KM +dd +Hd +lU +Rn +Oi +Oi +AM +CC +uS +uS +Ml +uS +DO +ps +ps +ps +ps +ut +hj +YR +tO +ps +ps +ps +ps +ps +ps +ps +ps +JG +Hd +sZ +ps +lQ +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(42,1,1) = {" +uz +HM +ps +nO +kI +nS +FZ +bw +lN +IC +SC +gj +Qq +lv +Lg +Oc +IJ +Ys +EK +Zq +En +tq +bf +tq +av +Qh +Sx +Ve +tq +Uv +BM +DA +fP +NR +eN +FG +Vs +Vs +HM +uz +uz +uz +uz +uz +uz +uz +"} +(43,1,1) = {" +uz +HM +ps +dd +mR +mc +Hd +KT +Ay +fh +Hd +vw +mc +KT +Lh +nz +oO +Lz +zb +vw +Hd +Hd +kI +XL +KT +oS +mR +XL +GQ +fP +fP +Sz +fP +Dl +Wt +yT +Vs +HM +HM +uz +uz +uz +uz +uz +uz +uz +"} +(44,1,1) = {" +uz +HM +ps +dd +jt +km +dd +Nu +JY +HP +HP +vo +Ui +Yr +Bd +PR +Vs +Vs +Sm +fG +Bd +Od +rC +NZ +kM +IM +AQ +fc +cB +Vs +Vs +cF +qv +fP +st +RE +Vs +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(45,1,1) = {" +uz +HM +ps +ps +ps +ps +ps +ps +ps +DM +DM +DM +ps +ps +Hl +Hl +Vs +Vs +Vs +Hl +ps +ps +ps +ps +ps +ps +ps +ps +ps +ps +Vs +Vs +ps +Hl +Vs +Vs +Vs +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} +(46,1,1) = {" +uz +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +HM +uz +uz +uz +uz +uz +uz +uz +uz +"} diff --git a/_maps/virtual_domains/pipedream.dmm b/_maps/virtual_domains/pipedream.dmm index 5ad31be02be2e..a455ee49aa534 100644 --- a/_maps/virtual_domains/pipedream.dmm +++ b/_maps/virtual_domains/pipedream.dmm @@ -24,7 +24,7 @@ /area/virtual_domain) "aK" = ( /turf/open/space/basic, -/area/virtual_domain) +/area/space/virtual_domain) "aL" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron, @@ -744,7 +744,7 @@ "wl" = ( /obj/item/shard, /turf/open/space/basic, -/area/virtual_domain) +/area/space/virtual_domain) "wm" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 1 @@ -831,7 +831,7 @@ "xF" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "xM" = ( /obj/effect/turf_decal/trimline/yellow/line{ dir = 4 @@ -897,7 +897,7 @@ "Av" = ( /obj/item/stack/rods/two, /turf/open/space/basic, -/area/virtual_domain) +/area/space/virtual_domain) "Aw" = ( /obj/structure/lattice/catwalk{ name = "industrial lift" @@ -1528,9 +1528,13 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron, /area/virtual_domain) +"RI" = ( +/obj/effect/smooths_with_walls, +/turf/closed/indestructible/binary, +/area/virtual_domain/fullbright) "RJ" = ( /turf/closed/indestructible/binary, -/area/virtual_domain) +/area/virtual_domain/fullbright) "RK" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/iron, @@ -1921,7 +1925,7 @@ RJ RJ RJ RJ -RJ +RI RJ RJ RJ @@ -2107,7 +2111,7 @@ yQ yQ yQ yQ -RJ +RI eg eg eg @@ -2353,7 +2357,7 @@ yQ yQ yQ RJ -RJ +RI RJ RJ RJ @@ -2443,8 +2447,8 @@ yQ yQ yQ yQ -RJ -RJ +yQ +yQ RJ eg eg @@ -2493,7 +2497,7 @@ yQ yQ yQ yQ -RJ +yQ RJ RJ eg @@ -2543,7 +2547,7 @@ yQ yQ yQ yQ -RJ +yQ RJ kU kU @@ -3126,7 +3130,7 @@ eg eg rO rO -RJ +RI RJ rO rO @@ -3170,7 +3174,7 @@ RJ RJ RJ RJ -RJ +RI RJ RJ RJ @@ -3215,7 +3219,7 @@ Cv Nu eg RJ -RJ +yQ yQ yQ yQ @@ -3652,7 +3656,7 @@ yQ yQ yQ yQ -RJ +yQ RJ RJ RJ diff --git a/_maps/virtual_domains/pirates.dmm b/_maps/virtual_domains/pirates.dmm index 5ad9c23595d64..31b4c359ba6ae 100644 --- a/_maps/virtual_domains/pirates.dmm +++ b/_maps/virtual_domains/pirates.dmm @@ -121,6 +121,11 @@ /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, /area/virtual_domain/fullbright) +"gc" = ( +/obj/structure/flora/rock/pile/jungle/style_2, +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "gf" = ( /obj/effect/turf_decal/weather/sand{ dir = 5 @@ -146,6 +151,10 @@ icon_state = "wood_large" }, /area/virtual_domain/fullbright) +"gD" = ( +/obj/item/flashlight/flare/torch, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) "gK" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/bush/ferny, @@ -216,10 +225,6 @@ dir = 4 }, /area/virtual_domain/fullbright) -"mR" = ( -/obj/machinery/smartfridge/drying_rack, -/turf/open/misc/beach/sand, -/area/virtual_domain/fullbright) "nb" = ( /obj/structure/fermenting_barrel{ pixel_x = 6; @@ -267,6 +272,10 @@ /obj/structure/flora/bush/flowers_br/style_random, /turf/open/misc/grass, /area/virtual_domain/fullbright) +"ps" = ( +/obj/machinery/smartfridge/drying/rack, +/turf/open/misc/beach/sand, +/area/virtual_domain/fullbright) "py" = ( /turf/closed/indestructible/binary, /area/virtual_domain/protected_space/fullbright) @@ -341,6 +350,9 @@ /obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood/parquet, /area/virtual_domain) +"tA" = ( +/turf/closed/mineral/random/jungle, +/area/virtual_domain/protected_space) "tH" = ( /obj/structure/closet/cabinet, /obj/item/clothing/head/costume/pirate/armored, @@ -437,6 +449,13 @@ "xp" = ( /turf/open/water/beach, /area/virtual_domain/fullbright) +"yF" = ( +/obj/effect/light_emitter{ + set_cap = 3; + set_luminosity = 5 + }, +/turf/open/misc/beach/coast, +/area/virtual_domain/fullbright) "zc" = ( /obj/item/gun/energy/laser/hellgun{ pixel_y = 10 @@ -639,6 +658,10 @@ dir = 1 }, /area/virtual_domain/fullbright) +"KP" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/virtual_domain/protected_space/fullbright) "KS" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -647,6 +670,13 @@ /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/carpet/blue, /area/virtual_domain) +"KU" = ( +/obj/effect/light_emitter{ + set_cap = 3; + set_luminosity = 5 + }, +/turf/open/water/beach, +/area/virtual_domain/fullbright) "KV" = ( /obj/structure/flora/rock/pile/jungle/style_3{ pixel_x = -15; @@ -730,10 +760,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/carpet/blue, /area/virtual_domain) -"Oz" = ( -/obj/structure/flora/rock/pile/jungle/style_2, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/protected_space) "OD" = ( /obj/effect/turf_decal/weather/sand{ dir = 6 @@ -921,9 +947,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/virtual_domain/protected_space/fullbright) -"WW" = ( -/turf/template_noop, -/area/virtual_domain/fullbright) "Xn" = ( /obj/modular_map_root/safehouse{ key = "wood" @@ -1244,7 +1267,7 @@ DM DM hb hb -hb +fR py py py @@ -1474,13 +1497,13 @@ nQ bI VE py -hb -hb -hb -hb -hb -hb -fR +py +py +py +py +py +py +KP "} (12,1,1) = {" xg @@ -1524,7 +1547,7 @@ ub ub ub Xn -hb +py "} (13,1,1) = {" hb @@ -1568,7 +1591,7 @@ ub ub ub ub -hb +py "} (14,1,1) = {" hb @@ -1578,7 +1601,7 @@ Ul Ul Ul Hn -mR +ps eS eS eS @@ -1612,7 +1635,7 @@ ub ub ub ub -hb +py "} (15,1,1) = {" hb @@ -1656,7 +1679,7 @@ ub ub ub ub -hb +py "} (16,1,1) = {" hb @@ -1700,7 +1723,7 @@ ub ub ub ub -hb +py "} (17,1,1) = {" hb @@ -1744,7 +1767,7 @@ ub ub ub ub -hb +py "} (18,1,1) = {" hb @@ -1788,7 +1811,7 @@ ub ub ub zR -hb +py "} (19,1,1) = {" hb @@ -1826,13 +1849,13 @@ au nQ fw au -xp -xp -xp -xp -xp -hb -hb +au +au +au +au +au +py +py "} (20,1,1) = {" hb @@ -1870,12 +1893,12 @@ au Uw cr vR -xp -xp -xp -xp -xp -hb +au +au +au +au +au +py xg "} (21,1,1) = {" @@ -1914,12 +1937,12 @@ af nQ LK fw -xp -xp -xp -xp -xp -hb +au +au +au +au +au +py xg "} (22,1,1) = {" @@ -1958,12 +1981,12 @@ au oM VE eO -xp -xp -xp -xp -xp -hb +au +au +au +au +au +py xg "} (23,1,1) = {" @@ -2002,12 +2025,12 @@ au au au au -xp -xp -xp -DM -DM -hb +au +au +au +Li +Li +py xg "} (24,1,1) = {" @@ -2046,12 +2069,12 @@ au au au au -xp -xp -xp -DM -DM -hb +au +au +au +Li +Li +py xg "} (25,1,1) = {" @@ -2071,9 +2094,9 @@ eS eS nr eS -eS -SK -xp +gD +yF +KU xp xp xp @@ -2090,12 +2113,12 @@ au au au au -xp -xp -DM -DM -DM -hb +au +au +Li +Li +Li +py xg "} (26,1,1) = {" @@ -2114,12 +2137,12 @@ DM DM DM DM -DM -DM +tA +tA eP sb -DM -DM +tA +tA hb hb xp @@ -2134,12 +2157,12 @@ au au au au -hb -DM -DM -DM -DM -hb +py +Li +Li +Li +Li +py xg "} (27,1,1) = {" @@ -2147,7 +2170,7 @@ xg xg xg xg -WW +xg hb DM DM @@ -2159,10 +2182,10 @@ DM DM DM DM -DM +tA fd OW -DM +tA DM DM hb @@ -2178,12 +2201,12 @@ au au au py -hb -DM -DM -DM -hb -hb +py +Li +Li +Li +py +py xg "} (28,1,1) = {" @@ -2203,11 +2226,11 @@ DM DM DM DM -DM +tA KV OW -DM -DM +tA +tA DM DM hb @@ -2222,11 +2245,11 @@ au au py py -hb -hb -hb -hb -hb +py +py +py +py +py xg xg "} @@ -2247,13 +2270,13 @@ DM DM DM DM -DM +tA qk IW sb -DM -DM -DM +tA +tA +tA DM DM DM @@ -2291,16 +2314,16 @@ DM DM DM DM -DM +tA Gl qk IW hn sb -DM -DM -DM -DM +tA +tA +tA +tA DM hb hb @@ -2335,17 +2358,17 @@ hb DM DM DM -DM -DM +tA +tA qk qk Oi OW sb be -Oz -DM -DM +gc +tA +tA DM hb hb @@ -2380,8 +2403,8 @@ hb DM DM DM -DM -DM +tA +tA qk CL IW @@ -2389,8 +2412,8 @@ sb QG qk rm -DM -DM +tA +tA DM hb xg @@ -2425,7 +2448,7 @@ hb DM DM DM -DM +tA oB qk wu @@ -2434,7 +2457,7 @@ QF BX qk rm -DM +tA DM hb xg @@ -2469,8 +2492,8 @@ hb hb DM DM -DM -DM +tA +tA qk qk NU @@ -2478,7 +2501,7 @@ db hq zc ID -DM +tA DM hb xg @@ -2514,15 +2537,15 @@ hb hb hb DM -DM -DM -DM -DM -DM -DM -DM -DM -DM +tA +tA +tA +tA +tA +tA +tA +tA +tA DM hb xg diff --git a/_maps/virtual_domains/psyker_shuffle.dmm b/_maps/virtual_domains/psyker_shuffle.dmm index e53ec600e8a3a..c3434167bb18f 100644 --- a/_maps/virtual_domains/psyker_shuffle.dmm +++ b/_maps/virtual_domains/psyker_shuffle.dmm @@ -2,16 +2,16 @@ "a" = ( /obj/structure/closet/crate/secure, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "b" = ( /obj/item/restraints/legcuffs/beartrap/prearmed, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "e" = ( /obj/item/gun/ballistic/shotgun/lethal, /obj/structure/closet/crate/preopen, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "h" = ( /obj/structure/closet/crate/preopen, /obj/item/gun/ballistic/automatic/mini_uzi, @@ -49,61 +49,61 @@ /obj/item/gun/ballistic/revolver, /turf/template_noop, /area/virtual_domain/safehouse) -"k" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +"i" = ( +/obj/effect/landmark/bitrunning/crate_replacer, +/turf/open/indestructible/dark, +/area/virtual_domain) "m" = ( /obj/item/toy/gun{ pixel_y = 3 }, /obj/structure/closet/crate/wooden, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "o" = ( /turf/template_noop, /area/template_noop) -"q" = ( -/obj/effect/landmark/bitrunning/crate_replacer, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) "r" = ( /mob/living/simple_animal/hostile/mimic, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "s" = ( /mob/living/simple_animal/hostile/mimic/crate, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "t" = ( /turf/template_noop, /area/virtual_domain/safehouse) +"u" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/indestructible/dark, +/area/virtual_domain) "v" = ( /obj/structure/closet/crate/hydroponics, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "x" = ( /obj/item/gun/ballistic/shotgun/lethal, /obj/item/gun/ballistic/revolver/mateba, /obj/structure/closet/crate/preopen, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "B" = ( -/turf/template_noop, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/open/space, +/area/space/virtual_domain) "F" = ( /obj/structure/closet/crate/internals, /obj/item/gun/ballistic/revolver/mateba, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "K" = ( /obj/structure/closet/crate/eva, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "M" = ( /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "N" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -111,23 +111,23 @@ "O" = ( /obj/structure/closet/crate/freezer/surplus_limbs, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "P" = ( /obj/structure/closet/crate/wooden, /obj/item/gun/ballistic/revolver/mateba, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Q" = ( /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "R" = ( /obj/structure/closet/crate/secure/loot, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "S" = ( /obj/structure/closet/crate/secure/bitrunning/encrypted, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "U" = ( /obj/modular_map_root/safehouse{ key = "bathroom" @@ -141,14 +141,15 @@ /obj/projectile/bullet/shotgun_frag12, /obj/projectile/bullet/shotgun_frag12, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Y" = ( /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) (1,1,1) = {" o o +o Y Y Y @@ -162,9 +163,8 @@ Y Y Y Y -Y -Y -k +o +o o o o @@ -177,7 +177,7 @@ o (2,1,1) = {" o o -Y +o Y Q Q @@ -192,7 +192,7 @@ Q a Y Y -Y +o o o o @@ -205,7 +205,7 @@ o (3,1,1) = {" o o -Y +o Y Y K @@ -218,8 +218,7 @@ Q Q Q Q -Q -Y +u Y o o @@ -229,6 +228,7 @@ o o o o +o "} (4,1,1) = {" o @@ -246,8 +246,7 @@ Y Q Q Q -Q -Y +i Y o o @@ -257,6 +256,7 @@ o o o o +o "} (5,1,1) = {" o @@ -920,7 +920,7 @@ Y Y Y Y -q +Y o o o diff --git a/_maps/virtual_domains/psyker_zombies.dmm b/_maps/virtual_domains/psyker_zombies.dmm index 1d4307ebdcef8..4ca97f8ef6315 100644 --- a/_maps/virtual_domains/psyker_zombies.dmm +++ b/_maps/virtual_domains/psyker_zombies.dmm @@ -1,21 +1,25 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "b" = ( /obj/item/pizzabox/bomb/armed, /obj/structure/rack, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "c" = ( /obj/structure/sign/warning/directional/west, /turf/open/chasm, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "e" = ( /obj/effect/mob_spawn/corpse/human/cyber_police, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) +"f" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/indestructible/dark, +/area/virtual_domain/protected_space) "h" = ( /obj/structure/rack, /turf/open/indestructible/dark, @@ -23,7 +27,7 @@ "i" = ( /obj/structure/sign/warning/directional/east, /turf/open/chasm, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "o" = ( /turf/template_noop, /area/template_noop) @@ -39,7 +43,7 @@ pixel_y = 1 }, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "r" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -51,16 +55,16 @@ /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "A" = ( /obj/effect/spawner/random/trash/caution_sign, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "B" = ( /obj/machinery/door/airlock/abductor, /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "D" = ( /turf/open/indestructible/dark, /area/virtual_domain/protected_space) @@ -68,9 +72,6 @@ /obj/structure/mystery_box/guns, /turf/open/indestructible/dark, /area/virtual_domain/protected_space) -"I" = ( -/turf/closed/indestructible/binary, -/area/virtual_domain/protected_space) "J" = ( /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, @@ -78,11 +79,11 @@ "K" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "M" = ( /obj/effect/mob_spawn/corpse/human/zombie, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "O" = ( /obj/modular_map_root/safehouse{ key = "bathroom" @@ -91,34 +92,34 @@ /area/virtual_domain/safehouse) "Q" = ( /turf/open/chasm, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "R" = ( /obj/effect/mine/explosive/light, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "T" = ( /obj/machinery/door/airlock/abductor, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "U" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "V" = ( /obj/structure/sign/warning/directional/east, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "W" = ( /obj/effect/mob_spawn/corpse/human/cyber_police, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "X" = ( /mob/living/simple_animal/hostile/zombie, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Y" = ( /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" o @@ -540,10 +541,10 @@ Y Y a Y -I -I -I -I +a +a +a +a a a a @@ -567,10 +568,10 @@ Y Y Y Y -I +a h D -D +f t t t @@ -594,7 +595,7 @@ X Y Y Y -I +a F D D @@ -621,7 +622,7 @@ a Y Y Y -I +a D D D @@ -675,7 +676,7 @@ Y R Y Y -I +a D D D @@ -702,7 +703,7 @@ Y Y Y Y -I +a F D D @@ -729,7 +730,7 @@ a a Y Y -I +a h D D @@ -756,10 +757,10 @@ a a a Y -I -I -I -I +a +a +a +a a a a diff --git a/_maps/virtual_domains/stairs_and_cliffs.dmm b/_maps/virtual_domains/stairs_and_cliffs.dmm index accdf93bf00be..4c1d364d7778d 100644 --- a/_maps/virtual_domains/stairs_and_cliffs.dmm +++ b/_maps/virtual_domains/stairs_and_cliffs.dmm @@ -144,6 +144,10 @@ }, /turf/template_noop, /area/virtual_domain/safehouse) +"wZ" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/rock/snow/ice, +/area/icemoon/underground/explored/virtual_domain) "xB" = ( /obj/structure/railing/corner{ dir = 4 @@ -173,9 +177,6 @@ }, /turf/open/floor/wood, /area/icemoon/underground/explored/virtual_domain) -"Am" = ( -/turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) "AI" = ( /obj/structure/flora/grass/green/style_random, /turf/open/floor/plating/snowed/smoothed, @@ -283,9 +284,8 @@ /turf/closed/indestructible/rock/snow/ice, /area/icemoon/underground/explored/virtual_domain) "RD" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) +/area/virtual_domain/fullbright) "Tz" = ( /obj/item/pickaxe/mini, /turf/open/misc/asteroid/snow, @@ -309,85 +309,84 @@ /area/virtual_domain/safehouse) (1,1,1) = {" -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD RD "} (2,1,1) = {" -Am -Qv +RD Qv Qv Qv @@ -460,10 +459,11 @@ Qv Qv Qv Qv -Am +wZ +RD "} (3,1,1) = {" -Am +RD Qv Qv Qv @@ -537,10 +537,10 @@ Qv Qv Qv Qv -Am +RD "} (4,1,1) = {" -Am +RD Qv Qv Qv @@ -614,10 +614,10 @@ Qv Qv Qv Qv -Am +RD "} (5,1,1) = {" -Am +RD Qv Qv dR @@ -691,10 +691,10 @@ Qv Qv Qv Qv -Am +RD "} (6,1,1) = {" -Am +RD Qv Qv kK @@ -768,10 +768,10 @@ Qv Qv Qv Qv -Am +RD "} (7,1,1) = {" -Am +RD Qv Qv dR @@ -845,10 +845,10 @@ Qv Qv Qv Qv -Am +RD "} (8,1,1) = {" -Am +RD Qv Qv eB @@ -922,10 +922,10 @@ Qv Qv Qv Qv -Am +RD "} (9,1,1) = {" -Am +RD Qv Qv mr @@ -999,10 +999,10 @@ Qv Qv Qv Qv -Am +RD "} (10,1,1) = {" -Am +RD Qv dR sw @@ -1076,10 +1076,10 @@ Qv Qv Qv Qv -Am +RD "} (11,1,1) = {" -Am +RD Qv dR eB @@ -1153,10 +1153,10 @@ Qv Qv Qv Qv -Am +RD "} (12,1,1) = {" -Am +RD Qv dR dR @@ -1230,10 +1230,10 @@ Qv Qv Qv Qv -Am +RD "} (13,1,1) = {" -Am +RD Qv dR sa @@ -1307,10 +1307,10 @@ Qv Qv Qv Qv -Am +RD "} (14,1,1) = {" -Am +RD Qv dR dR @@ -1384,10 +1384,10 @@ Qv Qv Qv Qv -Am +RD "} (15,1,1) = {" -Am +RD Qv sw sa @@ -1461,10 +1461,10 @@ Qv Qv Qv Qv -Am +RD "} (16,1,1) = {" -Am +RD Qv dR sa @@ -1538,10 +1538,10 @@ Qv Qv Qv Qv -Am +RD "} (17,1,1) = {" -Am +RD Qv dR sa @@ -1615,10 +1615,10 @@ Qv Qv Qv Qv -Am +RD "} (18,1,1) = {" -Am +RD Qv Qv dR @@ -1692,10 +1692,10 @@ Qv Qv Qv Qv -Am +RD "} (19,1,1) = {" -Am +RD Qv Qv kK @@ -1769,10 +1769,10 @@ Qv Qv Qv Qv -Am +RD "} (20,1,1) = {" -Am +RD Qv Qv dR @@ -1846,10 +1846,10 @@ Qv Qv Qv Qv -Am +RD "} (21,1,1) = {" -Am +RD Qv Qv dR @@ -1923,10 +1923,10 @@ Qv Qv Qv Qv -Am +RD "} (22,1,1) = {" -Am +RD Qv Qv dR @@ -2000,10 +2000,10 @@ Qv Qv Qv Qv -Am +RD "} (23,1,1) = {" -Am +RD Qv Qv Qv @@ -2077,10 +2077,10 @@ Qv Qv Qv Qv -Am +RD "} (24,1,1) = {" -Am +RD Qv Qv sw @@ -2154,10 +2154,10 @@ Qv Qv Qv Qv -Am +RD "} (25,1,1) = {" -Am +RD Qv Qv dR @@ -2231,10 +2231,10 @@ Qv Qv Qv Qv -Am +RD "} (26,1,1) = {" -Am +RD Qv Qv dR @@ -2308,10 +2308,10 @@ pL Qv Qv Qv -Am +RD "} (27,1,1) = {" -Am +RD Qv Qv dR @@ -2385,10 +2385,10 @@ pL Qv Qv Qv -Am +RD "} (28,1,1) = {" -Am +RD Qv Qv sa @@ -2462,10 +2462,10 @@ pL pL Qv Qv -Am +RD "} (29,1,1) = {" -Am +RD Qv Qv sa @@ -2539,10 +2539,10 @@ pL Qv Qv Qv -Am +RD "} (30,1,1) = {" -Am +RD Qv Qv qc @@ -2616,10 +2616,10 @@ pL Qv Qv Qv -Am +RD "} (31,1,1) = {" -Am +RD Qv pl qc @@ -2693,10 +2693,10 @@ dR dR dR Qv -Am +RD "} (32,1,1) = {" -Am +RD Qv sM sM @@ -2770,10 +2770,10 @@ dR dR Qv Qv -Am +RD "} (33,1,1) = {" -Am +RD Qv sM sM @@ -2847,10 +2847,10 @@ dR dR Qv Qv -Am +RD "} (34,1,1) = {" -Am +RD Qv sM sM @@ -2924,10 +2924,10 @@ dR dR dR Qv -Am +RD "} (35,1,1) = {" -Am +RD Qv sM sM @@ -3001,10 +3001,10 @@ YT YT vz Qv -Am +RD "} (36,1,1) = {" -Am +RD Qv dR sM @@ -3078,10 +3078,10 @@ YT YT YT Qv -Am +RD "} (37,1,1) = {" -Am +RD Qv Qv dR @@ -3155,10 +3155,10 @@ YT YT YT Qv -Am +RD "} (38,1,1) = {" -Am +RD Qv Qv dR @@ -3232,10 +3232,10 @@ YT YT YT Qv -Am +RD "} (39,1,1) = {" -Am +RD Qv Qv dR @@ -3309,10 +3309,10 @@ YT YT YT Qv -Am +RD "} (40,1,1) = {" -Am +RD Qv Qv dR @@ -3386,10 +3386,10 @@ YT YT YT Qv -Am +RD "} (41,1,1) = {" -Am +RD Qv dR sa @@ -3463,10 +3463,10 @@ YT YT uJ Qv -Am +RD "} (42,1,1) = {" -Am +RD Qv dR AI @@ -3540,10 +3540,10 @@ dR dR dR Qv -Am +RD "} (43,1,1) = {" -Am +RD Qv yo yo @@ -3617,10 +3617,10 @@ dR dR dR Qv -Am +RD "} (44,1,1) = {" -Am +RD Qv dR yo @@ -3694,10 +3694,10 @@ dR dR dR Qv -Am +RD "} (45,1,1) = {" -Am +RD Qv dR dR @@ -3771,10 +3771,10 @@ kK dR Qv Qv -Am +RD "} (46,1,1) = {" -Am +RD Qv Qv sa @@ -3848,10 +3848,10 @@ dR dR Qv Qv -Am +RD "} (47,1,1) = {" -Am +RD Qv Qv dR @@ -3925,10 +3925,10 @@ dR dR Qv Qv -Am +RD "} (48,1,1) = {" -Am +RD Qv Qv dR @@ -4002,10 +4002,10 @@ dR dR dR Qv -Am +RD "} (49,1,1) = {" -Am +RD Qv Qv dR @@ -4079,10 +4079,10 @@ sw dR dR Qv -Am +RD "} (50,1,1) = {" -Am +RD Qv Qv sa @@ -4156,10 +4156,10 @@ eB dR dR Qv -Am +RD "} (51,1,1) = {" -Am +RD Qv Qv Qv @@ -4233,10 +4233,10 @@ dR dR sa Qv -Am +RD "} (52,1,1) = {" -Am +RD Qv Qv Qv @@ -4310,10 +4310,10 @@ dR dR dR Qv -Am +RD "} (53,1,1) = {" -Am +RD Qv Qv Qv @@ -4387,10 +4387,10 @@ Qv dR dR Qv -Am +RD "} (54,1,1) = {" -Am +RD Qv Qv Qv @@ -4464,10 +4464,10 @@ Qv dR Qv Qv -Am +RD "} (55,1,1) = {" -Am +RD Qv Qv dR @@ -4541,10 +4541,10 @@ dR dR dR Qv -Am +RD "} (56,1,1) = {" -Am +RD Qv Qv dR @@ -4618,10 +4618,10 @@ dR dR dR Qv -Am +RD "} (57,1,1) = {" -Am +RD Qv Qv dR @@ -4695,10 +4695,10 @@ dR dR dR Qv -Am +RD "} (58,1,1) = {" -Am +RD Qv Qv dR @@ -4772,10 +4772,10 @@ sa dR dR Qv -Am +RD "} (59,1,1) = {" -Am +RD Qv Qv sa @@ -4849,10 +4849,10 @@ dR Qv Qv Qv -Am +RD "} (60,1,1) = {" -Am +RD Qv Qv dR @@ -4926,10 +4926,10 @@ dR Qv Qv Qv -Am +RD "} (61,1,1) = {" -Am +RD Qv dR kK @@ -5003,10 +5003,10 @@ Qv Qv Qv Qv -Am +RD "} (62,1,1) = {" -Am +RD Qv dR sa @@ -5080,10 +5080,10 @@ Qv Qv Qv Qv -Am +RD "} (63,1,1) = {" -Am +RD Qv dR Lw @@ -5157,10 +5157,10 @@ Qv Qv Qv Qv -Am +RD "} (64,1,1) = {" -Am +RD Qv dR sa @@ -5234,10 +5234,10 @@ Qv Qv Qv Qv -Am +RD "} (65,1,1) = {" -Am +RD Qv dR dR @@ -5311,10 +5311,10 @@ Qv Qv Qv Qv -Am +RD "} (66,1,1) = {" -Am +RD Qv dR kK @@ -5388,10 +5388,10 @@ Qv Qv Qv Qv -Am +RD "} (67,1,1) = {" -Am +RD Qv dR dR @@ -5465,10 +5465,10 @@ Qv Qv Qv Qv -Am +RD "} (68,1,1) = {" -Am +RD Qv dR dR @@ -5542,10 +5542,10 @@ Qv Qv Qv Qv -Am +RD "} (69,1,1) = {" -Am +RD Qv Qv dR @@ -5619,10 +5619,10 @@ Qv Qv Qv Qv -Am +RD "} (70,1,1) = {" -Am +RD Qv Qv Qv @@ -5696,10 +5696,10 @@ Qv Qv Qv Qv -Am +RD "} (71,1,1) = {" -Am +RD Qv Qv dR @@ -5773,10 +5773,10 @@ Qv Qv Qv Qv -Am +RD "} (72,1,1) = {" -Am +RD Qv Qv sa @@ -5850,10 +5850,10 @@ Qv Qv Qv Qv -Am +RD "} (73,1,1) = {" -Am +RD Qv Qv Qv @@ -5927,10 +5927,10 @@ Qv Qv Qv Qv -Am +RD "} (74,1,1) = {" -Am +RD Qv Qv Qv @@ -6004,82 +6004,82 @@ Qv Qv Qv Qv -Am +RD "} (75,1,1) = {" -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am -Am +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD +RD "} diff --git a/_maps/virtual_domains/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm index a40945410c11b..d8c63675d77b2 100644 --- a/_maps/virtual_domains/syndicate_assault.dmm +++ b/_maps/virtual_domains/syndicate_assault.dmm @@ -3,7 +3,7 @@ /obj/item/storage/backpack/duffelbag/syndie/surgery, /obj/structure/table/reinforced, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "aw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 @@ -11,7 +11,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "aN" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -30,10 +30,10 @@ "aO" = ( /obj/machinery/recharge_station, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bh" = ( /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bD" = ( /obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41,7 +41,7 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bG" = ( /turf/open/floor/pod/dark, /area/virtual_domain/protected_space) @@ -51,7 +51,7 @@ }, /obj/effect/spawner/random/clothing/costume, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cj" = ( /obj/structure/transit_tube/crossing, /turf/closed/wall/r_wall/syndicate, @@ -67,7 +67,7 @@ }, /obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cw" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -83,7 +83,7 @@ /obj/item/clothing/mask/gas/syndicate, /obj/item/clothing/under/syndicate/skirt, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cy" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" @@ -97,7 +97,7 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cB" = ( /obj/machinery/camera/xray{ c_tag = "Medbay"; @@ -106,11 +106,11 @@ screen_loc = "" }, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cR" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "cZ" = ( /obj/structure/table/reinforced, /obj/item/gun/ballistic/automatic/l6_saw/unrestricted, @@ -120,11 +120,11 @@ "da" = ( /obj/machinery/stasis, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dd" = ( /obj/structure/sign/warning/vacuum/external, /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "di" = ( /obj/machinery/power/terminal{ dir = 1 @@ -132,18 +132,18 @@ /obj/structure/cable, /obj/item/paper/fluff/ruins/forgottenship/powerissues, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dp" = ( /turf/open/floor/mineral/plastitanium, /area/virtual_domain/protected_space) "dw" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dz" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "dU" = ( /obj/structure/cable, /obj/structure/fans/tiny, @@ -152,7 +152,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "eB" = ( /obj/machinery/camera/xray{ c_tag = "Cargo pod"; @@ -179,19 +179,19 @@ }, /obj/machinery/light/directional/south, /turf/open/floor/iron, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fJ" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fV" = ( /obj/machinery/atmospherics/components/unary/vent_pump, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gD" = ( /obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hg" = ( /obj/structure/window/reinforced/plasma/plastitanium, /obj/machinery/door/poddoor{ @@ -200,28 +200,28 @@ state_open = 1 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hy" = ( /obj/structure/table/reinforced, /obj/item/paper/fluff/ruins/forgottenship/missionobj, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hA" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hD" = ( /obj/structure/table/reinforced, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ip" = ( /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "iB" = ( /obj/machinery/light/directional/north, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "iL" = ( /obj/structure/sign/departments/cargo, /turf/closed/wall/r_wall/syndicate, @@ -242,7 +242,7 @@ req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "iX" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 @@ -254,25 +254,25 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ja" = ( /obj/machinery/door/window/left/directional/north{ name = "Spare Equipment"; req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "jl" = ( /obj/structure/bodycontainer/crematorium{ id = "fscremate" }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "jA" = ( /obj/structure/cable, /mob/living/basic/trooper/syndicate/melee/space/stormtrooper, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "jJ" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" @@ -281,7 +281,7 @@ /turf/open/floor/iron/dark/side{ dir = 1 }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kh" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" @@ -295,13 +295,13 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kI" = ( /obj/machinery/computer/atmos_alert{ dir = 8 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "kJ" = ( /obj/modular_map_root/safehouse{ key = "shuttle_space" @@ -325,7 +325,7 @@ req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lo" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external/ruin{ @@ -333,17 +333,17 @@ }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lN" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ dir = 8 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mA" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium, @@ -354,7 +354,7 @@ }, /obj/item/wrench, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "mL" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/mineral/plastitanium, @@ -364,36 +364,36 @@ /obj/effect/mapping_helpers/apc/syndicate_access, /obj/structure/cable, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nn" = ( /turf/closed/mineral/random, /area/virtual_domain/protected_space) "nB" = ( /turf/closed/mineral/random, -/area/space) +/area/ruin/space/virtual_domain) "nG" = ( /obj/machinery/light/directional/south, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "nU" = ( /obj/structure/sign/poster/contraband/syndicate_pistol, /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "og" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/cup/glass/trophy/silver_cup, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "oM" = ( /obj/structure/cable, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pl" = ( /obj/machinery/atmospherics/components/tank/air{ dir = 8 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pz" = ( /obj/machinery/computer/security{ desc = "Used to access interrogation room camera."; @@ -403,38 +403,38 @@ screen_loc = "" }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pH" = ( /obj/structure/table/reinforced, /obj/item/toy/plush/nukeplushie, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 6 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "pU" = ( /obj/machinery/shower/directional/north, /obj/machinery/light/directional/south, /turf/open/floor/iron, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "qf" = ( /obj/structure/table/optable, /obj/machinery/light/small/directional/north, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "qx" = ( /turf/open/space/basic, -/area/space) +/area/space/virtual_domain) "qU" = ( /obj/structure/sign/poster/contraband/c20r, /turf/closed/wall/r_wall/syndicate, @@ -443,22 +443,22 @@ /obj/machinery/light/small/directional/south, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rm" = ( /obj/machinery/button/crematorium{ id = "fscremate"; pixel_x = -32 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ru" = ( /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rH" = ( /obj/machinery/airalarm/directional/north, /obj/effect/mapping_helpers/airalarm/syndicate_access, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rM" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -470,12 +470,12 @@ }, /obj/effect/spawner/random/contraband/armory, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rP" = ( /obj/machinery/light/small/directional/south, /obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sg" = ( /obj/machinery/ore_silo, /turf/open/floor/mineral/plastitanium, @@ -486,13 +486,13 @@ req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sz" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sH" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -505,7 +505,7 @@ /obj/item/ammo_box/c9mm, /obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sK" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -521,7 +521,7 @@ "sL" = ( /obj/structure/chair/comfy, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "sM" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -533,7 +533,7 @@ req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "tI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 @@ -542,48 +542,48 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "uP" = ( /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vp" = ( /obj/structure/table/reinforced, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vD" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vK" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "vU" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "wb" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2, /obj/machinery/portable_atmospherics/scrubber{ anchored = 1 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "we" = ( /turf/closed/mineral/random/high_chance, -/area/space) +/area/ruin/space/virtual_domain) "wK" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "wL" = ( /obj/structure/table/reinforced, /obj/item/storage/medkit/regular, @@ -601,10 +601,10 @@ }, /obj/item/ammo_box/c9mm, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xS" = ( /turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yl" = ( /obj/machinery/door/airlock/grunge{ name = "Captain's Room" @@ -616,12 +616,12 @@ state_open = 1 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yJ" = ( /obj/structure/table/reinforced, /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ @@ -631,39 +631,39 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yT" = ( /obj/item/ai_module/core/full/cybersun, /obj/structure/table/reinforced, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yV" = ( /obj/structure/table/reinforced, /obj/item/assembly/prox_sensor, /obj/item/assembly/prox_sensor, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "yZ" = ( /turf/closed/mineral, -/area/space) +/area/ruin/space/virtual_domain) "zi" = ( /obj/machinery/vending/cigarette/syndicate, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "zt" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "zN" = ( /turf/closed/wall/r_wall/syndicate, /area/virtual_domain/protected_space) "Aa" = ( /obj/structure/chair/comfy/shuttle, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Bm" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/syndicate, @@ -672,7 +672,7 @@ /obj/structure/lattice/catwalk, /obj/structure/cable, /turf/open/space/basic, -/area/space) +/area/space/virtual_domain) "BN" = ( /obj/structure/transit_tube/crossing, /turf/template_noop, @@ -680,7 +680,7 @@ "Cf" = ( /obj/machinery/light/directional/south, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ci" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -693,9 +693,9 @@ /obj/item/crowbar/red, /obj/item/ammo_box/magazine/m9mm_aps, /obj/item/ammo_box/magazine/m9mm_aps, -/obj/item/gun/ballistic/automatic/pistol, +/obj/item/gun/ballistic/automatic/pistol/aps, /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Cn" = ( /obj/machinery/camera/xray/directional/east{ c_tag = "Conference room"; @@ -703,14 +703,14 @@ screen_loc = "" }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "CK" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 }, /mob/living/basic/trooper/syndicate/ranged/smg/pilot, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "CR" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -725,14 +725,14 @@ /obj/item/storage/box/firingpins/syndicate, /obj/item/storage/box/firingpins/syndicate, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "De" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Dj" = ( /obj/structure/table/reinforced, /obj/item/ammo_box/magazine/smgm45, @@ -748,7 +748,7 @@ /obj/effect/spawner/random/maintenance, /obj/effect/spawner/random/maintenance, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "EB" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -756,11 +756,11 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Fp" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "FN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 @@ -769,13 +769,13 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Gn" = ( /obj/structure/chair/comfy{ dir = 1 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Gs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ @@ -783,7 +783,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GB" = ( /obj/structure/cable, /obj/machinery/door/airlock/external/ruin{ @@ -791,17 +791,17 @@ }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "GZ" = ( /obj/machinery/door/airlock/external/ruin{ name = "Syndicate Ship Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Hq" = ( /turf/closed/indestructible/binary, -/area/space) +/area/virtual_domain/fullbright) "HU" = ( /obj/machinery/door/airlock/grunge{ name = "Bridge" @@ -811,17 +811,17 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ia" = ( /obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Id" = ( /obj/machinery/power/shuttle_engine/huge{ dir = 8 }, /turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "If" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ dir = 4 @@ -831,7 +831,7 @@ }, /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ig" = ( /obj/machinery/porta_turret/syndicate/energy{ dir = 4; @@ -840,23 +840,23 @@ shot_delay = 10 }, /turf/closed/wall/r_wall/syndicate/nodiagonal, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Im" = ( /obj/structure/table/reinforced, /obj/item/ammo_box/c9mm, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Io" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "IC" = ( /obj/structure/table/reinforced, /obj/item/paper, /obj/item/pen, /obj/machinery/computer/security/telescreen/forgotten_ship/sci/directional/south, /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "IH" = ( /obj/machinery/door/airlock/external/ruin{ name = "Syndicate Ship Airlock" @@ -872,23 +872,23 @@ }, /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/plating, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Jg" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Jz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 5 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JA" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ @@ -898,14 +898,14 @@ dir = 5 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "JP" = ( /obj/structure/sink/directional/south, /turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Kz" = ( /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Lk" = ( /obj/structure/transit_tube/crossing, /turf/closed/mineral/random, @@ -917,7 +917,7 @@ req_access = list("syndicate") }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "LB" = ( /obj/structure/cable, /turf/open/floor/mineral/plastitanium, @@ -936,7 +936,7 @@ /obj/item/ammo_box/magazine/m9mm, /obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Mm" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -954,14 +954,14 @@ /obj/item/clothing/gloves/combat, /obj/item/clothing/shoes/combat, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "MR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Nm" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -991,7 +991,7 @@ "Ox" = ( /obj/machinery/atmospherics/components/unary/vent_pump, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "OH" = ( /obj/structure/cable, /obj/structure/table/reinforced, @@ -1005,7 +1005,7 @@ }, /obj/structure/cable, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "PR" = ( /obj/machinery/door/password/voice/sfc{ password = null @@ -1024,7 +1024,7 @@ suit_type = /obj/item/clothing/suit/space/syndicate/black }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Qi" = ( /obj/item/stack/sheet/mineral/uranium{ amount = 15 @@ -1032,7 +1032,7 @@ /obj/structure/cable, /obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "QF" = ( /obj/structure/table/reinforced, /obj/item/dualsaber/green, @@ -1042,23 +1042,23 @@ "QG" = ( /obj/structure/tank_dispenser/oxygen, /turf/closed/mineral/random, -/area/space) +/area/ruin/space/virtual_domain) "QX" = ( /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Ra" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2, /obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "RQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 }, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "RU" = ( /obj/machinery/suit_storage_unit/syndicate, /turf/open/floor/mineral/plastitanium, @@ -1070,7 +1070,7 @@ dir = 4 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sd" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -1086,33 +1086,33 @@ /obj/machinery/light/small/directional/north, /obj/item/gun/ballistic/automatic/pistol, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sq" = ( /obj/machinery/power/smes, /obj/structure/cable, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sv" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") }, /obj/effect/spawner/random/food_or_drink/donkpockets, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Sz" = ( /turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "SX" = ( -/obj/machinery/vending/medical/syndicate_access/cybersun, +/obj/machinery/vending/medical/syndicate/cybersun, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "TB" = ( /turf/closed/indestructible/syndicate, /area/virtual_domain/protected_space) "UQ" = ( /obj/structure/sign/poster/contraband/syndicate_recruitment, /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vg" = ( /turf/open/space/basic, /area/virtual_domain/protected_space) @@ -1124,7 +1124,7 @@ shot_delay = 10 }, /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Vq" = ( /obj/structure/transit_tube/station/dispenser/reverse{ dir = 8 @@ -1143,21 +1143,21 @@ amount = 19 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "WR" = ( /obj/machinery/power/port_gen/pacman/super{ anchored = 1 }, /obj/structure/cable, /turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Xp" = ( /turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "XS" = ( /obj/machinery/light/directional/north, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yb" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -1169,7 +1169,7 @@ "Yi" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yj" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -1178,7 +1178,7 @@ amount = 3 }, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yk" = ( /obj/machinery/door/airlock/grunge{ name = "Captain's Room" @@ -1190,7 +1190,7 @@ state_open = 1 }, /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yr" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -1198,25 +1198,25 @@ "Yu" = ( /obj/structure/chair/comfy/black, /turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "YV" = ( /obj/structure/sink/directional/south, /obj/structure/mirror/directional/west, /turf/open/floor/iron/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Za" = ( /obj/machinery/computer/operating, /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Zb" = ( /turf/open/floor/plastic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZA" = ( /obj/machinery/power/shuttle_engine/propulsion{ dir = 8 }, /turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" Hq diff --git a/_maps/virtual_domains/vaporwave.dmm b/_maps/virtual_domains/vaporwave.dmm index 4d5b3ab57ada0..569a65a812baa 100644 --- a/_maps/virtual_domains/vaporwave.dmm +++ b/_maps/virtual_domains/vaporwave.dmm @@ -5,20 +5,24 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "bs" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "bF" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) +"bJ" = ( +/turf/closed/wall/rust, +/area/virtual_domain) "cz" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "cL" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/cup/glass/drinkingglass{ @@ -31,39 +35,39 @@ pixel_y = 8 }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "df" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless{ icon_state = "stairs-l" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "eF" = ( /turf/closed/indestructible/binary, /area/space) "fx" = ( /obj/item/statuebust, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "fQ" = ( /obj/structure/flora/tree/palm, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "gM" = ( /obj/structure/table/reinforced, /obj/item/clothing/glasses/sunglasses/big{ name = "aesthetic sunglasses" }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "hN" = ( /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "il" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "iP" = ( /obj/machinery/suit_storage_unit/standard_unit, /turf/template_noop, @@ -72,7 +76,7 @@ /obj/structure/window/spawner/directional/east, /obj/structure/closet/crate/secure/bitrunning/encrypted, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ku" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -81,14 +85,15 @@ /turf/open/floor/iron/airless{ icon_state = "stairs-r" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "ll" = ( /obj/structure/sign/poster/contraband/clown/directional/north, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lu" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/rust, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "lB" = ( /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/emergency_oxygen, @@ -99,15 +104,15 @@ /obj/structure/table/reinforced, /obj/machinery/chem_dispenser/drinks/beer/fullupgrade, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "qm" = ( /obj/structure/flora/tree/palm, /obj/machinery/light/directional/west, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "qu" = ( /turf/open/floor/holofloor/beach/water, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "rn" = ( /obj/structure/statue/sandstone/venus{ anchored = 1; @@ -117,82 +122,74 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "xb" = ( /obj/structure/chair/stool/directional/west, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xp" = ( /obj/structure/table/reinforced, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "xK" = ( /turf/closed/wall, -/area/ruin/space/has_grav/powered/virtual_domain) -"ym" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) +/area/virtual_domain) "AX" = ( /obj/effect/turf_decal/stripes/asteroid/line, /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "Cq" = ( /obj/item/instrument/eguitar, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "CR" = ( /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Dk" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Es" = ( /obj/structure/chair/comfy/black{ dir = 4 }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"Fd" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/wall/rust, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Hf" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless{ icon_state = "recharge_floor_asteroid" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "HA" = ( /turf/open/floor/holofloor/beach/coast, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "HV" = ( /obj/structure/chair/comfy/black{ dir = 4 }, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Jr" = ( /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KO" = ( /obj/structure/chair/comfy/black{ dir = 8 }, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "KY" = ( /obj/effect/turf_decal/sand, /turf/open/floor/iron/airless{ icon_state = "stairs-m" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "LG" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -200,26 +197,30 @@ "LJ" = ( /obj/structure/lattice, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "LP" = ( /obj/structure/flora/tree/palm, /obj/machinery/light/directional/east, /turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Nz" = ( /obj/structure/window/spawner/directional/east, /obj/structure/table/reinforced, /obj/item/storage/fancy/cigarettes/cigars/havana, /obj/effect/spawner/random/entertainment/lighter, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "NT" = ( +/obj/effect/baseturf_helper/virtual_domain, /turf/open/space/basic, -/area/space) +/area/space/virtual_domain) +"Pv" = ( +/turf/open/space/basic, +/area/space/virtual_domain) "Qh" = ( /obj/structure/closet/crate/bin, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "Uy" = ( /obj/modular_map_root/safehouse{ key = "shuttle_space" @@ -232,20 +233,23 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "UV" = ( /obj/structure/lattice, /turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "Vc" = ( /obj/structure/flora/tree/palm, /turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) +"Vp" = ( +/turf/open/misc/asteroid/airless, +/area/ruin/space/virtual_domain) "XJ" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/hatch, /turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Yo" = ( /obj/structure/statue/sandstone/venus{ anchored = 1; @@ -256,16 +260,16 @@ /turf/open/floor/plating{ initial_gas_mix = "TEMP=2.7" }, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/ruin/space/virtual_domain) "YE" = ( /mob/living/basic/butterfly, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "ZI" = ( /obj/effect/spawner/random/structure/musician/piano/random_piano, /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" eF @@ -299,219 +303,219 @@ eF "} (2,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv NT eF "} (3,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (4,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (5,1,1) = {" eF -NT -NT -NT -NT -NT -NT -cz +Pv +Pv +Pv +Pv +Pv +Pv +Vp LJ -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (6,1,1) = {" eF -NT -NT -NT -NT -NT -cz -cz +Pv +Pv +Pv +Pv +Pv +Vp +Vp LJ -cz -cz +Vp +Vp LJ -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (7,1,1) = {" eF -NT -NT -NT -NT -cz -cz -cz +Pv +Pv +Pv +Pv +Vp +Vp +Vp UV LJ -cz +Vp UV -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (8,1,1) = {" eF -NT -NT -NT -NT -cz +Pv +Pv +Pv +Pv +Vp xK xK -lu -lu -lu +bJ +bJ +bJ xK lu UE -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (9,1,1) = {" eF -NT -NT -NT +Pv +Pv +Pv LJ Qh xK @@ -522,29 +526,29 @@ HA qu xK aA -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (10,1,1) = {" eF -NT -NT -NT +Pv +Pv +Pv LJ UV -lu +bJ ZI Jr Jr @@ -553,27 +557,27 @@ Jr xK bF Vc +Vp cz -cz -NT -NT -NT +Pv +Pv +Pv ku ku ku ku ku Uy -NT +Pv eF "} (11,1,1) = {" eF -NT -NT -NT -cz -cz +Pv +Pv +Pv +Vp +Vp xK xb CR @@ -584,26 +588,26 @@ xK Yo il UE -cz -NT -NT -NT +Vp +Pv +Pv +Pv ku iP iP iP ku ku -NT +Pv eF "} (12,1,1) = {" eF -NT -NT -NT -cz -cz +Pv +Pv +Pv +Vp +Vp xK ll CR @@ -614,25 +618,25 @@ xK Hf df il -cz -NT -NT -NT +Vp +Pv +Pv +Pv ku ku ku ku ku ku -NT +Pv eF "} (13,1,1) = {" eF -NT -NT -NT -cz +Pv +Pv +Pv +Vp LJ xK HV @@ -645,26 +649,26 @@ bs KY bs il -NT -NT -NT +Pv +Pv +Pv ku ku ku ku ku ku -NT +Pv eF "} (14,1,1) = {" eF -NT -NT -NT -cz +Pv +Pv +Pv +Vp LJ -lu +bJ xp gM CR @@ -675,53 +679,53 @@ Hf kF bs il -NT -NT -NT +Pv +Pv +Pv ku ku ku ku ku ku -NT +Pv eF "} (15,1,1) = {" eF -NT -NT -NT -cz +Pv +Pv +Pv +Vp LJ -lu +bJ KO KO CR YE lI -lu +bJ rn il UE UE -NT -NT -NT +Pv +Pv +Pv ku ku ku ku lB ku -NT +Pv eF "} (16,1,1) = {" eF -NT -NT -NT +Pv +Pv +Pv LJ UV xK @@ -733,258 +737,258 @@ Nz xK AX Vc -cz -cz -NT -NT -NT +Vp +Vp +Pv +Pv +Pv ku ku ku ku ku LG -NT +Pv eF "} (17,1,1) = {" eF -NT -NT -NT -cz -cz -lu +Pv +Pv +Pv +Vp +Vp +bJ fQ Cq LP HA qu -lu +bJ aA -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (18,1,1) = {" eF -NT -NT -NT -cz -cz +Pv +Pv +Pv +Vp +Vp xK xK -lu +bJ xK -lu -lu -Fd +bJ +bJ +bJ UE -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (19,1,1) = {" eF -NT -NT -NT -NT -cz -cz -cz +Pv +Pv +Pv +Pv +Vp +Vp +Vp UV LJ Qh UV -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (20,1,1) = {" eF -NT -NT -NT -NT -NT -NT -cz +Pv +Pv +Pv +Pv +Pv +Pv +Vp LJ -cz -cz +Vp +Vp LJ -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (21,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -ym -cz -cz -cz -cz -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +LJ +Vp +Vp +Vp +Vp +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (22,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (23,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (24,1,1) = {" eF -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT -NT +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv +Pv eF "} (25,1,1) = {" diff --git a/_maps/virtual_domains/wendigo.dmm b/_maps/virtual_domains/wendigo.dmm index 57c002c148c6f..34dc74685bd17 100644 --- a/_maps/virtual_domains/wendigo.dmm +++ b/_maps/virtual_domains/wendigo.dmm @@ -40,9 +40,6 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored/virtual_domain) -"ai" = ( -/turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) "aj" = ( /obj/effect/mob_spawn/corpse/human/cargo_tech, /turf/open/misc/asteroid/snow/icemoon, @@ -197,9 +194,8 @@ }, /area/icemoon/underground/explored/virtual_domain) "aL" = ( -/obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/icemoon/underground/explored/virtual_domain) +/area/virtual_domain/fullbright) "aM" = ( /obj/effect/decal/cleanable/blood/gibs/core, /turf/open/indestructible/necropolis{ @@ -346,6 +342,10 @@ initial_gas_mix = "ICEMOON_ATMOS" }, /area/icemoon/underground/explored/virtual_domain) +"yf" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/underground/explored/virtual_domain) "KV" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 9 @@ -369,23 +369,23 @@ aS aS aS aS -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL aS aS aS @@ -407,8 +407,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -424,8 +424,8 @@ ae ae ar ae -ai -ai +aL +aL aS aS aS @@ -445,8 +445,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -464,8 +464,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -483,8 +483,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae av @@ -504,8 +504,8 @@ av ae ae ae -ai -ai +aL +aL aS aS aS @@ -521,8 +521,8 @@ aS (5,1,1) = {" aS aS -ai -ai +aL +aL ae ae av @@ -544,23 +544,23 @@ ab ae au ae -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL aL "} (6,1,1) = {" aS -ai -ai +aL +aL ae ae ae @@ -584,9 +584,8 @@ au ae ae ae -ai -ai -ae +aL +aL ae ae ae @@ -594,11 +593,12 @@ ae ae ae ae -ai +yf +aL "} (7,1,1) = {" -ai -ai +aL +aL ae ae ae @@ -624,7 +624,7 @@ av ae ae ae -ai +aL ae ae ae @@ -633,10 +633,10 @@ ad ag ae ae -ai +aL "} (8,1,1) = {" -ai +aL ae ae ae @@ -672,10 +672,10 @@ aa aa ag ae -ai +aL "} (9,1,1) = {" -ai +aL ae ae ae @@ -711,10 +711,10 @@ am aa aD ae -ai +aL "} (10,1,1) = {" -ai +aL ae ae ar @@ -750,10 +750,10 @@ ae aT ae ae -ai +aL "} (11,1,1) = {" -ai +aL ae ae ae @@ -789,10 +789,10 @@ ae aK ae ae -ai +aL "} (12,1,1) = {" -ai +aL ae ae ab @@ -828,10 +828,10 @@ ae ae ae ae -ai +aL "} (13,1,1) = {" -ai +aL ae ae ab @@ -867,10 +867,10 @@ ae ae ae ae -ai +aL "} (14,1,1) = {" -ai +aL ae ae ar @@ -906,10 +906,10 @@ aV aV aZ ae -ai +aL "} (15,1,1) = {" -ai +aL ae ae au @@ -945,10 +945,10 @@ aV aV aV ae -ai +aL "} (16,1,1) = {" -ai +aL ae ad ac @@ -984,10 +984,10 @@ aV aV aV ae -ai +aL "} (17,1,1) = {" -ai +aL KV aI aa @@ -1023,10 +1023,10 @@ aV aV aV ae -ai +aL "} (18,1,1) = {" -ai +aL ae ae am @@ -1062,10 +1062,10 @@ aV aV aV ae -ai +aL "} (19,1,1) = {" -ai +aL ae ae av @@ -1101,10 +1101,10 @@ aV aV aV ae -ai +aL "} (20,1,1) = {" -ai +aL ae ae ae @@ -1140,10 +1140,10 @@ aV aV aA ae -ai +aL "} (21,1,1) = {" -ai +aL ar ae au @@ -1179,10 +1179,10 @@ ae ae ae ae -ai +aL "} (22,1,1) = {" -ai +aL ae ae ab @@ -1218,10 +1218,10 @@ ae ae ae ae -ai +aL "} (23,1,1) = {" -ai +aL ae ae ab @@ -1257,10 +1257,10 @@ ae ae ae ae -ai +aL "} (24,1,1) = {" -ai +aL ae ae ae @@ -1296,10 +1296,10 @@ ae aU ae ae -ai +aL "} (25,1,1) = {" -ai +aL ae ae ae @@ -1335,10 +1335,10 @@ ad aI aW ae -ai +aL "} (26,1,1) = {" -ai +aL ae ae ae @@ -1374,11 +1374,11 @@ aK ae ae ae -ai +aL "} (27,1,1) = {" -ai -ai +aL +aL ae au ae @@ -1404,7 +1404,7 @@ ae ae ar ae -ai +aL ae ae ae @@ -1413,12 +1413,12 @@ ae ae ae ae -ai +aL "} (28,1,1) = {" aS -ai -ai +aL +aL ae au ae @@ -1442,8 +1442,8 @@ ae ae ae ae -ai -ai +aL +aL ae ae ae @@ -1452,13 +1452,13 @@ ae ae ae ae -ai +aL "} (29,1,1) = {" aS aS -ai -ai +aL +aL ae ae ae @@ -1480,25 +1480,25 @@ ae ae ar ae -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL "} (30,1,1) = {" aS aS aS -ai -ai +aL +aL ae ae ae @@ -1518,8 +1518,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -1537,8 +1537,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -1556,8 +1556,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -1577,8 +1577,8 @@ aS aS aS aS -ai -ai +aL +aL ae ae ae @@ -1594,8 +1594,8 @@ ae ae ae ae -ai -ai +aL +aL aS aS aS @@ -1617,23 +1617,23 @@ aS aS aS aS -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai -ai +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL aS aS aS diff --git a/_maps/virtual_domains/xeno_nest.dmm b/_maps/virtual_domains/xeno_nest.dmm index 65f183d69c401..895ba5e84c37c 100644 --- a/_maps/virtual_domains/xeno_nest.dmm +++ b/_maps/virtual_domains/xeno_nest.dmm @@ -2,31 +2,32 @@ "a" = ( /turf/template_noop, /area/template_noop) +"b" = ( +/obj/structure/alien/weeds, +/obj/structure/alien/resin/wall, +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) "c" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) -"d" = ( -/obj/structure/alien/resin/wall, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "e" = ( /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "f" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /obj/effect/decal/cleanable/blood, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "h" = ( /obj/structure/alien/weeds, /obj/effect/landmark/bitrunning/mob_segment, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "i" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -35,7 +36,7 @@ /obj/item/clothing/under/syndicate, /obj/item/clothing/glasses/night, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "j" = ( /obj/machinery/suit_storage_unit/spaceruin, /turf/template_noop, @@ -44,18 +45,18 @@ /obj/structure/alien/weeds/node, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "l" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "m" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "n" = ( /turf/template_noop, /area/virtual_domain/safehouse) @@ -63,18 +64,18 @@ /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "p" = ( /obj/structure/alien/weeds, /mob/living/basic/alien/drone{ can_plant_weeds = 0 }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "q" = ( /obj/structure/alien/resin/wall, -/turf/open/space/basic, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) "r" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -85,17 +86,17 @@ can_plant_weeds = 0 }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "t" = ( /obj/structure/alien/weeds, /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "u" = ( /obj/structure/alien/weeds/node, /obj/effect/decal/cleanable/blood, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "v" = ( /obj/modular_map_root/safehouse{ key = "shuttle" @@ -107,37 +108,37 @@ /obj/structure/bed/nest, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "y" = ( /obj/structure/alien/weeds/node, /obj/effect/landmark/bitrunning/mob_segment, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "z" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "A" = ( /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "B" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "C" = ( /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "D" = ( /obj/structure/alien/weeds, /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "E" = ( /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "F" = ( /obj/structure/table/greyscale, /obj/item/gun/energy/xray, @@ -155,7 +156,7 @@ /obj/structure/alien/resin/wall, /obj/structure/alien/weeds, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "H" = ( /obj/structure/table/greyscale, /obj/machinery/recharger{ @@ -172,7 +173,7 @@ /obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "J" = ( /obj/structure/alien/weeds, /mob/living/basic/alien/queen/large{ @@ -182,12 +183,12 @@ can_plant_weeds = 0 }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "K" = ( /obj/structure/alien/weeds, /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "L" = ( /obj/item/storage/medkit/regular, /obj/item/storage/medkit/regular, @@ -196,12 +197,10 @@ "M" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall{ - move_force = 1000; - move_resist = 3000; - pull_force = 1000 + move_resist = 3000 }, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "N" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -211,48 +210,48 @@ /obj/item/melee/baton/security/loaded, /obj/item/clothing/head/helmet, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "O" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/fullbright) "P" = ( /obj/structure/alien/weeds/node, /mob/living/basic/alien, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Q" = ( /obj/structure/alien/resin/wall, /obj/structure/alien/resin/wall, -/turf/closed/indestructible/binary, -/area/ruin/space/has_grav/powered/virtual_domain) +/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, +/area/virtual_domain) "S" = ( /obj/structure/alien/weeds, /mob/living/basic/alien, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "T" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /obj/effect/decal/cleanable/blood/gibs, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "U" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/decal/cleanable/blood/gibs, /obj/item/gun/ballistic/automatic/pistol, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "V" = ( /obj/structure/alien/weeds/node, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "W" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) "Z" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -262,12 +261,13 @@ /obj/item/clothing/mask/gas, /obj/item/clothing/head/helmet/space/syndicate/orange, /turf/open/misc/asteroid/basalt/lava_land_surface, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain) (1,1,1) = {" a a a +a E E E @@ -278,8 +278,7 @@ E E E E -E -E +a a a a @@ -309,7 +308,7 @@ a a a a -E +a E z z @@ -656,16 +655,16 @@ a a a a +a +a +a E E E E E E -E -E -E -E +a a a a @@ -697,8 +696,8 @@ a a a a -E -E +a +a E E z @@ -738,7 +737,7 @@ a a a a -E +a E E z @@ -760,7 +759,7 @@ a a a a -E +a E z z @@ -779,7 +778,7 @@ a a a a -E +a E z z @@ -801,7 +800,7 @@ a a a a -E +a E E z @@ -817,8 +816,8 @@ a a a a -E -E +a +a E E E @@ -853,12 +852,12 @@ z z E E -E -E -E -E -E -E +a +a +a +a +a +a E E z @@ -952,7 +951,7 @@ z E E E -E +a a a a @@ -1029,12 +1028,12 @@ e z E E -E -E -E +a +a +a E Q -d +q q q q @@ -1069,7 +1068,7 @@ t z z E -E +a a a a @@ -1110,7 +1109,7 @@ e z E E -E +a a a a @@ -1150,8 +1149,8 @@ e e z E -E -E +a +a a a a @@ -1191,7 +1190,7 @@ e z z E -E +a a a a @@ -1233,12 +1232,12 @@ z E E E +a +a +a +a E -E -E -E -E -d +q C C A @@ -1279,7 +1278,7 @@ E E E E -z +b C C C @@ -1647,7 +1646,7 @@ a E z E -d +q q C C @@ -1688,7 +1687,7 @@ a E E E -d +q q A A @@ -1729,7 +1728,7 @@ a a a E -d +q q A C @@ -1745,8 +1744,8 @@ a a a a -E -E +a +a E E z @@ -1770,7 +1769,7 @@ a a a E -d +q q A A @@ -1786,7 +1785,7 @@ a a a a -E +a E E z @@ -1811,7 +1810,7 @@ a a a E -d +q q A A @@ -1827,7 +1826,7 @@ a a a a -E +a E z z @@ -1925,7 +1924,7 @@ E E E E -E +a a a a @@ -2001,8 +2000,8 @@ z z E E -E -E +a +a a a a diff --git a/_maps/wawastation.json b/_maps/wawastation.json index 71d716a56e07e..71c818bc6bd61 100644 --- a/_maps/wawastation.json +++ b/_maps/wawastation.json @@ -11,12 +11,10 @@ }, "traits": [ { - "Up": true, "Baseturf": "/turf/open/misc/asteroid/airless", "Linkage": "Cross" }, { - "Down": true, "Baseturf": "/turf/open/openspace", "Linkage": "Cross" } diff --git a/auxlua.dll b/auxlua.dll deleted file mode 100644 index 4f712c26d82ee..0000000000000 Binary files a/auxlua.dll and /dev/null differ diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 8901d2d8e858e..38a4e0482ddc8 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -16,10 +16,10 @@ #define MINOR_NEGATIVE 4 -//Mutation classes. Normal being on them, extra being additional mutations with instability and other being stuff you dont want people to fuck with like wizard mutate -/// A mutation that can be activated and deactived by completing a sequence +//Mutation classes. Normal being on them, extra being additional mutations with instability and other being stuff you don't want people to fuck with like wizard mutate +/// A mutation that can be activated and deactivated by completing a sequence #define MUT_NORMAL 1 -/// A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before it's name in the mutation section of the dna console +/// A mutation that is in the mutations tab, and can be given and taken away through though the DNA console. Has a 0 before its name in the mutation section of the dna console #define MUT_EXTRA 2 /// Cannot be interacted with by players through normal means. I.E. wizards mutate #define MUT_OTHER 3 @@ -60,8 +60,15 @@ #define DNA_MOTH_MARKINGS_BLOCK 13 #define DNA_MUSHROOM_CAPS_BLOCK 14 #define DNA_POD_HAIR_BLOCK 15 -#define DNA_MONKEY_TAIL_BLOCK 16 +#define DNA_FISH_TAIL_BLOCK 16 +// Hey! Listen up if you're here because you're adding a species feature! +// +// You don't need to add a DNA block for EVERY species feature! +// You ONLY need DNA blocks if you intend to allow players to change it via GENETICS! +// (Which means having a DNA block for a feature tied to a mob without DNA is entirely pointless.) + +/// Total amount of DNA blocks, must be equal to the highest DNA block number #define DNA_FEATURE_BLOCKS 16 #define DNA_SEQUENCE_LENGTH 4 @@ -72,8 +79,8 @@ #define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator" #define ORGAN_SLOT_APPENDIX "appendix" #define ORGAN_SLOT_BRAIN "brain" -#define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop" -#define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun" +#define ORGAN_SLOT_BRAIN_CEREBELLUM "brain_antidrop" +#define ORGAN_SLOT_BRAIN_CNS "brain_antistun" #define ORGAN_SLOT_BREATHING_TUBE "breathing_tube" #define ORGAN_SLOT_EARS "ears" #define ORGAN_SLOT_EYES "eye_sight" @@ -86,6 +93,9 @@ #define ORGAN_SLOT_MONSTER_CORE "monstercore" #define ORGAN_SLOT_RIGHT_ARM_AUG "r_arm_device" #define ORGAN_SLOT_LEFT_ARM_AUG "l_arm_device" //This one ignores alphabetical order cause the arms should be together +#define ORGAN_SLOT_RIGHT_ARM_MUSCLE "r_arm_muscle" +#define ORGAN_SLOT_LEFT_ARM_MUSCLE "l_arm_muscle" //same as above +#define ORGAN_SLOT_SPINE "spine" #define ORGAN_SLOT_STOMACH "stomach" #define ORGAN_SLOT_STOMACH_AID "stomach_aid" #define ORGAN_SLOT_THRUSTERS "thrusters" @@ -136,6 +146,8 @@ GLOBAL_LIST_INIT(organ_process_order, list( ORGAN_SLOT_APPENDIX, ORGAN_SLOT_RIGHT_ARM_AUG, ORGAN_SLOT_LEFT_ARM_AUG, + ORGAN_SLOT_LEFT_ARM_MUSCLE, + ORGAN_SLOT_RIGHT_ARM_MUSCLE, ORGAN_SLOT_STOMACH, ORGAN_SLOT_STOMACH_AID, ORGAN_SLOT_BREATHING_TUBE, @@ -151,8 +163,8 @@ GLOBAL_LIST_INIT(organ_process_order, list( ORGAN_SLOT_VOICE, ORGAN_SLOT_ADAMANTINE_RESONATOR, ORGAN_SLOT_HEART_AID, - ORGAN_SLOT_BRAIN_ANTIDROP, - ORGAN_SLOT_BRAIN_ANTISTUN, + ORGAN_SLOT_BRAIN_CEREBELLUM, + ORGAN_SLOT_BRAIN_CNS, ORGAN_SLOT_PARASITE_EGG, ORGAN_SLOT_MONSTER_CORE, ORGAN_SLOT_XENO_PLASMAVESSEL, diff --git a/code/__DEFINES/MC.dm b/code/__DEFINES/MC.dm index 8a658f3913d7d..115748a9a82d9 100644 --- a/code/__DEFINES/MC.dm +++ b/code/__DEFINES/MC.dm @@ -19,7 +19,7 @@ ///creates a running average of "things elapsed" per time period when you need to count via a smaller time period. ///eg you want an average number of things happening per second but you measure the event every tick (50 milliseconds). -///make sure both time intervals are in the same units. doesnt work if current_duration > total_duration or if total_duration == 0 +///make sure both time intervals are in the same units. doesn't work if current_duration > total_duration or if total_duration == 0 #define MC_AVG_OVER_TIME(average, current, total_duration, current_duration) ((((total_duration) - (current_duration)) / (total_duration)) * (average) + (current)) #define MC_AVG_MINUTES(average, current, current_duration) (MC_AVG_OVER_TIME(average, current, 1 MINUTES, current_duration)) @@ -32,7 +32,7 @@ #define STOP_PROCESSING(Processor, Datum) Datum.datum_flags &= ~DF_ISPROCESSING;Processor.processing -= Datum;Processor.currentrun -= Datum /// Returns true if the MC is initialized and running. -/// Optional argument init_stage controls what stage the mc must have initializted to count as initialized. Defaults to INITSTAGE_MAX if not specified. +/// Optional argument init_stage controls what stage the mc must have initialized to count as initialized. Defaults to INITSTAGE_MAX if not specified. #define MC_RUNNING(INIT_STAGE...) (Master && Master.processing > 0 && Master.current_runlevel && Master.init_stage_completed == (max(min(INITSTAGE_MAX, ##INIT_STAGE), 1))) #define MC_LOOP_RTN_NEWSTAGES 1 @@ -133,3 +133,19 @@ }\ /datum/controller/subsystem/verb_manager/##X/fire() {..() /*just so it shows up on the profiler*/} \ /datum/controller/subsystem/verb_manager/##X + +#define AI_CONTROLLER_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/ai_controllers/##X);\ +/datum/controller/subsystem/ai_controllers/##X/New(){\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ +}\ +/datum/controller/subsystem/ai_controllers/##X/fire() {..() /*just so it shows up on the profiler*/} \ +/datum/controller/subsystem/ai_controllers/##X + +#define UNPLANNED_CONTROLLER_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/unplanned_controllers/##X);\ +/datum/controller/subsystem/unplanned_controllers/##X/New(){\ + NEW_SS_GLOBAL(SS##X);\ + PreInit();\ +}\ +/datum/controller/subsystem/unplanned_controllers/##X/fire() {..() /*just so it shows up on the profiler*/} \ +/datum/controller/subsystem/unplanned_controllers/##X diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm index 72d28ca6bca9d..9b3b239034b96 100644 --- a/code/__DEFINES/_flags.dm +++ b/code/__DEFINES/_flags.dm @@ -11,6 +11,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define DF_USE_TAG (1<<0) #define DF_VAR_EDITED (1<<1) #define DF_ISPROCESSING (1<<2) +/// Placed on datums that have a static, constant reference. Primarily only used for turfs. +#define DF_STATIC_OBJECT (1<<3) //FLAGS BITMASK // scroll down before changing the numbers on these @@ -23,7 +25,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define NO_SCREENTIPS_1 (1<<2) /// Prevent clicking things below it on the same turf eg. doors/ fulltile windows #define PREVENT_CLICK_UNDER_1 (1<<3) -///specifies that this atom is a hologram that isnt real +///specifies that this atom is a hologram that isn't real #define HOLOGRAM_1 (1<<4) ///Whether /atom/Initialize() has already run for the object #define INITIALIZED_1 (1<<5) @@ -50,10 +52,12 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 /// Whether or not this atom is storing contents for a disassociated storage object #define HAS_DISASSOCIATED_STORAGE_1 (1<<16) /// If this atom has experienced a decal element "init finished" sourced appearance update -/// We use this to ensure stacked decals don't double up appearance updates for no rasin +/// We use this to ensure stacked decals don't double up appearance updates for no reason /// Flag as an optimization, don't make this a trait without profiling /// Yes I know this is a stupid flag, no you can't take him from me #define DECAL_INIT_UPDATE_EXPERIENCED_1 (1<<17) +/// This atom always returns its turf in get_turf_pixel instead of the turf from its offsets +#define IGNORE_TURF_PIXEL_OFFSET_1 (1<<18) // Update flags for [/atom/proc/update_appearance] /// Update the atom's name @@ -77,9 +81,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define RICOCHET_HARD (1<<1) //TURF FLAGS -/// If a turf cant be jaunted through. +/// If a turf can't be jaunted through. #define NOJAUNT (1<<0) -/// If a turf is an usused reservation turf awaiting assignment +/// If a turf is an unused reservation turf awaiting assignment #define UNUSED_RESERVATION_TURF (1<<1) /// If a turf is a reserved turf #define RESERVATION_TURF (1<<2) @@ -134,6 +138,10 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define VIRTUAL_SAFE_AREA (1<<16) /// This area does not allow the Binary channel #define BINARY_JAMMING (1<<17) +/// This area prevents Bag of Holding rifts from being opened. +#define NO_BOH (1<<18) +/// This area prevents fishing from removing unique/limited loot from sources that're also used outside of it. +#define UNLIMITED_FISHING (1<<19) /* These defines are used specifically with the atom/pass_flags bitmask @@ -275,8 +283,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define RELIGION_TOOL_SACRIFICE (1<<1) #define RELIGION_TOOL_SECTSELECT (1<<2) -// ---- Skillchip incompatability flags ---- // -// These flags control which skill chips are compatible with eachother. +// ---- Skillchip incompatibility flags ---- // +// These flags control which skill chips are compatible with each other. // By default, skillchips are incompatible with themselves and multiple of the same istype() cannot be implanted together. Set this flag to disable that check. #define SKILLCHIP_ALLOWS_MULTIPLE (1<<0) // This skillchip is incompatible with other skillchips from the incompatible_category list. diff --git a/code/__DEFINES/_helpers.dm b/code/__DEFINES/_helpers.dm index d9f75fe8e9d80..4560dac0d8e32 100644 --- a/code/__DEFINES/_helpers.dm +++ b/code/__DEFINES/_helpers.dm @@ -1,5 +1,18 @@ // Stuff that is relatively "core" and is used in other defines/helpers +/** + * The game's world.icon_size. \ + * Ideally divisible by 16. \ + * Ideally a number, but it + * can be a string ("32x32"), so more exotic coders + * will be sad if you use this in math. + */ +#define ICON_SIZE_ALL 32 +/// The X/Width dimension of ICON_SIZE. This will more than likely be the bigger axis. +#define ICON_SIZE_X 32 +/// The Y/Height dimension of ICON_SIZE. This will more than likely be the smaller axis. +#define ICON_SIZE_Y 32 + //Returns the hex value of a decimal number //len == length of returned string #define num2hex(X, len) num2text(X, len, 16) diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 325116eb5b869..7d0f804dc5028 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -326,7 +326,6 @@ ACCESS_PHARMACY, \ ACCESS_PLUMBING, \ ACCESS_PSYCHOLOGY, \ - ACCESS_QM, \ ACCESS_RESEARCH, \ ACCESS_ROBOTICS, \ ACCESS_SCIENCE, \ diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index 0253df0b57a4d..a6dccb5e2268e 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -57,6 +57,8 @@ #define MEDAL_DEBT_EXTINGUISHED "Debt Extinguished" #define MEDAL_SISYPHUS "Sisyphus" #define MEDAL_ARCHMAGE "Archmage" +#define MEDAL_CIGARETTES "Cigarettes" +#define MEDAL_SHARKDRAGON "Sharkdragon" #define MEDAL_THEORETICAL_LIMITS "All Within Theoretical Limits" //Skill medal hub IDs diff --git a/code/__DEFINES/actions.dm b/code/__DEFINES/actions.dm index 99f9c1aca551d..a99baa7cd65dd 100644 --- a/code/__DEFINES/actions.dm +++ b/code/__DEFINES/actions.dm @@ -10,6 +10,8 @@ #define AB_CHECK_INCAPACITATED (1<<4) ///Action button checks if user is jaunting #define AB_CHECK_PHASED (1<<5) +///Action button checks if user is not on an open turf +#define AB_CHECK_OPEN_TURF (1<<6) DEFINE_BITFIELD(check_flags, list( "CHECK IF HANDS BLOCKED" = AB_CHECK_HANDS_BLOCKED, @@ -18,6 +20,7 @@ DEFINE_BITFIELD(check_flags, list( "CHECK IF CONSCIOUS" = AB_CHECK_CONSCIOUS, "CHECK IF INCAPACITATED" = AB_CHECK_INCAPACITATED, "CHECK IF TEMPORARILY INCORPOREAL" = AB_CHECK_PHASED, + "CHECK IF NOT ON AN OPEN TURF" = AB_CHECK_OPEN_TURF, )) ///Action button triggered with right click diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 84b0229a97612..74c9120d804d4 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -73,6 +73,8 @@ #define ADMIN_LUAVIEW_CHUNK(state, log_index) "(VIEW CODE)" /// Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper. #define ADMIN_SHOW_PAPER(atom) "(SHOW)" +/// Displays "(PRINT)" in the chat, when clicked it will try to print the atom(paper) on the CentCom/Syndicate fax machine. +#define ADMIN_PRINT_FAX(atom, sender, destination) "(PRINT)" /// Displays "(PLAY)" in the chat, when clicked it tries to play internet sounds from the request. #define ADMIN_PLAY_INTERNET(text, credit) "(PLAY)" /// Displays "(SEE Z-LEVEL LAYOUT)" in the chat, when clicked it shows the z-level layouts for the current world state. @@ -87,7 +89,7 @@ if(!drop_atom) return //not a valid atom. var/turf/drop_turf = get_step(drop_atom, 0) //resolve where the thing is. - if(!drop_turf) //incase it's inside a valid drop container, inside another container. ie if a mech picked up a closet and has it inside it's internal storage. + if(!drop_turf) //incase it's inside a valid drop container, inside another container. ie if a mech picked up a closet and has it inside its internal storage. var/atom/last_try = drop_atom.loc?.drop_location() //one last try, otherwise fuck it. if(last_try) drop_turf = get_step(last_try, 0) diff --git a/code/__DEFINES/admin_verb.dm b/code/__DEFINES/admin_verb.dm index 04806e098b2c4..ae8c75b058886 100644 --- a/code/__DEFINES/admin_verb.dm +++ b/code/__DEFINES/admin_verb.dm @@ -80,8 +80,9 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor #define ADMIN_CATEGORY_EVENTS "Admin.Events" #define ADMIN_CATEGORY_FUN "Admin.Fun" #define ADMIN_CATEGORY_GAME "Admin.Game" +#define ADMIN_CATEGORY_SHUTTLE "Admin.Shuttle" -// Special categories that are seperated +// Special categories that are separated #define ADMIN_CATEGORY_DEBUG "Debug" #define ADMIN_CATEGORY_SERVER "Server" #define ADMIN_CATEGORY_OBJECT "Object" diff --git a/code/__DEFINES/ai/ai.dm b/code/__DEFINES/ai/ai.dm index 37ee5c077e2a5..73a8f2d1900bd 100644 --- a/code/__DEFINES/ai/ai.dm +++ b/code/__DEFINES/ai/ai.dm @@ -68,7 +68,7 @@ ///macro for whether it's appropriate to resist right now, used by resist subtree #define SHOULD_RESIST(source) (source.on_fire || source.buckled || HAS_TRAIT(source, TRAIT_RESTRAINED) || (source.pulledby && source.pulledby.grab_state > GRAB_PASSIVE)) ///macro for whether the pawn can act, used generally to prevent some horrifying ai disasters -#define IS_DEAD_OR_INCAP(source) (source.incapacitated() || source.stat) +#define IS_DEAD_OR_INCAP(source) (source.incapacitated || source.stat) GLOBAL_LIST_INIT(all_radial_directions, list( "NORTH" = image(icon = 'icons/testing/turf_analysis.dmi', icon_state = "red_arrow", dir = NORTH), diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm index 90a9b55ba1749..2b25d0cfb31e1 100644 --- a/code/__DEFINES/ai/ai_blackboard.dm +++ b/code/__DEFINES/ai/ai_blackboard.dm @@ -8,7 +8,7 @@ #define BB_FOOD_TARGET "bb_food_target" ///How close a mob must be for us to select it as a target, if that is less than how far we can maintain it as a target #define BB_AGGRO_RANGE "BB_aggro_range" -///are we hungry? determined by the udder compnent +///are we hungry? determined by the udder component #define BB_CHECK_HUNGRY "BB_check_hungry" ///are we ready to breed? #define BB_BREED_READY "BB_breed_ready" @@ -24,6 +24,8 @@ ///the list of interactions we can have with the owner #define BB_INTERACTIONS_WITH_OWNER "BB_interactions_with_owner" +///The trait checked by ai_behavior/find_potential_targets/prioritize_trait to return a target with a trait over the rest. +#define BB_TARGET_PRIORITY_TRAIT "target_priority_trait" /// Store a single or list of emotes at this key #define BB_EMOTE_KEY "BB_emotes" @@ -45,7 +47,7 @@ ///bane ai used by example script #define BB_BANE_BATMAN "BB_bane_batman" -//yep thats it +//yep that's it ///Hunting BB keys #define BB_CURRENT_HUNTING_TARGET "BB_current_hunting_target" @@ -91,7 +93,7 @@ #define BB_TARGETLESS_TIME "BB_targetless_time" ///Tipped blackboards -///Bool that means a basic mob will start reacting to being tipped in it's planning +///Bool that means a basic mob will start reacting to being tipped in its planning #define BB_BASIC_MOB_TIP_REACTING "BB_basic_tip_reacting" ///the motherfucker who tipped us #define BB_BASIC_MOB_TIPPER "BB_basic_tip_tipper" @@ -121,6 +123,18 @@ ///list of foods this mob likes #define BB_BASIC_FOODS "BB_basic_foods" +///key holding any food we've found +#define BB_TARGET_FOOD "BB_TARGET_FOOD" + +///key holding emotes we play after eating +#define BB_EAT_EMOTES "BB_eat_emotes" + +///key holding the next time we eat +#define BB_NEXT_FOOD_EAT "BB_next_food_eat" + +///key holding our eating cooldown +#define BB_EAT_FOOD_COOLDOWN "BB_eat_food_cooldown" + /// Blackboard key for a held item #define BB_SIMPLE_CARRY_ITEM "BB_SIMPLE_CARRY_ITEM" @@ -131,6 +145,9 @@ ///Range for a MOD AI controller. #define MOD_AI_RANGE 200 +///Only target mobs with these traits +#define BB_TARGET_ONLY_WITH_TRAITS "BB_target_only_with_traits" + ///should we skip the faction check for the targeting strategy? #define BB_ALWAYS_IGNORE_FACTION "BB_always_ignore_factions" ///are we in some kind of temporary state of ignoring factions when targeting? can result in volatile results if multiple behaviours touch this @@ -163,5 +180,4 @@ /// For /datum/ai_behavior/find_potential_targets, what if any field are we using currently #define BB_FIND_TARGETS_FIELD(type) "bb_find_targets_field_[type]" -///mothroach next meal key! -#define BB_MOTHROACH_NEXT_EAT "mothroach_next_eat" + diff --git a/code/__DEFINES/ai/monsters.dm b/code/__DEFINES/ai/monsters.dm index f80eb85735da6..330e2d48eb226 100644 --- a/code/__DEFINES/ai/monsters.dm +++ b/code/__DEFINES/ai/monsters.dm @@ -10,6 +10,16 @@ /// Key where we keep the spine traps ability #define BB_METEOR_HEART_SPINE_TRAPS "BB_meteor_spine_traps" +// Cybersun AI core AI keys +///key for lightning strike attack +#define BB_CYBERSUN_CORE_LIGHTNING "BB_lightning_strike" +///key for big laser attack +#define BB_CYBERSUN_CORE_BARRAGE "BB_cybersun_barrage" + +// Donk Exenteration Drone keys +// key for aoe slash attack +#define BB_DEDBOT_SLASH "BB_dedbot_exenterate" + // Spider AI keys /// Key where we store a turf to put webs on #define BB_SPIDER_WEB_TARGET "BB_spider_web_target" @@ -60,6 +70,11 @@ #define BB_LOBSTROSITY_TARGET_LIMB "BB_lobstrosity_target_limb" /// We increment this counter every time we try to move while dragging an arm and if we go too long we'll give up trying to get out of line of sight and just eat the fingers #define BB_LOBSTROSITY_FINGER_LUST "BB_lobstrosity_finger_lust" +/// Does this carp still target lying mobs even if they aren't stunned, and flee from sary fishermen? +#define BB_LOBSTROSITY_NAIVE_HUNTER "BB_lobstrosity_naive_hunter" + +/// Does this carp run from scary fishermen? +#define BB_CARPS_FEAR_FISHERMAN "BB_carp_fear_fisherman" // eyeball keys ///the death glare ability @@ -273,3 +288,19 @@ //netguardians /// rocket launcher #define BB_NETGUARDIAN_ROCKET_ABILITY "netguardian_rocket" + +//deer +///our water target +#define BB_DEER_WATER_TARGET "deer_water_target" +///our grass target +#define BB_DEER_GRASS_TARGET "deer_grass_target" +///our tree target +#define BB_DEER_TREE_TARGET "deer_tree_target" +///our temporary playmate +#define BB_DEER_PLAYFRIEND "deer_playfriend" +///our home target +#define BB_DEER_TREEHOME "deer_home" +///our resting duration +#define BB_DEER_RESTING "deer_resting" +///time till our next rest duration +#define BB_DEER_NEXT_REST_TIMER "deer_next_rest_timer" diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm index e6f4feb259a59..ad68b1d55959d 100644 --- a/code/__DEFINES/alerts.dm +++ b/code/__DEFINES/alerts.dm @@ -14,12 +14,13 @@ #define ALERT_TOO_MUCH_NITRO "too_much_nitro" #define ALERT_NOT_ENOUGH_NITRO "not_enough_nitro" +#define ALERT_NOT_ENOUGH_WATER "not_enough_water" + /** Mob related */ #define ALERT_SUCCUMB "succumb" #define ALERT_BUCKLED "buckled" #define ALERT_HANDCUFFED "handcuffed" #define ALERT_LEGCUFFED "legcuffed" -#define ALERT_WOUNDED "wound" #define ALERT_IRRADIATED "irradiated" #define ALERT_EMBEDDED_OBJECT "embeddedobject" #define ALERT_SHOES_KNOT "shoealert" diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 9a943474de6f9..159f1da9b45ff 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -165,7 +165,7 @@ GLOBAL_LIST_INIT(syndicate_employers, list( "Waffle Corporation Terrorist", "Waffle Corporation", )) -///employers that are from nanotrasen +///employers that are from Nanotrasen GLOBAL_LIST_INIT(nanotrasen_employers, list( "Champions of Evil", "Corporate Climber", @@ -217,22 +217,28 @@ GLOBAL_LIST_INIT(ai_employers, list( /// Checks if the given mob is a traitor #define IS_TRAITOR(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/traitor)) +/** + * Cult checks + */ + /// Checks if the given mob is a blood cultist -#define IS_CULTIST(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/cult)) +#define IS_CULTIST(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/cult) || HAS_TRAIT(mob, TRAIT_ACT_AS_CULTIST)) + +/// Checks if the given mob is a blood cultist and is guaranteed to return the datum if possible - will cause issues with above trait +#define GET_CULTIST(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/cult)) /// Checks if the mob is a sentient or non-sentient cultist #define IS_CULTIST_OR_CULTIST_MOB(mob) ((IS_CULTIST(mob)) || (mob.faction.Find(FACTION_CULT))) -/// Checks if the given mob is a changeling -#define IS_CHANGELING(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/changeling)) -/// Checks if the given mob is a nuclear operative -#define IS_NUKE_OP(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/nukeop)) - -//Tells whether or not someone is a space ninja -#define IS_SPACE_NINJA(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/ninja)) +/** + * Heretic checks + */ /// Checks if the given mob is a heretic. -#define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic)) +#define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic) || HAS_TRAIT(mob, TRAIT_ACT_AS_HERETIC)) +/// Checks if the given mob is a heretic and is guaranteed to return the datum if possible - will cause issues with above trait +#define GET_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic)) + /// Check if the given mob is a heretic monster. #define IS_HERETIC_MONSTER(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic_monster)) /// Check if the given mob is a lunatic @@ -242,6 +248,19 @@ GLOBAL_LIST_INIT(ai_employers, list( /// CHecks if the given mob is in the mansus realm #define IS_IN_MANSUS(mob) (istype(get_area(mob), /area/centcom/heretic_sacrifice)) +/** + * Etc. + */ + +/// Checks if the given mob is a changeling +#define IS_CHANGELING(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/changeling)) + +/// Checks if the given mob is a nuclear operative +#define IS_NUKE_OP(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/nukeop)) + +//Tells whether or not someone is a space ninja +#define IS_SPACE_NINJA(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/ninja)) + /// Checks if the given mob is a wizard #define IS_WIZARD(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/wizard)) @@ -314,6 +333,11 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list( #define UPLINK_SHARED_STOCK_KITS "uplink_shared_stock_kits" #define UPLINK_SHARED_STOCK_SURPLUS "uplink_shared_stock_surplus" +/// Does this item provide illegal tech? +#define SYNDIE_ILLEGAL_TECH (1 << 0) +/// Does this item go off when scanned by a contraband scanner? +#define SYNDIE_TRIPS_CONTRABAND (1 << 1) + // Used for traitor objectives /// If the objective hasn't been taken yet #define OBJECTIVE_STATE_INACTIVE 1 diff --git a/code/__DEFINES/apc_defines.dm b/code/__DEFINES/apc_defines.dm index ee6c2bb67d636..efcfdd864f2ec 100644 --- a/code/__DEFINES/apc_defines.dm +++ b/code/__DEFINES/apc_defines.dm @@ -54,12 +54,6 @@ /// The APCs external powernet has enough power to charge the APC. #define APC_HAS_POWER 2 -// Ethereals: -/// How long it takes an ethereal to drain or charge APCs. Also used as a spam limiter. -#define APC_DRAIN_TIME (7.5 SECONDS) -/// How much power ethereals gain/drain from APCs. -#define APC_POWER_GAIN (0.2 * STANDARD_CELL_CHARGE) - // Wires & EMPs: /// The wire value used to reset the APCs wires after one's EMPed. #define APC_RESET_EMP "emp" diff --git a/code/__DEFINES/art.dm b/code/__DEFINES/art.dm index b6e9b885d9132..2f6fd95523148 100644 --- a/code/__DEFINES/art.dm +++ b/code/__DEFINES/art.dm @@ -14,3 +14,16 @@ #define CRAYON_COST_SMALL 0.5 #define CRAYON_COST_DEFAULT 1 #define CRAYON_COST_LARGE 5 + +/** + * Patronage thresholds for paintings. + * Different cosmetic frames become available as more credits are spent on the patronage. + * These also influence the artistic value (read: positive moodlets) of a painting. + */ +#define PATRONAGE_OK_FRAME (PAYCHECK_CREW * 3) // 150 credits, as of march 2022 +#define PATRONAGE_NICE_FRAME (PATRONAGE_OK_FRAME * 2.5) +#define PATRONAGE_GREAT_FRAME (PATRONAGE_NICE_FRAME * 2) +#define PATRONAGE_EXCELLENT_FRAME (PATRONAGE_GREAT_FRAME * 2) +#define PATRONAGE_AMAZING_FRAME (PATRONAGE_EXCELLENT_FRAME * 2) +#define PATRONAGE_SUPERB_FRAME (PATRONAGE_AMAZING_FRAME * 2) +#define PATRONAGE_LEGENDARY_FRAME (PATRONAGE_SUPERB_FRAME * 2) diff --git a/code/__DEFINES/atmospherics/atmos_helpers.dm b/code/__DEFINES/atmospherics/atmos_helpers.dm index ca32e4859809b..d5bcbf51471c4 100644 --- a/code/__DEFINES/atmospherics/atmos_helpers.dm +++ b/code/__DEFINES/atmospherics/atmos_helpers.dm @@ -82,7 +82,7 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0)) turf.archived_cycle = SSair.times_fired;\ turf.temperature_archived = turf.temperature; -/* Fetch the energy transferred when two gas mixtures's temperature equalize. +/* Fetch the energy transferred when two gas mixtures' temperature equalize. * * To equalize two gas mixtures, we simply pool the energy and divide it by the pooled heat capacity. * T' = (W1+W2) / (C1+C2) @@ -107,7 +107,7 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0)) * Not immediately obvious, but saves us operation time. * * We put a lot of parentheses here because the numbers get really really big. - * By prioritizing the division we try to tone the number down so we dont get overflows. + * By prioritizing the division we try to tone the number down so we don't get overflows. * * Arguments: * * temperature_delta: T2 - T1. [/datum/gas_mixture/var/temperature] diff --git a/code/__DEFINES/atmospherics/atmos_mob_interaction.dm b/code/__DEFINES/atmospherics/atmos_mob_interaction.dm index dbd8bbc5610b0..75dcebc72d963 100644 --- a/code/__DEFINES/atmospherics/atmos_mob_interaction.dm +++ b/code/__DEFINES/atmospherics/atmos_mob_interaction.dm @@ -64,13 +64,13 @@ /// The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area. #define BODYTEMP_HEATING_MAX 30 /// The body temperature limit the human body can take before it starts taking damage from heat. -/// This also affects how fast the body normalises it's temperature when hot. +/// This also affects how fast the body normalises its temperature when hot. /// 340k is about 66c, and rather high for a human. #define BODYTEMP_HEAT_DAMAGE_LIMIT (BODYTEMP_NORMAL + 30) /// A temperature limit which is above the maximum lavaland temperature #define BODYTEMP_HEAT_LAVALAND_SAFE (LAVALAND_MAX_TEMPERATURE + 5) /// The body temperature limit the human body can take before it starts taking damage from cold. -/// This also affects how fast the body normalises it's temperature when cold. +/// This also affects how fast the body normalises its temperature when cold. /// 270k is about -3c, that is below freezing and would hurt over time. #define BODYTEMP_COLD_DAMAGE_LIMIT (BODYTEMP_NORMAL - 40) /// A temperature limit which is above the minimum icebox temperature diff --git a/code/__DEFINES/atmospherics/atmos_piping.dm b/code/__DEFINES/atmospherics/atmos_piping.dm index 3870a7aed34ac..521dbd02579ec 100644 --- a/code/__DEFINES/atmospherics/atmos_piping.dm +++ b/code/__DEFINES/atmospherics/atmos_piping.dm @@ -91,6 +91,8 @@ #define PIPING_ALL_COLORS (1<<4) /// can bridge over pipenets #define PIPING_BRIDGE (1<<5) +/// intended to connect with layers 2 and 4 only +#define PIPING_DISTRO_AND_WASTE_LAYERS (1<<6) // Ventcrawling bitflags, handled in var/vent_movement ///Allows for ventcrawling to occur. All atmospheric machines have this flag on by default. Cryo is the exception diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 86de96f07a1d1..57dc338d3ebc3 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -58,8 +58,8 @@ #define DATA_HUD_SECURITY_ADVANCED 2 #define DATA_HUD_MEDICAL_BASIC 3 #define DATA_HUD_MEDICAL_ADVANCED 4 -#define DATA_HUD_DIAGNOSTIC_BASIC 5 -#define DATA_HUD_DIAGNOSTIC_ADVANCED 6 +#define DATA_HUD_DIAGNOSTIC 5 +#define DATA_HUD_BOT_PATH 6 #define DATA_HUD_ABDUCTOR 7 #define DATA_HUD_SENTIENT_DISEASE 8 #define DATA_HUD_AI_DETECT 9 @@ -81,6 +81,7 @@ #define SECHUD_ASSISTANT "hudassistant" #define SECHUD_ATMOSPHERIC_TECHNICIAN "hudatmospherictechnician" #define SECHUD_BARTENDER "hudbartender" +#define SECHUD_BUSSER "hudbusser" #define SECHUD_BITAVATAR "hudbitavatar" #define SECHUD_BITRUNNER "hudbitrunner" #define SECHUD_BOTANIST "hudbotanist" diff --git a/code/__DEFINES/basic_mobs.dm b/code/__DEFINES/basic_mobs.dm index ae74872cd7302..12ddaa3a68af9 100644 --- a/code/__DEFINES/basic_mobs.dm +++ b/code/__DEFINES/basic_mobs.dm @@ -24,6 +24,9 @@ /// Above this speed we stop gliding because it looks silly #define END_GLIDE_SPEED 10 +///hunger cooldown for basic mobs +#define EAT_FOOD_COOLDOWN 45 SECONDS + ///mook attack status flags #define MOOK_ATTACK_NEUTRAL 0 #define MOOK_ATTACK_WARMUP 1 @@ -33,6 +36,9 @@ ///keeps track of how many gutlunches are born GLOBAL_VAR_INIT(gutlunch_count, 0) +///Pet customization settings saved for every client +GLOBAL_LIST_EMPTY(customized_pets) + //raptor defines #define RAPTOR_RED "Red" @@ -70,5 +76,3 @@ GLOBAL_VAR_INIT(gutlunch_count, 0) #define BB_RAPTOR_TROUGH_TARGET "raptor_trough_target" #define MAX_RAPTOR_POP 64 - - diff --git a/code/__DEFINES/blackmarket.dm b/code/__DEFINES/blackmarket.dm deleted file mode 100644 index c3b8ad0bf4622..0000000000000 --- a/code/__DEFINES/blackmarket.dm +++ /dev/null @@ -1,11 +0,0 @@ - -// Shipping methods - -// The BEST way of shipping items: accurate, "undetectable" -#define SHIPPING_METHOD_LTSRBT "LTSRBT" -// Picks a random area to teleport the item to and gives you a minute to get there before it is sent. -#define SHIPPING_METHOD_TELEPORT "Teleport" -// Throws the item from somewhere at the station. -#define SHIPPING_METHOD_LAUNCH "Launch" -// Sends a supply pod to the buyer's location, showy. -#define SHIPPING_METHOD_SUPPLYPOD "Supply Pod" diff --git a/code/__DEFINES/bodyparts.dm b/code/__DEFINES/bodyparts.dm index 8afda278a418b..19af74fe43db2 100644 --- a/code/__DEFINES/bodyparts.dm +++ b/code/__DEFINES/bodyparts.dm @@ -16,7 +16,7 @@ #define LIMB_MAX_HP_ALIEN_CORE 500 //Used by xenomorph chests and heads /// Limb Body Damage Coefficient -/// A mutiplication of the burn and brute damage that the limb's stored damage contributes to its attached mob's overall wellbeing. +/// A multiplication of the burn and brute damage that the limb's stored damage contributes to its attached mob's overall wellbeing. /// For instance, if a limb has 50 damage, and has a coefficient of 50%, the human is considered to have suffered 25 damage to their total health. #define LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED 0.5 //Used by advanced robotic limbs. @@ -43,3 +43,7 @@ #define AUGGED_CHEST_EMP_SHAKE_TIME 5 SECONDS /// When hit by an EMP, the time an augged head will make vision fucky for. #define AUGGED_HEAD_EMP_GLITCH_DURATION 6 SECONDS + +// Color priorities for bodyparts +#define LIMB_COLOR_HULK 10 +#define LIMB_COLOR_CARP_INFUSION 20 diff --git a/code/__DEFINES/cameranets.dm b/code/__DEFINES/cameranets.dm index 935e015e0cda0..3cd0d30660d3b 100644 --- a/code/__DEFINES/cameranets.dm +++ b/code/__DEFINES/cameranets.dm @@ -30,6 +30,7 @@ #define CAMERA_NETWORK_CARGO "cargo" #define CAMERANET_NETWORK_ABDUCTOR "abductor" #define OPERATIVE_CAMERA_NET "operative" +#define CAMERANET_NETWORK_CURATOR "curator" // Ruins/Away missiosn/Misc camera nets #define CAMERANET_NETWORK_MOON19_XENO "mo19x" diff --git a/code/__DEFINES/cargo.dm b/code/__DEFINES/cargo.dm index 1d34ed6b3cff8..d136f35a69ffb 100644 --- a/code/__DEFINES/cargo.dm +++ b/code/__DEFINES/cargo.dm @@ -1,33 +1,9 @@ -#define STYLE_STANDARD 1 -#define STYLE_BLUESPACE 2 -#define STYLE_CENTCOM 3 -#define STYLE_SYNDICATE 4 -#define STYLE_BLUE 5 -#define STYLE_CULT 6 -#define STYLE_MISSILE 7 -#define STYLE_RED_MISSILE 8 -#define STYLE_BOX 9 -#define STYLE_HONK 10 -#define STYLE_FRUIT 11 -#define STYLE_INVISIBLE 12 -#define STYLE_GONDOLA 13 -#define STYLE_SEETHROUGH 14 - -#define POD_SHAPE 1 -#define POD_BASE 2 -#define POD_DOOR 3 -#define POD_DECAL 4 -#define POD_GLOW 5 -#define POD_RUBBLE_TYPE 6 -#define POD_NAME 7 -#define POD_DESC 8 - #define RUBBLE_NONE 1 #define RUBBLE_NORMAL 2 #define RUBBLE_WIDE 3 #define RUBBLE_THIN 4 -#define POD_SHAPE_NORML 1 +#define POD_SHAPE_NORMAL 1 #define POD_SHAPE_OTHER 2 #define POD_TRANSIT "1" diff --git a/code/__DEFINES/chat.dm b/code/__DEFINES/chat.dm index c3fe46b0cd496..516fe8c4e193a 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -45,5 +45,11 @@ #define debug_world_log(msg) if (GLOB.Debug2) log_world("DEBUG: [msg]") /// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. #define examine_block(str) ("
" + str + "
") +/// Makes a fieldset with a name in the middle top part. Can apply additional classes +#define fieldset_block(title, content, classes) ("
" + title + "
" + content + "
") +/// Makes a horizontal line with text in the middle +#define separator_hr(str) ("
" + str + "
") /// Emboldens runechat messages #define RUNECHAT_BOLD(str) "+[str]+" +/// Helper which creates a chat message which may have a tooltip in some contexts, but not others. +#define conditional_tooltip(normal_text, tooltip_text, condition) ((condition) ? (span_tooltip(tooltip_text, normal_text)) : (normal_text)) diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 72159bde0540e..f68641b29840f 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -434,4 +434,21 @@ GLOBAL_LIST_INIT(cable_colors, list( CABLE_COLOR_BROWN = CABLE_HEX_COLOR_BROWN )) +GLOBAL_LIST_INIT(heretic_path_to_color, list( + PATH_START = COLOR_LIME, + PATH_RUST = COLOR_CARGO_BROWN, + PATH_FLESH = COLOR_SOFT_RED, + PATH_ASH = COLOR_VIVID_RED, + PATH_VOID = COLOR_CYAN, + PATH_BLADE = COLOR_SILVER, + PATH_COSMIC = COLOR_PURPLE, + PATH_LOCK = COLOR_YELLOW, + PATH_MOON = COLOR_BLUE_LIGHT, + )) + #define HUSK_COLOR_TONE rgb(96, 88, 80) + +#define CM_COLOR_SAT_MIN 0.6 +#define CM_COLOR_SAT_MAX 0.7 +#define CM_COLOR_LUM_MIN 0.65 +#define CM_COLOR_LUM_MAX 0.75 diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index dc605fd495519..fbdb630174fe0 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -13,14 +13,14 @@ #define OXY "oxygen" /// Exhaustion and nonlethal damage. #define STAMINA "stamina" -/// Brain damage. Should probably be decomissioned and replaced with proper organ damage. +/// Brain damage. Should probably be decommissioned and replaced with proper organ damage. #define BRAIN "brain" //Damage flag defines // /// Involves corrosive substances. #define ACID "acid" -/// Involved in checking wheter a disease can infect or spread. Also involved in xeno neurotoxin. +/// Involved in checking whether a disease can infect or spread. Also involved in xeno neurotoxin. #define BIO "bio" /// Involves a shockwave, usually from an explosion. #define BOMB "bomb" @@ -36,7 +36,7 @@ #define LASER "laser" /// Involves a melee attack or a thrown object. #define MELEE "melee" -/// Involved in checking the likelyhood of applying a wound to a mob. +/// Involved in checking the likelihood of applying a wound to a mob. #define WOUND "wound" #define ARMOR_ALL "all_damage_types" @@ -76,15 +76,12 @@ #define CANUNCONSCIOUS (1<<2) /// If set, this mob can be grabbed or pushed when bumped into #define CANPUSH (1<<3) -/// Mob godmode. Prevents most statuses and damage from being taken, but is more often than not a crapshoot. Use with caution. -#define GODMODE (1<<4) DEFINE_BITFIELD(status_flags, list( "CAN STUN" = CANSTUN, "CAN KNOCKDOWN" = CANKNOCKDOWN, "CAN UNCONSCIOUS" = CANUNCONSCIOUS, "CAN PUSH" = CANPUSH, - "GOD MODE" = GODMODE, )) //Health Defines @@ -242,8 +239,8 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( /// ex_act() with EXPLODE_DEVASTATE severity will gib mobs with less than this much bomb armor #define EXPLODE_GIB_THRESHOLD 50 -#define EMP_HEAVY 1 #define EMP_LIGHT 2 +#define EMP_HEAVY 1 #define GRENADE_CLUMSY_FUMBLE 1 #define GRENADE_NONCLUMSY_FUMBLE 2 @@ -354,7 +351,7 @@ GLOBAL_LIST_INIT(leg_zones, list(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) ///If the obstacle is an object at the border of the turf (so no signal from being sent to the other turf) #define SHOVE_DIRECTIONAL_BLOCKED (1<<6) -///Bitfield returned by listeners for COMSIG_CARBON_ENTER_STAMCRIT when they perform some action that prevents a mob going into stamcrit. +///Bitfield returned by listeners for COMSIG_LIVING_ENTER_STAMCRIT when they perform some action that prevents a mob going into stamcrit. #define STAMCRIT_CANCELLED (1<<0) ///Deathmatch lobby current status diff --git a/code/__DEFINES/configuration.dm b/code/__DEFINES/configuration.dm index 477bed243c1a2..39db31f794685 100644 --- a/code/__DEFINES/configuration.dm +++ b/code/__DEFINES/configuration.dm @@ -28,3 +28,9 @@ #define RESPAWN_FLAG_FREE 1 /// Can respawn, but not as the same character #define RESPAWN_FLAG_NEW_CHARACTER 2 + +// Human authority defines +#define HUMAN_AUTHORITY_DISABLED "DISABLED" +#define HUMAN_AUTHORITY_HUMAN_WHITELIST "HUMAN_WHITELIST" +#define HUMAN_AUTHORITY_NON_HUMAN_WHITELIST "NON_HUMAN_WHITELIST" +#define HUMAN_AUTHORITY_ENFORCED "ENFORCED" diff --git a/code/__DEFINES/construction/material.dm b/code/__DEFINES/construction/material.dm index 445b4e0dc88e4..2764c0bbfaf56 100644 --- a/code/__DEFINES/construction/material.dm +++ b/code/__DEFINES/construction/material.dm @@ -1,4 +1,4 @@ -//Defines for amount of material retrived from sheets & other items +//Defines for amount of material retrieved from sheets & other items /// The amount of materials you get from a sheet of mineral like iron/diamond/glass etc. 100 Units. #define SHEET_MATERIAL_AMOUNT 100 /// The amount of materials you get from half a sheet. Used in standard object quantities. 50 units. @@ -21,6 +21,14 @@ #define MAT_CATEGORY_RIGID "rigid material" /// Materials that can be used to craft items #define MAT_CATEGORY_ITEM_MATERIAL "item material" +/** + * Materials that can also be used to craft items for designs that require two custom mats. + * This is mainly a work around to the fact we can't (easily) have the same category show + * multiple times in a list with different values, because list access operator [] will fetch the + * top-most value. + */ +#define MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY "item material complementary" + /// Use this flag on TRUE if you want the basic recipes #define MAT_CATEGORY_BASE_RECIPES "basic recipes" @@ -87,3 +95,10 @@ #define MATERIAL_RARITY_RARE 3 /// Is this material only going to spawn once in ore vents? (6% of vents on lavaland) #define MATERIAL_RARITY_UNDISCOVERED 1 + +///The key to access the 'optimal' amount of a material key from its assoc value list. +#define MATERIAL_LIST_OPTIMAL_AMOUNT "optimal_amount" +///The key to access the multiplier used to selectively control effects and modifiers of a material. +#define MATERIAL_LIST_MULTIPLIER "multiplier" +///A macro that ensures some multiplicative modifiers higher than 1 don't become lower than 1 and viceversa because of the multiplier. +#define GET_MATERIAL_MODIFIER(modifier, multiplier) (modifier >= 1 ? 1 + ((modifier) - 1) * (multiplier) : (modifier)**(multiplier)) diff --git a/code/__DEFINES/construction/rcd.dm b/code/__DEFINES/construction/rcd.dm index 95c5ab8005323..a8d98215af1dc 100644 --- a/code/__DEFINES/construction/rcd.dm +++ b/code/__DEFINES/construction/rcd.dm @@ -7,7 +7,7 @@ #define RCD_WINDOWGRILLE (1 << 1) /// Windoors & Airlocks #define RCD_AIRLOCK (1 << 2) - /// Literarly anything that is spawned on top of a turf such as tables, machines etc + /// Literally anything that is spawned on top of a turf such as tables, machines etc #define RCD_STRUCTURE (1 << 3) /// For wallmounts like air alarms, fire alarms & apc #define RCD_WALLFRAME (1 << 4) diff --git a/code/__DEFINES/crafting.dm b/code/__DEFINES/crafting.dm index 54dc479aa7306..cb7930e9d1fb6 100644 --- a/code/__DEFINES/crafting.dm +++ b/code/__DEFINES/crafting.dm @@ -28,6 +28,10 @@ #define CRAFT_CHECK_DENSITY (1<<5) /// If the created atom will gain custom mat datums #define CRAFT_APPLIES_MATS (1<<6) +/// Crafting passes reagents of components to the finished product +#define CRAFT_TRANSFERS_REAGENTS (1<<7) +/// Crafting clears all reagents present in the finished product +#define CRAFT_CLEARS_REAGENTS (1<<8) //food/drink crafting defines //When adding new defines, please make sure to also add them to the encompassing list diff --git a/code/__DEFINES/crushing.dm b/code/__DEFINES/crushing.dm index 1261b98e730e8..62705e0e3b871 100644 --- a/code/__DEFINES/crushing.dm +++ b/code/__DEFINES/crushing.dm @@ -8,7 +8,7 @@ #define SUCCESSFULLY_FELL_OVER (1<<2) #define CRUSH_CRIT_SHATTER_LEGS "crush_crit_shatter_legs" -#define CRUSH_CRIT_PARAPALEGIC "crush_crit_parapalegic" +#define CRUSH_CRIT_PARAPLEGIC "crush_crit_paraplegic" #define CRUSH_CRIT_SQUISH_LIMB "crush_crit_pin" #define CRUSH_CRIT_HEADGIB "crush_crit_headgib" #define VENDOR_CRUSH_CRIT_PIN "vendor_crush_crit_pin" diff --git a/code/__DEFINES/cult.dm b/code/__DEFINES/cult.dm index 005b0ca27eef8..4f77e2966ca39 100644 --- a/code/__DEFINES/cult.dm +++ b/code/__DEFINES/cult.dm @@ -58,5 +58,5 @@ GLOBAL_LIST(sacrificed) // Used to keep track of items rewarded after a heretic is sacked. #define CURSED_BLADE_UNLOCKED "Cursed Blade" -#define CRIMSON_FOCUS_UNLOCKED "Crimson Focus" +#define CRIMSON_MEDALLION_UNLOCKED "Crimson Medallion" #define PROTEON_ORB_UNLOCKED "Proteon Orb" diff --git a/code/__DEFINES/database.dm b/code/__DEFINES/database.dm index 3d20b3b9a3cdc..22351b5052d74 100644 --- a/code/__DEFINES/database.dm +++ b/code/__DEFINES/database.dm @@ -4,3 +4,6 @@ #define DB_QUERY_FINISHED 1 /// When there was a problem with the execution of a query. #define DB_QUERY_BROKEN 2 + +///The probability of non-maploaded photos and papers being saved as bottle messages at the end of the round. +#define MESSAGE_BOTTLE_CHANCE 0.2 diff --git a/code/__DEFINES/dcs/flags.dm b/code/__DEFINES/dcs/flags.dm index 9b181e226a9c8..950a37d3c43c8 100644 --- a/code/__DEFINES/dcs/flags.dm +++ b/code/__DEFINES/dcs/flags.dm @@ -30,7 +30,7 @@ #define ELEMENT_DONT_SORT_LIST_ARGS (1<<3) /** * Elements with this flag will be ignored by the dcs_check_list_arguments test. - * A good example is connect_loc, for which it's pratically undoable unless we force every signal proc to have a different name. + * A good example is connect_loc, for which it's practically undoable unless we force every signal proc to have a different name. */ #define ELEMENT_NO_LIST_UNIT_TEST (1<<4) diff --git a/code/__DEFINES/dcs/helpers.dm b/code/__DEFINES/dcs/helpers.dm index df6acffd761a8..01abfac80d4d5 100644 --- a/code/__DEFINES/dcs/helpers.dm +++ b/code/__DEFINES/dcs/helpers.dm @@ -1,5 +1,5 @@ /// Used to trigger signals and call procs registered for that signal -/// The datum hosting the signal is automaticaly added as the first argument +/// The datum hosting the signal is automatically added as the first argument /// Returns a bitfield gathered from all registered procs /// Arguments given here are packaged in a list and given to _SendSignal #define SEND_SIGNAL(target, sigtype, arguments...) ( !target._listen_lookup?[sigtype] ? NONE : target._SendSignal(sigtype, list(target, ##arguments)) ) diff --git a/code/__DEFINES/dcs/signals/signals_action.dm b/code/__DEFINES/dcs/signals/signals_action.dm index 2226e34bcccbd..c6e042a0581d5 100644 --- a/code/__DEFINES/dcs/signals/signals_action.dm +++ b/code/__DEFINES/dcs/signals/signals_action.dm @@ -2,7 +2,7 @@ ///from base of datum/action/proc/Trigger(): (datum/action) #define COMSIG_ACTION_TRIGGER "action_trigger" - // Return to block the trigger from occuring + // Return to block the trigger from occurring #define COMPONENT_ACTION_BLOCK_TRIGGER (1<<0) /// From /datum/action/Grant(): (mob/grant_to) #define COMSIG_ACTION_GRANTED "action_grant" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm index c612d174ac354..2e42957aa3a08 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -9,6 +9,8 @@ #define COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON "atom_init_success_on" ///from base of atom/examine(): (/mob, list/examine_text) #define COMSIG_ATOM_EXAMINE "atom_examine" +///from base of atom/examine_tags(): (/mob, list/examine_tags) +#define COMSIG_ATOM_EXAMINE_TAGS "atom_examine_tags" ///from base of atom/get_examine_name(): (/mob, list/overrides) #define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" //Positions for overrides list @@ -68,7 +70,7 @@ #define COMSIG_ATOM_EXITED "atom_exited" ///from base of atom/movable/Moved(): (atom/movable/gone, direction) #define COMSIG_ATOM_ABSTRACT_EXITED "atom_abstract_exited" -///from base of atom/Bumped(): (/atom/movable) +///from base of atom/Bumped(): (/atom/movable) (the one that gets bumped) #define COMSIG_ATOM_BUMPED "atom_bumped" ///from base of atom/has_gravity(): (turf/location, list/forced_gravities) #define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" @@ -140,3 +142,6 @@ /// From /obj/effect/particle_effect/sparks/proc/sparks_touched(datum/source, atom/movable/singed) #define COMSIG_ATOM_TOUCHED_SPARKS "atom_touched_sparks" #define COMSIG_ATOM_TOUCHED_HAZARDOUS_SPARKS "atom_touched_hazardous_sparks" + +/// From whoever has been revealed (atom/revealed) +#define COMSIG_ATOM_REVEAL "atom_reveal" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm index bc73dbf32914a..36a2ca2c80584 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -9,13 +9,12 @@ #define COMSIG_MOVABLE_MOVED "movable_moved" ///from base of atom/movable/Cross(): (/atom/movable) #define COMSIG_MOVABLE_CROSS "movable_cross" + #define COMPONENT_BLOCK_CROSS (1<<0) ///from base of atom/movable/Move(): (/atom/movable) #define COMSIG_MOVABLE_CROSS_OVER "movable_cross_am" ///from base of atom/movable/Bump(): (/atom) #define COMSIG_MOVABLE_BUMP "movable_bump" -///from base of atom/movable/newtonian_move(): (inertia_direction, start_delay) -#define COMSIG_MOVABLE_NEWTONIAN_MOVE "movable_newtonian_move" - #define COMPONENT_MOVABLE_NEWTONIAN_BLOCK (1<<0) + #define COMPONENT_INTERCEPT_BUMPED (1<<0) ///from datum/component/drift/apply_initial_visuals(): () #define COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT "movable_drift_visual_attempt" #define DRIFT_VISUAL_FAILED (1<<0) @@ -72,7 +71,7 @@ #define COMSIG_MOVABLE_DISPOSING "movable_disposing" // called when movable is expelled from a disposal pipe, bin or outlet on obj/pipe_eject: (direction) #define COMSIG_MOVABLE_PIPE_EJECTING "movable_pipe_ejecting" -///called when the movable sucessfully has it's anchored var changed, from base atom/movable/set_anchored(): (value) +///called when the movable successfully has its anchored var changed, from base atom/movable/set_anchored(): (value) #define COMSIG_MOVABLE_SET_ANCHORED "movable_set_anchored" ///from base of atom/movable/setGrabState(): (newstate) #define COMSIG_MOVABLE_SET_GRAB_STATE "living_set_grab_state" @@ -117,9 +116,16 @@ /// From base of area/Exited(): (area/left, direction) #define COMSIG_MOVABLE_EXITED_AREA "movable_exited_area" +///from base of /datum/component/splat/splat: (hit_atom) +#define COMSIG_MOVABLE_SPLAT "movable_splat" + +///from base of /atom/movable/point_at: (atom/A, obj/effect/temp_visual/point/point) +#define COMSIG_MOVABLE_POINTED "movable_pointed" + /// Sent to movables when they are being stolen by a spy: (mob/living/spy, datum/spy_bounty/bounty) #define COMSIG_MOVABLE_SPY_STEALING "movable_spy_stealing" /// Called when something is pushed by a living mob bumping it: (mob/living/pusher, push force) #define COMSIG_MOVABLE_BUMP_PUSHED "movable_bump_pushed" /// Stop it from moving #define COMPONENT_NO_PUSH (1<<0) + diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm index 5836a0be65a39..63ad7655be7ee 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movement.dm @@ -19,7 +19,12 @@ #define COMSIG_ATOM_START_PULL "movable_start_pull" /// called on /atom when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) #define COMSIG_ATOM_TRIED_PASS "atom_tried_pass" - #define COMSIG_COMPONENT_PERMIT_PASSAGE (1 << 0) +/// called on /movable when something attempts to pass through it (atom/movable/source, atom/movable/passing, dir) AND WHEN general_movement = FALSE for some fucking reason +#define COMSIG_MOVABLE_CAN_PASS_THROUGH "movable_can_pass_through" +/// If given, we permit passage through +#define COMSIG_COMPONENT_PERMIT_PASSAGE (1 << 0) +/// If given, we DONT permit passage through +#define COMSIG_COMPONENT_REFUSE_PASSAGE (1 << 1) ///called on /living when someone starts pulling (atom/movable/pulled, state, force) #define COMSIG_LIVING_START_PULL "living_start_pull" ///called on /living when someone is pulled (mob/living/puller) diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm index 6448be3fecb74..46e179ee567ba 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_x_act.dm @@ -89,7 +89,6 @@ /// Sent from [atom/proc/item_interaction], when this atom is used as a tool and an event occurs #define COMSIG_ITEM_TOOL_ACTED "tool_item_acted" -/// This is sent via item interaction (IE, item clicking on atom) right before the item's inserted into the atom's storage -/// Args: (obj/item/inserting, mob/living/user) -#define COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT "atom_storage_item_interact_insert" - #define BLOCK_STORAGE_INSERT (1<<0) +/// from /obj/projectile/energy/fisher/on_hit() or /obj/item/gun/energy/recharge/fisher when striking a target +#define COMSIG_ATOM_SABOTEUR_ACT "hit_by_saboteur" + #define COMSIG_SABOTEUR_SUCCESS 1 diff --git a/code/__DEFINES/dcs/signals/signals_bitrunning.dm b/code/__DEFINES/dcs/signals/signals_bitrunning.dm index 23461a90a1108..ac3095d6f5af8 100644 --- a/code/__DEFINES/dcs/signals/signals_bitrunning.dm +++ b/code/__DEFINES/dcs/signals/signals_bitrunning.dm @@ -53,3 +53,6 @@ /// from /obj/effect/mob_spawn/ghost_role/human/virtual_domain/proc/artificial_spawn() : (mob/living/runner) #define COMSIG_BITRUNNER_SPAWNED "bitrunner_spawned" + +/// from /obj/effect/landmark/bitrunning/mob_segment/proc/spawn_mobs() : (list/mob/living) +#define COMSIG_BITRUNNING_MOB_SEGMENT_SPAWNED "bitrunner_mob_segment_spawned" diff --git a/code/__DEFINES/dcs/signals/signals_clothing.dm b/code/__DEFINES/dcs/signals/signals_clothing.dm index 03b695aca4c3e..eeb40ade8aae5 100644 --- a/code/__DEFINES/dcs/signals/signals_clothing.dm +++ b/code/__DEFINES/dcs/signals/signals_clothing.dm @@ -1,5 +1,5 @@ // /obj/item/clothing -/// (/obj/item/clothing, visor_state) - When a clothing gets it's visor toggled. +/// (/obj/item/clothing, visor_state) - When a clothing gets its visor toggled. #define COMSIG_CLOTHING_VISOR_TOGGLE "clothing_visor_toggle" /// From an undersuit being adjusted: () #define COMSIG_CLOTHING_UNDER_ADJUSTED "clothing_under_adjusted" diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm index 0c998be19219f..5565c143d6613 100644 --- a/code/__DEFINES/dcs/signals/signals_datum.dm +++ b/code/__DEFINES/dcs/signals/signals_datum.dm @@ -45,3 +45,9 @@ ///from /datum/bank_account/pay_debt(), after a portion or all the debt has been paid. #define COMSIG_BANK_ACCOUNT_DEBT_PAID "bank_account_debt_paid" + +///from /datum/component/on_hit_effect/send_signal(): (user, target, hit_zone) +#define COMSIG_ON_HIT_EFFECT "comsig_on_hit_effect" + +///from /datum/component/bubble_icon_override/get_bubble_icon(): (list/holder) +#define COMSIG_GET_BUBBLE_ICON "get_bubble_icon" diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm index 5b01bd7d61299..f7606b63a01db 100644 --- a/code/__DEFINES/dcs/signals/signals_fish.dm +++ b/code/__DEFINES/dcs/signals/signals_fish.dm @@ -8,6 +8,13 @@ ///The item won't be inserted into the aquarium, but will early return attackby anyway. #define COMSIG_CANNOT_INSERT_IN_AQUARIUM (1<<1) +///Updates the appearance of a newly generated aquarium content visual:(visual) +#define COMSIG_AQUARIUM_CONTENT_GENERATE_APPEARANCE "aquarium_content_apply_appearance" +///Updates the base position of an aquarium content visual:(aquarium, visual) +#define AQUARIUM_CONTENT_RANDOMIZE_POSITION "aquarium_content_randomize_position" +///Updates the animation of an aquarium content visual:(aquarium, visual) +#define COMSIG_AQUARIUM_CONTENT_DO_ANIMATION "aquarium_content_do_animation" + // Fish signals #define COMSIG_FISH_STATUS_CHANGED "fish_status_changed" #define COMSIG_FISH_STIRRED "fish_stirred" @@ -15,17 +22,38 @@ #define COMSIG_FISH_LIFE "fish_life" ///From /datum/fish_trait/eat_fish: (predator) #define COMSIG_FISH_EATEN_BY_OTHER_FISH "fish_eaten_by_other_fish" -///From /obj/item/fish/feed: (fed_reagents, fed_reagent_type) -#define COMSIG_FISH_FED "fish_on_fed" +///From /obj/item/fish/generate_reagents_to_add, which returns a holder when the fish is eaten or composted for example: (list/reagents) +#define COMSIG_GENERATE_REAGENTS_TO_ADD "generate_reagents_to_add" +///From /obj/item/fish/update_size_and_weight: (new_size, new_weight) +#define COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT "fish_update_size_and_weight" +///From /obj/item/fish/update_fish_force: (weight_rank, bonus_malus) +#define COMSIG_FISH_FORCE_UPDATED "fish_force_updated" + +///From /obj/item/fish/interact_with_atom_secondary, sent to the target: (fish) +#define COMSIG_FISH_RELEASED_INTO "fish_released_into" + +///From /datum/fishing_challenge/New: (datum/fishing_challenge/challenge) +#define COMSIG_MOB_BEGIN_FISHING "mob_begin_fishing" +///From /datum/fishing_challenge/start_minigame_phase: (datum/fishing_challenge/challenge) +#define COMSIG_MOB_BEGIN_FISHING_MINIGAME "mob_begin_fishing_minigame" +///From /datum/fishing_challenge/completed: (datum/fishing_challenge/challenge, win) +#define COMSIG_MOB_COMPLETE_FISHING "mob_complete_fishing" +/// Rolling a reward path for a fishing challenge +#define COMSIG_FISHING_CHALLENGE_ROLL_REWARD "fishing_roll_reward" +/// Adjusting the difficulty of a rishing challenge, often based on the reward path +#define COMSIG_FISHING_CHALLENGE_GET_DIFFICULTY "fishing_get_difficulty" /// Fishing challenge completed -#define COMSIG_FISHING_CHALLENGE_COMPLETED "fishing_completed" /// Sent to the fisherman when the reward is dispensed: (reward) -#define COMSIG_MOB_FISHING_REWARD_DISPENSED "mob_fishing_reward_dispensed" +#define COMSIG_FISH_SOURCE_REWARD_DISPENSED "fish_source_reward_dispensed" /// Called when you try to use fishing rod on anything #define COMSIG_PRE_FISHING "pre_fishing" +/// Called when an ai-controlled mob interacts with the fishing spot +#define COMSIG_NPC_FISHING "npc_fishing" + #define NPC_FISHING_SPOT 1 + /// Sent by the target of the fishing rod cast #define COMSIG_FISHING_ROD_CAST "fishing_rod_cast" #define FISHING_ROD_CAST_HANDLED (1 << 0) @@ -42,3 +70,9 @@ /// From /obj/item/fish_analyzer/proc/analyze_status: (fish, user) #define COMSIG_FISH_ANALYZER_ANALYZE_STATUS "fish_analyzer_analyze_status" + +/// From /datum/component/fish_growth/on_fish_life: (seconds_per_tick) +#define COMSIG_FISH_BEFORE_GROWING "fish_before_growing" + #define COMPONENT_DONT_GROW (1 << 0) +/// From /datum/component/fish_growth/finish_growing: (result) +#define COMSIG_FISH_FINISH_GROWING "fish_finish_growing" diff --git a/code/__DEFINES/dcs/signals/signals_food.dm b/code/__DEFINES/dcs/signals/signals_food.dm index 36a8b7b3392cf..113826a448630 100644 --- a/code/__DEFINES/dcs/signals/signals_food.dm +++ b/code/__DEFINES/dcs/signals/signals_food.dm @@ -16,6 +16,9 @@ /// called when an edible ingredient is added: (datum/component/edible/ingredient) #define COMSIG_FOOD_INGREDIENT_ADDED "edible_ingredient_added" +/// from base of /datum/component/edible/get_recipe_complexity(): (list/extra_complexity) +#define COMSIG_FOOD_GET_EXTRA_COMPLEXITY "food_get_extra_complexity" + // Deep frying foods /// An item becomes fried - From /datum/element/fried_item/Attach: (fry_time) #define COMSIG_ITEM_FRIED "item_fried" @@ -31,6 +34,8 @@ #define COMPONENT_MICROWAVE_BAD_RECIPE (1<<1) ///called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency) #define COMSIG_ITEM_MICROWAVE_COOKED "microwave_cooked" +///called on the ingredient through microwawing: (result) +#define COMSIG_ITEM_MICROWAVE_COOKED_FROM "item_microwave_cooked_from" // Grilling foods (griddle, grill, and bonfire) ///Called when an object is placed onto a griddle @@ -46,6 +51,9 @@ ///Called when an object is turned into another item through grilling ontop of a griddle #define COMSIG_ITEM_GRILLED "item_grill_completed" +///Called when the object is grilled by the grill (not to be confused by the griddle, but oh gee the two should be merged in one) +#define COMSIG_ITEM_BARBEQUE_GRILLED "item_barbeque_grilled" + // Baking foods (oven) //Called when an object is inserted into an oven (atom/oven, mob/baker) #define COMSIG_ITEM_OVEN_PLACED_IN "item_placed_in_oven" diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm index 5e9011f5f4075..bda49bb4b4ae6 100644 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -57,7 +57,7 @@ #define COMSIG_GLOB_NEW_MACHINE "!new_machine" /// a client (re)connected, after all /client/New() checks have passed : (client/connected_client) #define COMSIG_GLOB_CLIENT_CONNECT "!client_connect" -/// a weather event of some kind occured +/// a weather event of some kind occurred #define COMSIG_WEATHER_TELEGRAPH(event_type) "!weather_telegraph [event_type]" #define COMSIG_WEATHER_START(event_type) "!weather_start [event_type]" #define COMSIG_WEATHER_WINDDOWN(event_type) "!weather_winddown [event_type]" diff --git a/code/__DEFINES/dcs/signals/signals_global_object.dm b/code/__DEFINES/dcs/signals/signals_global_object.dm index 51b7a38a94a6c..d100f47a3c97c 100644 --- a/code/__DEFINES/dcs/signals/signals_global_object.dm +++ b/code/__DEFINES/dcs/signals/signals_global_object.dm @@ -1,8 +1,11 @@ /// signals from globally accessible objects -///Whenever SetupOccupations() is called, called all occupations are set +///from SSJob whenever setup_occupations() is called, all occupations are set #define COMSIG_OCCUPATIONS_SETUP "occupations_setup" +///from SSJob when divide_occupations() is called +#define COMSIG_OCCUPATIONS_DIVIDED "occupations_divided" + ///from SSsun when the sun changes position : (azimuth) #define COMSIG_SUN_MOVED "sun_moved" diff --git a/code/__DEFINES/dcs/signals/signals_hud.dm b/code/__DEFINES/dcs/signals/signals_hud.dm index 2d5d3eaa59cc3..b141f7d8f576b 100644 --- a/code/__DEFINES/dcs/signals/signals_hud.dm +++ b/code/__DEFINES/dcs/signals/signals_hud.dm @@ -1,5 +1,7 @@ /// Sent from /datum/hud/proc/on_eye_change(): (atom/old_eye, atom/new_eye) #define COMSIG_HUD_EYE_CHANGED "hud_eye_changed" +/// Sent from /datum/hud/proc/eye_z_changed() : (new_z) +#define COMSIG_HUD_Z_CHANGED "hud_z_changed" /// Sent from /datum/hud/proc/eye_z_changed() : (old_offset, new_offset) #define COMSIG_HUD_OFFSET_CHANGED "hud_offset_changed" /// Sent from /atom/movable/screen/lobby/button/collapse/proc/collapse_buttons() : () diff --git a/code/__DEFINES/dcs/signals/signals_blackmarket.dm b/code/__DEFINES/dcs/signals/signals_market.dm similarity index 100% rename from code/__DEFINES/dcs/signals/signals_blackmarket.dm rename to code/__DEFINES/dcs/signals/signals_market.dm diff --git a/code/__DEFINES/dcs/signals/signals_mind.dm b/code/__DEFINES/dcs/signals/signals_mind.dm index 72f43f518ebcd..e9a62a26102cf 100644 --- a/code/__DEFINES/dcs/signals/signals_mind.dm +++ b/code/__DEFINES/dcs/signals/signals_mind.dm @@ -6,3 +6,6 @@ /// Called on the mind when an antagonist is being removed, after the antagonist list has updated (datum/antagonist/antagonist) #define COMSIG_ANTAGONIST_REMOVED "antagonist_removed" + +/// Called on the mob when losing an antagonist datum (datum/antagonist/antagonist) +#define COMSIG_MOB_ANTAGONIST_REMOVED "mob_antagonist_removed" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.dm index 026247acf57ab..1c6fcbffbda3d 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_ai.dm @@ -9,3 +9,8 @@ ///Signal sent when a bot is reset #define COMSIG_BOT_RESET "bot_reset" +///Sent off /mob/living/basic/bot/proc/set_mode_flags() : (new_flags) +#define COMSIG_BOT_MODE_FLAGS_SET "bot_mode_flags_set" + +///Signal sent off of ai/movement/proc/start_moving_towards +#define COMSIG_MOB_AI_MOVEMENT_STARTED "mob_ai_movement_started" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm index 598ddc5187852..ee157b9d51a34 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -3,14 +3,14 @@ /// Stops the rest of the help #define COMPONENT_BLOCK_HELP_ACT (1<<0) -///Called from /mob/living/carbon/help_shake_act, before any hugs have ocurred. (mob/living/helper) +///Called from /mob/living/carbon/help_shake_act, before any hugs have occurred. (mob/living/helper) #define COMSIG_CARBON_PRE_MISC_HELP "carbon_pre_misc_help" - /// Stops the rest of help act (hugging, etc) from occuring + /// Stops the rest of help act (hugging, etc) from occurring #define COMPONENT_BLOCK_MISC_HELP (1<<0) -///Called from /mob/living/carbon/help_shake_act on the person being helped, after any hugs have ocurred. (mob/living/helper) +///Called from /mob/living/carbon/help_shake_act on the person being helped, after any hugs have occurred. (mob/living/helper) #define COMSIG_CARBON_HELP_ACT "carbon_help" -///Called from /mob/living/carbon/help_shake_act on the helper, after any hugs have ocurred. (mob/living/helped) +///Called from /mob/living/carbon/help_shake_act on the helper, after any hugs have occurred. (mob/living/helped) #define COMSIG_CARBON_HELPED "carbon_helped_someone" ///When a carbon slips. Called on /turf/open/handle_slip() @@ -39,11 +39,14 @@ /// Called from bodypart changing owner, which could be on attach or detachment. Either argument can be null. (mob/living/carbon/new_owner, mob/living/carbon/old_owner) #define COMSIG_BODYPART_CHANGED_OWNER "bodypart_changed_owner" +/// Called from /obj/item/bodypart/proc/update_part_wound_overlay() +#define COMSIG_BODYPART_UPDATE_WOUND_OVERLAY "bodypart_update_wound_overlay" + #define COMPONENT_PREVENT_WOUND_OVERLAY_UPDATE (1 << 0) /// Called from update_health_hud, whenever a bodypart is being updated on the health doll #define COMSIG_BODYPART_UPDATING_HEALTH_HUD "bodypart_updating_health_hud" - /// Return to override that bodypart's health hud with your own icon - #define COMPONENT_OVERRIDE_BODYPART_HEALTH_HUD (1<<0) + /// Return to override that bodypart's health hud with whatever is returned by the list + #define OVERRIDE_BODYPART_HEALTH_HUD (1<<0) /// Called from /obj/item/bodypart/check_for_injuries (mob/living/carbon/examiner, list/check_list) #define COMSIG_BODYPART_CHECKED_FOR_INJURY "bodypart_injury_checked" @@ -57,8 +60,6 @@ /// Called from bodypart being removed /obj/item/bodypart/proc/drop_limb(mob/living/carbon/old_owner, special, dismembered) #define COMSIG_BODYPART_REMOVED "bodypart_removed" -/// from /mob/living/carbon/enter_stamcrit() -#define COMSIG_CARBON_ENTER_STAMCRIT "carbon_enter_stamcrit" ///from base of mob/living/carbon/soundbang_act(): (list(intensity)) #define COMSIG_CARBON_SOUNDBANG "carbon_soundbang" ///from /item/organ/proc/Insert() (/obj/item/organ/) @@ -97,11 +98,11 @@ #define COMPONENT_OVERRIDE_HEALTH_HUD (1<<0) ///Called when a carbon updates their sanity (source = carbon) #define COMSIG_CARBON_SANITY_UPDATE "carbon_sanity_update" -///Called when a carbon attempts to breath, before the breath has actually occured +///Called when a carbon attempts to breath, before the breath has actually occurred #define COMSIG_CARBON_ATTEMPT_BREATHE "carbon_attempt_breathe" // Prevents the breath #define COMSIG_CARBON_BLOCK_BREATH (1 << 0) -///Called when a carbon breathes, before the breath has actually occured +///Called when a carbon breathes, before the breath has actually occurred #define COMSIG_CARBON_PRE_BREATHE "carbon_pre_breathe" ///Called when a carbon updates their mood #define COMSIG_CARBON_MOOD_UPDATE "carbon_mood_update" @@ -120,7 +121,7 @@ ///Applied preferences to a human #define COMSIG_HUMAN_PREFS_APPLIED "human_prefs_applied" -///Whenever EquipRanked is called, called after job is set +///Whenever equip_rank is called, called after job is set #define COMSIG_JOB_RECEIVED "job_received" ///from /mob/living/carbon/human/proc/set_coretemperature(): (oldvalue, newvalue) #define COMSIG_HUMAN_CORETEMP_CHANGE "human_coretemp_change" @@ -135,6 +136,10 @@ #define VISIBLE_NAME_FACE 1 //Index for the name of the id #define VISIBLE_NAME_ID 2 + //Index for whether their name is being overridden instead of obfuscated + #define VISIBLE_NAME_FORCED 3 +///from /mob/living/carbon/human/get_id_name; only returns if the mob has TRAIT_UNKNOWN and it's being overridden: (identity) +#define COMSIG_HUMAN_GET_FORCED_NAME "human_get_forced_name" // Mob transformation signals ///Called when a human turns into a monkey, from /mob/living/carbon/proc/finish_monkeyize() @@ -157,9 +162,14 @@ #define HANDLE_BLOOD_HANDLED (1<<0) /// Return to skip default nutrition -> blood conversion #define HANDLE_BLOOD_NO_NUTRITION_DRAIN (1<<1) - /// Return to skip oxyloss and similar effecst from blood level + /// Return to skip oxyloss and similar effects from blood level #define HANDLE_BLOOD_NO_OXYLOSS (1<<2) -/// from /datum/status_effect/limp/proc/check_step(mob/whocares, OldLoc, Dir, forced) iodk where it shuld go +/// from /datum/status_effect/limp/proc/check_step(mob/whocares, OldLoc, Dir, forced) iodk where it should go #define COMSIG_CARBON_LIMPING "mob_limp_check" #define COMPONENT_CANCEL_LIMP (1<<0) + +///Called from on_acquiring(mob/living/carbon/human/acquirer) +#define COMSIG_MUTATION_GAINED "mutation_gained" +///Called from on_losing(mob/living/carbon/human/owner) +#define COMSIG_MUTATION_LOST "mutation_lost" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 517048bbd4d1d..633282001f67a 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -21,6 +21,8 @@ ///from base of mob/update_transform() #define COMSIG_LIVING_POST_UPDATE_TRANSFORM "living_post_update_transform" +/// from /datum/status_effect/incapacitating/stamcrit/on_apply() +#define COMSIG_LIVING_ENTER_STAMCRIT "living_enter_stamcrit" ///from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door) #define COMSIG_LIVING_DOORCRUSHED "living_doorcrush" ///from base of mob/living/resist() (/mob/living) @@ -221,11 +223,6 @@ /// From /obj/effect/temp_visual/resonance/burst() : (mob/creator, mob/living/hit_living) #define COMSIG_LIVING_RESONATOR_BURST "living_resonator_burst" -/// From /obj/projectile/attempt_parry() : (obj/projectile/parried_projectile) -#define COMSIG_LIVING_PROJECTILE_PARRYING "living_projectile_parrying" - /// Return to allow the parry to happen - #define ALLOW_PARRY (1<<0) - /// From /obj/projectile/on_parry() : (obj/projectile/parried_projectile) #define COMSIG_LIVING_PROJECTILE_PARRIED "living_projectile_parried" /// Return to prevent the projectile from executing any code in on_parry() @@ -275,6 +272,12 @@ #define COMSIG_LIVING_GRAB "living_grab" // Return COMPONENT_CANCEL_ATTACK_CHAIN / COMPONENT_SKIP_ATTACK_CHAIN to stop the grab +/// From /datum/component/edible/get_perceived_food_quality(): (datum/component/edible/edible, list/extra_quality) +#define COMSIG_LIVING_GET_PERCEIVED_FOOD_QUALITY "get_perceived_food_quality" + +///Called when living finish eat (/datum/component/edible/proc/On_Consume) +#define COMSIG_LIVING_FINISH_EAT "living_finish_eat" + /// From /datum/element/basic_eating/try_eating() #define COMSIG_MOB_PRE_EAT "mob_pre_eat" ///cancel eating attempt @@ -289,3 +292,8 @@ #define COMSIG_MOB_HAPPINESS_CHANGE "happiness_change" /// From /obj/item/melee/baton/baton_effect(): (datum/source, mob/living/user, /obj/item/melee/baton) #define COMSIG_MOB_BATONED "mob_batoned" + +/// Sent to the mob when their mind is slaved +#define COMSIG_MOB_ENSLAVED_TO "mob_enslaved_to" +/// From /obj/item/proc/attack_atom: (mob/living/attacker, atom/attacked) +#define COMSIG_LIVING_ATTACK_ATOM "living_attack_atom" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm index 8be5b1fdb64aa..51240110062ea 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm @@ -50,8 +50,10 @@ #define COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE COMPONENT_MOVABLE_BLOCK_PRE_MOVE /// The argument of move_args which corresponds to the loc we're moving to #define MOVE_ARG_NEW_LOC 1 - /// The arugment of move_args which dictates our movement direction + /// The argument of move_args which dictates our movement direction #define MOVE_ARG_DIRECTION 2 +/// From base of /client/Move(): (new_loc, direction) +#define COMSIG_MOB_CLIENT_MOVE_NOGRAV "mob_client_move_nograv" /// From base of /client/Move(): (direction, old_dir) #define COMSIG_MOB_CLIENT_MOVED "mob_client_moved" /// From base of /client/proc/change_view() (mob/source, new_size) @@ -72,7 +74,7 @@ #define COMSIG_MOB_MIND_TRANSFERRED_INTO "mob_mind_transferred_into" ///from mind/transfer_from. Sent to the mob the mind is being transferred out of. #define COMSIG_MOB_MIND_TRANSFERRED_OUT_OF "mob_mind_transferred_out_of" -/// From /mob/proc/ghostize() Called when a mob sucessfully ghosts +/// From /mob/proc/ghostize() Called when a mob successfully ghosts #define COMSIG_MOB_GHOSTIZED "mob_ghostized" ///from base of obj/allowed(mob/M): (/obj) returns ACCESS_ALLOWED if mob has id access to the obj @@ -138,10 +140,20 @@ #define SPEECH_FILTERPROOF 8 #define SPEECH_RANGE 9 #define SPEECH_SAYMODE 10 + #define SPEECH_MODS 11 + +///from /datum/component/speechmod/handle_speech(): () +#define COMSIG_TRY_MODIFY_SPEECH "try_modify_speech" + ///Return value if we prevent speech from being modified + #define PREVENT_MODIFY_SPEECH 1 ///from /mob/say_dead(): (mob/speaker, message) #define COMSIG_MOB_DEADSAY "mob_deadsay" #define MOB_DEADSAY_SIGNAL_INTERCEPT (1<<0) +///from /mob/living/check_cooldown(): () +#define COMSIG_MOB_EMOTE_COOLDOWN_CHECK "mob_emote_cd" + /// make a wild guess + #define COMPONENT_EMOTE_COOLDOWN_BYPASS (1<<0) ///from /mob/living/emote(): () #define COMSIG_MOB_EMOTE "mob_emote" ///from base of mob/swap_hand(): (obj/item/currently_held_item) @@ -150,8 +162,6 @@ /// from base of mob/swap_hand(): () /// Performed after the hands are swapped. #define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" -///from base of /mob/verb/pointed: (atom/A) -#define COMSIG_MOB_POINTED "mob_pointed" ///Mob is trying to open the wires of a target [/atom], from /datum/wires/interactable(): (atom/target) #define COMSIG_TRY_WIRES_INTERACT "try_wires_interact" #define COMPONENT_CANT_INTERACT_WIRES (1<<0) @@ -171,8 +181,8 @@ ///Called on user, from base of /datum/strippable_item/try_(un)equip() (atom/target, obj/item/equipping?) #define COMSIG_TRY_STRIP "try_strip" #define COMPONENT_CANT_STRIP (1<<0) -///From /datum/component/creamed/Initialize() -#define COMSIG_MOB_CREAMED "mob_creamed" +///From /datum/component/face_decal/splat/Initialize() +#define COMSIG_MOB_HIT_BY_SPLAT "hit_by_splat" ///From /obj/item/gun/proc/check_botched() #define COMSIG_MOB_CLUMSY_SHOOT_FOOT "mob_clumsy_shoot_foot" ///from /obj/item/hand_item/slapper/attack_atom(): (source=obj/structure/table/slammed_table, mob/living/slammer) @@ -243,5 +253,15 @@ /// from /mob/proc/slip(): (knockdown_amonut, obj/slipped_on, lube_flags [mobs.dm], paralyze, force_drop) #define COMSIG_MOB_SLIPPED "mob_slipped" +/// From the base of /datum/component/callouts/proc/callout_picker(mob/user, atom/clicked_atom): (datum/callout_option/callout, atom/target) +#define COMSIG_MOB_CREATED_CALLOUT "mob_created_callout" + /// from /mob/proc/key_down(): (key, client/client, full_key) #define COMSIG_MOB_KEYDOWN "mob_key_down" + +/// from /mob/Process_Spacemove(movement_dir, continuous_move): (movement_dir, continuous_move, atom/backup) +#define COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE "mob_attempt_halt_spacemove" + #define COMPONENT_PREVENT_SPACEMOVE_HALT (1<<0) + +/// from /mob/update_incapacitated(): (old_incap, new_incap) +#define COMSIG_MOB_INCAPACITATE_CHANGED "mob_incapacitated" diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm index 47f5b7485991b..aee6f2df79bb7 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_silicon.dm @@ -8,3 +8,12 @@ #define COMSIG_BORG_HUG_HANDLED 1 ///called from /mob/living/silicon/attack_hand proc #define COMSIG_MOB_PAT_BORG "mob_pat_borg" +///called when someone is inquiring about an AI's linked core +#define COMSIG_SILICON_AI_CORE_STATUS "AI_core_status" + #define COMPONENT_CORE_ALL_GOOD (1<<0) + #define COMPONENT_CORE_DISCONNECTED (1<<1) +///called when an AI (malf or perhaps combat upgraded or some other circumstance that has them inhabit +///an APC) enters an APC +#define COMSIG_SILICON_AI_OCCUPY_APC "AI_occupy_apc" +///called when an AI vacates an APC +#define COMSIG_SILICON_AI_VACATE_APC "AI_vacate_apc" diff --git a/code/__DEFINES/dcs/signals/signals_mod.dm b/code/__DEFINES/dcs/signals/signals_mod.dm index d3439cf857291..8cabf7537ab99 100644 --- a/code/__DEFINES/dcs/signals/signals_mod.dm +++ b/code/__DEFINES/dcs/signals/signals_mod.dm @@ -39,3 +39,5 @@ #define COMSIG_MOD_WEARER_SET "mod_wearer_set" /// Called when the MODsuit wearer is unset. #define COMSIG_MOD_WEARER_UNSET "mod_wearer_unset" +/// Sent by the tether module when it triggers its snapping function +#define COMSIG_MOD_TETHER_SNAP "mod_tether_snap" diff --git a/code/__DEFINES/dcs/signals/signals_movetype.dm b/code/__DEFINES/dcs/signals/signals_movetype.dm index bc8b296b47531..da584ba022f4a 100644 --- a/code/__DEFINES/dcs/signals/signals_movetype.dm +++ b/code/__DEFINES/dcs/signals/signals_movetype.dm @@ -1,6 +1,3 @@ -// /datum/element/movetype_handler signals -/// Called when the floating anim has to be temporarily stopped and restarted later: (timer) -#define COMSIG_PAUSE_FLOATING_ANIM "pause_floating_anim" /// From base of datum/element/movetype_handler/on_movement_type_trait_gain: (flag, old_movement_type) #define COMSIG_MOVETYPE_FLAG_ENABLED "movetype_flag_enabled" /// From base of datum/element/movetype_handler/on_movement_type_trait_loss: (flag, old_movement_type) diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index d34de1e356792..53ac323b61cd5 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -15,6 +15,8 @@ /// from /obj/obj_reskin: (mob/user, skin) #define COMSIG_OBJ_RESKIN "obj_reskin" +#define COMSIG_LIONHUNTER_ON_HIT "lionhunter_on_hit" + // /obj/machinery signals ///from /obj/machinery/atom_break(damage_flag): (damage_flag) @@ -153,12 +155,12 @@ /// Sebt from obj/item/ui_action_click(): (mob/user, datum/action) #define COMSIG_ITEM_UI_ACTION_CLICK "item_action_click" - /// Return to prevent the default behavior (attack_selfing) from ocurring. + /// Return to prevent the default behavior (attack_selfing) from occurring. #define COMPONENT_ACTION_HANDLED (1<<0) /// Sent from obj/item/item_action_slot_check(): (mob/user, datum/action, slot) #define COMSIG_ITEM_UI_ACTION_SLOT_CHECKED "item_action_slot_checked" - /// Return to prevent the default behavior (attack_selfing) from ocurring. + /// Return to prevent the default behavior (attack_selfing) from occurring. #define COMPONENT_ITEM_ACTION_SLOT_INVALID (1<<0) ///from base of mob/living/carbon/attacked_by(): (mob/living/carbon/target, mob/living/user, hit_zone) @@ -194,6 +196,8 @@ #define COMSIG_TOOL_IN_USE "tool_in_use" ///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) #define COMSIG_TOOL_START_USE "tool_start_use" +/// From /obj/item/multitool/remove_buffer(): (buffer) +#define COMSIG_MULTITOOL_REMOVE_BUFFER "multitool_remove_buffer" ///from [/obj/item/proc/disableEmbedding]: #define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" ///from [/obj/effect/mine/proc/triggermine]: @@ -389,10 +393,16 @@ ///sent to targets during the process_hit proc of projectiles #define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" #define PROJECTILE_INTERRUPT_HIT (1<<0) +///from /obj/projectile/pixel_move(): () +#define COMSIG_PROJECTILE_PIXEL_STEP "projectile_pixel_step" +///sent to self during the process_hit proc of projectiles +#define COMSIG_PROJECTILE_SELF_PREHIT "com_proj_prehit" ///from the base of /obj/projectile/Range(): () #define COMSIG_PROJECTILE_RANGE "projectile_range" ///from the base of /obj/projectile/on_range(): () #define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" +///from the base of /obj/projectile/process(): () +#define COMSIG_PROJECTILE_BEFORE_MOVE "projectile_before_move" ///from [/obj/item/proc/tryEmbed] sent when trying to force an embed (mainly for projectiles and eating glass) #define COMSIG_EMBED_TRY_FORCE "item_try_embed" #define COMPONENT_EMBED_SUCCESS (1<<1) @@ -409,10 +419,8 @@ #define COMSIG_PROJECTILE_ON_SPAWN_DROP "projectile_on_spawn_drop" ///sent to the projectile when spawning the item (shrapnel) that may be embedded: (new_item) #define COMSIG_PROJECTILE_ON_SPAWN_EMBEDDED "projectile_on_spawn_embedded" - -/// from /obj/projectile/energy/fisher/on_hit() or /obj/item/gun/energy/recharge/fisher when striking a target -#define COMSIG_HIT_BY_SABOTEUR "hit_by_saboteur" - #define COMSIG_SABOTEUR_SUCCESS (1<<0) +///sent to the projectile when successfully embedding into something +#define COMSIG_PROJECTILE_ON_EMBEDDED "projectile_on_embedded" // /obj/vehicle/sealed/car/vim signals @@ -524,7 +532,10 @@ /// from /datum/component/dart_insert/on_reskin() #define COMSIG_DART_INSERT_PARENT_RESKINNED "dart_insert_parent_reskinned" +/// from /datum/element/undertile/hide() +#define COMSIG_UNDERTILE_UPDATED "undertile_updated" + /// Sent from /obj/item/update_weight_class(). (old_w_class, new_w_class) #define COMSIG_ITEM_WEIGHT_CLASS_CHANGED "item_weight_class_changed" -/// Sent from /obj/item/update_weight_class(), to it's loc. (obj/item/changed_item, old_w_class, new_w_class) +/// Sent from /obj/item/update_weight_class(), to its loc. (obj/item/changed_item, old_w_class, new_w_class) #define COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED "atom_contents_weight_class_changed" diff --git a/code/__DEFINES/dcs/signals/signals_plane_master_group.dm b/code/__DEFINES/dcs/signals/signals_plane_master_group.dm new file mode 100644 index 0000000000000..d27adb5f8c957 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_plane_master_group.dm @@ -0,0 +1,2 @@ +/// from /datum/plane_master_group/proc/set_hud(): (datum/hud/new_hud) +#define COMSIG_GROUP_HUD_CHANGED "group_hud_changed" diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm index 5bb2c89d4ef33..367ec946361d0 100644 --- a/code/__DEFINES/dcs/signals/signals_reagent.dm +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -53,8 +53,6 @@ #define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" ///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) #define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" -///from base of [/datum/component/personal_crafting/proc/del_reqs]: () -#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping" /// sent when reagents are transfered from a cup, to something refillable (atom/transfer_to) #define COMSIG_REAGENTS_CUP_TRANSFER_TO "reagents_cup_transfer_to" /// sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from) diff --git a/code/__DEFINES/dcs/signals/signals_screentips.dm b/code/__DEFINES/dcs/signals/signals_screentips.dm index 8f7326ee2ee79..31a851c048395 100644 --- a/code/__DEFINES/dcs/signals/signals_screentips.dm +++ b/code/__DEFINES/dcs/signals/signals_screentips.dm @@ -21,3 +21,15 @@ /// Tells the contextual screentips system that the list context was mutated. #define CONTEXTUAL_SCREENTIP_SET (1 << 0) + + +/// A user screentip name override. +/// These are used for mobs that may override the names of atoms they hover over. +/// Examples include prosopagnosia (sees human names as Unknown regardless of what they are). +/// Called on /mob with a mutable screentip name list, the item being used, and the atom hovered over. +/// A screentip name override list is a list used for returning a string value from the signal. Only the first value matters. +/// If you mutate the list in this signal, you must return SCREENTIP_NAME_SET. +#define COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER "mob_requesting_screentip_name_from_user" + +/// Tells the screentips system that the list names was mutated. +#define SCREENTIP_NAME_SET (1 << 0) diff --git a/code/__DEFINES/dcs/signals/signals_spell.dm b/code/__DEFINES/dcs/signals/signals_spell.dm index 4502997438589..ebbdcc4e2bee1 100644 --- a/code/__DEFINES/dcs/signals/signals_spell.dm +++ b/code/__DEFINES/dcs/signals/signals_spell.dm @@ -66,14 +66,25 @@ // Touch spells /// Sent from /datum/action/cooldown/spell/touch/do_hand_hit: (atom/hit, mob/living/carbon/caster, obj/item/melee/touch_attack/hand) #define COMSIG_SPELL_TOUCH_HAND_HIT "spell_touch_hand_cast" +/// Sent from /datum/action/cooldown/spell/touch/cast: (mob/living/carbon/cast_on) +#define COMSIG_TOUCH_HANDLESS_CAST "spell_touch_handless_cast" + /// Return this to prevent the hand spawning/unspawning + #define COMPONENT_CAST_HANDLESS (1<<0) // Jaunt Spells +/// Sent from datum/action/cooldown/spell/jaunt/before_cast, before the mob enters jaunting as a pre-check: (datum/action/cooldown/spell/spell) +#define COMSIG_MOB_PRE_JAUNT "spell_mob_pre_jaunt" + #define COMPONENT_BLOCK_JAUNT (1<<0) /// Sent from datum/action/cooldown/spell/jaunt/enter_jaunt, to the mob jaunting: (obj/effect/dummy/phased_mob/jaunt, datum/action/cooldown/spell/spell) #define COMSIG_MOB_ENTER_JAUNT "spell_mob_enter_jaunt" /// Set from /obj/effect/dummy/phased_mob after the mob is ejected from its contents: (obj/effect/dummy/phased_mob/jaunt, mob/living/unjaunter) #define COMSIG_MOB_EJECTED_FROM_JAUNT "spell_mob_eject_jaunt" /// Sent from datum/action/cooldown/spell/jaunt/exit_jaunt, after the mob exited jaunt: (datum/action/cooldown/spell/spell) #define COMSIG_MOB_AFTER_EXIT_JAUNT "spell_mob_after_exit_jaunt" +/// Sent from /obj/effect/dummy/phased_mob/proc/phased_check when moving to the holder object: (/obj/effect/dummy/phased_mob, mob/living/phaser, turf/newloc) +#define COMSIG_MOB_PHASED_CHECK "mob_phased_check" + /// Return this to cancel the phased move + #define COMPONENT_BLOCK_PHASED_MOVE (1 << 0) /// Sent from/datum/action/cooldown/spell/jaunt/bloodcrawl/slaughter_demon/try_enter_jaunt, /// to any unconscious / critical mobs being dragged when the jaunter enters blood: @@ -109,7 +120,7 @@ // Charge /// Sent from /datum/action/cooldown/spell/charge/cast(), to the item in hand being charged: (datum/action/cooldown/spell/spell, mob/user) #define COMSIG_ITEM_MAGICALLY_CHARGED "item_magic_charged" - /// Return if an item was successfuly recharged + /// Return if an item was successful recharged #define COMPONENT_ITEM_CHARGED (1 << 0) /// Return if the item had a negative side effect occur while recharging #define COMPONENT_ITEM_BURNT_OUT (1 << 1) diff --git a/code/__DEFINES/dcs/signals/signals_tools.dm b/code/__DEFINES/dcs/signals/signals_tools.dm index 562aa29d595c0..110db1ed89c16 100644 --- a/code/__DEFINES/dcs/signals/signals_tools.dm +++ b/code/__DEFINES/dcs/signals/signals_tools.dm @@ -1,6 +1,6 @@ // Notifies tools that something is happening. -// Sucessful actions against an atom. +// Successful actions against an atom. ///Called from /atom/proc/tool_act (atom) #define COMSIG_TOOL_ATOM_ACTED_PRIMARY(tooltype) "tool_atom_acted_[tooltype]" ///Called from /atom/proc/tool_act (atom) diff --git a/code/__DEFINES/dcs/signals/signals_turf.dm b/code/__DEFINES/dcs/signals/signals_turf.dm index f89f30d1eb458..321fb503cbf96 100644 --- a/code/__DEFINES/dcs/signals/signals_turf.dm +++ b/code/__DEFINES/dcs/signals/signals_turf.dm @@ -40,3 +40,6 @@ #define COMSIG_TURF_RESET_ELEVATION "turf_reset_elevation" #define ELEVATION_CURRENT_PIXEL_SHIFT 1 #define ELEVATION_MAX_PIXEL_SHIFT 2 + +///Called when turf no longer blocks light from passing through +#define COMSIG_TURF_NO_LONGER_BLOCK_LIGHT "turf_no_longer_block_light" diff --git a/code/__DEFINES/dcs/signals/signals_voidwalker.dm b/code/__DEFINES/dcs/signals/signals_voidwalker.dm new file mode 100644 index 0000000000000..013e6173d867c --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_voidwalker.dm @@ -0,0 +1,2 @@ +/// Called from /datum/component/space_kidnap/succesful_kidnap() : (mob/living/carbon/human/voidwalker, mob/living/carbon/human/victim) +#define COMSIG_VOIDWALKER_SUCCESFUL_KIDNAP "voidwalker_succesful_kidnap" diff --git a/code/__DEFINES/devices.dm b/code/__DEFINES/devices.dm index afd41570b5b27..7368d8d045719 100644 --- a/code/__DEFINES/devices.dm +++ b/code/__DEFINES/devices.dm @@ -10,6 +10,7 @@ #define CLOWN_INSPECTOR_PRINT_SOUND_MODE_LAST 4 #define INSPECTOR_ENERGY_USAGE_HONK (0.015 * STANDARD_CELL_CHARGE) #define INSPECTOR_ENERGY_USAGE_NORMAL (0.005 * STANDARD_CELL_CHARGE) +#define INSPECTOR_ENERGY_USAGE_LOW (0.001 * STANDARD_CELL_CHARGE) #define INSPECTOR_TIME_MODE_SLOW 1 #define INSPECTOR_TIME_MODE_FAST 2 #define INSPECTOR_TIME_MODE_HONK 3 diff --git a/code/__DEFINES/door.dm b/code/__DEFINES/door.dm new file mode 100644 index 0000000000000..198d38a3af6dc --- /dev/null +++ b/code/__DEFINES/door.dm @@ -0,0 +1,18 @@ +// Door animation defines +#define DOOR_OPENING_ANIMATION "opening" +#define DOOR_CLOSING_ANIMATION "closing" +#define DOOR_DENY_ANIMATION "deny" + +// Door animation STEP defines +// These are used to mark points in the animtion when things in game should change +#define DOOR_OPENING_PASSABLE "opening_passable" +#define DOOR_OPENING_FINISHED "opening_finished" +#define DOOR_CLOSING_UNPASSABLE "closing_unpassable" +#define DOOR_CLOSING_FINISHED "closing_finished" + +#define AIRLOCK_OPENING_TRANSPARENT "airlock_opening_transparent" +#define AIRLOCK_OPENING_PASSABLE "airlock_opening_passable" +#define AIRLOCK_OPENING_FINISHED "airlock_opening_finished" +#define AIRLOCK_CLOSING_OPAQUE "airlock_closing_opaque" +#define AIRLOCK_CLOSING_UNPASSABLE "airlock_closing_unpassable" +#define AIRLOCK_CLOSING_FINISHED "airlock_closing_finished" diff --git a/code/__DEFINES/events.dm b/code/__DEFINES/events.dm index 2b1755b22c4b4..7045d8f0c65f7 100644 --- a/code/__DEFINES/events.dm +++ b/code/__DEFINES/events.dm @@ -22,7 +22,7 @@ #define EVENT_CATEGORY_FRIENDLY "Friendly" ///Events that affect the body and mind #define EVENT_CATEGORY_HEALTH "Health" -///Events reserved for special occassions +///Events reserved for special occasions #define EVENT_CATEGORY_HOLIDAY "Holiday" ///Events with enemy groups with a more complex plan #define EVENT_CATEGORY_INVASION "Invasion" diff --git a/code/__DEFINES/fish.dm b/code/__DEFINES/fish.dm index 36903049e895b..43e0e8587f9aa 100644 --- a/code/__DEFINES/fish.dm +++ b/code/__DEFINES/fish.dm @@ -1,9 +1,16 @@ /// Use in fish tables to denote miss chance. #define FISHING_DUD "dud" +///Used in the the hydro tray fishing spot to define a random seed reward +#define FISHING_RANDOM_SEED "Random seed" // Baseline fishing difficulty levels #define FISHING_DEFAULT_DIFFICULTY 15 #define FISHING_EASY_DIFFICULTY 10 +/** + * The minimum value of the difficulty of the minigame (unless it reaches 0 than it's auto-win) + * Any lower than this and the fish will be way too lethargic for the minigame to be engaging in the slightest. + */ +#define FISHING_MINIMUM_DIFFICULTY 6 /// Difficulty modifier when bait is fish's favorite #define FAV_BAIT_DIFFICULTY_MOD -5 @@ -14,11 +21,6 @@ #define FISH_TRAIT_MINOR_DIFFICULTY_BOOST 5 -// These define how the fish will behave in the minigame -#define FISH_AI_DUMB "dumb" -#define FISH_AI_ZIPPY "zippy" -#define FISH_AI_SLOW "slow" - ///Slot defines for the fishing rod and its equipment #define ROD_SLOT_BAIT "bait" #define ROD_SLOT_LINE "line" @@ -70,9 +72,11 @@ #define FISHING_MINIGAME_RULE_FLIP (1 << 5) ///Skip the biting phase and go straight to the minigame, avoiding the penalty for having slow reflexes. #define FISHING_MINIGAME_AUTOREEL (1 << 6) +///The fish will fade in and out at intervals +#define FISHING_MINIGAME_RULE_CAMO (1 << 7) ///all the effects that are active and will last for a few seconds before triggering a cooldown -#define FISHING_MINIGAME_ACTIVE_EFFECTS (FISHING_MINIGAME_RULE_ANTIGRAV|FISHING_MINIGAME_RULE_FLIP) +#define FISHING_MINIGAME_ACTIVE_EFFECTS (FISHING_MINIGAME_RULE_ANTIGRAV|FISHING_MINIGAME_RULE_FLIP|FISHING_MINIGAME_RULE_CAMO) /// The default additive value for fishing hook catch weight modifiers. #define FISHING_DEFAULT_HOOK_BONUS_ADDITIVE 0 @@ -89,7 +93,12 @@ #define FISH_ICON_GEM "gem" #define FISH_ICON_CRAB "crab" #define FISH_ICON_JELLYFISH "jellyfish" +#define FISH_ICON_BOTTLE "bottle" #define FISH_ICON_BONE "bone" +#define FISH_ICON_ELECTRIC "electric" +#define FISH_ICON_WEAPON "weapon" +#define FISH_ICON_CRITTER "critter" +#define FISH_ICON_SEED "seed" #define AQUARIUM_ANIMATION_FISH_SWIM "fish" #define AQUARIUM_ANIMATION_FISH_DEAD "dead" @@ -110,8 +119,11 @@ ///Fish size thresholds for w_class. #define FISH_SIZE_TINY_MAX 30 #define FISH_SIZE_SMALL_MAX 50 -#define FISH_SIZE_NORMAL_MAX 90 -#define FISH_SIZE_BULKY_MAX 130 +#define FISH_SIZE_NORMAL_MAX 80 +#define FISH_SIZE_BULKY_MAX 120 +///size threshold for requiring two-handed carry +#define FISH_SIZE_TWO_HANDS_REQUIRED 135 +#define FISH_SIZE_HUGE_MAX 165 ///The coefficient for maximum weight/size divergence relative to the averages. #define MAX_FISH_DEVIATION_COEFF 2.5 @@ -121,11 +133,35 @@ ///The number of fillets is multiplied by the fish' size and divided by this. #define FISH_FILLET_NUMBER_SIZE_DIVISOR 30 +///The slowdown of the fish when carried begins at this value +#define FISH_WEIGHT_SLOWDOWN 2100 +///The value of the slowdown equals to the weight divided by this (and then at the power of a sub-1 exponent) +#define FISH_WEIGHT_SLOWDOWN_DIVISOR 500 +///The sub-one exponent that results in the final slowdown of the fish item +#define FISH_WEIGHT_SLOWDOWN_EXPONENT 0.54 +///Used to calculate the force of the fish by comparing (1 + log(weight/this_define)) and the w_class of the item. +#define FISH_WEIGHT_FORCE_DIVISOR 250 +///The multiplier used in the FISH_WEIGHT_BITE_DIVISOR define +#define FISH_WEIGHT_GRIND_TO_BITE_MULT 0.4 +///Used to calculate how many bites a fish can take and therefore the amount of reagents it has. +#define FISH_WEIGHT_BITE_DIVISOR (FISH_GRIND_RESULTS_WEIGHT_DIVISOR * FISH_WEIGHT_GRIND_TO_BITE_MULT) + ///The breeding timeout for newly instantiated fish is multiplied by this. #define NEW_FISH_BREEDING_TIMEOUT_MULT 2 ///The last feeding timestamp of newly instantiated fish is multiplied by this: ergo, they spawn 50% hungry. #define NEW_FISH_LAST_FEEDING_MULT 0.5 +//IF YOU ADD ANY NEW FLAG, ADD IT TO THE RESPECTIVE BITFIELD in _globalvars/bitfields.dm TOO! + +///This fish is shown in the catalog and on the wiki (this only matters as an initial, compile-time value) +#define FISH_FLAG_SHOW_IN_CATALOG (1<<0) +///This fish has a flopping animation done through matrices +#define FISH_DO_FLOP_ANIM (1<<1) +///This fish has been petted in the last 30 seconds +#define FISH_FLAG_PETTED (1<<2) +///This fish can be scanned to complete fish scanning experiments +#define FISH_FLAG_EXPERIMENT_SCANNABLE (1<<3) + #define MIN_AQUARIUM_TEMP T0C #define MAX_AQUARIUM_TEMP (T0C + 100) #define DEFAULT_AQUARIUM_TEMP (T0C + 24) @@ -142,8 +178,8 @@ #define AQUARIUM_FLUID_SALTWATER "Saltwater" #define AQUARIUM_FLUID_SULPHWATEVER "Sulfuric Water" #define AQUARIUM_FLUID_AIR "Air" -#define AQUARIUM_FLUID_ANADROMOUS "Adaptive to both Freshwater and Saltwater" -#define AQUARIUM_FLUID_ANY_WATER "Adaptive to all kind of water" +#define AQUARIUM_FLUID_ANADROMOUS "Anadromous" +#define AQUARIUM_FLUID_ANY_WATER "Any Fluid" ///Fluff. The name of the aquarium company shown in the fish catalog #define AQUARIUM_COMPANY "Aquatech Ltd." @@ -161,3 +197,51 @@ #define FISH_BEAUTY_GOOD 450 #define FISH_BEAUTY_GREAT 600 #define FISH_BEAUTY_EXCELLENT 700 + +//Fish breeding stops if fish count exceeds this. +#define AQUARIUM_MAX_BREEDING_POPULATION 20 + +//Minigame defines +/// The height of the minigame slider. Not in pixels, but minigame units. +#define FISHING_MINIGAME_AREA 1000 + +///The fish needs to be cooked for at least this long so that it can be safely eaten +#define FISH_SAFE_COOKING_DURATION 30 SECONDS + +///Defines for fish properties from the collect_fish_properties proc +#define FISH_PROPERTIES_FAV_BAIT "fav_bait" +#define FISH_PROPERTIES_BAD_BAIT "bad_bait" +#define FISH_PROPERTIES_TRAITS "fish_traits" +#define FISH_PROPERTIES_BEAUTY_SCORE "beauty_score" +#define FISH_PROPERTIES_EVOLUTIONS "evolutions" + +///Define for favorite and disliked baits that aren't just item typepaths. +#define FISH_BAIT_TYPE "Type" +#define FISH_BAIT_FOODTYPE "Foodtype" +#define FISH_BAIT_REAGENT "Reagent" +#define FISH_BAIT_VALUE "Value" +#define FISH_BAIT_AMOUNT "Amount" + + +///We multiply the weight of fish inside the loot table by this value if we are goofy enough to fish without a bait. +#define FISH_WEIGHT_MULT_WITHOUT_BAIT 0.15 + +/** + * A macro to ensure the wikimedia filenames of fish icons are unique, especially since there're a couple fish that have + * quite ambiguous names/icon_states like "checkered" or "pike" + */ +#define FISH_AUTOWIKI_FILENAME(fish) SANITIZE_FILENAME("[initial(fish.icon_state)]_wiki_fish") + +///The list keys for the autowiki for fish sources +#define FISH_SOURCE_AUTOWIKI_NAME "name" +#define FISH_SOURCE_AUTOWIKI_ICON "icon" +#define FISH_SOURCE_AUTOWIKI_WEIGHT "weight" +#define FISH_SOURCE_AUTOWIKI_WEIGHT_SUFFIX "weight_suffix" +#define FISH_SOURCE_AUTOWIKI_NOTES "notes" + +///Special value for the name key that always comes first when the data is sorted, regardless of weight. +#define FISH_SOURCE_AUTOWIKI_DUD "Nothing" +///Special value for the name key that always comes last +#define FISH_SOURCE_AUTOWIKI_OTHER "Other Stuff" +///The filename for the icon for "other stuff" which we don't articulate about on the autowiki +#define FISH_SOURCE_AUTOWIKI_QUESTIONMARK "questionmark" diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index 3787aeb4df7b9..b7e5b38482d16 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -139,7 +139,7 @@ GLOBAL_LIST_INIT(food_quality_events, list( FOOD_QUALITY_TOP = /datum/mood_event/food/top, )) -/// Crafted food buffs grouped by crafting_complexity +/// Weighted lists of crafted food buffs randomly given according to crafting_complexity unless the food has a specific buff GLOBAL_LIST_INIT(food_buffs, list( FOOD_COMPLEXITY_1 = list( /datum/status_effect/food/haste = 1, @@ -152,11 +152,9 @@ GLOBAL_LIST_INIT(food_buffs, list( ), FOOD_COMPLEXITY_4 = list( /datum/status_effect/food/haste = 1, - /datum/status_effect/food/trait/shockimmune = 1, ), FOOD_COMPLEXITY_5 = list( /datum/status_effect/food/haste = 1, - /datum/status_effect/food/trait/shockimmune = 2, ), )) @@ -172,12 +170,21 @@ GLOBAL_LIST_INIT(food_buffs, list( #define FOOD_IN_CONTAINER (1<<0) /// Finger food can be eaten while walking / running around #define FOOD_FINGER_FOOD (1<<1) +/// Examining this edible won't show infos on food types, bites and remote tasting etc. +#define FOOD_NO_EXAMINE (1<<2) +/// This food item doesn't track bitecounts, use responsibly. +#define FOOD_NO_BITECOUNT (1<<3) DEFINE_BITFIELD(food_flags, list( "FOOD_FINGER_FOOD" = FOOD_FINGER_FOOD, "FOOD_IN_CONTAINER" = FOOD_IN_CONTAINER, + "FOOD_NO_EXAMINE" = FOOD_NO_EXAMINE, + "FOOD_NO_BITECOUNT" = FOOD_NO_BITECOUNT, )) +///Define for return value of the after_eat callback that will call OnConsume if it hasn't already. +#define FOOD_AFTER_EAT_CONSUME_ANYWAY 2 + #define STOP_SERVING_BREAKFAST (15 MINUTES) #define FOOD_MEAT_HUMAN 50 diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index a8a7ad975af2e..cffe920215335 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -84,10 +84,10 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/grass3.ogg', 'sound/effects/footstep/grass4.ogg'), 75, 0), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 1), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 1), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', @@ -134,10 +134,10 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/grass3.ogg', 'sound/effects/footstep/grass4.ogg'), 75, 0), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 1), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 1), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', @@ -178,10 +178,10 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/grass3.ogg', 'sound/effects/footstep/grass4.ogg'), 75, 0), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 1), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 1), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', @@ -196,10 +196,10 @@ GLOBAL_LIST_INIT(heavyfootstep, list( 'sound/effects/footstep/heavy1.ogg', 'sound/effects/footstep/heavy2.ogg'), 100, 2), FOOTSTEP_WATER = list(list( - 'sound/effects/footstep/water1.ogg', - 'sound/effects/footstep/water2.ogg', - 'sound/effects/footstep/water3.ogg', - 'sound/effects/footstep/water4.ogg'), 100, 2), + 'sound/effects/footstep/water/water1.ogg', + 'sound/effects/footstep/water/water2.ogg', + 'sound/effects/footstep/water/water3.ogg', + 'sound/effects/footstep/water/water4.ogg'), 100, 2), FOOTSTEP_LAVA = list(list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', diff --git a/code/__DEFINES/gravity.dm b/code/__DEFINES/gravity.dm index f61734cd55fc9..da81c0465cabc 100644 --- a/code/__DEFINES/gravity.dm +++ b/code/__DEFINES/gravity.dm @@ -12,6 +12,34 @@ /// Singularity is stage 6 (11x11) #define STAGE_SIX 11 //From supermatter shard +// Minimum energy needed to reach a stage +/// Singularity stage 1 energy requirement +#define STAGE_ONE_ENERGY_REQUIREMENT 1 +/// Singularity stage 2 energy requirement +#define STAGE_TWO_ENERGY_REQUIREMENT 200 +/// Singularity stage 3 energy requirement +#define STAGE_THREE_ENERGY_REQUIREMENT 500 +/// Singularity stage 4 energy requirement +#define STAGE_FOUR_ENERGY_REQUIREMENT 1000 +/// Singularity stage 5 energy requirement +#define STAGE_FIVE_ENERGY_REQUIREMENT 2000 +/// Singularity stage 6 energy requirement (also needs to consume a SM shard) +#define STAGE_SIX_ENERGY_REQUIREMENT 3000 + +// These values get the median number between two stages to prevent expansion/shrinkage immediately +/// Singularity stage 1 +#define STAGE_ONE_ENERGY ((STAGE_TWO_ENERGY_REQUIREMENT - STAGE_ONE_ENERGY_REQUIREMENT) * 0.5) + STAGE_ONE_ENERGY_REQUIREMENT +/// Singularity stage 2 +#define STAGE_TWO_ENERGY ((STAGE_THREE_ENERGY_REQUIREMENT - STAGE_TWO_ENERGY_REQUIREMENT) * 0.5) + STAGE_TWO_ENERGY_REQUIREMENT +/// Singularity stage 3 +#define STAGE_THREE_ENERGY ((STAGE_FOUR_ENERGY_REQUIREMENT - STAGE_THREE_ENERGY_REQUIREMENT) * 0.5) + STAGE_THREE_ENERGY_REQUIREMENT +/// Singularity stage 4 +#define STAGE_FOUR_ENERGY ((STAGE_FIVE_ENERGY_REQUIREMENT - STAGE_FOUR_ENERGY_REQUIREMENT) * 0.5) + STAGE_FOUR_ENERGY_REQUIREMENT +/// Singularity stage 5 +#define STAGE_FIVE_ENERGY ((STAGE_SIX_ENERGY_REQUIREMENT - STAGE_FIVE_ENERGY_REQUIREMENT) * 0.5) + STAGE_FIVE_ENERGY_REQUIREMENT +/// Singularity stage 6 (hardcoded at 4000 since there is no stage 7) +#define STAGE_SIX_ENERGY 4000 + /** * The point where gravity is negative enough to pull you upwards. * That means walking checks for a ceiling instead of a floor, and you can fall "upwards" diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index e762b406d1eb4..3c46589002475 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -77,7 +77,7 @@ #define ui_building "EAST-4:22,SOUTH:21" #define ui_language_menu "EAST-4:6,SOUTH:21" #define ui_navigate_menu "EAST-4:22,SOUTH:5" -#define ui_floor_menu "EAST-4:14,SOUTH:37" +#define ui_floor_changer "EAST-3:24, SOUTH+1:3" //Upper left (action buttons) #define ui_action_palette "WEST+0:23,NORTH-1:5" @@ -110,6 +110,9 @@ #define ui_living_pull "EAST-1:28,CENTER-3:15" #define ui_living_healthdoll "EAST-1:28,CENTER-1:15" +//Humans +#define ui_human_floor_changer "EAST-4:22, SOUTH+1:7" + //Drones #define ui_drone_drop "CENTER+1:18,SOUTH:5" #define ui_drone_pull "CENTER+1.5:2,SOUTH:5" @@ -132,7 +135,7 @@ #define ui_borg_alerts "CENTER+4:21,SOUTH:5" #define ui_borg_language_menu "CENTER+4:19,SOUTH+1:6" #define ui_borg_navigate_menu "CENTER+4:19,SOUTH+1:6" -#define ui_borg_floor_menu "CENTER+4:-13,SOUTH+1:6" +#define ui_borg_floor_changer "EAST-1:28,SOUTH+1:39" //Aliens #define ui_alien_health "EAST,CENTER-1:15" @@ -141,7 +144,6 @@ #define ui_alien_storage_r "CENTER+1:18,SOUTH:5" #define ui_alien_language_menu "EAST-4:20,SOUTH:5" #define ui_alien_navigate_menu "EAST-4:20,SOUTH:5" -#define ui_alien_floor_menu "EAST-4:-12,SOUTH:5" //AI #define ui_ai_core "BOTTOM:6,RIGHT-4" @@ -150,7 +152,6 @@ #define ui_ai_state_laws "BOTTOM:6,RIGHT-1" #define ui_ai_mod_int "BOTTOM:6,RIGHT" #define ui_ai_language_menu "BOTTOM+1:8,RIGHT-1:30" -#define ui_ai_floor_menu "BOTTOM+1:8,RIGHT-1:14" #define ui_ai_crew_monitor "BOTTOM:6,CENTER-1" #define ui_ai_crew_manifest "BOTTOM:6,CENTER" @@ -192,8 +193,8 @@ #define ui_ghost_teleport "SOUTH:6,CENTER:24" #define ui_ghost_pai "SOUTH: 6, CENTER+1:24" #define ui_ghost_minigames "SOUTH: 6, CENTER+2:24" -#define ui_ghost_language_menu "SOUTH: 22, CENTER+3:8" -#define ui_ghost_floor_menu "SOUTH: 6, CENTER+3:8" +#define ui_ghost_language_menu "SOUTH: 22, CENTER+3:22" +#define ui_ghost_floor_changer "SOUTH: 6, CENTER+3:23" //Blobbernauts #define ui_blobbernaut_overmind_health "EAST-1:28,CENTER+0:19" diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index a853fde0c5dee..5fce59b17fb72 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -206,6 +206,8 @@ DEFINE_BITFIELD(smoothing_junction, list( #define SMOOTH_GROUP_SPIDER_WEB_WALL_TOUGH S_OBJ(73) // /obj/structure/spider/stickyweb/sealed/thick #define SMOOTH_GROUP_SPIDER_WEB_WALL_MIRROR S_OBJ(74) // /obj/structure/spider/stickyweb/sealed/reflector +#define SMOOTH_GROUP_GRAV_FIELD S_OBJ(69) + /// Performs the work to set smoothing_groups and canSmoothWith. /// An inlined function used in both turf/Initialize and atom/Initialize. #define SETUP_SMOOTHING(...) \ diff --git a/code/__DEFINES/interaction_flags.dm b/code/__DEFINES/interaction_flags.dm index 615fe5c4cbda2..b031292b0242e 100644 --- a/code/__DEFINES/interaction_flags.dm +++ b/code/__DEFINES/interaction_flags.dm @@ -26,6 +26,8 @@ #define INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY (1<<12) /// Bypass all adjacency and other checks for mouse drop #define INTERACT_ATOM_MOUSEDROP_IGNORE_CHECKS (INTERACT_ATOM_MOUSEDROP_IGNORE_ADJACENT | INTERACT_ATOM_MOUSEDROP_IGNORE_USABILITY) +/// calls try_interact() on attack_paw() and returns that. +#define INTERACT_ATOM_ATTACK_PAW (1<<13) /// attempt pickup on attack_hand for items #define INTERACT_ITEM_ATTACK_HAND_PICKUP (1<<0) @@ -46,3 +48,5 @@ #define INTERACT_MACHINE_REQUIRES_SIGHT (1<<6) /// the user must be able to read to interact #define INTERACT_MACHINE_REQUIRES_LITERACY (1<<7) +/// user must be standing up in order to interact +#define INTERACT_MACHINE_REQUIRES_STANDING (1<<8) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index f915b0f66a7c5..b06bf36fdb8fa 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -63,6 +63,8 @@ #define ITEM_SLOT_HANDCUFFED (1<<18) /// Legcuff slot (bolas, beartraps) #define ITEM_SLOT_LEGCUFFED (1<<19) +/// Inside of a character's BELT......... +#define ITEM_SLOT_BELTPACK (1<<20) /// Total amount of slots #define SLOTS_AMT 20 // Keep this up to date! @@ -106,6 +108,10 @@ DEFINE_BITFIELD(no_equip_flags, list( #define HIDESNOUT (1<<12) ///hides mutant/moth wings, does not apply to functional wings #define HIDEMUTWINGS (1<<13) +///hides belts and riggings +#define HIDEBELT (1<<14) +///hides antennae +#define HIDEANTENNAE (1<<15) //bitflags for clothing coverage - also used for limbs #define HEAD (1<<0) @@ -146,12 +152,18 @@ DEFINE_BITFIELD(no_equip_flags, list( #define DIGITIGRADE_STYLE 2 //Flags (actual flags, fucker ^) for /obj/item/var/supports_variations_flags -///No alternative sprites based on bodytype +/// No alternative sprites or handling based on bodytype #define CLOTHING_NO_VARIATION (1<<0) -///Has a sprite for digitigrade legs specifically. +/// Has a sprite for digitigrade legs specifically. #define CLOTHING_DIGITIGRADE_VARIATION (1<<1) -///The sprite works fine for digitigrade legs as-is. +/// The sprite works fine for digitigrade legs as-is. #define CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON (1<<2) +/// Auto-generates the leg portion of the sprite with GAGS +/// Suggested that you set [/obj/item/var/digitigrade_greyscale_config_worn] when using this flag +#define CLOTHING_DIGITIGRADE_MASK (1<<3) + +/// All variation flags which render "correctly" on a digitigrade leg setup +#define DIGITIGRADE_VARIATIONS (CLOTHING_DIGITIGRADE_VARIATION|CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON|CLOTHING_DIGITIGRADE_MASK) //flags for covering body parts #define GLASSESCOVERSEYES (1<<0) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 0d9d28d4d858a..954aec3235070 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -69,6 +69,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isplatingturf(A) (istype(A, /turf/open/floor/plating)) +#define iscatwalkturf(A) (istype(A, /turf/open/floor/catwalk_floor)) + #define isasteroidturf(A) (istype(A, /turf/open/misc/asteroid)) #define istransparentturf(A) (HAS_TRAIT(A, TURF_Z_TRANSPARENT_TRAIT)) @@ -137,19 +139,15 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list( //Silicon mobs #define issilicon(A) (istype(A, /mob/living/silicon)) -///Define on whether A has access to Silicon stuff either through being a silicon, admin ghost or is a non-silicon holding the Silicon remote. -///This can only be used for instances where you are not specifically looking for silicon, but access. -#define HAS_SILICON_ACCESS(A) (istype(A, /mob/living/silicon) || isAdminGhostAI(A) || A.has_unlimited_silicon_privilege || istype(A.get_active_held_item(), /obj/item/machine_remote)) - #define isAI(A) (istype(A, /mob/living/silicon/ai)) -///Define on whether A has access to AI stuff either through being a AI, admin ghost, or is a non-silicon holding the Silicon remote -///This can only be used for instances where you are not specifically looking for silicon, but access. -#define HAS_AI_ACCESS(A) (istype(A, /mob/living/silicon/ai) || isAdminGhostAI(A) || istype(A.get_active_held_item(), /obj/item/machine_remote)) - #define iscyborg(A) (istype(A, /mob/living/silicon/robot)) - #define ispAI(A) (istype(A, /mob/living/silicon/pai)) +///This is used to see if you have Silicon access. This includes things like Admins, Drones, Bots, and Human wands. +#define HAS_SILICON_ACCESS(possible_silicon) (HAS_TRAIT(possible_silicon, TRAIT_SILICON_ACCESS) || isAdminGhostAI(possible_silicon)) +///This is used to see if you have the access of an AI. This doesn't mean you are an AI, just have the same access as one. +#define HAS_AI_ACCESS(possible_ai) (HAS_TRAIT(possible_ai, TRAIT_AI_ACCESS) || isAdminGhostAI(possible_ai)) + // basic mobs #define isbasicmob(A) (istype(A, /mob/living/basic)) @@ -255,7 +253,7 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list( #define ismecha(A) (istype(A, /obj/vehicle/sealed/mecha)) -#define ismopable(A) (A && (A.layer <= FLOOR_CLEAN_LAYER)) //If something can be cleaned by floor-cleaning devices such as mops or clean bots +#define ismopable(A) (A && ((PLANE_TO_TRUE(A.plane) == FLOOR_PLANE) ? (A.layer <= FLOOR_CLEAN_LAYER) : (A.layer <= GAME_CLEAN_LAYER))) //If something can be cleaned by floor-cleaning devices such as mops or clean bots #define isorgan(A) (istype(A, /obj/item/organ)) @@ -281,6 +279,8 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list( #define is_reagent_container(O) (istype(O, /obj/item/reagent_containers)) +#define isapc(A) (istype(A, /obj/machinery/power/apc)) + //Assemblies #define isassembly(O) (istype(O, /obj/item/assembly)) @@ -330,4 +330,4 @@ GLOBAL_LIST_INIT(book_types, typecacheof(list( #define is_unassigned_job(job_type) (istype(job_type, /datum/job/unassigned)) #define isprojectilespell(thing) (istype(thing, /datum/action/cooldown/spell/pointed/projectile)) -#define is_multi_tile_object(atom) (atom.bound_width > world.icon_size || atom.bound_height > world.icon_size) +#define is_multi_tile_object(atom) (atom.bound_width > ICON_SIZE_X || atom.bound_height > ICON_SIZE_Y) diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 2c3b151855cef..b0b8993a22357 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -12,6 +12,11 @@ /// Used when the `get_job_unavailable_error_message` proc can't make sense of a given code. #define GENERIC_JOB_UNAVAILABLE_ERROR "Error: Unknown job availability." +// Human authority settings +// If you want to add another setting, make sure to also add it to the if chain in /datum/job_config_type/human_authority/validate_value() +#define JOB_AUTHORITY_HUMANS_ONLY "HUMANS_ONLY" +#define JOB_AUTHORITY_NON_HUMANS_ALLOWED "NON_HUMANS_ALLOWED" + #define DEFAULT_RELIGION "Christianity" #define DEFAULT_DEITY "Space Jesus" #define DEFAULT_BIBLE "Default Bible Name" @@ -25,6 +30,7 @@ #define JOB_CONFIG_REQUIRED_CHARACTER_AGE "Required Character Age" #define JOB_CONFIG_SPAWN_POSITIONS "Spawn Positions" #define JOB_CONFIG_TOTAL_POSITIONS "Total Positions" +#define JOB_CONFIG_HUMAN_AUTHORITY "Human Authority Whitelist Setting" /** * ======================= @@ -93,6 +99,7 @@ #define JOB_LAWYER "Lawyer" #define JOB_CHAPLAIN "Chaplain" #define JOB_PSYCHOLOGIST "Psychologist" +#define JOB_PUN_PUN "Pun Pun" //ERTs #define JOB_ERT_DEATHSQUAD "Death Commando" #define JOB_ERT_COMMANDER "Emergency Response Team Commander" @@ -136,31 +143,32 @@ #define JOB_DISPLAY_ORDER_LAWYER 12 #define JOB_DISPLAY_ORDER_CHAPLAIN 13 #define JOB_DISPLAY_ORDER_PSYCHOLOGIST 14 -#define JOB_DISPLAY_ORDER_AI 15 -#define JOB_DISPLAY_ORDER_CYBORG 16 -#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 17 -#define JOB_DISPLAY_ORDER_STATION_ENGINEER 18 -#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 19 -#define JOB_DISPLAY_ORDER_QUARTERMASTER 20 -#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 21 -#define JOB_DISPLAY_ORDER_SHAFT_MINER 22 -#define JOB_DISPLAY_ORDER_BITRUNNER 23 -#define JOB_DISPLAY_ORDER_CARGO_GORILLA 24 -#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 25 -#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 26 -#define JOB_DISPLAY_ORDER_PARAMEDIC 27 -#define JOB_DISPLAY_ORDER_CHEMIST 28 -#define JOB_DISPLAY_ORDER_CORONER 29 -#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 30 -#define JOB_DISPLAY_ORDER_SCIENTIST 31 -#define JOB_DISPLAY_ORDER_ROBOTICIST 32 -#define JOB_DISPLAY_ORDER_GENETICIST 33 -#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 34 -#define JOB_DISPLAY_ORDER_VETERAN_ADVISOR 35 -#define JOB_DISPLAY_ORDER_WARDEN 36 -#define JOB_DISPLAY_ORDER_DETECTIVE 37 -#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 38 -#define JOB_DISPLAY_ORDER_PRISONER 39 +#define JOB_DISPLAY_ORDER_PUN_PUN 15 +#define JOB_DISPLAY_ORDER_AI 16 +#define JOB_DISPLAY_ORDER_CYBORG 17 +#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 18 +#define JOB_DISPLAY_ORDER_STATION_ENGINEER 19 +#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 20 +#define JOB_DISPLAY_ORDER_QUARTERMASTER 21 +#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 22 +#define JOB_DISPLAY_ORDER_SHAFT_MINER 23 +#define JOB_DISPLAY_ORDER_BITRUNNER 24 +#define JOB_DISPLAY_ORDER_CARGO_GORILLA 25 +#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 26 +#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 27 +#define JOB_DISPLAY_ORDER_PARAMEDIC 28 +#define JOB_DISPLAY_ORDER_CHEMIST 29 +#define JOB_DISPLAY_ORDER_CORONER 30 +#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 31 +#define JOB_DISPLAY_ORDER_SCIENTIST 32 +#define JOB_DISPLAY_ORDER_ROBOTICIST 33 +#define JOB_DISPLAY_ORDER_GENETICIST 34 +#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 35 +#define JOB_DISPLAY_ORDER_VETERAN_ADVISOR 36 +#define JOB_DISPLAY_ORDER_WARDEN 37 +#define JOB_DISPLAY_ORDER_DETECTIVE 38 +#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 39 +#define JOB_DISPLAY_ORDER_PRISONER 40 #define DEPARTMENT_UNASSIGNED "No Department" @@ -203,7 +211,7 @@ DEFINE_BITFIELD(departments_bitflags, list( #define JOB_ANNOUNCE_ARRIVAL (1<<0) /// Whether the mob is added to the crew manifest. #define JOB_CREW_MANIFEST (1<<1) -/// Whether the mob is equipped through SSjob.EquipRank() on spawn. +/// Whether the mob is equipped through SSjob.equip_rank() on spawn. #define JOB_EQUIP_RANK (1<<2) /// Whether the job is considered a regular crew member of the station. Equipment such as AI and cyborgs not included. #define JOB_CREW_MEMBER (1<<3) diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm index cd6ee5ec0c9bd..d530185c14288 100644 --- a/code/__DEFINES/language.dm +++ b/code/__DEFINES/language.dm @@ -27,6 +27,7 @@ #define LANGUAGE_GLAND "gland" #define LANGUAGE_HAT "hat" #define LANGUAGE_QUIRK "quirk" +#define LANGUAGE_DRINK "drink" #define LANGUAGE_MALF "malf" #define LANGUAGE_PIRATE "pirate" #define LANGUAGE_MASTER "master" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 999d7886cf466..8005787676aec 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -32,6 +32,7 @@ #define DEFAULT_PLANE 0 //Marks out the default plane, even if we don't use it +#define WEATHER_PLANE 1 #define AREA_PLANE 2 #define MASSIVE_OBJ_PLANE 3 #define GHOST_PLANE 4 @@ -65,6 +66,8 @@ ///Things that should render ignoring lighting #define ABOVE_LIGHTING_PLANE 17 +#define WEATHER_GLOW_PLANE 18 + ///---------------- MISC ----------------------- ///Pipecrawling images @@ -145,9 +148,14 @@ #define WIRE_LAYER (9 + TOPDOWN_LAYER) #define GLASS_FLOOR_LAYER (10 + TOPDOWN_LAYER) #define TRAM_RAIL_LAYER (11 + TOPDOWN_LAYER) +#define ABOVE_OPEN_TURF_LAYER (12 + TOPDOWN_LAYER) ///catwalk overlay of /turf/open/floor/plating/catwalk_floor -#define CATWALK_LAYER (12 + TOPDOWN_LAYER) -#define ABOVE_OPEN_TURF_LAYER (13 + TOPDOWN_LAYER) +#define CATWALK_LAYER (13 + TOPDOWN_LAYER) +#define LOWER_RUNE_LAYER (14 + TOPDOWN_LAYER) +#define RUNE_LAYER (15 + TOPDOWN_LAYER) +/// [GAME_CLEAN_LAYER] but for floors. +/// Basically any layer below this (numerically) is "on" a floor for the purposes of washing +#define FLOOR_CLEAN_LAYER (20 + TOPDOWN_LAYER) //WALL_PLANE layers #define BELOW_CLOSED_TURF_LAYER 2.053 @@ -166,12 +174,10 @@ #define PLUMBING_PIPE_VISIBILE_LAYER 2.495//layer = initial(layer) + ducting_layer / 3333 in atmospherics/handle_layer() to determine order of duct overlap #define BOT_PATH_LAYER 2.497 #define LOW_OBJ_LAYER 2.5 -#define LOW_SIGIL_LAYER 2.52 -#define SIGIL_LAYER 2.53 #define HIGH_PIPE_LAYER 2.54 // Anything above this layer is not "on" a turf for the purposes of washing // I hate this life of ours -#define FLOOR_CLEAN_LAYER 2.55 +#define GAME_CLEAN_LAYER 2.55 #define TRAM_STRUCTURE_LAYER 2.57 #define TRAM_FLOOR_LAYER 2.58 #define TRAM_WALL_LAYER 2.59 @@ -253,7 +259,7 @@ //---------- EMISSIVES ------------- //Layering order of these is not particularly meaningful. -//Important part is the seperation of the planes for control via plane_master +//Important part is the separation of the planes for control via plane_master /// The layer you should use if you _really_ don't want an emissive overlay to be blocked. #define EMISSIVE_LAYER_UNBLOCKABLE 9999 @@ -319,6 +325,15 @@ #define PLANE_CRITICAL_FUCKO_PARALLAX (PLANE_CRITICAL_DISPLAY|PLANE_CRITICAL_NO_RELAY|PLANE_CRITICAL_CUT_RENDER) +//---------- Plane Master offsetting_flags ------------- +// Describes how different plane masters behave regarding being offset +/// This plane master will not be offset itself, existing only once with an offset of 0 +/// Mostly used for planes that really don't need to be duplicated, like the hud planes +#define BLOCKS_PLANE_OFFSETTING (1<<0) +/// This plane master will have its relays offset to match the highest rendering plane that matches the target +/// Required for making things like the blind fullscreen not render over runechat +#define OFFSET_RELAYS_MATCH_HIGHEST (1<<1) + /// A value of /datum/preference/numeric/multiz_performance that disables the option #define MULTIZ_PERFORMANCE_DISABLE -1 /// We expect at most 3 layers of multiz diff --git a/code/__DEFINES/lazy_templates.dm b/code/__DEFINES/lazy_templates.dm index 8a469af4deeda..1e8dca9a7a110 100644 --- a/code/__DEFINES/lazy_templates.dm +++ b/code/__DEFINES/lazy_templates.dm @@ -3,6 +3,7 @@ #define LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY "LT_NINJAHOLDING" #define LAZY_TEMPLATE_KEY_ABDUCTOR_SHIPS "LT_ABDUCTORSHIPS" #define LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE "LT_HERETICSACRIFICE" +#define LAZY_TEMPLATE_KEY_VOIDWALKER_VOID "LT_VOIDWALKERVOID" #define LAZY_TEMPLATE_KEY_LIST_ALL(...) list( \ "Nukie Base" = LAZY_TEMPLATE_KEY_NUKIEBASE, \ @@ -10,4 +11,5 @@ "Ninja Holding" = LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY, \ "Abductor Ships" = LAZY_TEMPLATE_KEY_ABDUCTOR_SHIPS, \ "Heretic Sacrifice Level" = LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE, \ + "Voidwalker Void" = LAZY_TEMPLATE_KEY_VOIDWALKER_VOID, \ ) diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 2c3c1c34f0836..a59d1b2c14449 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -77,21 +77,21 @@ #define _EMISSIVE_COLOR(val) list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, val,val,val,0) /// The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with [EM_BLOCK_COLOR]. #define EMISSIVE_COLOR _EMISSIVE_COLOR(1) -/// A globaly cached version of [EMISSIVE_COLOR] for quick access. +/// A globally cached version of [EMISSIVE_COLOR] for quick access. GLOBAL_LIST_INIT(emissive_color, EMISSIVE_COLOR) #define _EM_BLOCK_COLOR(val) list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,val, 0,0,0,0) /// The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with [EMISSIVE_COLOR]. #define EM_BLOCK_COLOR _EM_BLOCK_COLOR(1) -/// A globaly cached version of [EM_BLOCK_COLOR] for quick access. +/// A globally cached version of [EM_BLOCK_COLOR] for quick access. GLOBAL_LIST_INIT(em_block_color, EM_BLOCK_COLOR) /// A set of appearance flags applied to all emissive and emissive blocker overlays. -/// KEEP_APART to prevent parent hooking, KEEP_TOGETHER for children, and we reset the color and alpha of our parent so nothing gets overriden +/// KEEP_APART to prevent parent hooking, KEEP_TOGETHER for children, and we reset the color and alpha of our parent so nothing gets overridden #define EMISSIVE_APPEARANCE_FLAGS (KEEP_APART|KEEP_TOGETHER|RESET_COLOR|RESET_ALPHA) -/// The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of [EMISSIVE_COLOR], and be independant of the RGB value of [EM_BLOCK_COLOR]. +/// The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of [EMISSIVE_COLOR], and be independent of the RGB value of [EM_BLOCK_COLOR]. #define EM_MASK_MATRIX list(0,0,0,1/3, 0,0,0,1/3, 0,0,0,1/3, 0,0,0,0, 1,1,1,0) -/// A globaly cached version of [EM_MASK_MATRIX] for quick access. +/// A globally cached version of [EM_MASK_MATRIX] for quick access. GLOBAL_LIST_INIT(em_mask_matrix, EM_MASK_MATRIX) /// Parse the hexadecimal color into lumcounts of each perspective. diff --git a/code/__DEFINES/living.dm b/code/__DEFINES/living.dm index 63993f4bc620b..2ac320abdecc7 100644 --- a/code/__DEFINES/living.dm +++ b/code/__DEFINES/living.dm @@ -4,3 +4,12 @@ /// Always does *deathgasp when they die /// If unset mobs will only deathgasp if supplied a death sound or custom death message #define ALWAYS_DEATHGASP (1<<1) +/** + * For carbons, this stops bodypart overlays being added to bodyparts from calling mob.update_body_parts(). + * This is useful for situations like initialization or species changes, where + * update_body_parts() is going to be called ONE time once everything is done. + */ +#define STOP_OVERLAY_UPDATE_BODY_PARTS (1<<2) + +/// Getter for a mob/living's lying angle, otherwise protected +#define GET_LYING_ANGLE(mob) (UNLINT(mob.lying_angle)) diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm index 2c63f2568dcf3..8dd8db3fd06c6 100644 --- a/code/__DEFINES/machines.dm +++ b/code/__DEFINES/machines.dm @@ -33,7 +33,7 @@ #define BASE_MACHINE_ACTIVE_CONSUMPTION (BASE_MACHINE_IDLE_CONSUMPTION * 10) /// Bitflags for a machine's preferences on when it should start processing. For use with machinery's `processing_flags` var. -#define START_PROCESSING_ON_INIT (1<<0) /// Indicates the machine will automatically start processing right after it's `Initialize()` is ran. +#define START_PROCESSING_ON_INIT (1<<0) /// Indicates the machine will automatically start processing right after its `Initialize()` is ran. #define START_PROCESSING_MANUALLY (1<<1) /// Machines with this flag will not start processing when it's spawned. Use this if you want to manually control when a machine starts processing. //bitflags for door switches. @@ -52,7 +52,7 @@ #define BYPASS_DOOR_CHECKS 2 //used in design to specify which machine can build it -//Note: More than one of these can be added to a design but imprinter and lathe designs are incompatable. +//Note: More than one of these can be added to a design but imprinter and lathe designs are incompatible. #define IMPRINTER (1<<0) //For circuits. Uses glass/chemicals. #define PROTOLATHE (1<<1) //New stuff. Uses various minerals #define AUTOLATHE (1<<2) //Prints basic designs without research @@ -135,6 +135,15 @@ /// Max length of a status line in the status display #define MAX_STATUS_LINE_LENGTH 40 +///Define for automated system arrival announcement +#define AUTO_ANNOUNCE_ARRIVAL "ARRIVAL" +///Define for automated system announcement when a head of staff arrives +#define AUTO_ANNOUNCE_NEWHEAD "NEWHEAD" +///Define for automated system announcement for when the arrival shuttle is broken +#define AUTO_ANNOUNCE_ARRIVALS_BROKEN "ARRIVALS_BROKEN" +///Define for automated system announcement for researched nodes +#define AUTO_ANNOUNCE_NODE "NODE" + /// Blank Status Display #define SD_BLANK 0 /// Shows the emergency shuttle timer diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index c76ba60911355..33147916f4e38 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -221,4 +221,14 @@ Always compile, always use that verb, and always make sure that it works for wha #define CLUSTER_CHECK_ALL 30 //!Don't let anything cluster, like, at all /// Checks the job changes in the map config for the passed change key. -#define CHECK_MAP_JOB_CHANGE(job, change) SSmapping.config.job_changes?[job]?[change] +#define CHECK_MAP_JOB_CHANGE(job, change) SSmapping.current_map.job_changes?[job]?[change] + +///Identifiers for away mission spawnpoints +#define AWAYSTART_BEACH "AWAYSTART_BEACH" +#define AWAYSTART_MUSEUM "AWAYSTART_MUSEUM" +#define AWAYSTART_RESEARCH "AWAYSTART_RESEARCH" +#define AWAYSTART_CAVES "AWAYSTART_CAVES" +#define AWAYSTART_MOONOUTPOST "AWAYSTART_MOONOUTPOST" +#define AWAYSTART_SNOWCABIN "AWAYSTART_SNOWCABIN" +#define AWAYSTART_SNOWDIN "AWAYSTART_SNOWDIN" +#define AWAYSTART_UNDERGROUND "AWAYSTART_UNDERGROUND" diff --git a/code/__DEFINES/market.dm b/code/__DEFINES/market.dm new file mode 100644 index 0000000000000..e0bd457835208 --- /dev/null +++ b/code/__DEFINES/market.dm @@ -0,0 +1,14 @@ + +// Shipping methods + +// The BEST way of shipping items: accurate, "undetectable" +#define SHIPPING_METHOD_LTSRBT "LTSRBT" +// Picks a random area to teleport the item to and gives you a minute to get there before it is sent. +#define SHIPPING_METHOD_TELEPORT "Teleport" +// Throws the item from somewhere at the station. +#define SHIPPING_METHOD_LAUNCH "Launch" +// Sends a supply pod to the buyer's location, showy. +#define SHIPPING_METHOD_SUPPLYPOD "Supply Pod" + +/// The percentage on gains that's removed when selling an item through the blackmarket with the LTSRBT +#define MARKET_WITHHOLDING_TAX 0.15 diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index 1939ca94ec455..a7a95817b4405 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -188,21 +188,21 @@ var/pixel_x = 0 var/pixel_y = 0 for(var/i in 1 to increments) - pixel_x += sin(angle)+16*sin(angle)*2 - pixel_y += cos(angle)+16*cos(angle)*2 + pixel_x += sin(angle)+(ICON_SIZE_X/2)*sin(angle)*2 + pixel_y += cos(angle)+(ICON_SIZE_Y/2)*cos(angle)*2 var/new_x = starting.x var/new_y = starting.y - while(pixel_x > 16) - pixel_x -= 32 + while(pixel_x > (ICON_SIZE_X/2)) + pixel_x -= ICON_SIZE_X new_x++ - while(pixel_x < -16) - pixel_x += 32 + while(pixel_x < -(ICON_SIZE_X/2)) + pixel_x += ICON_SIZE_X new_x-- - while(pixel_y > 16) - pixel_y -= 32 + while(pixel_y > (ICON_SIZE_Y/2)) + pixel_y -= ICON_SIZE_Y new_y++ - while(pixel_y < -16) - pixel_y += 32 + while(pixel_y < -(ICON_SIZE_Y/2)) + pixel_y += ICON_SIZE_Y new_y-- new_x = clamp(new_x, 1, world.maxx) new_y = clamp(new_y, 1, world.maxy) diff --git a/code/__DEFINES/melee.dm b/code/__DEFINES/melee.dm index 8b3a422fc0b25..1880c75c97b8d 100644 --- a/code/__DEFINES/melee.dm +++ b/code/__DEFINES/melee.dm @@ -1,8 +1,9 @@ //Martial arts defines #define MARTIALART_BOXING "boxing" -#define MARTIALART_EVIL_BOXING "evil boxing" #define MARTIALART_CQC "CQC" +#define MARTIALART_EVIL_BOXING "evil boxing" +#define MARTIALART_HUNTER_BOXING "hunter boxing" #define MARTIALART_KRAVMAGA "krav maga" #define MARTIALART_MUSHPUNCH "mushroom punch" #define MARTIALART_PLASMAFIST "plasma fist" diff --git a/code/__DEFINES/memory_defines.dm b/code/__DEFINES/memory_defines.dm index 2b07ab6270d57..f6c537f9e8187 100644 --- a/code/__DEFINES/memory_defines.dm +++ b/code/__DEFINES/memory_defines.dm @@ -1,7 +1,7 @@ ///name of the file that has all the memory strings #define MEMORY_FILE "memories.json" ///name of the file that has all the saved engravings -#define ENGRAVING_SAVE_FILE "data/engravings/[SSmapping.config.map_name]_engravings.json" +#define ENGRAVING_SAVE_FILE "data/engravings/[SSmapping.current_map.map_name]_engravings.json" ///name of the file that has all the prisoner tattoos #define PRISONER_TATTOO_SAVE_FILE "data/engravings/prisoner_tattoos.json" ///Current version of the engraving persistence json diff --git a/code/__DEFINES/mining.dm b/code/__DEFINES/mining.dm index 4b233a5d4f171..d0fa97062b1a2 100644 --- a/code/__DEFINES/mining.dm +++ b/code/__DEFINES/mining.dm @@ -5,10 +5,11 @@ #define BOULDER_SIZE_MEDIUM 10 /// Durability of a small size boulder from a small size vent. #define BOULDER_SIZE_SMALL 5 -/// How many boulders can a single ore vent have on it's tile before it stops producing more? +/// How many boulders can a single ore vent have on its tile before it stops producing more? #define MAX_BOULDERS_PER_VENT 10 /// Time multiplier #define INATE_BOULDER_SPEED_MULTIPLIER 3 + // Vent type /// Large vents, giving large boulders. #define LARGE_VENT_TYPE "large" @@ -17,6 +18,14 @@ /// Small vents, giving small boulders. #define SMALL_VENT_TYPE "small" +// Timers for the ore vents to perform wave defense. +/// Duration for wave defense for a small vent. +#define WAVE_DURATION_SMALL 60 SECONDS +/// Duration for wave defense for a medium vent. +#define WAVE_DURATION_MEDIUM 90 SECONDS +/// Duration for wave defense for a large vent. +#define WAVE_DURATION_LARGE 150 SECONDS + /// Proximity to a vent that a wall ore needs to be for 5 ore to be mined. #define VENT_PROX_VERY_HIGH 3 /// Proximity to a vent that a wall ore needs to be for 4 ore to be mined. diff --git a/code/__DEFINES/mobfactions.dm b/code/__DEFINES/mobfactions.dm index aea143dad253c..cb934a28f5c5a 100644 --- a/code/__DEFINES/mobfactions.dm +++ b/code/__DEFINES/mobfactions.dm @@ -33,13 +33,13 @@ #define FACTION_HELL "hell" /// Hivebots #define FACTION_HIVEBOT "hivebot" -/// Illusionary creaturs +/// Illusionary creatures #define FACTION_ILLUSION "illusion" /// Creatures of the never finished jungle planet, and gorillas #define FACTION_JUNGLE "jungle" /// Small lizards #define FACTION_LIZARD "lizard" -/// Maint creatures have mutual respect for eachother. +/// Maint creatures have mutual respect for each other. #define FACTION_MAINT_CREATURES "maint_creatures" /// Animated objects and statues #define FACTION_MIMIC "mimic" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 4265428e56f9b..df9b7cc22960e 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -10,6 +10,8 @@ #define MOVE_INTENT_WALK "walk" #define MOVE_INTENT_RUN "run" +/// Amount of oxyloss that KOs a human +#define OXYLOSS_PASSOUT_THRESHOLD 50 //Blood levels #define BLOOD_VOLUME_MAX_LETHAL 2150 #define BLOOD_VOLUME_EXCESS 2100 @@ -42,6 +44,10 @@ #define VENTCRAWLER_NUDE 1 #define VENTCRAWLER_ALWAYS 2 +// Flags for the mob_flags var on /mob +/// May override the names used in screentips of OTHER OBJECTS hovered over. +#define MOB_HAS_SCREENTIPS_NAME_OVERRIDE (1 << 0) + //Mob bio-types flags ///The mob is organic, can heal from medical sutures. #define MOB_ORGANIC (1 << 0) @@ -130,6 +136,7 @@ #define SPECIES_ZOMBIE "zombie" #define SPECIES_ZOMBIE_INFECTIOUS "memezombie" #define SPECIES_ZOMBIE_KROKODIL "krokodil_zombie" +#define SPECIES_VOIDWALKER "voidwalker" // Like species IDs, but not specifically attached a species. #define BODYPART_ID_ALIEN "alien" @@ -149,7 +156,10 @@ ///The species is forced to have digitigrade legs in generation. #define DIGITIGRADE_FORCED 2 -///Digitigrade's prefs, used in features for legs if you're meant to be a Digitigrade. +// Preferences for leg types +/// Legs that are normal +#define NORMAL_LEGS "Normal Legs" +/// Digitgrade legs that are like bended and uhhh no shoes #define DIGITIGRADE_LEGS "Digitigrade Legs" // Health/damage defines @@ -302,7 +312,7 @@ #define BRUTE_DAMAGE_REQUIRED_TO_STOP_CRYSTALIZATION 30 -#define CRYSTALIZE_STAGE_ENGULFING 100 //Cant use second defines +#define CRYSTALIZE_STAGE_ENGULFING 100 //Can't use second defines #define CRYSTALIZE_STAGE_ENCROACHING 300 //In switches #define CRYSTALIZE_STAGE_SMALL 600 //Because they're not static @@ -366,6 +376,8 @@ #define SLIP_WHEN_CRAWLING (1<<4) /// the mob won't slip if the turf has the TRAIT_TURF_IGNORE_SLIPPERY trait. #define SLIPPERY_TURF (1<<5) +/// For mobs who are slippery, this requires the mob holding it to be lying down. +#define SLIPPERY_WHEN_LYING_DOWN (1<<6) #define MAX_CHICKENS 50 @@ -466,6 +478,9 @@ #define ROBOTIC_BRUTE_EXAMINE_TEXT "denting" #define ROBOTIC_BURN_EXAMINE_TEXT "charring" +#define GLASSY_BRUTE_EXAMINE_TEXT "cracking" +#define GLASSY_BURN_EXAMINE_TEXT "deformation" + #define GRAB_PIXEL_SHIFT_PASSIVE 6 #define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 #define GRAB_PIXEL_SHIFT_NECK 16 @@ -502,7 +517,7 @@ #define WABBAJACK_HUMAN "humanoid" #define WABBAJACK_ANIMAL "animal" -// Reasons a defibrilation might fail +// Reasons a defibrillation might fail #define DEFIB_POSSIBLE (1<<0) #define DEFIB_FAIL_SUICIDE (1<<1) #define DEFIB_FAIL_HUSK (1<<2) @@ -707,7 +722,7 @@ GLOBAL_LIST_INIT(human_heights_to_offsets, list( /// Glasses layer #define GLASSES_LAYER 17 /// Belt layer -#define BELT_LAYER 16 //Possible make this an overlay of somethign required to wear a belt? +#define BELT_LAYER 16 //Possible make this an overlay of something required to wear a belt? /// Suit storage layer (tucking a gun or baton underneath your armor) #define SUIT_STORE_LAYER 15 /// Neck layer (for wearing capes and bedsheets) @@ -838,7 +853,7 @@ GLOBAL_LIST_INIT(layers_to_offset, list( #define NEED_VENTCRAWL (1<<8) /// Skips adjacency checks #define BYPASS_ADJACENCY (1<<9) -/// Skips reccursive loc checks +/// Skips recursive loc checks #define NOT_INSIDE_TARGET (1<<10) /// Checks for base adjacency, but silences the error #define SILENT_ADJACENCY (1<<11) @@ -868,10 +883,12 @@ GLOBAL_LIST_INIT(layers_to_offset, list( /// The vomit you've all come to know and love, but with a little extra "spice" (blood) #define VOMIT_CATEGORY_BLOOD (VOMIT_CATEGORY_DEFAULT | MOB_VOMIT_BLOOD) /// Another vomit variant that causes you to get knocked down instead of just only getting a stun. Standard otherwise. -#define VOMIT_CATEGORY_KNOCKDOWN (VOMIT_CATEGORY_DEFAULT | MOB_VOMIT_KNOCKDOWN) +#define VOMIT_CATEGORY_KNOCKDOWN (MOB_VOMIT_MESSAGE | MOB_VOMIT_HARM | MOB_VOMIT_KNOCKDOWN) /// Possible value of [/atom/movable/buckle_lying]. If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled. #define NO_BUCKLE_LYING -1 +/// Possible value of [/atom/movable/buckle_dir]. If set to a different (positive-or-zero) value than this, the buckling thing will force a dir on the buckled. +#define BUCKLE_MATCH_DIR -1 // Flags for fully_heal(). @@ -968,6 +985,8 @@ GLOBAL_LIST_INIT(layers_to_offset, list( /// The duration of the flip emote animation #define FLIP_EMOTE_DURATION 0.7 SECONDS +///The duration of a taunt emote, so how long they can deflect projectiles +#define TAUNT_EMOTE_DURATION 0.9 SECONDS // Sprites for photocopying butts #define BUTT_SPRITE_HUMAN_MALE "human_male" @@ -982,3 +1001,7 @@ GLOBAL_LIST_INIT(layers_to_offset, list( #define BUTT_SPRITE_PLASMA "plasma" #define BUTT_SPRITE_FUZZY "fuzzy" #define BUTT_SPRITE_SLIME "slime" + +/// Distance which you can see someone's ID card +/// Short enough that you can inspect over tables (bartender checking age) +#define ID_EXAMINE_DISTANCE 3 diff --git a/code/__DEFINES/mod.dm b/code/__DEFINES/mod.dm index 8257e1969bedb..1a4bed1ca9922 100644 --- a/code/__DEFINES/mod.dm +++ b/code/__DEFINES/mod.dm @@ -5,7 +5,7 @@ #define DEFAULT_CHARGE_DRAIN (0.005 * STANDARD_CELL_CHARGE) // A standard cell lasts 200 seconds with this on active power usage, while a high power one lasts 2,000 seconds. /// Default time for a part of the suit to seal. -#define MOD_ACTIVATION_STEP_TIME (2 SECONDS) +#define MOD_ACTIVATION_STEP_TIME (1 SECONDS) /// Passive module, just acts when put in naturally. #define MODULE_PASSIVE 0 diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm index be3546ea102d1..9706819610f5e 100644 --- a/code/__DEFINES/movement.dm +++ b/code/__DEFINES/movement.dm @@ -2,21 +2,21 @@ #define MIN_GLIDE_SIZE 1 /// The maximum for glide_size to be clamped to. /// This shouldn't be higher than the icon size, and generally you shouldn't be changing this, but it's here just in case. -#define MAX_GLIDE_SIZE 32 +#define MAX_GLIDE_SIZE ICON_SIZE_ALL /// Compensating for time dilation GLOBAL_VAR_INIT(glide_size_multiplier, 1.0) ///Broken down, here's what this does: -/// divides the world icon_size (32) by delay divided by ticklag to get the number of pixels something should be moving each tick. +/// divides the world icon_size by delay divided by ticklag to get the number of pixels something should be moving each tick. /// The division result is given a min value of 1 to prevent obscenely slow glide sizes from being set /// Then that's multiplied by the global glide size multiplier. 1.25 by default feels pretty close to spot on. This is just to try to get byond to behave. /// The whole result is then clamped to within the range above. /// Not very readable but it works -#define DELAY_TO_GLIDE_SIZE(delay) (clamp(((world.icon_size / max((delay) / world.tick_lag, 1)) * GLOB.glide_size_multiplier), MIN_GLIDE_SIZE, MAX_GLIDE_SIZE)) +#define DELAY_TO_GLIDE_SIZE(delay) (clamp(((ICON_SIZE_ALL / max((delay) / world.tick_lag, 1)) * GLOB.glide_size_multiplier), MIN_GLIDE_SIZE, MAX_GLIDE_SIZE)) ///Similar to DELAY_TO_GLIDE_SIZE, except without the clamping, and it supports piping in an unrelated scalar -#define MOVEMENT_ADJUSTED_GLIDE_SIZE(delay, movement_disparity) (world.icon_size / ((delay) / world.tick_lag) * movement_disparity * GLOB.glide_size_multiplier) +#define MOVEMENT_ADJUSTED_GLIDE_SIZE(delay, movement_disparity) (ICON_SIZE_ALL / ((delay) / world.tick_lag) * movement_disparity * GLOB.glide_size_multiplier) //Movement loop priority. Only one loop can run at a time, this dictates that // Higher numbers beat lower numbers @@ -134,3 +134,19 @@ GLOBAL_VAR_INIT(glide_size_multiplier, 1.0) #define MOVELOOP_FAILURE 0 #define MOVELOOP_SUCCESS 1 #define MOVELOOP_NOT_READY 2 + +#define NEWTONS *1 + +#define DEFAULT_INERTIA_SPEED 5 +/// Maximum inertia that an object can hold. Used to prevent objects from getting to stupid speeds. +#define INERTIA_FORCE_CAP 25 NEWTONS +/// How much inertia is deducted when a mob has newtonian spacemove capabilities and is not moving in the same direction +#define INERTIA_FORCE_SPACEMOVE_REDUCTION 0.75 NEWTONS +/// How much inertia we must have to not be able to instantly stop after having something to grab +#define INERTIA_FORCE_SPACEMOVE_GRAB 1.5 NEWTONS +/// How much inertia is required for the impacted object to be thrown at the wall +#define INERTIA_FORCE_THROW_FLOOR 10 NEWTONS +/// How much inertia is required past the floor to add 1 strength +#define INERTIA_FORCE_PER_THROW_FORCE 5 NEWTONS +// Results in maximum speed of 1 tile per tick, capped at about 2/3rds of maximum force +#define INERTIA_SPEED_COEF 0.375 diff --git a/code/__DEFINES/paper.dm b/code/__DEFINES/paper.dm index 0d70a2f3ca40d..9cede4214bd93 100644 --- a/code/__DEFINES/paper.dm +++ b/code/__DEFINES/paper.dm @@ -18,3 +18,29 @@ #define BARCODE_SCANNER_INVENTORY "inventory" #define IS_WRITING_UTENSIL(thing) (thing?.get_writing_implement_details()?["interaction_mode"] == MODE_WRITING) + +/** + * key defines used when converting a paper to and fro' a data/json list. It's really important that they stay the same + * lest we break persistence. + */ +#define LIST_PAPER_COLOR "paper_color" +#define LIST_PAPER_NAME "paper_name" + +#define LIST_PAPER_RAW_TEXT_INPUT "raw_text_input" +#define LIST_PAPER_RAW_FIELD_INPUT "raw_field_input" +#define LIST_PAPER_RAW_STAMP_INPUT "raw_stamp_input" + +#define LIST_PAPER_RAW_TEXT "raw_text" +#define LIST_PAPER_FONT "font" +#define LIST_PAPER_FIELD_COLOR "color" +#define LIST_PAPER_BOLD "bold" +#define LIST_PAPER_ADVANCED_HTML "advanced_html" + +#define LIST_PAPER_FIELD_INDEX "field_index" +#define LIST_PAPER_FIELD_DATA "field_data" +#define LIST_PAPER_IS_SIGNATURE "is_signature" + +#define LIST_PAPER_CLASS "class" +#define LIST_PAPER_STAMP_X "x" +#define LIST_PAPER_STAMP_Y "y" +#define LIST_PAPER_ROTATION "rotation" diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 51a995c90e100..5fb9d9447bbc0 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -74,12 +74,13 @@ #define EXP_TYPE_ADMIN "Admin" //Flags in the players table in the db -#define DB_FLAG_EXEMPT 1 +#define DB_FLAG_EXEMPT (1<<0) #define DEFAULT_CYBORG_NAME "Default Cyborg Name" //Job preferences levels +#define JP_ANY 0 #define JP_LOW 1 #define JP_MEDIUM 2 #define JP_HIGH 3 diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm index ed4c66b799c59..28b7b6f3d1be5 100644 --- a/code/__DEFINES/projectiles.dm +++ b/code/__DEFINES/projectiles.dm @@ -14,8 +14,10 @@ #define CALIBER_A7MM "a7mm" /// The caliber used by the [security auto-rifle][/obj/item/gun/ballistic/automatic/wt550]. #define CALIBER_46X30MM "4.6x30mm" -/// The caliber used by the Nanotrasen Saber SMG, PP-95 SMG and Type U3 Uzi. Also used as the default caliber for pistols but only the stechkin APS machine pistol doesn't override it. +/// The caliber used by the Nanotrasen Saber SMG and Type U3 Uzi. Also used as the default caliber for pistols but only the stechkin APS machine pistol doesn't override it. #define CALIBER_9MM "9mm" +/// The caliber used by smart SMG ammunition +#define CALIBER_160SMART ".160 Smart" /// The caliber used as the default for ballistic guns. Only not overridden for the [surplus rifle][/obj/item/gun/ballistic/automatic/surplus]. #define CALIBER_10MM "10mm" /// The caliber used by most revolver variants. diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm index 686c42e07d075..44e4417a20996 100644 --- a/code/__DEFINES/radio.dm +++ b/code/__DEFINES/radio.dm @@ -37,6 +37,10 @@ #define RADIO_KEY_AI_PRIVATE "o" #define RADIO_TOKEN_AI_PRIVATE ":o" +#define RADIO_CHANNEL_ENTERTAINMENT "Entertainment" +#define RADIO_KEY_ENTERTAINMENT "p" +#define RADIO_TOKEN_ENTERTAINMENT ":p" + #define RADIO_CHANNEL_SYNDICATE "Syndicate" #define RADIO_KEY_SYNDICATE "t" @@ -73,6 +77,7 @@ #define FREQ_MEDICAL 1355 // Medical comms frequency, soft blue #define FREQ_ENGINEERING 1357 // Engineering comms frequency, orange #define FREQ_SECURITY 1359 // Security comms frequency, red +#define FREQ_ENTERTAINMENT 1415 // Used by entertainment monitors, cyan #define FREQ_HOLOGRID_SOLUTION 1433 #define FREQ_STATUS_DISPLAYS 1435 @@ -130,3 +135,10 @@ #define RADIO_FREQENCY_LOCKED 1 /// Radio frequency is locked and unchangeable, but can be unlocked by an emag #define RADIO_FREQENCY_EMAGGABLE_LOCK 2 + +///Bitflag for if a headset can use the syndicate radio channel +#define RADIO_SPECIAL_SYNDIE (1<<0) +///Bitflag for if a headset can use the centcom radio channel +#define RADIO_SPECIAL_CENTCOM (1<<1) +///Bitflag for if a headset can use the binary radio channel +#define RADIO_SPECIAL_BINARY (1<<2) diff --git a/code/__DEFINES/reactions.dm b/code/__DEFINES/reactions.dm index 98f8d4a18278d..a8c111c516476 100644 --- a/code/__DEFINES/reactions.dm +++ b/code/__DEFINES/reactions.dm @@ -89,7 +89,7 @@ #define FREON_MAXIMUM_BURN_TEMPERATURE 283 ///Minimum temperature allowed for the burn to go at max speed, we would have negative pressure otherwise #define FREON_LOWER_TEMPERATURE 60 -///Terminal temperature after wich we stop the reaction +///Terminal temperature after which we stop the reaction #define FREON_TERMINAL_TEMPERATURE 20 /// Multiplier for freonfire with O2 moles * FREON_OXYGEN_FULLBURN for the maximum fuel consumption #define FREON_OXYGEN_FULLBURN 10 diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 93ffdbf04c9d9..314d8f5ecf2ee 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -33,6 +33,8 @@ #define PATCH (1<<3) /// Used for direct injection of reagents. #define INJECT (1<<4) +/// Exclusive to just plumbing. if set we use the round robin technique else we use proportional +#define LINEAR (1<<5) /// When returned by on_mob_life(), on_mob_dead(), overdose_start() or overdose_processed(), will cause the mob to updatehealth() afterwards #define UPDATE_MOB_HEALTH 1 @@ -74,6 +76,10 @@ #define CHEMICAL_MAXIMUM_TEMPERATURE 99999 ///The default purity of all non reacted reagents #define REAGENT_STANDARD_PURITY 0.75 +/// Starting purity of consumable reagents +#define CONSUMABLE_STANDARD_PURITY 0.5 // 50% pure by default. Below - synthetic food. Above - natural food. +/// Starting purity of reagents made in biogenerator +#define BIOGEN_REAGENT_PURITY 0.3 /// the default temperature at which chemicals are added to reagent holders at #define DEFAULT_REAGENT_TEMPERATURE 300 @@ -121,7 +127,7 @@ #define REACTION_COMPETITIVE (1<<5) ///Used to force pH changes to be constant regardless of volume #define REACTION_PH_VOL_CONSTANT (1<<6) -///If a reaction will generate it's impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion +///If a reaction will generate its impure/inverse reagents in the middle of a reaction, as apposed to being determined on ingestion/on reaction completion #define REACTION_REAL_TIME_SPLIT (1<<7) ///Used for overheat_temp - This sets the overheat so high it effectively has no overheat temperature. @@ -155,7 +161,7 @@ #define REACTION_TAG_HEALING (1<<4) /// This reagent primarily damages #define REACTION_TAG_DAMAGING (1<<5) -/// This reagent explodes as a part of it's intended effect (i.e. not overheated/impure) +/// This reagent explodes as a part of its intended effect (i.e. not overheated/impure) #define REACTION_TAG_EXPLOSIVE (1<<6) /// This reagent does things that are unique and special #define REACTION_TAG_OTHER (1<<7) diff --git a/code/__DEFINES/research/anomalies.dm b/code/__DEFINES/research/anomalies.dm index a1e30cd142f00..e04aead3464bc 100644 --- a/code/__DEFINES/research/anomalies.dm +++ b/code/__DEFINES/research/anomalies.dm @@ -1,8 +1,8 @@ // Max amounts of cores you can make #define MAX_CORES_BLUESPACE 3 -#define MAX_CORES_GRAVITATIONAL 8 +#define MAX_CORES_GRAVITATIONAL 6 #define MAX_CORES_FLUX 8 -#define MAX_CORES_VORTEX 1 +#define MAX_CORES_VORTEX 3 #define MAX_CORES_PYRO 8 #define MAX_CORES_HALLUCINATION 8 #define MAX_CORES_BIOSCRAMBLER 8 diff --git a/code/__DEFINES/research/techweb_nodes.dm b/code/__DEFINES/research/techweb_nodes.dm index 6199918bc0183..f27225f1fedee 100644 --- a/code/__DEFINES/research/techweb_nodes.dm +++ b/code/__DEFINES/research/techweb_nodes.dm @@ -14,7 +14,7 @@ #define TECHWEB_NODE_BEAM_WEAPONS "beam_weapons" #define TECHWEB_NODE_BIO_SCAN "bio_scan" #define TECHWEB_NODE_BITRUNNING "bitrunning" -#define TECHWEB_NODE_BLUESPACE "bluespace" +#define TECHWEB_NODE_MECH_EQUIP_BLUESPACE "mech_equip_bluespace" #define TECHWEB_NODE_BLUESPACE_THEORY "bluespace_theory" #define TECHWEB_NODE_BLUESPACE_TRAVEL "bluespace_travel" #define TECHWEB_NODE_BORG_ENGI "borg_engi" @@ -97,7 +97,6 @@ #define TECHWEB_NODE_PASSIVE_IMPLANTS "passive_implants" #define TECHWEB_NODE_PLASMA_CONTROL "plasma_control" #define TECHWEB_NODE_PLASMA_MINING "plasma_mining" -#define TECHWEB_NODE_PLUMBING "plumbing" #define TECHWEB_NODE_POSITRONIC_SPHERE "positronic_sphere" #define TECHWEB_NODE_PROGRAMMED_ROBOT "programmed_robot" #define TECHWEB_NODE_PROGRAMMED_SERVER "programmed_server" diff --git a/code/__DEFINES/robots.dm b/code/__DEFINES/robots.dm index 393e0f7b5f7d3..3cf7548cfc53a 100644 --- a/code/__DEFINES/robots.dm +++ b/code/__DEFINES/robots.dm @@ -29,9 +29,6 @@ // Cyborg defines -/// If an item does this or more throwing damage it will slow a borg down on hit -#define CYBORG_THROW_SLOWDOWN_THRESHOLD 10 - /// Special value to reset cyborg's lamp_cooldown #define BORG_LAMP_CD_RESET -1 /// How many watts per lamp power is consumed while the lamp is on. @@ -176,17 +173,17 @@ DEFINE_BITFIELD(bot_cover_flags, list( /// Medibots - Healing people #define BOT_HEALING "Healing" /// MULEbot - Moving to deliver -#define BOT_DELIVER "Navigating to Delivery Location" +#define BOT_DELIVER "Delivering" /// MULEbot - Returning to home -#define BOT_GO_HOME "Proceeding to work site" +#define BOT_GO_HOME "Returning" /// MULEbot - Blocked -#define BOT_BLOCKED "No Route" +#define BOT_BLOCKED "Blocked" /// MULEbot - Computing navigation -#define BOT_NAV "Unable to reach destination" +#define BOT_NAV "Unreachable" /// MULEbot - Waiting for nav computation -#define BOT_WAIT_FOR_NAV "Calculating navigation path" +#define BOT_WAIT_FOR_NAV "Calculating" /// MULEbot - No destination beacon found (or no route) -#define BOT_NO_ROUTE "Navigating to Home" +#define BOT_NO_ROUTE "Returning Home" //Secbot and ED209 judgement criteria bitflag values #define JUDGE_EMAGGED (1<<0) @@ -257,7 +254,18 @@ DEFINE_BITFIELD(firebot_mode_flags, list( "FIREBOT_EXTINGUISH_FLAMES" = FIREBOT_EXTINGUISH_FLAMES, )) - +///auto return to home after delivery +#define MULEBOT_RETURN_MODE (1<<0) +///autopickups at beacons +#define MULEBOT_AUTO_PICKUP_MODE (1<<1) +///announce every delivery we make +#define MULEBOT_REPORT_DELIVERY_MODE (1<<2) + +DEFINE_BITFIELD(mulebot_delivery_flags, list( + "MULEBOT_RETURN_MODE" = MULEBOT_RETURN_MODE, + "MULEBOT_AUTO_PICKUP_MODE" = MULEBOT_AUTO_PICKUP_MODE, + "MULEBOT_REPORT_DELIVERY_MODE" = MULEBOT_REPORT_DELIVERY_MODE, +)) //cleanBOT defines on what to clean #define CLEANBOT_CLEAN_BLOOD (1<<0) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 88e64164acd4b..4e42cef8f3c4f 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -37,6 +37,7 @@ #define ROLE_SPACE_DRAGON "Space Dragon" #define ROLE_SPIDER "Spider" #define ROLE_WIZARD_MIDROUND "Wizard (Midround)" +#define ROLE_VOIDWALKER "Voidwalker" // Latejoin roles #define ROLE_HERETIC_SMUGGLER "Heretic Smuggler" @@ -64,6 +65,7 @@ #define ROLE_REV "Revolutionary" #define ROLE_REVENANT "Revenant" #define ROLE_SENTIENCE "Sentience Potion Spawn" +#define ROLE_SOULTRAPPED_HERETIC "Soultrapped Heretic" #define ROLE_SYNDICATE "Syndicate" #define ROLE_CLOWN_OPERATIVE "Clown Operative" @@ -153,6 +155,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_SPACE_DRAGON = 0, ROLE_SPIDER = 0, ROLE_WIZARD_MIDROUND = 14, + ROLE_VOIDWALKER = 0, // Latejoin ROLE_HERETIC_SMUGGLER = 0, diff --git a/code/__DEFINES/roundend.dm b/code/__DEFINES/roundend.dm index a210d034015dc..d25204336444f 100644 --- a/code/__DEFINES/roundend.dm +++ b/code/__DEFINES/roundend.dm @@ -31,7 +31,7 @@ #define REVS_LOSE 18 /// The wizard was killed by the crew #define WIZARD_KILLED 19 -/// The station was destroyed by it's own self-destruct nuclear device +/// The station was destroyed by its own self-destruct nuclear device #define STATION_NUKED 20 /// The station was destroyed by the supermatter cascade #define SUPERMATTER_CASCADE 21 diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index 7c601b62ff0fd..d7a04afeede49 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -15,25 +15,36 @@ // On Windows, looks in the standard places for `rust_g.dll`. // On Linux, looks in `.`, `$LD_LIBRARY_PATH`, and `~/.byond/bin` for either of // `librust_g.so` (preferred) or `rust_g` (old). +// On OpenDream, `rust_g64.dll` / `librust_g64.so` are used instead. /* This comment bypasses grep checks */ /var/__rust_g +#ifndef OPENDREAM +#define RUST_G_BASE "rust_g" +#else +#define RUST_G_BASE "rust_g64" +#endif + /proc/__detect_rust_g() if (world.system_type == UNIX) - if (fexists("./librust_g.so")) + if (fexists("./lib[RUST_G_BASE].so")) // No need for LD_LIBRARY_PATH badness. - return __rust_g = "./librust_g.so" - else if (fexists("./rust_g")) + return __rust_g = "./lib[RUST_G_BASE].so" +#ifndef OPENDREAM + else if (fexists("./[RUST_G_BASE]")) // Old dumb filename. - return __rust_g = "./rust_g" - else if (fexists("[world.GetConfig("env", "HOME")]/.byond/bin/rust_g")) + return __rust_g = "./[RUST_G_BASE]" + else if (fexists("[world.GetConfig("env", "HOME")]/.byond/bin/[RUST_G_BASE]")) // Old dumb filename in `~/.byond/bin`. - return __rust_g = "rust_g" + return __rust_g = RUST_G_BASE +#endif else // It's not in the current directory, so try others - return __rust_g = "librust_g.so" + return __rust_g = "lib[RUST_G_BASE].so" else - return __rust_g = "rust_g" + return __rust_g = RUST_G_BASE + +#undef RUST_G_BASE #define RUST_G (__rust_g || __detect_rust_g()) #endif diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 5db7227521a3f..80c316f3585a9 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -76,7 +76,7 @@ #define SPAN_SINGING "singing" #define SPAN_TAPE_RECORDER "tape_recorder" #define SPAN_SMALL_VOICE "small" - +#define SPAN_SOAPBOX "soapbox" //bitflag #defines for return value of the radio() proc. /// Makes the message use italics #define ITALICS (1<<0) @@ -122,3 +122,7 @@ /// Meaning that if the message is visual, and sourced from a blind mob, they will not see it. /// This flag skips that behavior, and will always show the self message to the mob. #define ALWAYS_SHOW_SELF_MESSAGE (1<<1) + +///Defines for priorities for the bubble_icon_override comp +#define BUBBLE_ICON_PRIORITY_ACCESSORY 2 +#define BUBBLE_ICON_PRIORITY_ORGAN 1 diff --git a/code/__DEFINES/shuttles.dm b/code/__DEFINES/shuttles.dm index 6f15ea6521638..759121e3b8dd8 100644 --- a/code/__DEFINES/shuttles.dm +++ b/code/__DEFINES/shuttles.dm @@ -36,7 +36,7 @@ /// These shuttles leave when the main emergency shuttle does but don't dock anywhere (to save space), so this counts as "escaped". #define ENDGAME_TRANSIT 3 -//positive value = cannot puchase +//positive value = cannot purchase #define SHUTTLEPURCHASE_PURCHASABLE 0 //station can buy a shuttle #define SHUTTLEPURCHASE_PURCHASED 1 //station has already bought a shuttle, so cannot #define SHUTTLEPURCHASE_FORCED 2 //station was given a new shuttle through events or other shenanigans diff --git a/code/__DEFINES/sight.dm b/code/__DEFINES/sight.dm index 645e009413593..5a3e0d17ef348 100644 --- a/code/__DEFINES/sight.dm +++ b/code/__DEFINES/sight.dm @@ -71,7 +71,7 @@ //------------------------ // INVISIBILITY SOURCE IDS // Though don't feel the need to add one here if you have a simple effect that -// gets added and/or removed in only one place near eachother in the code. +// gets added and/or removed in only one place near each other in the code. #define INVISIBILITY_SOURCE_INVISIMIN "invisimin" #define INVISIBILITY_SOURCE_STEALTHMODE "stealthmode" diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 345ff07ea18a2..5894daebd38e6 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -32,6 +32,7 @@ #define INTERACTION_SOUND_RANGE_MODIFIER -3 #define EQUIP_SOUND_VOLUME 30 +#define LIQUID_SLOSHING_SOUND_VOLUME 10 #define PICKUP_SOUND_VOLUME 15 #define DROP_SOUND_VOLUME 20 #define YEET_SOUND_VOLUME 90 @@ -176,3 +177,38 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_PORTAL_CLOSE "portal_closed" #define SFX_PORTAL_CREATED "portal_created" #define SFX_SCREECH "screech" +#define SFX_TOOL_SWITCH "tool_switch" +#define SFX_KEYBOARD_CLICKS "keyboard_clicks" +#define SFX_STONE_DROP "stone_drop" +#define SFX_STONE_PICKUP "stone_pickup" +#define SFX_MUFFLED_SPEECH "muffspeech" +#define SFX_DEFAULT_FISH_SLAP "default_fish_slap" +#define SFX_ALT_FISH_SLAP "alt_fish_slap" +#define SFX_FISH_PICKUP "fish_pickup" +#define SFX_CAT_MEOW "cat_meow" +#define SFX_CAT_PURR "cat_purr" +#define SFX_LIQUID_POUR "liquid_pour" +#define SFX_SNORE_FEMALE "snore_female" +#define SFX_SNORE_MALE "snore_male" +#define SFX_PLASTIC_BOTTLE_LIQUID_SLOSH "plastic_bottle_liquid_slosh" +#define SFX_DEFAULT_LIQUID_SLOSH "default_liquid_slosh" +#define SFX_PLATE_ARMOR_RUSTLE "plate_armor_rustle" +#define SFX_PIG_OINK "pig_oink" +#define SFX_VISOR_UP "visor_up" +#define SFX_VISOR_DOWN "visor_down" +#define SFX_SIZZLE "sizzle" +#define SFX_GROWL "growl" +#define SFX_POLAROID "polaroid" +#define SFX_HALLUCINATION_TURN_AROUND "hallucination_turn_around" +#define SFX_HALLUCINATION_I_SEE_YOU "hallucination_i_see_you" +#define SFX_HALLUCINATION_OVER_HERE "hallucination_over_here" +#define SFX_HALLUCINATION_I_M_HERE "hallucination_i_m_here" +#define SFX_VOID_DEFLECT "void_deflect" +#define SFX_LOW_HISS "low_hiss" +#define SFX_INDUSTRIAL_SCAN "industrial_scan" + +// Default is 45kbps +#define MIN_EMOTE_PITCH 42000 +#define MAX_EMOTE_PITCH 50000 +// ~0.6 - 1.4 at 0.12 +#define EMOTE_TTS_PITCH_MULTIPLIER 0.12 diff --git a/code/__DEFINES/span.dm b/code/__DEFINES/span.dm index 0447e87f532fe..9b3c2612afa34 100644 --- a/code/__DEFINES/span.dm +++ b/code/__DEFINES/span.dm @@ -14,8 +14,8 @@ #define span_alien(str) ("" + str + "") #define span_announce(str) ("" + str + "") #define span_announcement_header(str) ("" + str + "") -#define span_average(str) ("" + str + "") +#define span_bad(str) ("" + str + "") #define span_big(str) ("" + str + "") #define span_bigicon(str) ("" + str + "") #define span_binarysay(str) ("" + str + "") @@ -48,8 +48,12 @@ #define span_drone(str) ("" + str + "") #define span_engradio(str) ("" + str + "") #define span_extremelybig(str) ("" + str + "") +#define span_emote(str) ("" + str + "") +#define span_enteradio(str) ("" + str + "") +#define span_game(str) ("" + str + "") #define span_game_say(str) ("" + str + "") #define span_ghostalert(str) ("" + str + "") +#define span_good(str) ("" + str + "") #define span_green(str) ("" + str + "") #define span_greenannounce(str) ("" + str + "") #define span_greenteamradio(str) ("" + str + "") @@ -69,6 +73,7 @@ #define span_info(str) ("" + str + "") #define span_infoplain(str) ("" + str + "") #define span_interface(str) ("" + str + "") +#define span_italics(str) ("" + str + "") #define span_linkify(str) ("" + str + "") #define span_looc(str) ("" + str + "") #define span_major_announcement_text(str) ("" + str + "") @@ -116,18 +121,22 @@ #define span_secradio(str) ("" + str + "") #define span_servradio(str) ("" + str + "") #define span_singing(str) ("" + str + "") +#define span_slightly_larger(str) ("" + str + "") #define span_slime(str) ("" + str + "") #define span_small(str) ("" + str + "") +#define span_smalldanger(str) ("" + str + "") #define span_smallnotice(str) ("" + str + "") #define span_smallnoticeital(str) ("" + str + "") +#define span_soapbox(str) ("" + str + "") +#define span_spiderbreacher(str) ("" + str + "") #define span_spiderbroodmother(str) ("" + str + "") #define span_spiderscout(str) ("" + str + "") -#define span_spiderbreacher(str) ("" + str + "") #define span_subheader_announcement_text(str) ("" + str + "") #define span_suicide(str) ("" + str + "") #define span_suppradio(str) ("" + str + "") #define span_syndradio(str) ("" + str + "") #define span_tape_recorder(str) ("" + str + "") +#define span_tinydanger(str) ("" + str + "") #define span_tinynotice(str) ("" + str + "") #define span_tinynoticeital(str) ("" + str + "") #define span_unconscious(str) ("" + str + "") diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 8ada83a2109cb..121cf5a072d17 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -24,14 +24,20 @@ #define CURSE_GRASPING (1<<3) //Incapacitated status effect flags -/// If the incapacitated status effect will ignore a mob in restraints (handcuffs) -#define IGNORE_RESTRAINTS (1<<0) -/// If the incapacitated status effect will ignore a mob in stasis (stasis beds) -#define IGNORE_STASIS (1<<1) -/// If the incapacitated status effect will ignore a mob being agressively grabbed -#define IGNORE_GRAB (1<<2) - -/// Maxamounts of fire stacks a mob can get +/// If the mob is normal incapacitated. Should never need this, just avoids issues if we ever overexpand this +#define TRADITIONAL_INCAPACITATED (1<<0) +/// If the incapacitated status effect is being caused by restraints (handcuffs) +#define INCAPABLE_RESTRAINTS (1<<1) +/// If the incapacitated status effect is being caused by stasis (stasis beds) +#define INCAPABLE_STASIS (1<<2) +/// If the incapacitated status effect is being caused by being agressively grabbed +#define INCAPABLE_GRAB (1<<3) + +/// Checks to see if a mob would be incapacitated even while ignoring some types +/// Does this by inverting the passed in flags and seeing if we're still incapacitated +#define INCAPACITATED_IGNORING(mob, flags) (mob.incapacitated & ~(flags)) + +/// Max amounts of fire stacks a mob can get #define MAX_FIRE_STACKS 20 /// If a mob has a higher threshold than this, the icon shown will be increased to the big fire icon. #define MOB_BIG_FIRE_STACK_THRESHOLD 3 diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 8d460c3aecb6f..ea707e33a1f4a 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -39,7 +39,7 @@ * Timing should be based on how timing progresses on clients, not the server. * * Tracking this is more expensive, - * should only be used in conjuction with things that have to progress client side, such as + * should only be used in conjunction with things that have to progress client side, such as * animate() or sound() */ #define TIMER_CLIENT_TIME (1<<2) @@ -81,15 +81,15 @@ ///Nothing happens #define INITIALIZE_HINT_NORMAL 0 /** - * call LateInitialize at the end of all atom Initalization + * call LateInitialize at the end of all atom Initialization * * The item will be added to the late_loaders list, this is iterated over after - * initalization of subsystems is complete and calls LateInitalize on the atom + * initialization of subsystems is complete and calls LateInitalize on the atom * see [this file for the LateIntialize proc](atom.html#proc/LateInitialize) */ #define INITIALIZE_HINT_LATELOAD 1 -///Call qdel on the atom after intialization +///Call qdel on the atom after initialization #define INITIALIZE_HINT_QDEL 2 ///type and all subtypes should always immediately call Initialize in New() @@ -106,23 +106,23 @@ //! ### SS initialization hints /** - * Negative values incidate a failure or warning of some kind, positive are good. - * 0 and 1 are unused so that TRUE and FALSE are guarenteed to be invalid values. + * Negative values indicate a failure or warning of some kind, positive are good. + * 0 and 1 are unused so that TRUE and FALSE are guaranteed to be invalid values. */ /// Subsystem failed to initialize entirely. Print a warning, log, and disable firing. #define SS_INIT_FAILURE -2 -/// The default return value which must be overriden. Will succeed with a warning. +/// The default return value which must be overridden. Will succeed with a warning. #define SS_INIT_NONE -1 -/// Subsystem initialized sucessfully. +/// Subsystem initialized successfully. #define SS_INIT_SUCCESS 2 /// If your system doesn't need to be initialized (by being disabled or something) #define SS_INIT_NO_NEED 3 -/// Succesfully initialized, BUT do not announce it to players (generally to hide game mechanics it would otherwise spoil) +/// Successfully initialized, BUT do not announce it to players (generally to hide game mechanics it would otherwise spoil) #define SS_INIT_NO_MESSAGE 4 //! ### SS initialization load orders @@ -137,7 +137,7 @@ #define INIT_ORDER_BLACKBOX 94 #define INIT_ORDER_SERVER_MAINT 93 #define INIT_ORDER_INPUT 85 -#define INIT_ORDER_ADMIN_VERBS 84 // needs to be pretty high, admins cant do much without it +#define INIT_ORDER_ADMIN_VERBS 84 // needs to be pretty high, admins can't do much without it #define INIT_ORDER_SOUNDS 83 #define INIT_ORDER_INSTRUMENTS 82 #define INIT_ORDER_GREYSCALE 81 @@ -156,6 +156,7 @@ #define INIT_ORDER_TICKER 55 #define INIT_ORDER_TCG 55 #define INIT_ORDER_MAPPING 50 +#define INIT_ORDER_AI_IDLE_CONTROLLERS 50 #define INIT_ORDER_EARLY_ASSETS 48 #define INIT_ORDER_RESEARCH 47 #define INIT_ORDER_TIMETRACK 46 @@ -192,7 +193,8 @@ // Subsystem fire priority, from lowest to highest priority // If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child) - +#define FIRE_PRIORITY_UNPLANNED_NPC 3 +#define FIRE_PRIORITY_IDLE_NPC 5 #define FIRE_PRIORITY_PING 10 #define FIRE_PRIORITY_SERVER_MAINT 10 #define FIRE_PRIORITY_RESEARCH 10 @@ -298,9 +300,14 @@ #define SSEXPLOSIONS_THROWS 3 // Machines subsystem subtasks. -#define SSMACHINES_APCS_EARLY 1 -#define SSMACHINES_MACHINES 2 -#define SSMACHINES_APCS_LATE 3 +#define SSMACHINES_MACHINES_EARLY 1 +#define SSMACHINES_APCS_EARLY 2 +#define SSMACHINES_APCS_ENVIRONMENT 3 +#define SSMACHINES_APCS_LIGHTS 4 +#define SSMACHINES_APCS_EQUIPMENT 5 +#define SSMACHINES_APCS_LATE 6 +#define SSMACHINES_MACHINES 7 +#define SSMACHINES_MACHINES_LATE 8 // Wardrobe subsystem tasks #define SSWARDROBE_STOCK 1 diff --git a/code/__DEFINES/supermatter.dm b/code/__DEFINES/supermatter.dm index 5dee00db3103a..61be539749e1c 100644 --- a/code/__DEFINES/supermatter.dm +++ b/code/__DEFINES/supermatter.dm @@ -69,6 +69,15 @@ #define SLIGHTLY_CHARGED_ZAP_ICON_STATE "sm_arc_supercharged" #define OVER_9000_ZAP_ICON_STATE "sm_arc_dbz_referance" //Witty I know +// Zap energy accumulation keys. +/// Normal zap energy accumulation key from normal operations. +#define ZAP_ENERGY_ACCUMULATION_NORMAL "normal" +/// High energy zap energy accumulation key from high energy extra effects. +#define ZAP_ENERGY_ACCUMULATION_HIGH_ENERGY "high" + +/// Zap energy discharge portion per tick. +#define ZAP_ENERGY_DISCHARGE_PORTION 0.1 + #define SUPERMATTER_DEFAULT_BULLET_ENERGY 2 #define SUPERMATTER_CASCADE_PERCENT 80 diff --git a/code/__DEFINES/surgery.dm b/code/__DEFINES/surgery.dm index feddc24c6f858..b930c3711de34 100644 --- a/code/__DEFINES/surgery.dm +++ b/code/__DEFINES/surgery.dm @@ -28,6 +28,13 @@ #define ORGAN_VIRGIN (1<<10) /// ALWAYS show this when scanned by advanced scanners, even if it is totally healthy #define ORGAN_PROMINENT (1<<11) +/// An organ that is ostensibly dangerous when inside a body +#define ORGAN_HAZARDOUS (1<<12) + +/// Scarring on the right eye +#define RIGHT_EYE_SCAR (1<<0) +/// Scarring on the left eye +#define LEFT_EYE_SCAR (1<<1) /// Helper to figure out if a limb is organic #define IS_ORGANIC_LIMB(limb) (limb.bodytype & BODYTYPE_ORGANIC) diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm index 8b0fda53cd79e..3b5cb5d795011 100644 --- a/code/__DEFINES/text.dm +++ b/code/__DEFINES/text.dm @@ -112,3 +112,7 @@ #define SPLASH_FILE "splashes.json" ///File location for mother hallucination lines #define MOTHER_FILE "mother.json" + +#define ALPHABET list("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z") +#define VOWELS list("a", "e", "i", "o", "u") +#define CONSONANTS (ALPHABET - VOWELS) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index e2c89df90e9bf..42f2d5fc31fee 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,18 +1,19 @@ // tgstation-server DMAPI +// The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119. -#define TGS_DMAPI_VERSION "7.1.2" +#define TGS_DMAPI_VERSION "7.3.0" // All functions and datums outside this document are subject to change with any version and should not be relied on. // CONFIGURATION -/// Create this define if you want to do TGS configuration outside of this file. +/// Consumers SHOULD create this define if you want to do TGS configuration outside of this file. #ifndef TGS_EXTERNAL_CONFIGURATION -// Comment this out once you've filled in the below. +// Consumers MUST comment this out once you've filled in the below and are not using [TGS_EXTERNAL_CONFIGURATION]. #error TGS API unconfigured -// Uncomment this if you wish to allow the game to interact with TGS 3.. +// Consumers MUST uncomment this if you wish to allow the game to interact with TGS version 3. // This will raise the minimum required security level of your game to TGS_SECURITY_TRUSTED due to it utilizing call()(). //#define TGS_V3_API @@ -52,7 +53,7 @@ #ifndef TGS_FILE2TEXT_NATIVE #ifdef file2text -#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses +#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You SHOULD fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses #endif #define TGS_FILE2TEXT_NATIVE file2text #endif @@ -152,16 +153,17 @@ //REQUIRED HOOKS /** - * Call this somewhere in [/world/proc/New] that is always run. This function may sleep! + * Consumers MUST call this somewhere in [/world/proc/New] that is always run. This function may sleep! * * * event_handler - Optional user defined [/datum/tgs_event_handler]. * * minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated. Can be one of [TGS_SECURITY_ULTRASAFE], [TGS_SECURITY_SAFE], or [TGS_SECURITY_TRUSTED]. + * * http_handler - Optional user defined [/datum/tgs_http_handler]. */ -/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) +/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler) return /** - * Call this when your initializations are complete and your game is ready to play before any player interactions happen. + * Consumers MUST call this when world initializations are complete and the game is ready to play before any player interactions happen. * * This may use [/world/var/sleep_offline] to make this happen so ensure no changes are made to it while this call is running. * Afterwards, consider explicitly setting it to what you want to avoid this BYOND bug: http://www.byond.com/forum/post/2575184 @@ -170,12 +172,10 @@ /world/proc/TgsInitializationComplete() return -/// Put this at the start of [/world/proc/Topic]. +/// Consumers MUST run this macro at the start of [/world/proc/Topic]. #define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return -/** - * Call this as late as possible in [world/proc/Reboot] (BEFORE ..()). - */ +/// Consumers MUST call this as late as possible in [world/proc/Reboot] (BEFORE ..()). /world/proc/TgsReboot() return @@ -269,7 +269,7 @@ /// The [/datum/tgs_chat_channel] the user was from. var/datum/tgs_chat_channel/channel -/// User definable handler for TGS events. +/// User definable handler for TGS events This abstract version SHOULD be overridden to be used. /datum/tgs_event_handler /// If the handler receieves [TGS_EVENT_HEALTH_CHECK] events. var/receive_health_checks = FALSE @@ -283,7 +283,41 @@ set waitfor = FALSE return -/// User definable chat command. +/// User definable handler for HTTP calls. This abstract version MUST be overridden to be used. +/datum/tgs_http_handler + +/** + * User definable callback for executing HTTP GET requests. + * MUST perform BYOND sleeps while the request is in flight. + * MUST return a [/datum/tgs_http_result]. + * SHOULD log its own errors + * + * url - The full URL to execute the GET request for including query parameters. + */ +/datum/tgs_http_handler/proc/PerformGet(url) + CRASH("[type]/PerformGet not implemented!") + +/// Result of a [/datum/tgs_http_handler] call. MUST NOT be overridden. +/datum/tgs_http_result + /// HTTP response as text + var/response_text + /// Boolean request success flag. Set for any 2XX response code. + var/success + +/** + * Create a [/datum/tgs_http_result]. + * + * * response_text - HTTP response as text. Must be provided in New(). + * * success - Boolean request success flag. Set for any 2XX response code. Must be provided in New(). + */ +/datum/tgs_http_result/New(response_text, success) + if(response_text && !istext(response_text)) + CRASH("response_text was not text!") + + src.response_text = response_text + src.success = success + +/// User definable chat command. This abstract version MUST be overridden to be used. /datum/tgs_chat_command /// The string to trigger this command on a chat bot. e.g `@bot name ...` or `!tgs name ...`. var/name = "" @@ -296,21 +330,27 @@ /** * Process command activation. Should return a [/datum/tgs_message_content] to respond to the issuer with. + * MUST be implemented * - * sender - The [/datum/tgs_chat_user] who issued the command. - * params - The trimmed string following the command `/datum/tgs_chat_command/var/name]. + * * sender - The [/datum/tgs_chat_user] who issued the command. + * * params - The trimmed string following the command `/datum/tgs_chat_command/var/name]. */ /datum/tgs_chat_command/proc/Run(datum/tgs_chat_user/sender, params) CRASH("[type] has no implementation for Run()") -/// User definable chat message. +/// User definable chat message. MUST NOT be overridden. /datum/tgs_message_content - /// The tring content of the message. Must be provided in New(). + /// The string content of the message. Must be provided in New(). var/text /// The [/datum/tgs_chat_embed] to embed in the message. Not supported on all chat providers. var/datum/tgs_chat_embed/structure/embed +/** + * Create a [/datum/tgs_message_content]. + * + * * text - The string content of the message. + */ /datum/tgs_message_content/New(text) ..() if(!istext(text)) @@ -319,7 +359,7 @@ src.text = text -/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details. +/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details. /datum/tgs_chat_embed/structure var/title var/description @@ -331,13 +371,13 @@ /// Colour must be #AARRGGBB or #RRGGBB hex string. var/colour - /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details. + /// See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details. var/datum/tgs_chat_embed/media/image - /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details. + /// See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details. var/datum/tgs_chat_embed/media/thumbnail - /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details. + /// See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details. var/datum/tgs_chat_embed/media/video var/datum/tgs_chat_embed/footer/footer @@ -346,7 +386,7 @@ var/list/datum/tgs_chat_embed/field/fields -/// Common datum for similar discord embed medias. +/// Common datum for similar Discord embed medias. /datum/tgs_chat_embed/media /// Must be set in New(). var/url @@ -354,6 +394,7 @@ var/height var/proxy_url +/// Create a [/datum/tgs_chat_embed]. /datum/tgs_chat_embed/media/New(url) ..() if(!istext(url)) @@ -361,13 +402,14 @@ src.url = url -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details. +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details. /datum/tgs_chat_embed/footer /// Must be set in New(). var/text var/icon_url var/proxy_icon_url +/// Create a [/datum/tgs_chat_embed/footer]. /datum/tgs_chat_embed/footer/New(text) ..() if(!istext(text)) @@ -375,16 +417,17 @@ src.text = text -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details. +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details. /datum/tgs_chat_embed/provider var/name var/url -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure for details. Must have name set in New(). +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New(). /datum/tgs_chat_embed/provider/author var/icon_url var/proxy_icon_url +/// Create a [/datum/tgs_chat_embed/footer]. /datum/tgs_chat_embed/provider/author/New(name) ..() if(!istext(name)) @@ -392,12 +435,15 @@ src.name = name -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New(). +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details. /datum/tgs_chat_embed/field + /// Must be set in New(). var/name + /// Must be set in New(). var/value var/is_inline +/// Create a [/datum/tgs_chat_embed/field]. /datum/tgs_chat_embed/field/New(name, value) ..() if(!istext(name)) diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm index 6a2a5152903ba..76e8ffdb0e222 100644 --- a/code/__DEFINES/time.dm +++ b/code/__DEFINES/time.dm @@ -40,6 +40,7 @@ #define MOTH_WEEK "Moth Week" #define IAN_HOLIDAY "Ian's Birthday" #define HOTDOG_DAY "National Hot Dog Day" +#define ICE_CREAM_DAY "National Ice Cream Day" /* Days of the week to make it easier to reference them. diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm index 2348bd49f194b..794c56691a6da 100644 --- a/code/__DEFINES/tools.dm +++ b/code/__DEFINES/tools.dm @@ -39,3 +39,16 @@ /// Combination flag for any item interaction that blocks the rest of the attack chain #define ITEM_INTERACT_ANY_BLOCKER (ITEM_INTERACT_SUCCESS | ITEM_INTERACT_BLOCKING) + +/// How many seconds between each fuel depletion tick ("use" proc) +#define TOOL_FUEL_BURN_INTERVAL 5 + +///This is a number I got by quickly searching up the temperature to melt iron/glass, though not really realistic. +///This is used for places where lighters should not be hot enough to be used as a welding tool on. +#define HIGH_TEMPERATURE_REQUIRED 1500 + +/** + * A helper for checking if an item interaction should be skipped. + * This is only used explicitly because some interactions may not want to ever be skipped. + */ +#define SHOULD_SKIP_INTERACTION(target, item, user) (HAS_TRAIT(target, TRAIT_COMBAT_MODE_SKIP_INTERACTION) && user.combat_mode) diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index abe3665907e65..400359ad06d6c 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -24,8 +24,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_PULL_BLOCKED "pullblocked" /// Abstract condition that prevents movement if being pulled and might be resisted against. Handcuffs and straight jackets, basically. #define TRAIT_RESTRAINED "restrained" -/// Apply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sorces of undesity will still apply. Always define a unique source when adding a new instance of this! +/// Apply this to make a mob not dense, and remove it when you want it to no longer make them undense, other sources of undesity will still apply. Always define a unique source when adding a new instance of this! #define TRAIT_UNDENSE "undense" +/// Makes the mob immune to damage and several other ailments. +#define TRAIT_GODMODE "godmode" /// Expands our FOV by 30 degrees if restricted #define TRAIT_EXPANDED_FOV "expanded_fov" /// Doesn't miss attacks @@ -50,7 +52,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DEAF "deaf" #define TRAIT_FAT "fat" #define TRAIT_HUSK "husk" -///Blacklisted from being revived via defibrilator +///Blacklisted from being revived via defibrillator #define TRAIT_DEFIB_BLACKLISTED "defib_blacklisted" #define TRAIT_BADDNA "baddna" #define TRAIT_CLUMSY "clumsy" @@ -72,7 +74,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai // Trait added to the user of a hippocratic oath status effect #define TRAIT_HIPPOCRATIC_OATH "hippocratic_oath" #define TRAIT_IGNORESLOWDOWN "ignoreslow" -#define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown" /// Makes it so the mob can use guns regardless of tool user status #define TRAIT_GUN_NATURAL "gunnatural" /// Causes death-like unconsciousness @@ -113,6 +114,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_STABLELIVER "stable_liver" #define TRAIT_VATGROWN "vatgrown" #define TRAIT_RESISTHEAT "resist_heat" +/// Trait for when you can no longer gain body heat +#define TRAIT_HYPOTHERMIC "body_hypothermic" +/// This non-living object is valid to be used in dna infusers +#define TRAIT_VALID_DNA_INFUSION "valid_dna_infusion" ///For when you've gotten a power from a dna vault #define TRAIT_USED_DNA_VAULT "used_dna_vault" /// For when you want to be able to touch hot things, but still want fire to be an issue. @@ -136,8 +141,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NOFIRE "nonflammable" #define TRAIT_NOFIRE_SPREAD "no_fire_spreading" /// Prevents plasmamen from self-igniting if only their helmet is missing -#define TRAIT_NOSELFIGNITION_HEAD_ONLY "no_selfignition_head_only" +#define TRAIT_HEAD_ATMOS_SEALED "no_selfignition_head_only" #define TRAIT_NOGUNS "no_guns" +///Can toss a guns like a badass, causing additional damage/effect to their enemies +#define TRAIT_TOSS_GUN_HARD "toss_gun_hard" /// Species with this trait are genderless #define TRAIT_AGENDER "agender" /// Species with this trait have a blood clan mechanic @@ -148,8 +155,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_MUTANT_COLORS "mutcolors" /// Species with this trait have mutant colors that cannot be chosen by the player, nor altered ingame by external means #define TRAIT_FIXED_MUTANT_COLORS "fixed_mutcolors" -/// Species with this trait have a haircolor that cannot be chosen by the player, nor altered ingame by external means -#define TRAIT_FIXED_HAIRCOLOR "fixed_haircolor" /// Humans with this trait won't get bloody hands, nor bloody feet #define TRAIT_NO_BLOOD_OVERLAY "no_blood_overlay" /// Humans with this trait cannot have underwear @@ -170,7 +175,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NO_ZOMBIFY "no_zombify" /// Carbons with this trait can't have their DNA copied by diseases nor changelings #define TRAIT_NO_DNA_COPY "no_dna_copy" -/// Carbons with this trait cant have their dna scrambled by genetics or a disease retrovirus. +/// Carbons with this trait can't have their DNA scrambled by genetics or a disease retrovirus. #define TRAIT_NO_DNA_SCRAMBLE "no_dna_scramble" /// Carbons with this trait can eat blood to regenerate their own blood volume, instead of injecting it #define TRAIT_DRINKS_BLOOD "drinks_blood" @@ -182,6 +187,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DISGUISED "disguised" /// Use when you want a mob to be able to metabolize plasma temporarily (e.g. plasma fixation disease symptom) #define TRAIT_PLASMA_LOVER_METABOLISM "plasma_lover_metabolism" +/// The mob is not harmed by tetrodotoxin. Instead, it heals them like omnizine +#define TRAIT_TETRODOTOXIN_HEALING "tetrodotoxin_healing" #define TRAIT_EASYDISMEMBER "easy_dismember" #define TRAIT_LIMBATTACHMENT "limb_attach" #define TRAIT_NOLIMBDISABLE "no_limb_disable" @@ -220,18 +227,46 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NO_STAGGER "no_stagger" /// Getting hit by thrown movables won't push you away #define TRAIT_NO_THROW_HITPUSH "no_throw_hitpush" +/// This mob likes to eat fish. Raw, uncut fish. +#define TRAIT_FISH_EATER "fish_eater" ///Added to mob or mind, changes the icons of the fish shown in the minigame UI depending on the possible reward. #define TRAIT_REVEAL_FISH "reveal_fish" ///This trait gets you a list of fishes that can be caught when examining a fishing spot. #define TRAIT_EXAMINE_FISHING_SPOT "examine_fishing_spot" +///lobstrosities and carps will prioritize/flee from those that have this trait (given by the skill-locked hat) +#define TRAIT_SCARY_FISHERMAN "scary_fisherman" +/// Atoms with this trait can be right-clicked with a fish to release them, presumably back in the fishing spot they were caught from. +#define TRAIT_CATCH_AND_RELEASE "catch_and_release" +///This trait lets you get the size and weight of the fish by examining them +#define TRAIT_EXAMINE_FISH "examine_fish" +///This trait lets you roughly know if the fish is dead, starving, drowning or sick by examining them +#define TRAIT_EXAMINE_DEEPER_FISH "examine_deeper_fish" ///Trait given to turfs or objects that can be fished from #define TRAIT_FISHING_SPOT "fishing_spot" +///This trait prevents the fishing spot from being linked to the fish-porter when a multitool is being used. +#define TRAIT_UNLINKABLE_FISHING_SPOT "unlinkable_fishing_spot" ///Trait given to mobs that can fish without a rod #define TRAIT_PROFOUND_FISHER "profound_fisher" +/// If an atom has this trait, then you can toss a bottle with a message in it. +#define TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION "message_in_a_bottle_location" +/// Stops other objects of the same type from being inserted inside the same aquarium it's in. +#define TRAIT_UNIQUE_AQUARIUM_CONTENT "unique_aquarium_content" +/// Mobs that hate showers, being sprayed with water etc. +#define TRAIT_WATER_HATER "water_hater" +/// Improved boons from showers and some features centered around water, should also suppress TRAIT_WATER_HATER +#define TRAIT_WATER_ADAPTATION "water_adaptation" +/// Tells us that the mob urrently has the fire_handler/wet_stacks status effect +#define TRAIT_IS_WET "is_wet" +/// Mobs with this trait stay wet for longer and resist fire decaying wetness +#define TRAIT_WET_FOR_LONGER "wet_for_longer" +/// Mobs with this trait will be immune to slipping while also being slippery themselves when lying on the floor +#define TRAIT_SLIPPERY_WHEN_WET "slippery_when_wet" /// This trait lets you evaluate someone's fitness level against your own #define TRAIT_EXAMINE_FITNESS "reveal_power_level" /// These mobs have particularly hygienic tongues #define TRAIT_WOUND_LICKER "wound_licker" +/// Mobs with this trait are allowed to use silicon emotes +#define TRAIT_SILICON_EMOTES_ALLOWED "silicon_emotes_allowed" /// This trait designate that the mob was originally a monkey #define TRAIT_BORN_MONKEY "born_as_a_monkey" @@ -246,7 +281,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Stop the mob from sliding around from being slipped, but not the slip part. /// DOES NOT include ice slips. #define TRAIT_NO_SLIP_SLIDE "noslip_slide" -/// Stops all slipping and sliding from ocurring +/// Stops all slipping and sliding from occurring #define TRAIT_NO_SLIP_ALL "noslip_all" /// Unlinks gliding from movement speed, meaning that there will be a delay between movements rather than a single move movement between tiles @@ -255,10 +290,16 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Applied into wounds when they're scanned with the wound analyzer, halves time to treat them manually. #define TRAIT_WOUND_SCANNED "wound_scanned" +/// Owner will ignore any fire protection when calculating fire damage +#define TRAIT_IGNORE_FIRE_PROTECTION "ignore_fire_protection" + #define TRAIT_NODEATH "nodeath" #define TRAIT_NOHARDCRIT "nohardcrit" #define TRAIT_NOSOFTCRIT "nosoftcrit" +/// Makes someone show up as mindshielded on sechuds. Does NOT actually make them unconvertable - See TRAIT_UNCONVERTABLE for that #define TRAIT_MINDSHIELD "mindshield" +/// Makes it impossible for someone to be converted by cult/revs/etc. +#define TRAIT_UNCONVERTABLE "unconvertable" #define TRAIT_DISSECTED "dissected" #define TRAIT_SURGICALLY_ANALYZED "surgically_analyzed" /// Lets the user succumb even if they got NODEATH @@ -333,6 +374,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_SECURITY_HUD "sec_hud" /// for something granting you a diagnostic hud #define TRAIT_DIAGNOSTIC_HUD "diag_hud" +#define TRAIT_BOT_PATH_HUD "bot_path_hud" /// Is a medbot healing you #define TRAIT_MEDIBOTCOMINGTHROUGH "medbot" #define TRAIT_PASSTABLE "passtable" @@ -352,13 +394,13 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Increases chance of getting special traumas, makes them harder to cure #define TRAIT_SPECIAL_TRAUMA_BOOST "special_trauma_boost" #define TRAIT_SPACEWALK "spacewalk" -/// Sanity trait to keep track of when we're in hyperspace and add the appropriate element if we werent +/// Sanity trait to keep track of when we're in hyperspace and add the appropriate element if we weren't #define TRAIT_HYPERSPACED "hyperspaced" ///Gives the movable free hyperspace movement without being pulled during shuttle transit #define TRAIT_FREE_HYPERSPACE_MOVEMENT "free_hyperspace_movement" ///Lets the movable move freely in the soft-cordon area of transit space, which would otherwise teleport them away just before they got to see the true cordon #define TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT "free_hyperspace_softcordon_movement" -///Deletes the object upon being dumped into space, usually from exiting hyperspace. Useful if you're spawning in a lot of stuff for hyperspace events that dont need to flood the entire game +///Deletes the object upon being dumped into space, usually from exiting hyperspace. Useful if you're spawning in a lot of stuff for hyperspace events that don't need to flood the entire game #define TRAIT_DEL_ON_SPACE_DUMP "del_on_hyperspace_leave" /// We can walk up or around cliffs, or at least we don't fall off of it #define TRAIT_CLIFF_WALKER "cliff_walker" @@ -411,6 +453,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_ANTENNAE "antennae" /// Blowing kisses actually does damage to the victim #define TRAIT_KISS_OF_DEATH "kiss_of_death" +/// Syndie kisses can apply burn damage +#define TRAIT_SYNDIE_KISS "syndie_kiss" /// Used to activate french kissing #define TRAIT_GARLIC_BREATH "kiss_of_garlic_death" /// Addictions don't tick down, basically they're permanently addicted @@ -423,7 +467,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_BLOODSHOT_EYES "bloodshot_eyes" /// This mob should never close UI even if it doesn't have a client #define TRAIT_PRESERVE_UI_WITHOUT_CLIENT "preserve_ui_without_client" -/// This mob overrides certian SSlag_switch measures with this special trait +/// This mob overrides certain SSlag_switch measures with this special trait #define TRAIT_BYPASS_MEASURES "bypass_lagswitch_measures" /// Someone can safely be attacked with honorbound with ONLY a combat mode check, the trait is assuring holding a weapon and hitting won't hurt them.. #define TRAIT_ALLOWED_HONORBOUND_ATTACK "allowed_honorbound_attack" @@ -457,6 +501,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_USER_SCOPED "user_scoped" /// Mob is unable to feel pain #define TRAIT_ANALGESIA "analgesia" +/// Mob has a scar on their left/right eye +#define TRAIT_RIGHT_EYE_SCAR "right_eye_scar" +#define TRAIT_LEFT_EYE_SCAR "left_eye_scar" /// Trait added when a revenant is visible. #define TRAIT_REVENANT_REVEALED "revenant_revealed" @@ -519,9 +566,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Mobs with this trait cannot be hit by projectiles, meaning the projectiles will just go through. #define TRAIT_UNHITTABLE_BY_PROJECTILES "unhittable_by_projectiles" -/// Projectile with this trait will always hit the defined zone of a struck living mob. -#define TRAIT_ALWAYS_HIT_ZONE "always_hit_zone" - /// Mobs with this trait do care about a few grisly things, such as digging up graves. They also really do not like bringing people back to life or tending wounds, but love autopsies and amputations. #define TRAIT_MORBID "morbid" @@ -566,6 +610,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait that determines vulnerability to being stunned from a shove #define TRAIT_STUN_ON_NEXT_SHOVE "stun on next shove" +/// Trait that determines whether our mob gains more strength from drinking during a fist fight +#define TRAIT_DRUNKEN_BRAWLER "drunken brawler" + // METABOLISMS // Various jobs on the station have historically had better reactions // to various drinks and foodstuffs. Security liking donuts is a classic @@ -641,7 +688,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_ASHSTORM_IMMUNE "ashstorm_immune" #define TRAIT_SNOWSTORM_IMMUNE "snowstorm_immune" #define TRAIT_RADSTORM_IMMUNE "radstorm_immune" -#define TRAIT_VOIDSTORM_IMMUNE "voidstorm_immune" #define TRAIT_WEATHER_IMMUNE "weather_immune" //Immune to ALL weather effects. /// Cannot be grabbed by goliath tentacles @@ -659,6 +705,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// This movable atom has the explosive block element #define TRAIT_BLOCKING_EXPLOSIVES "blocking_explosives" +///This mob is currently blocking a projectile. +#define TRAIT_BLOCKING_PROJECTILES "blocking_projectiles" ///Lava will be safe to cross while it has this trait. #define TRAIT_LAVA_STOPPED "lava_stopped" ///Chasms will be safe to cross while they've this trait. @@ -696,6 +744,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_HONKSPAMMING "trait_honkspamming" /// Required by the waddling element since there are multiple sources of it. #define TRAIT_WADDLING "trait_waddling" +/// Mobs with trait will still waddle even when lying on the floor and make a different footstep sound when doing so. +#define TRAIT_FLOPPING "trait_flopping" +/// Required by the on_hit_effect element, which is in turn added by other elements. +#define TRAIT_ON_HIT_EFFECT "trait_on_hit_effect" ///Used for managing KEEP_TOGETHER in [/atom/var/appearance_flags] #define TRAIT_KEEP_TOGETHER "keep-together" @@ -719,26 +771,41 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_T_RAY_VISIBLE "t-ray-visible" /// If this item's been fried #define TRAIT_FOOD_FRIED "food_fried" +/// If this item's been bbq grilled +#define TRAIT_FOOD_BBQ_GRILLED "food_bbq_grilled" /// This is a silver slime created item #define TRAIT_FOOD_SILVER "food_silver" /// If this item's been made by a chef instead of being map-spawned or admin-spawned or such #define TRAIT_FOOD_CHEF_MADE "food_made_by_chef" +/// This atom has a quality_food_ingredient element attached +#define TRAIT_QUALITY_FOOD_INGREDIENT "quality_food_ingredient" /// The items needs two hands to be carried #define TRAIT_NEEDS_TWO_HANDS "needstwohands" /// Can't be catched when thrown #define TRAIT_UNCATCHABLE "uncatchable" -/// Fish in this won't die -#define TRAIT_FISH_SAFE_STORAGE "fish_case" +/// You won't catch duds while fishing with this rod. +#define TRAIT_ROD_REMOVE_FISHING_DUD "rod_remove_fishing_dud" /// Stuff that can go inside fish cases #define TRAIT_FISH_CASE_COMPATIBILE "fish_case_compatibile" /// If the item can be used as a bit. #define TRAIT_FISHING_BAIT "fishing_bait" +/// This bait will kill any fish that doesn't have it on its favorite_bait list +#define TRAIT_POISONOUS_BAIT "poisonous_bait" /// The quality of the bait. It influences odds of catching fish #define TRAIT_BASIC_QUALITY_BAIT "baic_quality_bait" #define TRAIT_GOOD_QUALITY_BAIT "good_quality_bait" #define TRAIT_GREAT_QUALITY_BAIT "great_quality_bait" /// Baits with this trait will ignore bait preferences and related fish traits. #define TRAIT_OMNI_BAIT "omni_bait" +/// The bait won't be consumed when used +#define TRAIT_BAIT_UNCONSUMABLE "bait_unconsumable" +/// This bait ignores environmental conditions for fishing (like low light for nocturnal fish) +#define TRAIT_BAIT_IGNORE_ENVIRONMENT "bait_ignore_environment" +/** + * This bait won't apply TRAIT_ROD_REMOVE_FISHING_DUD to the rod it's attached on, + * instead, it'll allow the fishing dud to be there unless there's at least one fish that likes the bait + */ +#define TRAIT_BAIT_ALLOW_FISHING_DUD "bait_dont_affect_fishing_dud" /// Plants that were mutated as a result of passive instability, not a mutation threshold. #define TRAIT_PLANT_WILDMUTATE "wildmutation" /// If you hit an APC with exposed internals with this item it will try to shock you @@ -765,6 +832,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DANGEROUS_OBJECT "dangerous_object" /// determines whether or not objects are haunted and teleport/attack randomly #define TRAIT_HAUNTED "haunted" +/// An item that, if it has contents, will ignore its contents when scanning for contraband. +#define TRAIT_CONTRABAND_BLOCKER "contraband_blocker" +/// For edible items that cannot be composted inside hydro trays +#define TRAIT_UNCOMPOSTABLE "uncompostable" //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" @@ -787,8 +858,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_MUSICIAN "musician" #define TRAIT_LIGHT_DRINKER "light_drinker" #define TRAIT_EMPATH "empath" +#define TRAIT_EVIL "evil" #define TRAIT_FRIENDLY "friendly" #define TRAIT_GRABWEAKNESS "grab_weakness" +#define TRAIT_GRABRESISTANCE "grab_resistance" #define TRAIT_SNOB "snob" #define TRAIT_BALD "bald" #define TRAIT_SHAVED "shaved" @@ -801,6 +874,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_THROWINGARM "throwing_arm" #define TRAIT_SETTLER "settler" #define TRAIT_STRONG_STOMACH "strong_stomach" +#define TRAIT_VEGETARIAN "trait_vegetarian" /// This mob always lands on their feet when they fall, for better or for worse. #define TRAIT_CATLIKE_GRACE "catlike_grace" @@ -913,7 +987,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///A trait for mechs that were created through the normal construction process, and not spawned by map or other effects. #define TRAIT_MECHA_CREATED_NORMALLY "trait_mecha_created_normally" +/// Stops a movable from being removed from the mob it's in by the content_barfer component. +#define TRAIT_NOT_BARFABLE "not_barfable" + ///fish traits +#define TRAIT_FISH_STASIS "fish_stasis" +#define TRAIT_FISH_FLOPPING "fish_flopping" #define TRAIT_RESIST_EMULSIFY "resist_emulsify" #define TRAIT_FISH_SELF_REPRODUCE "fish_self_reproduce" #define TRAIT_FISH_NO_MATING "fish_no_mating" @@ -923,11 +1002,31 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_FISH_AMPHIBIOUS "fish_amphibious" ///Trait needed for the lubefish evolution #define TRAIT_FISH_FED_LUBE "fish_fed_lube" +#define TRAIT_FISH_WELL_COOKED "fish_well_cooked" #define TRAIT_FISH_NO_HUNGER "fish_no_hunger" ///It comes from a fish case. Relevant for bounties so far. #define TRAIT_FISH_FROM_CASE "fish_from_case" ///Fish will also occasionally fire weak tesla zaps #define TRAIT_FISH_ELECTROGENESIS "fish_electrogenesis" +///Offsprings from this fish will never be of its same type (unless it's self-reproducing). +#define TRAIT_FISH_RECESSIVE "fish_recessive" +///This fish comes equipped with a stinger (increased damage and potentially venomous if also toxic) +#define TRAIT_FISH_STINGER "fish_stinger" +///This fish is currently on cooldown and cannot splash ink unto people's faces +#define TRAIT_FISH_INK_ON_COOLDOWN "fish_ink_on_cooldown" +///This fish requires two hands to carry even if smaller than FISH_SIZE_TWO_HANDS_REQUIRED, as long as it's bulky-sized. +#define TRAIT_FISH_SHOULD_TWOHANDED "fish_should_twohanded" +///This fish won't be killed when cooked. +#define TRAIT_FISH_SURVIVE_COOKING "fish_survive_cooking" +/** + * This fish has been fed teslium without the electrogenesis having trait. + * Gives the electrogenesis, but at halved output, and it hurts the fish over time. + */ +#define TRAIT_FISH_ON_TESLIUM "fish_on_teslium" +/// This fish has been fed growth serum or something and will grow 5 times faster, up to 50% weight and size gain when fed. +#define TRAIT_FISH_QUICK_GROWTH "fish_quick_growth" +/// This fish has been fed mutagen or something. Evolutions will have more than twice the probability +#define TRAIT_FISH_MUTAGENIC "fish_mutagenic" /// Trait given to angelic constructs to let them purge cult runes #define TRAIT_ANGELIC "angelic" @@ -966,9 +1065,14 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// changelings with this trait can no longer talk over the hivemind #define TRAIT_CHANGELING_HIVEMIND_MUTE "ling_mute" +/// This guy is a hulk! (Bulky and green, lacks tact) #define TRAIT_HULK "hulk" /// Isn't attacked harmfully by blob structures #define TRAIT_BLOB_ALLY "blob_ally" +/// Has the chuuni component +#define TRAIT_CHUUNIBYOU "chuunibyou" +/// Has splattercasting +#define TRAIT_SPLATTERCASTER "splattercaster" ///Traits given by station traits #define STATION_TRAIT_ASSISTANT_GIMMICKS "station_trait_assistant_gimmicks" @@ -976,6 +1080,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define STATION_TRAIT_BIGGER_PODS "station_trait_bigger_pods" #define STATION_TRAIT_BIRTHDAY "station_trait_birthday" #define STATION_TRAIT_BOTS_GLITCHED "station_trait_bot_glitch" +#define STATION_TRAIT_MACHINES_GLITCHED "station_trait_machine_glitch" #define STATION_TRAIT_BRIGHT_DAY "station_trait_bright_day" #define STATION_TRAIT_CARP_INFESTATION "station_trait_carp_infestation" #define STATION_TRAIT_CYBERNETIC_REVOLUTION "station_trait_cybernetic_revolution" @@ -998,6 +1103,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define STATION_TRAIT_UNIQUE_AI "station_trait_unique_ai" #define STATION_TRAIT_UNNATURAL_ATMOSPHERE "station_trait_unnatural_atmosphere" #define STATION_TRAIT_VENDING_SHORTAGE "station_trait_vending_shortage" +#define STATION_TRAIT_SPIKED_DRINKS "station_trait_spiked_drinks" ///Deathmatch traits #define TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS "deathmath_explosive_implants" @@ -1019,6 +1125,13 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// things with this trait are treated as having no access in /atom/movable/proc/check_access(obj/item) #define TRAIT_ALWAYS_NO_ACCESS "alwaysnoaccess" +///The entity has Silicon 'access', so is either a silicon, has an access wand, or is an admin ghost AI. +///This is put on the mob, it is used on the client for Admins but they are the exception as they use `isAdminGhostAI`. +#define TRAIT_SILICON_ACCESS "silicon_access_trait" +///The entity has AI 'access', so is either an AI, has an access wand, or is an admin ghost AI. Used to block off regular Silicons from things. +///This is put on the mob, it is used on the client for Admins but they are the exception as they use `isAdminGhostAI`. +#define TRAIT_AI_ACCESS "ai_access_trait" + ///Used by wearable_client_colour to determine whether the mob wants to have the colours of the screen affected by worn items (some still do regardless). #define TRAIT_SEE_WORN_COLOURS "see_worn_colour" @@ -1062,16 +1175,13 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// this object has been frozen #define TRAIT_FROZEN "frozen" -/// Currently fishing -#define TRAIT_GONE_FISHING "fishing" - -/// Makes a species be better/worse at tackling depending on their wing's status +/// Makes a character be better/worse at tackling depending on their wing's status #define TRAIT_TACKLING_WINGED_ATTACKER "tacking_winged_attacker" -/// Makes a species be frail and more likely to roll bad results if they hit a wall +/// Makes a character be frail and more likely to roll bad results if they hit a wall #define TRAIT_TACKLING_FRAIL_ATTACKER "tackling_frail_attacker" -/// Makes a species be better/worse at defending against tackling depending on their tail's status +/// Makes a character be better/worse at defending against tackling depending on their tail's status #define TRAIT_TACKLING_TAILED_DEFENDER "tackling_tailed_defender" /// Is runechat for this atom/movable currently disabled, regardless of prefs or anything? @@ -1107,6 +1217,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given to limb by /mob/living/basic/living_limb_flesh #define TRAIT_IGNORED_BY_LIVING_FLESH "livingflesh_ignored" +///Trait given to organs that have been inside a living being previously +#define TRAIT_USED_ORGAN "used_organ" + /// Trait given while using /datum/action/cooldown/mob_cooldown/wing_buffet #define TRAIT_WING_BUFFET "wing_buffet" /// Trait given while tired after using /datum/action/cooldown/mob_cooldown/wing_buffet @@ -1114,8 +1227,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait given to a dragon who fails to defend their rifts #define TRAIT_RIFT_FAILURE "fail_dragon_loser" -///this mob is able to relay happiness, given by /datum/component/happiness -#define TRAIT_MOB_RELAY_HAPPINESS "mob_relay_happiness" +///this trait hides most visible fluff and interactions of happiness, likely temporarily. +#define TRAIT_MOB_HIDE_HAPPINESS "mob_hide_happiness" ///trait determines if this mob can breed given by /datum/component/breeding #define TRAIT_MOB_BREEDER "mob_breeder" ///trait given to mobs that are hatched @@ -1157,7 +1270,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait which means whatever has this is dancing by a dance machine #define TRAIT_DISCO_DANCER "disco_dancer" -/// That which allows mobs to instantly break down boulders. +/// Trait which allows mobs to instantly break down boulders. #define TRAIT_INSTANTLY_PROCESSES_BOULDERS "instantly_processes_boulders" /// Trait applied to objects and mobs that can attack a boulder and break it down. (See /obj/item/boulder/manual_process()) @@ -1166,11 +1279,25 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait given to anything linked to, not necessarily allied to, the mansus #define TRAIT_MANSUS_TOUCHED "mansus_touched" + +// These traits are used in IS_X() as an OR, and is utilized for pseudoantags (such as deathmatch or domains) so they don't need to actually get antag status. +// To specifically and only get the antag datum, GET_X() exists now. +#define TRAIT_ACT_AS_CULTIST "act_as_cultist" +#define TRAIT_ACT_AS_HERETIC "act_as_heretic" + +/// Appiled when wizard buy (/datum/spellbook_entry/perks/spalls_lottery) perk. +/// Give 50/25% chance not spend a spellbook charge on 1/2 cost spell. +/// Appiled it wizard can't refund any spells. +#define TRAIT_SPELLS_LOTTERY "spell_for_sale" + /// Trait given to mobs wearing the clown mask #define TRAIT_PERCEIVED_AS_CLOWN "perceived_as_clown" /// Does this item bypass ranged armor checks? #define TRAIT_BYPASS_RANGED_ARMOR "bypass_ranged_armor" +/// Trait which means that this item is considered illegal contraband, and valid for the contraband bounty or when scanned by an nspect scanner. +#define TRAIT_CONTRABAND "illegal_contraband" + /// Traits given by settler, each with their own specific effects for cases where someone would have that trait, but not the other settler effects #define TRAIT_EXPERT_FISHER "expert_fisher" // fishing is easier @@ -1186,4 +1313,39 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given to the birthday boy #define TRAIT_BIRTHDAY_BOY "birthday_boy" + +///Trait given to a turf that should not be allowed to be terraformed, such as turfs holding ore vents. +#define TRAIT_NO_TERRAFORM "no_terraform" + +///Trait that prevents mobs from stopping by grabbing objects +#define TRAIT_NOGRAV_ALWAYS_DRIFT "nograv_always_drift" + +///Mobs with these trait do not get italicized/quiet speech when speaking in low pressure +#define TRAIT_SPEECH_BOOSTER "speech_booster" + +/// Given to a mob that can throw to make them not able to throw +#define TRAIT_NO_THROWING "no_throwing" + +///Trait which allows mobs to parry mining mob projectiles +#define TRAIT_MINING_PARRYING "mining_parrying" + +///Trait which silences all chemical reactions in its container +#define TRAIT_SILENT_REACTIONS "silent_reactions" + +/** + * + * This trait is used in some interactions very high in the interaction chain to allow + * certain atoms to be skipped by said interactions if the user is in combat mode. + * + * Its primarily use case is for stuff like storage and tables, to allow things like emags to be bagged + * (because in some contexts you might want to be emagging a bag, and in others you might want to be storing it.) + * + * This is only checked by certain items explicitly so you can't just add the trait and expect it to work. + * (This may be changed later but I chose to do it this way to avoid messing up interactions which require combat mode) + */ +#define TRAIT_COMBAT_MODE_SKIP_INTERACTION "combat_mode_skip_interaction" + +///A "fake" effect that should not be subject to normal effect removal methods (like the effect remover component) +#define TRAIT_ILLUSORY_EFFECT "illusory_effect" + // END TRAIT DEFINES diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm index 759101dc2abd5..11bbf07f626ed 100644 --- a/code/__DEFINES/traits/sources.dm +++ b/code/__DEFINES/traits/sources.dm @@ -36,6 +36,8 @@ #define VENDING_MACHINE_TRAIT "vending_machine" +///A trait given by a held item +#define HELD_ITEM_TRAIT "held-item-trait" #define ABSTRACT_ITEM_TRAIT "abstract-item" /// A trait given by any status effect #define STATUS_EFFECT_TRAIT "status-effect" @@ -45,7 +47,8 @@ /// Trait given by an Action datum #define ACTION_TRAIT "action" - +///A trait given by someone blocking. +#define BLOCKING_TRAIT "blocking" #define CLOTHING_TRAIT "clothing" #define HELMET_TRAIT "helmet" /// inherited from the mask @@ -193,6 +196,9 @@ /// Trait given by a fulton extraction pack #define FULTON_PACK_TRAIT "fulton-pack" +/// Trait from mob/living/update_transform() +#define UPDATE_TRANSFORM_TRAIT "update_transform" + /// Trait granted by the berserker hood. #define BERSERK_TRAIT "berserk_trait" /// Trait granted by [/obj/item/rod_of_asclepius] @@ -225,8 +231,7 @@ #define SPEED_TRAIT "speed_trait" /// Trait given to mobs that have been autopsied #define AUTOPSY_TRAIT "autopsy_trait" -/// Trait given by [/datum/status_effect/blessing_of_insanity] -#define MAD_WIZARD_TRAIT "mad_wizard_trait" +#define EYE_SCARRING_TRAIT "eye_scarring_trait" ///From the market_crash event #define MARKET_CRASH_EVENT_TRAIT "crashed_market_event" @@ -289,8 +294,15 @@ /// Trait from an organ being inside a bodypart #define ORGAN_INSIDE_BODY_TRAIT "organ_inside_body" -/// Trait when something was labelled by the /datum/element/tool_renaming element. -#define RENAMING_TOOL_LABEL_TRAIT "renaming_tool_label" /// Trait when a drink was renamed by a shaker #define SHAKER_LABEL_TRAIT "shaker_trait" + +/// Trait given by a jetpack +#define JETPACK_TRAIT "jetpack_trait" + +/// Trait added by style component +#define STYLE_TRAIT "style" + +/// Trait from an engraving +#define ENGRAVED_TRAIT "engraved" diff --git a/code/__DEFINES/turfs.dm b/code/__DEFINES/turfs.dm index 545767289e0b5..47a1a5a9a5924 100644 --- a/code/__DEFINES/turfs.dm +++ b/code/__DEFINES/turfs.dm @@ -116,3 +116,10 @@ #define LARGE_TURF_SMOOTHING_X_OFFSET -9 /// Defines the y offset to apply to larger smoothing turfs (such as grass). #define LARGE_TURF_SMOOTHING_Y_OFFSET -9 + +/// Defines a consistent light power for our various basalt turfs +#define BASALT_LIGHT_POWER 0.6 +/// Defines a consistent light range for basalt turfs that have a bigger area of lava +#define BASALT_LIGHT_RANGE_BRIGHT 2 +/// Defines a consistent light range for basalt turfs that have a smaller area of lava +#define BASALT_LIGHT_RANGE_DIM 1.4 diff --git a/code/__DEFINES/uplink.dm b/code/__DEFINES/uplink.dm index bb92f0672c3a7..929b558dfec47 100644 --- a/code/__DEFINES/uplink.dm +++ b/code/__DEFINES/uplink.dm @@ -15,6 +15,17 @@ /// Can be randomly given to spies for their bounties #define UPLINK_SPY (1 << 4) +#define UPLINK_LONE_OP (1 << 5) + +/// A blanket define for an item being purchasable by all types of nukie +#define UPLINK_ALL_SYNDIE_OPS (UPLINK_NUKE_OPS | UPLINK_LONE_OP | UPLINK_CLOWN_OPS) + +/// A blanket define for an item being purchasable by all operatives that spawn at the nukie firebase +#define UPLINK_FIREBASE_OPS (UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + +/// A define that excludes clown ops from the regular nukeop gear lineup +#define UPLINK_SERIOUS_OPS (UPLINK_NUKE_OPS | UPLINK_LONE_OP) + /// Progression gets turned into a user-friendly form. This is just an abstract equation that makes progression not too large. #define DISPLAY_PROGRESSION(time) round(time/60, 0.01) @@ -25,9 +36,12 @@ /// Typepath used for uplink items which don't actually produce an item (essentially just a placeholder) /// Future todo: Make this not necessary / make uplink items support item-less items natively -#define ABSTRACT_UPLINK_ITEM /obj/effect/gibspawner/generic +#define ABSTRACT_UPLINK_ITEM /obj/item/loot_table_maker /// Lower threshold for which an uplink items's TC cost is considered "low" for spy bounties picking rewards #define SPY_LOWER_COST_THRESHOLD 5 /// Upper threshold for which an uplink items's TC cost is considered "high" for spy bounties picking rewards #define SPY_UPPER_COST_THRESHOLD 12 + +/// Minimal cost for an item to be eligible for a discount +#define TRAITOR_DISCOUNT_MIN_PRICE 4 diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index a83ef71ddc69f..88f46a53fd92c 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -127,6 +127,7 @@ #define VV_HK_GODMODE "godmode" #define VV_HK_DROP_ALL "dropall" #define VV_HK_REGEN_ICONS "regen_icons" +#define VV_HK_REGEN_ICONS_FULL "regen_icons_full" #define VV_HK_PLAYER_PANEL "player_panel" #define VV_HK_BUILDMODE "buildmode" #define VV_HK_DIRECT_CONTROL "direct_control" diff --git a/code/__DEFINES/wounds.dm b/code/__DEFINES/wounds.dm index 91614c7d8a7e5..93ded9aec5dd0 100644 --- a/code/__DEFINES/wounds.dm +++ b/code/__DEFINES/wounds.dm @@ -25,6 +25,11 @@ /// outright dismemberment of limb #define WOUND_SEVERITY_LOSS 4 +// how much blood the limb needs to be losing per tick (not counting laying down/self grasping modifiers) to get the different bleed icons +#define BLEED_OVERLAY_LOW 0.5 +#define BLEED_OVERLAY_MED 1.5 +#define BLEED_OVERLAY_GUSH 3.25 + /// A "chronological" list of wound severities, starting at the least severe. GLOBAL_LIST_INIT(wound_severities_chronological, list( "[WOUND_SEVERITY_TRIVIAL]", diff --git a/code/__HELPERS/_auxtools_api.dm b/code/__HELPERS/_auxtools_api.dm index 0117ded4c5195..a907be8ecf8fb 100644 --- a/code/__HELPERS/_auxtools_api.dm +++ b/code/__HELPERS/_auxtools_api.dm @@ -1,38 +1,3 @@ -#define AUXTOOLS_FULL_INIT 2 -#define AUXTOOLS_PARTIAL_INIT 1 - -GLOBAL_LIST_EMPTY(auxtools_initialized) -GLOBAL_PROTECT(auxtools_initialized) - -#define AUXTOOLS_CHECK(LIB)\ - if (!CONFIG_GET(flag/auxtools_enabled)) {\ - CRASH("Auxtools is not enabled in config!");\ - }\ - if (GLOB.auxtools_initialized[LIB] != AUXTOOLS_FULL_INIT) {\ - if (fexists(LIB)) {\ - var/string = call_ext(LIB,"auxtools_init")();\ - if(findtext(string, "SUCCESS")) {\ - GLOB.auxtools_initialized[LIB] = AUXTOOLS_FULL_INIT;\ - } else {\ - CRASH(string);\ - }\ - } else {\ - CRASH("No file named [LIB] found!")\ - }\ - }\ - -#define AUXTOOLS_SHUTDOWN(LIB)\ - if (GLOB.auxtools_initialized[LIB] == AUXTOOLS_FULL_INIT && fexists(LIB)){\ - call_ext(LIB,"auxtools_shutdown")();\ - GLOB.auxtools_initialized[LIB] = AUXTOOLS_PARTIAL_INIT;\ - }\ - -#define AUXTOOLS_FULL_SHUTDOWN(LIB)\ - if (GLOB.auxtools_initialized[LIB] && fexists(LIB)){\ - call_ext(LIB,"auxtools_full_shutdown")();\ - GLOB.auxtools_initialized[LIB] = FALSE;\ - } - /proc/auxtools_stack_trace(msg) CRASH(msg) diff --git a/code/__HELPERS/_dreamluau.dm b/code/__HELPERS/_dreamluau.dm new file mode 100644 index 0000000000000..1e1e315a2aebd --- /dev/null +++ b/code/__HELPERS/_dreamluau.dm @@ -0,0 +1,301 @@ +/* This comment bypasses grep checks */ /var/__dreamluau + +/* This comment also bypasses grep checks */ /var/__dreamluau_exists + +#define DREAMLUAU_EXISTS (__dreamluau_exists ||= fexists(DREAMLUAU)) + +#define DREAMLUAU (world.system_type == MS_WINDOWS ? "dreamluau.dll" : (__dreamluau ||= __detect_auxtools("dreamluau"))) + +#define DREAMLUAU_CALL(func) (!DREAMLUAU_EXISTS) ? null : call_ext(DREAMLUAU, "byond:[#func]") + +/** + * All of the following functions will return a string if the underlying rust code returns an error or a wrapped panic. + * The return values specified for each function are what they will return if successful. + */ + +/** + * As of 515.1631, byondapi does not provide direct access to `usr`. + * Use this function to pass `usr` into the dreamluau binary so that luau scripts can retrieve it. + * + * @return null on success + */ +#define DREAMLUAU_SET_USR DREAMLUAU_CALL(set_usr)(usr) + + +/** + * Sets the execution limit, in milliseconds. + * + * @param limit the new execution limit + * + * @return null on success + */ +#define DREAMLUAU_SET_EXECUTION_LIMIT_MILLIS(limit) DREAMLUAU_CALL(set_execution_limit_millis)((limit)) + +/** + * Sets the execution limit, in seconds. + * + * @param limit the new execution limit + * + * @return null on success + */ +#define DREAMLUAU_SET_EXECUTION_LIMIT_SECS(limit) DREAMLUAU_CALL(set_execution_limit_secs)((limit)) + +/** + * Clears the execution limit, allowing scripts to run as long as they need to. + * + * WARNING: This allows infinite loops to block Dream Daemon indefinitely, with no safety checks. + * Do not use this if you have no reason for scripts to run arbitrarily long. + * + * @return null on success + */ +#define DREAMLUAU_CLEAR_EXECUTION_LIMIT DREAMLUAU_CALL(clear_execution_limit) + +//Wrapper setters/clearers + +/** + * Set the wrapper for instancing new datums with `dm.new`. + * Clears it if the argument is null. + * If unset, the object will be instantiated using the default `new` instruction. + * + * The wrapper must be a proc with the signature `(type as path, list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_NEW_WRAPPER(wrapper) DREAMLUAU_CALL(set_new_wrapper)((wrapper)) + +/** + * Set the wrapper for reading the vars of an object. + * Clears it if the argument is null. + * If unset, the var will be read directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(target, var)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_VAR_GET_WRAPPER(wrapper) DREAMLUAU_CALL(set_var_get_wrapper)((wrapper)) + +/** + * Set the wrapper for writing the vars of an object. + * Clears it if the argument is null. + * If unset, the var will be modified directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(target, var, value)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_VAR_SET_WRAPPER(wrapper) DREAMLUAU_CALL(set_var_set_wrapper)((wrapper)) + +/** + * Set the wrapper for calling a proc on an object. + * Clears it if the argument is null. + * If unset, the proc will be called directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(target, procname as text, list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_OBJECT_CALL_WRAPPER(wrapper) DREAMLUAU_CALL(set_object_call_wrapper)((wrapper)) + +/** + * Set the wrapper for calling a global proc. + * Clears it if the argument is null. + * If unset, the proc will be called directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(procname as text, list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_GLOBAL_CALL_WRAPPER(wrapper) DREAMLUAU_CALL(set_global_call_wrapper)((wrapper)) + +/** + * Set the wrapper for printing with the `print` function. + * Clears it if the argument is null. + * If unset, `print` will raise an error. + * + * The wrapper must be a proc with the signature `(list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_PRINT_WRAPPER(wrapper) DREAMLUAU_CALL(set_print_wrapper)((wrapper)) + + + +/** + * Create a new luau state. + * + * @return a handle to the created state. + */ +#define DREAMLUAU_NEW_STATE DREAMLUAU_CALL(new_state) + +/** + * Some of the following functions return values that cannot be cleanly converted from luau to DM. + * To account for this, these functions also return a list of variant specifiers, equivalent to + * an array of objects of the type described beloe: + * ``` + * type Variants = { + * key?: "error"|Array + * value?: "error"|Array + * } + * ``` + */ + +/** + * The following 4 functions execute luau code and return + * an associative list containing information about the result. + * This list has the following params. + * + * - "status": either "finished", "sleep", "yield", or "error" + * - "return_values": if "status" is "finished" or "yield", contains a list of the return values + * - "variants": a list of variant specifiers for the "return_values" param + * - "message": if "status" is "error", contains the error message + * - "name": the name of the executed code, according to the `what` field of `debug.getinfo` + */ + +/** + * Load and execute a luau script. + * + * @param state the handle to the state + * @param code the source code of the script to run + * @param name an optional name to give to the script, for debugging purposes + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_LOAD DREAMLUAU_CALL(load) + +/** + * Awaken the thread at the front of the specified state's sleeping thread queue. + * + * @param state the handle to the state + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_AWAKEN(state) DREAMLUAU_CALL(awaken)((state)) + +/** + * Resume one of the state's yielded threads. + * + * @param state the handle to the state + * @param index the index of the thread in the state's yielded threads list + * @param ...arguments arguments that will be returned by the `coroutine.yield` that yielded the thread + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_RESUME DREAMLUAU_CALL(resume) + +/** + * Call a function accessible from the global table. + * + * @param state the handle to the state + * @param function a list of nested indices from the global table to the specified function + * @param ...arguments arguments to pass to the function + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_CALL_FUNCTION DREAMLUAU_CALL(call_function) + +// State information collection functions + +/** + * Obtain a copy of the state's global table, converted to DM. + * + * @param state the handle to the state + * + * @return an associative list with the follwing entries: + * - "values": The actual values of the global table + * - "variants": Variant specifiers for "values" + */ +#define DREAMLUAU_GET_GLOBALS(state) DREAMLUAU_CALL(get_globals)((state)) + +/** + * List the names of all sleeping or yielded threads for the state. + * + * @param state the handle to the state + * + * @return an associative list with the following entries: + * - "sleeps": A list of sleeping threads + * - "yields": A list of yielded threads + */ +#define DREAMLUAU_LIST_THREADS(state) DREAMLUAU_CALL(list_threads)((state)) + +// Cleanup functions + +/** + * Run garbage collection on the state. + * + * This may be necessary to prevent hanging references, as some + * hard references may persist in unreachable luau objects that + * would be collected after a garbage collection cycle or two. + * + * @param state the handle to the state + * + * @return null on success + */ +#define DREAMLUAU_COLLECT_GARBAGE(state) DREAMLUAU_CALL(collect_garbage)((state)) + +/** + * Remove a sleeping thread from the sleep queue, without executing it. + * + * @param state the handle to the state + * @param thread the index in the sleep queue to the target thread + * + * @return null on success + */ +#define DREAMLUAU_KILL_SLEEPING_THREAD(state, thread) DREAMLUAU_CALL(kill_sleeping_thread)((state), (thread)) + +/** + * Remove a yielded thread from the yield table, without executing it. + * + * @param state the handle to the state + * @param thread the index in the yield table to the target thread + * + * @return null on success + */ +#define DREAMLUAU_KILL_YIELDED_THREAD(state, thread) DREAMLUAU_CALL(kill_yielded_thread)((state), (thread)) + +/** + * Delete a state. The state's handle will be freed for any new states created afterwards. + * + * @param state the handle to the state + * + * @return null on success + */ +#define DREAMLUAU_KILL_STATE(state) DREAMLUAU_CALL(kill_state)((state)) + +/** + * Retrieve lua traceback info, containing every lua stack frame between the lua entrypoint and the re-entry to dm code. + * + * @param level the level of lua execution to get the traceback for, + * with 1 being the lua code that executed the dm code that called this function, + * 2 being the lua code that executed the dm code that executed the lua code + * that executed the dm code that called this function, etc. + * + * @return the callstack of the specified lua level if valid, null if invalid + */ +#define DREAMLUAU_GET_TRACEBACK(index) DREAMLUAU_CALL(get_traceback)((index)) + +/** + * Luau userdata corresponding to a ref-counted DM type counts as a hard reference for BYOND's garbage collector. + * If you need to delete a DM object, and you cannot be certain that there are no references to it in any luau state, + * call this function before deleting that object to disassociate it from any userdata in any luau state. + * + * Hard deleting an object without clearing userdata corresponding to it leaves the userdata to become associated with + * the next DM object to receive the old object's reference ID, which may be undesirable behavior. + * + * @param object the object to disassociate from userdata. + * + * @return null on success + */ +#define DREAMLUAU_CLEAR_REF_USERDATA(object) DREAMLUAU_CALL(clear_ref_userdata)((object)) + diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 6811a31284aa4..acaacd24010e9 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -247,6 +247,13 @@ return "[output][and_text][input[index]]" +///Returns a list of atom types in plain english as a string of each type name +/proc/type_english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) + var/list/english_input = list() + for(var/atom/type as anything in input) + english_input += "[initial(type.name)]" + return english_list(english_input, nothing_text, and_text, comma_text, final_comma_text) + /** * Checks for specific types in a list. * @@ -850,7 +857,7 @@ used_key_list[input_key] = 1 return input_key -///Flattens a keyed list into a list of it's contents +///Flattens a keyed list into a list of its contents /proc/flatten_list(list/key_list) if(!islist(key_list)) return null @@ -978,53 +985,57 @@ else return element -/// Returns a copy of the list where any element that is a datum or the world is converted into a ref -/proc/refify_list(list/target_list, list/visited, path_accumulator = "list") +/** + * Intermediate step for preparing lists to be passed into the lua editor tgui. + * Resolves weakrefs, converts some values without a standard textual representation to text, + * and can handle self-referential lists and potential duplicate output keys. + */ +/proc/prepare_lua_editor_list(list/target_list, list/visited) if(!visited) visited = list() var/list/ret = list() - visited[target_list] = path_accumulator + visited[target_list] = ret + var/list/duplicate_keys = list() for(var/i in 1 to target_list.len) var/key = target_list[i] var/new_key = key if(isweakref(key)) var/datum/weakref/ref = key - var/resolved = ref.resolve() - if(resolved) - new_key = "[resolved] [REF(resolved)]" - else - new_key = "null weakref [REF(key)]" - else if(isdatum(key)) - new_key = "[key] [REF(key)]" + new_key = ref.resolve() || "null weakref" else if(key == world) - new_key = "world [REF(world)]" + new_key = world.name + else if(ref(key) == "\[0xe000001\]") + new_key = "global" else if(islist(key)) - if(visited.Find(key)) + if(visited[key]) new_key = visited[key] else - new_key = refify_list(key, visited, path_accumulator + "\[[i]\]") + new_key = prepare_lua_editor_list(key, visited) var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) + if(!isnull(key) && !isnum(key)) value = target_list[key] if(isweakref(value)) var/datum/weakref/ref = value - var/resolved = ref.resolve() - if(resolved) - value = "[resolved] [REF(resolved)]" - else - value = "null weakref [REF(key)]" - else if(isdatum(value)) - value = "[value] [REF(value)]" - else if(value == world) - value = "world [REF(world)]" + value = ref.resolve() || "null weakref" + if(value == world) + value = "world" + else if(ref(value) == "\[0xe000001\]") + value = "global" else if(islist(value)) - if(visited.Find(value)) + if(visited[value]) value = visited[value] else - value = refify_list(value, visited, path_accumulator + "\[[key]\]") - var/list/to_add = list(new_key) - if(value) - to_add[new_key] = value + value = prepare_lua_editor_list(value, visited) + var/list/to_add = list() + if(!isnull(value)) + var/final_key = new_key + while(duplicate_keys[final_key]) + duplicate_keys[new_key]++ + final_key = "[new_key] ([duplicate_keys[new_key]])" + duplicate_keys[final_key] = 1 + to_add[final_key] = value + else + to_add += list(new_key) ret += to_add if(i < target_list.len) CHECK_TICK @@ -1033,29 +1044,31 @@ /** * Converts a list into a list of assoc lists of the form ("key" = key, "value" = value) * so that list keys that are themselves lists can be fully json-encoded + * and that unique objects with the same string representation do not + * produce duplicate keys that are clobbered by the standard JavaScript JSON.parse function */ -/proc/kvpify_list(list/target_list, depth = INFINITY, list/visited, path_accumulator = "list") +/proc/kvpify_list(list/target_list, depth = INFINITY, list/visited) if(!visited) visited = list() var/list/ret = list() - visited[target_list] = path_accumulator + visited[target_list] = ret for(var/i in 1 to target_list.len) var/key = target_list[i] var/new_key = key if(islist(key) && depth) - if(visited.Find(key)) + if(visited[key]) new_key = visited[key] else - new_key = kvpify_list(key, depth-1, visited, path_accumulator + "\[[i]\]") + new_key = kvpify_list(key, depth-1, visited) var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) + if(!isnull(key) && !isnum(key)) value = target_list[key] if(islist(value) && depth) - if(visited.Find(value)) + if(visited[value]) value = visited[value] else - value = kvpify_list(value, depth-1, visited, path_accumulator + "\[[key]\]") - if(value) + value = kvpify_list(value, depth-1, visited) + if(!isnull(value)) ret += list(list("key" = new_key, "value" = value)) else ret += list(list("key" = i, "value" = new_key)) @@ -1065,12 +1078,12 @@ /// Compares 2 lists, returns TRUE if they are the same /proc/deep_compare_list(list/list_1, list/list_2) - if(!islist(list_1) || !islist(list_2)) - return FALSE - if(list_1 == list_2) return TRUE + if(!islist(list_1) || !islist(list_2)) + return FALSE + if(list_1.len != list_2.len) return FALSE @@ -1093,11 +1106,11 @@ return TRUE /// Returns a copy of the list where any element that is a datum is converted into a weakref -/proc/weakrefify_list(list/target_list, list/visited, path_accumulator = "list") +/proc/weakrefify_list(list/target_list, list/visited) if(!visited) visited = list() var/list/ret = list() - visited[target_list] = path_accumulator + visited[target_list] = ret for(var/i in 1 to target_list.len) var/key = target_list[i] var/new_key = key @@ -1107,62 +1120,19 @@ if(visited.Find(key)) new_key = visited[key] else - new_key = weakrefify_list(key, visited, path_accumulator + "\[[i]\]") + new_key = weakrefify_list(key, visited) var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) + if(!isnull(key) && !isnum(key)) value = target_list[key] if(isdatum(value)) value = WEAKREF(value) else if(islist(value)) - if(visited.Find(value)) + if(visited[value]) value = visited[value] else - value = weakrefify_list(value, visited, path_accumulator + "\[[key]\]") - var/list/to_add = list(new_key) - if(value) - to_add[new_key] = value - ret += to_add - if(i < target_list.len) - CHECK_TICK - return ret - -/// Returns a copy of a list where text values (except assoc-keys and string representations of lua-only values) are -/// wrapped in quotes and existing quote marks are escaped, -/// and nulls are replaced with the string "null" -/proc/encode_text_and_nulls(list/target_list, list/visited) - var/static/regex/lua_reference_regex - if(!lua_reference_regex) - lua_reference_regex = regex(@"^((function)|(table)|(thread)|(userdata)): 0x[0-9a-fA-F]+$") - if(!visited) - visited = list() - var/list/ret = list() - visited[target_list] = TRUE - for(var/i in 1 to target_list.len) - var/key = target_list[i] - var/new_key = key - if(istext(key) && !target_list[key] && !lua_reference_regex.Find(key)) - new_key = "\"[replacetext(key, "\"", "\\\"")]\"" - else if(islist(key)) - var/found_index = visited.Find(key) - if(found_index) - new_key = visited[found_index] - else - new_key = encode_text_and_nulls(key, visited) - else if(isnull(key)) - new_key = "null" - var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) - value = target_list[key] - if(istext(value) && !lua_reference_regex.Find(value)) - value = "\"[replacetext(value, "\"", "\\\"")]\"" - else if(islist(value)) - var/found_index = visited.Find(value) - if(found_index) - value = visited[found_index] - else - value = encode_text_and_nulls(value, visited) + value = weakrefify_list(value, visited) var/list/to_add = list(new_key) - if(value) + if(!isnull(value)) to_add[new_key] = value ret += to_add if(i < target_list.len) @@ -1188,3 +1158,155 @@ if("x" in coords) return locate(coords["x"], coords["y"], coords["z"]) return locate(coords[1], coords[2], coords[3]) + +/** + * Given a list and a list of its variant hints, appends variants that aren't explicitly required by dreamluau, + * but are required by the lua editor tgui. + */ +/proc/add_lua_editor_variants(list/values, list/variants, list/visited, path = "") + if(!islist(visited)) + visited = list() + visited[values] = "\[\]" + if(!islist(values) || !islist(variants)) + return + if(values.len != variants.len) + CRASH("values and variants must be the same length") + for(var/i in 1 to variants.len) + var/pair = variants[i] + var/pair_modified = FALSE + if(isnull(pair)) + pair = list("key", "value") + var/key = values[i] + if(islist(key)) + if(visited[key]) + pair["key"] = list("cycle", visited[key]) + else + var/list/key_variants = pair["key"] + var/new_path = path + "\[[i], \"key\"\]," + visited[key] = new_path + add_lua_editor_variants(key, key_variants, visited, new_path) + visited -= key + pair["key"] = list("list", key_variants) + pair_modified = TRUE + else if(isdatum(key) || key == world || ref(key) == "\[0xe000001\]") + pair["key"] = list("ref", ref(key)) + pair_modified = TRUE + var/value + if(!isnull(key) && !isnum(key)) + value = values[key] + if(islist(value)) + if(visited[value]) + pair["value"] = list("cycle", visited[value]) + else + var/list/value_variants = pair["value"] + var/new_path = path + "\[[i], \"value\"\]," + visited[value] = new_path + add_lua_editor_variants(value, value_variants, visited, new_path) + visited -= value + pair["value"] = list("list", value_variants) + pair_modified = TRUE + else if(isdatum(value) || value == world || ref(value) == "\[0xe000001\]") + pair["value"] = list("ref", ref(value)) + pair_modified = TRUE + if(pair_modified && pair != variants[i]) + variants[i] = pair + if(i < variants.len) + CHECK_TICK + +/proc/add_lua_return_value_variants(list/values, list/variants) + if(!islist(values) || !islist(variants)) + return + if(values.len != variants.len) + CRASH("values and variants must be the same length") + for(var/i in 1 to values.len) + var/value = values[i] + if(islist(value)) + add_lua_editor_variants(value, variants[i]) + else if(isdatum(value) || value == world || ref(value) == "\[0xe000001\]") + variants[i] = list("ref", ref(value)) + +/proc/deep_copy_without_cycles(list/values, list/visited) + if(!islist(visited)) + visited = list() + if(!islist(values)) + return values + var/list/ret = list() + var/cycle_count = 0 + visited[values] = TRUE + for(var/i in 1 to values.len) + var/key = values[i] + var/out_key = key + if(islist(key)) + if(visited[key]) + do + out_key = "\[cyclical reference[cycle_count ? " (i)" : ""]\]" + cycle_count++ + while(values.Find(out_key)) + else + visited[key] = TRUE + out_key = deep_copy_without_cycles(key, visited) + visited -= key + var/value + if(!isnull(key) && !isnum(key)) + value = values[key] + var/out_value = value + if(islist(value)) + if(visited[value]) + out_value = "\[cyclical reference\]" + else + visited[value] = TRUE + out_value = deep_copy_without_cycles(value, visited) + visited -= value + var/list/to_add = list(out_key) + if(!isnull(out_value)) + to_add[out_key] = out_value + ret += to_add + if(i < values.len) + CHECK_TICK + return ret + +/** + * Given a list and a list of its variant hints, removes any list key/values that are represent lua values that could not be directly converted to DM. + */ +/proc/remove_non_dm_variants(list/return_values, list/variants, list/visited) + if(!islist(visited)) + visited = list() + if(!islist(return_values) || !islist(variants) || visited[return_values]) + return + visited[return_values] = TRUE + if(return_values.len != variants.len) + CRASH("return_values and variants must be the same length") + for(var/i in 1 to variants.len) + var/pair = variants[i] + if(!islist(variants)) + continue + var/key = return_values[i] + if(pair["key"]) + if(!islist(pair["key"])) + return_values[i] = null + continue + remove_non_dm_variants(key, pair["key"], visited) + if(pair["value"]) + if(!islist(pair["value"])) + return_values[key] = null + continue + remove_non_dm_variants(return_values[key], pair["value"], visited) + +/proc/compare_lua_logs(list/log_1, list/log_2) + if(log_1 == log_2) + return TRUE + for(var/field in list("status", "name", "message", "chunk")) + if(log_1[field] != log_2[field]) + return FALSE + switch(log_1["status"]) + if("finished", "yield") + return deep_compare_list( + recursive_list_resolve(log_1["return_values"]), + recursive_list_resolve(log_2["return_values"]) + ) && deep_compare_list(log_1["variants"], log_2["variants"]) + if("runtime") + return log_1["file"] == log_2["file"]\ + && log_1["line"] == log_2["line"]\ + && deep_compare_list(log_1["stack"], log_2["stack"]) + else + return TRUE diff --git a/code/__HELPERS/_planes.dm b/code/__HELPERS/_planes.dm index 779319114076f..87e9ff2d1ce69 100644 --- a/code/__HELPERS/_planes.dm +++ b/code/__HELPERS/_planes.dm @@ -29,8 +29,8 @@ // Now for the more niche things -/// Takes an object, new plane, and multipler, and offsets the plane -/// This is for cases where you have a multipler precalculated, and just want to use it +/// Takes an object, new plane, and multiplier, and offsets the plane +/// This is for cases where you have a multiplier precalculated, and just want to use it /// Often an optimization, sometimes a necessity #define SET_PLANE_W_SCALAR(thing, new_value, multiplier) (thing.plane = GET_NEW_PLANE(new_value, multiplier)) diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index f81464013e01c..1d247c12e6ee7 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -5,6 +5,8 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(list( /area/station/engineering/supermatter, /area/station/engineering/atmospherics_engine, /area/station/ai_monitored/turret_protected/ai, + /area/ruin/comms_agent //fixes icemoon comms station being affected + ))) // Gets an atmos isolated contained space diff --git a/code/__HELPERS/atmospherics.dm b/code/__HELPERS/atmospherics.dm index 2a59cf60b403f..9ebafd5fbb528 100644 --- a/code/__HELPERS/atmospherics.dm +++ b/code/__HELPERS/atmospherics.dm @@ -105,13 +105,13 @@ GLOBAL_LIST_EMPTY(gas_handbook) factor_info["factor_name"] = factor factor_info["factor_type"] = "misc" if(factor == "Temperature" || factor == "Pressure") - factor_info["tooltip"] = "Reaction is influenced by the [LOWER_TEXT(factor)] of the place where the reaction is occuring." + factor_info["tooltip"] = "Reaction is influenced by the [LOWER_TEXT(factor)] of the place where the reaction is occurring." else if(factor == "Energy") factor_info["tooltip"] = "Energy released by the reaction, may or may not result in linear temperature change depending on a slew of other factors." else if(factor == "Radiation") factor_info["tooltip"] = "This reaction emits dangerous radiation! Take precautions." else if (factor == "Location") - factor_info["tooltip"] = "This reaction has special behaviour when occuring in specific locations." + factor_info["tooltip"] = "This reaction has special behaviour when occurring in specific locations." else if(factor == "Hot Ice") factor_info["tooltip"] = "Hot ice are solidified stacks of plasma. Ignition of one will result in a raging fire." reaction_info["factors"] += list(factor_info) @@ -138,13 +138,13 @@ GLOBAL_LIST_EMPTY(gas_handbook) factor_info["factor_name"] = factor factor_info["factor_type"] = "misc" if(factor == "Temperature" || factor == "Pressure") - factor_info["tooltip"] = "Reaction is influenced by the [LOWER_TEXT(factor)] of the place where the reaction is occuring." + factor_info["tooltip"] = "Reaction is influenced by the [LOWER_TEXT(factor)] of the place where the reaction is occurring." else if(factor == "Energy") factor_info["tooltip"] = "Energy released by the reaction, may or may not result in linear temperature change depending on a slew of other factors." else if(factor == "Radiation") factor_info["tooltip"] = "This reaction emits dangerous radiation! Take precautions." else if (factor == "Location") - factor_info["tooltip"] = "This reaction has special behaviour when occuring in specific locations." + factor_info["tooltip"] = "This reaction has special behaviour when occurring in specific locations." reaction_info["factors"] += list(factor_info) GLOB.reaction_handbook += list(reaction_info) qdel(reaction) diff --git a/code/__HELPERS/atoms.dm b/code/__HELPERS/atoms.dm index 406ea75143c66..d54b29b3f4ac9 100644 --- a/code/__HELPERS/atoms.dm +++ b/code/__HELPERS/atoms.dm @@ -33,6 +33,18 @@ processing += checked_atom.contents . += checked_atom +///Returns the src and all recursive contents, but skipping going any deeper if an atom has a specific trait. +/atom/proc/get_all_contents_skipping_traits(skipped_trait) + . = list(src) + if(!skipped_trait) + CRASH("get_all_contents_skipping_traits called without a skipped_trait") + var/i = 0 + while(i < length(.)) + var/atom/checked_atom = .[++i] + if(HAS_TRAIT(checked_atom, skipped_trait)) + continue + . += checked_atom.contents + ///Returns a list of all locations (except the area) the movable is within. /proc/get_nested_locs(atom/movable/atom_on_location, include_turf = FALSE) . = list() @@ -51,6 +63,8 @@ var/turf/target_turf = get_turf(target) if(get_dist(source, target) > length) return FALSE + if(current == target_turf) + return TRUE var/steps = 1 if(current == target_turf)//they are on the same turf, source can see the target return TRUE @@ -71,9 +85,9 @@ return get_dir(start, end) & (rand() * (dx+dy) < dy ? 3 : 12) /** - * Finds the distance between two atoms, in pixels - * centered = FALSE counts from turf edge to edge - * centered = TRUE counts from turf center to turf center + * Finds the distance between two atoms, in pixels \ + * centered = FALSE counts from turf edge to edge \ + * centered = TRUE counts from turf center to turf center \ * of course mathematically this is just adding world.icon_size on again **/ /proc/get_pixel_distance(atom/start, atom/end, centered = TRUE) @@ -81,7 +95,7 @@ return 0 . = bounds_dist(start, end) + sqrt((((start.pixel_x + end.pixel_x) ** 2) + ((start.pixel_y + end.pixel_y) ** 2))) if(centered) - . += world.icon_size + . += ICON_SIZE_ALL /** * Check if there is already a wall item on the turf loc @@ -322,6 +336,6 @@ rough example of the "cone" made by the 3 dirs checked var/icon_width = icon_dimensions["width"] var/icon_height = icon_dimensions["height"] return list( - "x" = icon_width > world.icon_size && pixel_x != 0 ? (icon_width - world.icon_size) * 0.5 : 0, - "y" = icon_height > world.icon_size && pixel_y != 0 ? (icon_height - world.icon_size) * 0.5 : 0, + "x" = icon_width > ICON_SIZE_X && pixel_x != 0 ? (icon_width - ICON_SIZE_X) * 0.5 : 0, + "y" = icon_height > ICON_SIZE_Y && pixel_y != 0 ? (icon_height - ICON_SIZE_Y) * 0.5 : 0, ) diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index f9957f4c7393e..76651964e24e0 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -195,3 +195,20 @@ /proc/cmp_deathmatch_mods(datum/deathmatch_modifier/a, datum/deathmatch_modifier/b) return sorttext(b.name, a.name) + +/** + * Orders fish types following this order (freshwater -> saltwater -> anadromous -> sulphuric water -> any water -> air) + * If both share the same required fluid type, they'll be ordered by name instead. + */ +/proc/cmp_fish_fluid(obj/item/fish/a, obj/item/fish/b) + var/static/list/fluids_priority = list( + AQUARIUM_FLUID_FRESHWATER, + AQUARIUM_FLUID_SALTWATER, + AQUARIUM_FLUID_ANADROMOUS, + AQUARIUM_FLUID_SULPHWATEVER, + AQUARIUM_FLUID_ANY_WATER, + AQUARIUM_FLUID_AIR, + ) + var/position_a = fluids_priority.Find(initial(a.required_fluid_type)) + var/position_b = fluids_priority.Find(initial(b.required_fluid_type)) + return cmp_numeric_asc(position_a, position_b) || cmp_text_asc(initial(b.name), initial(a.name)) diff --git a/code/__HELPERS/colors.dm b/code/__HELPERS/colors.dm index 9c70cef798eac..3a20e5ad60c09 100644 --- a/code/__HELPERS/colors.dm +++ b/code/__HELPERS/colors.dm @@ -101,5 +101,50 @@ return output +/** + * Gets a color for a name, will return the same color for a given string consistently within a round.atom + * + * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. + * + * Arguments: + * * name - The name to generate a color for + * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation + * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence + */ +/proc/colorize_string(name, sat_shift = 1, lum_shift = 1) + // seed to help randomness + var/static/rseed = rand(1,26) + + // get hsl using the selected 6 characters of the md5 hash + var/hash = copytext(md5(name + GLOB.round_id), rseed, rseed + 6) + var/h = hex2num(copytext(hash, 1, 3)) * (360 / 255) + var/s = (hex2num(copytext(hash, 3, 5)) >> 2) * ((CM_COLOR_SAT_MAX - CM_COLOR_SAT_MIN) / 63) + CM_COLOR_SAT_MIN + var/l = (hex2num(copytext(hash, 5, 7)) >> 2) * ((CM_COLOR_LUM_MAX - CM_COLOR_LUM_MIN) / 63) + CM_COLOR_LUM_MIN + + // adjust for shifts + s = clamp(s * sat_shift, 0, 1) + l = clamp(l * lum_shift, 0, 1) + + // convert to rgb + var/h_int = round(h/60) // mapping each section of H to 60 degree sections + var/c = (1 - abs(2 * l - 1)) * s + var/x = c * (1 - abs((h / 60) % 2 - 1)) + var/m = l - c * 0.5 + x = (x + m) * 255 + c = (c + m) * 255 + m *= 255 + switch(h_int) + if(0) + return "#[num2hex(c, 2)][num2hex(x, 2)][num2hex(m, 2)]" + if(1) + return "#[num2hex(x, 2)][num2hex(c, 2)][num2hex(m, 2)]" + if(2) + return "#[num2hex(m, 2)][num2hex(c, 2)][num2hex(x, 2)]" + if(3) + return "#[num2hex(m, 2)][num2hex(x, 2)][num2hex(c, 2)]" + if(4) + return "#[num2hex(x, 2)][num2hex(m, 2)][num2hex(c, 2)]" + if(5) + return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]" #define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255))) diff --git a/code/__HELPERS/construction.dm b/code/__HELPERS/construction.dm index f7b0ece13f894..166a009f06661 100644 --- a/code/__HELPERS/construction.dm +++ b/code/__HELPERS/construction.dm @@ -61,7 +61,7 @@ . = new target.type(target.drop_location(), amount, FALSE, target.mats_per_unit) /** - * divides a list of materials uniformly among all contents of the target_object reccursively + * divides a list of materials uniformly among all contents of the target_object recursively * Used to set materials of printed items with their design cost by taking into consideration their already existing materials * e.g. if 12 iron is to be divided uniformly among 2 objects A, B who's current iron contents are 3 & 7 * Then first we normalize those values i.e. find their weights to decide who gets an higher share of iron @@ -81,7 +81,7 @@ target_object.set_custom_materials(custom_materials, multiplier) return - //Step 1: Get reccursive contents of all objects, only filter obj cause that what's material container accepts + //Step 1: Get recursive contents of all objects, only filter obj cause that what's material container accepts var/list/reccursive_contents = target_object.get_all_contents_type(/obj/item) //Step 2: find the sum of each material type per object and record their amounts into an 2D list diff --git a/code/__HELPERS/duplicating.dm b/code/__HELPERS/duplicating.dm index 225dca91fb5b1..f0f3f9a9fce97 100644 --- a/code/__HELPERS/duplicating.dm +++ b/code/__HELPERS/duplicating.dm @@ -15,8 +15,6 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars, list( "contents", "cooldowns", "_datum_components", - "external_organs", - "external_organs_slot", "group", "hand_bodyparts", "held_items", diff --git a/code/__HELPERS/dynamic_human_icon_gen.dm b/code/__HELPERS/dynamic_human_icon_gen.dm index df8f4716bb918..f1f3be038a86b 100644 --- a/code/__HELPERS/dynamic_human_icon_gen.dm +++ b/code/__HELPERS/dynamic_human_icon_gen.dm @@ -57,6 +57,7 @@ GLOBAL_LIST_EMPTY(dynamic_human_appearances) /proc/set_dynamic_human_appearance(list/arguments) var/atom/target = arguments[1] //1st argument is the target var/dynamic_appearance = get_dynamic_human_appearance(arglist(arguments.Copy(2))) //the rest of the arguments starting from 2 matter to the proc - target.icon = 'icons/blanks/32x32.dmi' - target.icon_state = "nothing" + target.icon = 'icons/mob/human/human.dmi' + target.icon_state = "" + target.appearance_flags |= KEEP_TOGETHER target.copy_overlays(dynamic_appearance, cut_old = TRUE) diff --git a/code/__HELPERS/filters.dm b/code/__HELPERS/filters.dm index cd44409ddb239..14233a2807636 100644 --- a/code/__HELPERS/filters.dm +++ b/code/__HELPERS/filters.dm @@ -23,7 +23,7 @@ GLOBAL_LIST_INIT(master_filter_info, list( ) ), // Not implemented, but if this isn't uncommented some windows will just error - // Needs either a proper matrix editor, or just a hook to our existing one + // Needs either a proper matrix editor, or just a hook to our existing one // Issue is filterrific assumes variables will have the same value type if they share the same name, which this violates // Gotta refactor this sometime "color" = list( @@ -169,7 +169,7 @@ GLOBAL_LIST_INIT(master_filter_info, list( if(!isnull(space)) .["space"] = space -/proc/displacement_map_filter(icon, render_source, x, y, size = 32) +/proc/displacement_map_filter(icon, render_source, x, y, size = ICON_SIZE_ALL) . = list("type" = "displace") if(!isnull(icon)) .["icon"] = icon diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index aa953760bce71..1740402e62799 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -181,7 +181,7 @@ //First we spawn a dude. var/mob/living/carbon/human/new_character = new//The mob being spawned. - SSjob.SendToLateJoin(new_character) + SSjob.send_to_late_join(new_character) ghost_player.client.prefs.safe_transfer_prefs_to(new_character) new_character.dna.update_dna_identity() @@ -214,16 +214,16 @@ if(istype(atom_to_find, type)) return atom_to_find - while(!istype(atom_to_find.loc, type)) + while(!istype(atom_to_find, type)) if(!atom_to_find.loc) return atom_to_find = atom_to_find.loc else if(isatom(type)) atom_to_find = target - if(atom_to_find.loc == type) + if(atom_to_find == type) return atom_to_find - while(atom_to_find.loc != type) + while(atom_to_find != type) if(!atom_to_find.loc) return atom_to_find = atom_to_find.loc @@ -235,7 +235,7 @@ if(!SSticker.IsRoundInProgress() || QDELETED(character)) return var/area/player_area = get_area(character) - deadchat_broadcast(" has arrived at the station at [player_area.name].", "[character.real_name] ([rank])", follow_target = character, message_type=DEADCHAT_ARRIVALRATTLE) + deadchat_broadcast(span_game(" has arrived at the station at [span_name(player_area.name)]."), span_game("[span_name(character.real_name)] ([rank])"), follow_target = character, message_type=DEADCHAT_ARRIVALRATTLE) if(!character.mind) return if(!GLOB.announcement_systems.len) @@ -243,8 +243,16 @@ if(!(character.mind.assigned_role.job_flags & JOB_ANNOUNCE_ARRIVAL)) return - var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems) - announcer.announce("ARRIVAL", character.real_name, rank, list()) //make the list empty to make it announce it in common + var/obj/machinery/announcement_system/announcer + var/list/available_machines = list() + for(var/obj/machinery/announcement_system/announce as anything in GLOB.announcement_systems) + if(announce.arrival_toggle) + available_machines += announce + break + if(!length(available_machines)) + return + announcer = pick(available_machines) + announcer.announce(AUTO_ANNOUNCE_ARRIVAL, character.real_name, rank, list()) //make the list empty to make it announce it in common ///Check if the turf pressure allows specialized equipment to work /proc/lavaland_equipment_pressure_check(turf/turf_to_check) @@ -277,6 +285,35 @@ return pick(possible_loc) +///Checks to see if `atom/source` is behind `atom/target` +/proc/check_behind(atom/source, atom/target) + // Let's see if source is behind target + // "Behind" is defined as 3 tiles directly to the back of the target + // x . . + // x > . + // x . . + + // No tactical spinning allowed + if(HAS_TRAIT(target, TRAIT_SPINNING)) + return TRUE + + // We'll take "same tile" as "behind" for ease + if(target.loc == source.loc) + return TRUE + + // We'll also assume lying down is behind, as mob directions when lying are unclear + if(isliving(target)) + var/mob/living/living_target = target + if(living_target.body_position == LYING_DOWN) + return TRUE + + // Exceptions aside, let's actually check if they're, yknow, behind + var/dir_target_to_source = get_dir(target, source) + if(target.dir & REVERSE_DIR(dir_target_to_source)) + return TRUE + + return FALSE + ///Disable power in the station APCs /proc/power_fail(duration_min, duration_max) for(var/obj/machinery/power/apc/current_apc as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/power/apc)) @@ -294,7 +331,7 @@ * Tips that starts with the @ character won't be html encoded. That's necessary for any tip containing markup tags, * just make sure they don't also have html characters like <, > and ' which will be garbled. */ -/proc/send_tip_of_the_round(target, selected_tip) +/proc/send_tip_of_the_round(target, selected_tip, source = "Tip of the round") var/message if(selected_tip) message = selected_tip @@ -312,4 +349,4 @@ message = html_encode(message) else message = copytext(message, 2) - to_chat(target, span_purple(examine_block("Tip of the round: [message]"))) + to_chat(target, span_purple(examine_block("[source]: [message]"))) diff --git a/code/__HELPERS/generators.dm b/code/__HELPERS/generators.dm index d50df7deba198..85f6de3a090d4 100644 --- a/code/__HELPERS/generators.dm +++ b/code/__HELPERS/generators.dm @@ -5,7 +5,7 @@ * * Note: this means things like "list(1,2,3)" will need to be processed */ /proc/return_generator_args(generator/target) - var/string_repr = "[target]" //the name of the generator is the string representation of it's _binobj, which also contains it's args + var/string_repr = "[target]" //the name of the generator is the string representation of its _binobj, which also contains its args string_repr = copytext(string_repr, 11, length(string_repr)) // strips extraneous data string_repr = replacetext(string_repr, "\"", "") // removes the " around the type return splittext(string_repr, ", ") diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index bd991f29d014a..1bacd0ce2c774 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -178,7 +178,7 @@ GLOBAL_LIST_INIT(WALLITEMS_INTERIOR, typecacheof(list( /obj/machinery/defibrillator_mount, /obj/machinery/firealarm, /obj/machinery/flasher, - /obj/machinery/keycard_auth, + /obj/machinery/keycard_auth/wall_mounted, /obj/machinery/light_switch, /obj/machinery/newscaster, /obj/machinery/power/apc, diff --git a/code/__HELPERS/hallucinations.dm b/code/__HELPERS/hallucinations.dm index edd65ee926abf..d3d4a2630ed05 100644 --- a/code/__HELPERS/hallucinations.dm +++ b/code/__HELPERS/hallucinations.dm @@ -86,6 +86,30 @@ GLOBAL_LIST_EMPTY(all_ongoing_hallucinations) if(length(optional_messages)) to_chat(nearby_living, pick(optional_messages)) +/** + * Emits a hallucinating pulse around the passed atom. + * Affects everyone in the passed radius except for those with TRAIT_MADNESS_IMMUNE. This affects blind players. + * + * center - required, the center of the pulse + * radius - the radius around that the pulse reaches + * hallucination_duration - how much hallucination is added by the pulse. reduced based on distance to the center. + * hallucination_max_duration - a cap on how much hallucination can be added + * optional_messages - optional list of messages passed. Those affected by pulses will be given one of the messages in said list. + */ +/proc/hallucination_pulse(atom/center, radius = 7, hallucination_duration = 50 SECONDS, hallucination_max_duration, list/optional_messages) + for(var/mob/living/nearby_living in range(center, radius)) + if(HAS_MIND_TRAIT(nearby_living, TRAIT_MADNESS_IMMUNE)) + continue + + if(nearby_living.mob_biotypes & NO_HALLUCINATION_BIOTYPES) + continue + + // Everyone else gets hallucinations. + var/dist = sqrt(1 / max(1, get_dist(nearby_living, center))) + nearby_living.adjust_hallucinations_up_to(hallucination_duration * dist, hallucination_max_duration) + if(length(optional_messages)) + to_chat(nearby_living, pick(optional_messages)) + /// Global weighted list of all hallucinations that can show up randomly. GLOBAL_LIST_INIT(random_hallucination_weighted_list, generate_hallucination_weighted_list()) @@ -226,7 +250,7 @@ ADMIN_VERB(debug_hallucination_weighted_list_per_type, R_DEBUG, "Show Hallucinat if(!custom_icon_state) return - var/custom_name = tgui_input_text(user, "What name should it show up as? (Can be empty)", "Custom Delusion: Name") + var/custom_name = tgui_input_text(user, "What name should it show up as? (Can be empty)", "Custom Delusion: Name", max_length = MAX_NAME_LEN) delusion_args += list( custom_icon_file = custom_icon_file, diff --git a/code/__HELPERS/heap.dm b/code/__HELPERS/heap.dm index eeabfa6a20b4e..ede4c39f95040 100644 --- a/code/__HELPERS/heap.dm +++ b/code/__HELPERS/heap.dm @@ -26,7 +26,7 @@ swim(length(L)) //removes and returns the first element of the heap -//(i.e the max or the min dependant on the comparison function) +//(i.e the max or the min dependent on the comparison function) /datum/heap/proc/pop() if(!length(L)) return 0 diff --git a/code/__HELPERS/hearted.dm b/code/__HELPERS/hearted.dm index adae298516ec6..d8f7832cbc06b 100644 --- a/code/__HELPERS/hearted.dm +++ b/code/__HELPERS/hearted.dm @@ -45,11 +45,11 @@ var/heart_nominee switch(attempt) if(1) - heart_nominee = tgui_input_text(src, "What was their name? Just a first or last name may be enough.", "<3?") + heart_nominee = tgui_input_text(src, "What was their name? Just a first or last name may be enough.", "<3?", max_length = MAX_NAME_LEN) if(2) - heart_nominee = tgui_input_text(src, "Try again, what was their name? Just a first or last name may be enough.", "<3?") + heart_nominee = tgui_input_text(src, "Try again, what was their name? Just a first or last name may be enough.", "<3?", max_length = MAX_NAME_LEN) if(3) - heart_nominee = tgui_input_text(src, "One more try, what was their name? Just a first or last name may be enough.", "<3?") + heart_nominee = tgui_input_text(src, "One more try, what was their name? Just a first or last name may be enough.", "<3?", max_length = MAX_NAME_LEN) if(!heart_nominee) return diff --git a/code/__HELPERS/honkerblast.dm b/code/__HELPERS/honkerblast.dm index c0712f420f2d7..f49a5ca4aca29 100644 --- a/code/__HELPERS/honkerblast.dm +++ b/code/__HELPERS/honkerblast.dm @@ -5,7 +5,7 @@ var/list/properly_honked = list() var/list/severely_honked = list() - playsound(origin_turf, 'sound/items/airhorn.ogg', 100, TRUE) + playsound(origin_turf, 'sound/items/airhorn/airhorn.ogg', 100, TRUE) for(var/mob/living/carbon/victim as anything in hearers(max(light_range, medium_range, heavy_range), origin_turf)) if(!victim.can_hear()) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index d5b3ecb16aff2..ec238d2e495b0 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -272,7 +272,7 @@ world Blend(mask_icon, ICON_ADD) /// Converts an rgb color into a list storing hsva -/// Exists because it's useful to have a guarenteed alpha value +/// Exists because it's useful to have a guaranteed alpha value /proc/rgb2hsv(rgb) var/list/hsv = rgb2num(rgb, COLORSPACE_HSV) if(length(hsv) < 4) @@ -402,7 +402,7 @@ world /// appearance system (overlays/underlays, etc.) is not available. /// /// Only the first argument is required. -/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE) +/proc/getFlatIcon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, no_anim = FALSE, parentcolor) // Loop through the underlays, then overlays, sorting them into the layers list #define PROCESS_OVERLAYS_OR_UNDERLAYS(flat, process, base_layer) \ for (var/i in 1 to process.len) { \ @@ -466,25 +466,24 @@ world var/base_icon_dir //We'll use this to get the icon state to display if not null BUT NOT pass it to overlays as the dir we have - //Try to remove/optimize this section ASAP, CPU hog. - //Determines if there's directionals. - if(render_icon && curdir != SOUTH) - if ( - !length(icon_states(icon(curicon, curstate, NORTH))) \ - && !length(icon_states(icon(curicon, curstate, EAST))) \ - && !length(icon_states(icon(curicon, curstate, WEST))) \ - ) - base_icon_dir = SOUTH + if(render_icon) + //Try to remove/optimize this section if you can, it's a CPU hog. + //Determines if there're directionals. + if (curdir != SOUTH) + // icon states either have 1, 4 or 8 dirs. We only have to check + // one of NORTH, EAST or WEST to know that this isn't a 1-dir icon_state since they just have SOUTH. + if(!length(icon_states(icon(curicon, curstate, NORTH)))) + base_icon_dir = SOUTH + + var/list/icon_dimensions = get_icon_dimensions(curicon) + var/icon_width = icon_dimensions["width"] + var/icon_height = icon_dimensions["height"] + if(icon_width != 32 || icon_height != 32) + flat.Scale(icon_width, icon_height) if(!base_icon_dir) base_icon_dir = curdir - // Expand our canvas to fit if we're too big - if(render_icon) - var/icon/active_icon = icon(curicon) - if(active_icon.Width() != 32 || active_icon.Height() != 32) - flat.Scale(active_icon.Width(), active_icon.Height()) - var/curblend = appearance.blend_mode || defblend if(appearance.overlays.len || appearance.underlays.len) @@ -514,6 +513,20 @@ world var/addY1 = 0 var/addY2 = 0 + if(appearance.color) + if(islist(appearance.color)) + flat.MapColors(arglist(appearance.color)) + else + flat.Blend(appearance.color, ICON_MULTIPLY) + + if(parentcolor && !(appearance.appearance_flags & RESET_COLOR)) + if(islist(parentcolor)) + flat.MapColors(arglist(parentcolor)) + else + flat.Blend(parentcolor, ICON_MULTIPLY) + + var/next_parentcolor = appearance.color || parentcolor + for(var/image/layer_image as anything in layers) if(layer_image.alpha == 0) continue @@ -521,8 +534,14 @@ world if(layer_image == copy) // 'layer_image' is an /image based on the object being flattened. curblend = BLEND_OVERLAY add = icon(layer_image.icon, layer_image.icon_state, base_icon_dir) + if(appearance.color) + if(islist(appearance.color)) + add.MapColors(arglist(appearance.color)) + else + add.Blend(appearance.color, ICON_MULTIPLY) else // 'I' is an appearance object. - add = getFlatIcon(image(layer_image), curdir, curicon, curstate, curblend, FALSE, no_anim) + add = getFlatIcon(image(layer_image), curdir, curicon, curstate, curblend, FALSE, no_anim, next_parentcolor) + if(!add) continue @@ -554,11 +573,6 @@ world // Blend the overlay into the flattened icon flat.Blend(add, blendMode2iconMode(curblend), layer_image.pixel_x + 2 - flatX1, layer_image.pixel_y + 2 - flatY1) - if(appearance.color) - if(islist(appearance.color)) - flat.MapColors(arglist(appearance.color)) - else - flat.Blend(appearance.color, ICON_MULTIPLY) if(appearance.alpha < 255) flat.Blend(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY) @@ -815,11 +829,11 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) /// generates a filename for a given asset. /// like generate_asset_name(), except returns the rsc reference and the rsc file hash as well as the asset name (sans extension) -/// used so that certain asset files dont have to be hashed twice +/// used so that certain asset files don't have to be hashed twice /proc/generate_and_hash_rsc_file(file, dmi_file_path) var/rsc_ref = fcopy_rsc(file) var/hash - //if we have a valid dmi file path we can trust md5'ing the rsc file because we know it doesnt have the bug described in http://www.byond.com/forum/post/2611357 + //if we have a valid dmi file path we can trust md5'ing the rsc file because we know it doesn't have the bug described in http://www.byond.com/forum/post/2611357 if(dmi_file_path) hash = md5(rsc_ref) else //otherwise, we need to do the expensive fcopy() workaround @@ -845,7 +859,7 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) fdel(savefile_path) return new /savefile(savefile_path) catch(var/exception/error) - // if we failed to create a dummy once, try again; maybe someone slept somewhere they shouldnt have + // if we failed to create a dummy once, try again; maybe someone slept somewhere they shouldn't have if(from_failure) // this *is* the retry, something fucked up CRASH("get_dummy_savefile failed to create a dummy savefile: '[error]'") return get_dummy_savefile(from_failure = TRUE) @@ -890,18 +904,18 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) var/atom/atom_icon = icon icon = atom_icon.icon //atom icons compiled in from 'icons/path/to/dmi_file.dmi' are weird and not really icon objects that you generate with icon(). - //if theyre unchanged dmi's then they're stringifiable to "icons/path/to/dmi_file.dmi" + //if they're unchanged dmi's then they're stringifiable to "icons/path/to/dmi_file.dmi" if(isicon(icon) && isfile(icon)) - //icons compiled in from 'icons/path/to/dmi_file.dmi' at compile time are weird and arent really /icon objects, - ///but they pass both isicon() and isfile() checks. theyre the easiest case since stringifying them gives us the path we want + //icons compiled in from 'icons/path/to/dmi_file.dmi' at compile time are weird and aren't really /icon objects, + ///but they pass both isicon() and isfile() checks. they're the easiest case since stringifying them gives us the path we want var/icon_ref = text_ref(icon) var/locate_icon_string = "[locate(icon_ref)]" icon_path = locate_icon_string else if(isicon(icon) && "[icon]" == "/icon") - // icon objects generated from icon() at runtime are icons, but they ARENT files themselves, they represent icon files. + // icon objects generated from icon() at runtime are icons, but they AREN'T files themselves, they represent icon files. // if the files they represent are compile time dmi files in the rsc, then // the rsc reference returned by fcopy_rsc() will be stringifiable to "icons/path/to/dmi_file.dmi" var/rsc_ref = fcopy_rsc(icon) @@ -960,7 +974,7 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) if(!length(targets)) return - //check if the given object is associated with a dmi file in the icons folder. if it is then we dont need to do a lot of work + //check if the given object is associated with a dmi file in the icons folder. if it is then we don't need to do a lot of work //for asset generation to get around byond limitations var/icon_path = get_icon_dmi_path(thing) @@ -1004,7 +1018,7 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) var/list/name_and_ref = generate_and_hash_rsc_file(icon2collapse, icon_path)//pretend that tuples exist - var/rsc_ref = name_and_ref[1] //weird object thats not even readable to the debugger, represents a reference to the icons rsc entry + var/rsc_ref = name_and_ref[1] //weird object that's not even readable to the debugger, represents a reference to the icons rsc entry var/file_hash = name_and_ref[2] key = "[name_and_ref[3]].png" @@ -1024,7 +1038,7 @@ GLOBAL_LIST_EMPTY(friendly_animal_types) var/icon/target_icon = target var/icon_base64 = icon2base64(target_icon) - if (target_icon.Height() > world.icon_size || target_icon.Width() > world.icon_size) + if (target_icon.Height() > ICON_SIZE_Y || target_icon.Width() > ICON_SIZE_X) var/icon_md5 = md5(icon_base64) icon_base64 = bicon_cache[icon_md5] if (!icon_base64) // Doesn't exist yet, make it. @@ -1078,14 +1092,14 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) var/top_part_filter = filter(type="alpha",icon=icon('icons/effects/alphacolors.dmi',"white"),y=0) filters += top_part_filter var/filter_index = length(filters) - animate(filters[filter_index],y=-32,time=time) + animate(filters[filter_index],y=-ICON_SIZE_Y,time=time) //Appearing part var/obj/effect/overlay/appearing_part = new appearing_part.appearance = result_appearance appearing_part.appearance_flags |= KEEP_TOGETHER | KEEP_APART appearing_part.vis_flags = VIS_INHERIT_ID appearing_part.filters = filter(type="alpha",icon=icon('icons/effects/alphacolors.dmi',"white"),y=0,flags=MASK_INVERSE) - animate(appearing_part.filters[1],y=-32,time=time) + animate(appearing_part.filters[1],y=-ICON_SIZE_Y,time=time) transformation_objects += appearing_part //Transform effect thing if(transform_appearance) @@ -1132,19 +1146,19 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) if(!x_dimension || !y_dimension) return - if((x_dimension == world.icon_size) && (y_dimension == world.icon_size)) + if((x_dimension == ICON_SIZE_X) && (y_dimension == ICON_SIZE_Y)) return image_to_center - //Offset the image so that it's bottom left corner is shifted this many pixels + //Offset the image so that its bottom left corner is shifted this many pixels //This makes it infinitely easier to draw larger inhands/images larger than world.iconsize //but still use them in game - var/x_offset = -((x_dimension / world.icon_size) - 1) * (world.icon_size * 0.5) - var/y_offset = -((y_dimension / world.icon_size) - 1) * (world.icon_size * 0.5) + var/x_offset = -((x_dimension / ICON_SIZE_X) - 1) * (ICON_SIZE_X * 0.5) + var/y_offset = -((y_dimension / ICON_SIZE_Y) - 1) * (ICON_SIZE_Y * 0.5) - //Correct values under world.icon_size - if(x_dimension < world.icon_size) + //Correct values under icon_size + if(x_dimension < ICON_SIZE_X) x_offset *= -1 - if(y_dimension < world.icon_size) + if(y_dimension < ICON_SIZE_Y) y_offset *= -1 image_to_center.pixel_x = x_offset @@ -1202,7 +1216,7 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) */ /proc/get_size_in_tiles(obj/target) var/icon/size_check = icon(target.icon, target.icon_state) - var/size = size_check.Width() / world.icon_size + var/size = size_check.Width() / ICON_SIZE_X return size @@ -1215,11 +1229,11 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) var/size = get_size_in_tiles(src) if(dir in list(NORTH, SOUTH)) - bound_width = size * world.icon_size - bound_height = world.icon_size + bound_width = size * ICON_SIZE_X + bound_height = ICON_SIZE_Y else - bound_width = world.icon_size - bound_height = size * world.icon_size + bound_width = ICON_SIZE_X + bound_height = size * ICON_SIZE_Y /// Returns a list containing the width and height of an icon file /proc/get_icon_dimensions(icon_path) @@ -1239,21 +1253,23 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) var/mutable_appearance/alert_overlay = new(source) alert_overlay.pixel_x = 0 alert_overlay.pixel_y = 0 + alert_overlay.pixel_z = 0 + alert_overlay.pixel_w = 0 var/scale = 1 var/list/icon_dimensions = get_icon_dimensions(source.icon) var/width = icon_dimensions["width"] var/height = icon_dimensions["height"] - if(width > world.icon_size) - alert_overlay.pixel_x = -(world.icon_size / 2) * ((width - world.icon_size) / world.icon_size) - if(height > world.icon_size) - alert_overlay.pixel_y = -(world.icon_size / 2) * ((height - world.icon_size) / world.icon_size) - if(width > world.icon_size || height > world.icon_size) + if(width > ICON_SIZE_X) + alert_overlay.pixel_x = -(ICON_SIZE_X / 2) * ((width - ICON_SIZE_X) / ICON_SIZE_X) + if(height > ICON_SIZE_Y) + alert_overlay.pixel_y = -(ICON_SIZE_Y / 2) * ((height - ICON_SIZE_Y) / ICON_SIZE_Y) + if(width > ICON_SIZE_X || height > ICON_SIZE_Y) if(width >= height) - scale = world.icon_size / width + scale = ICON_SIZE_X / width else - scale = world.icon_size / height + scale = ICON_SIZE_Y / height alert_overlay.transform = alert_overlay.transform.Scale(scale) return alert_overlay diff --git a/code/__HELPERS/levels.dm b/code/__HELPERS/levels.dm index 096655ad748bd..ca2cd3c5db3a3 100644 --- a/code/__HELPERS/levels.dm +++ b/code/__HELPERS/levels.dm @@ -56,5 +56,5 @@ // Syndicate recon outpost is on some moon or something return TRUE - // Finally, more specific checks are ran for edge cases, such as lazyily loaded map templates or away missions. Not perfect. + // Finally, more specific checks are ran for edge cases, such as lazily loaded map templates or away missions. Not perfect. return istype(what_turf) && what_turf.planetary_atmos && what_turf.has_gravity() diff --git a/code/__HELPERS/logging/mob.dm b/code/__HELPERS/logging/mob.dm index 7b4b0ac070586..b6bebf74f689b 100644 --- a/code/__HELPERS/logging/mob.dm +++ b/code/__HELPERS/logging/mob.dm @@ -1,5 +1,5 @@ /** - * Logs a mesage to the mob_tags log, including the mobs tag + * Logs a message to the mob_tags log, including the mobs tag * Arguments: * * text - text to log. */ diff --git a/code/__HELPERS/maths.dm b/code/__HELPERS/maths.dm index 0271b2e4601cc..7e6db6fb0209b 100644 --- a/code/__HELPERS/maths.dm +++ b/code/__HELPERS/maths.dm @@ -2,8 +2,8 @@ /proc/get_angle(atom/movable/start, atom/movable/end)//For beams. if(!start || !end) return 0 - var/dy =(32 * end.y + end.pixel_y) - (32 * start.y + start.pixel_y) - var/dx =(32 * end.x + end.pixel_x) - (32 * start.x + start.pixel_x) + var/dy =(ICON_SIZE_Y * end.y + end.pixel_y) - (ICON_SIZE_Y * start.y + start.pixel_y) + var/dx =(ICON_SIZE_X * end.x + end.pixel_x) - (ICON_SIZE_X * start.x + start.pixel_x) return delta_to_angle(dx, dy) /// Calculate the angle produced by a pair of x and y deltas @@ -18,8 +18,8 @@ /// Angle between two arbitrary points and horizontal line same as [/proc/get_angle] /proc/get_angle_raw(start_x, start_y, start_pixel_x, start_pixel_y, end_x, end_y, end_pixel_x, end_pixel_y) - var/dy = (32 * end_y + end_pixel_y) - (32 * start_y + start_pixel_y) - var/dx = (32 * end_x + end_pixel_x) - (32 * start_x + start_pixel_x) + var/dy = (ICON_SIZE_Y * end_y + end_pixel_y) - (ICON_SIZE_Y * start_y + start_pixel_y) + var/dx = (ICON_SIZE_X * end_x + end_pixel_x) - (ICON_SIZE_X * start_x + start_pixel_x) if(!dy) return (dx >= 0) ? 90 : 270 . = arctan(dx/dy) @@ -60,7 +60,7 @@ var/y_distance_sign = SIGN(y_distance) var/x = abs_x_distance >> 1 //Counters for steps taken, setting to distance/2 - var/y = abs_y_distance >> 1 //Bit-shifting makes me l33t. It also makes get_line() unnessecarrily fast. + var/y = abs_y_distance >> 1 //Bit-shifting makes me l33t. It also makes get_line() unnecessarily fast. if(abs_x_distance >= abs_y_distance) //x distance is greater than y for(var/distance_counter in 0 to (abs_x_distance - 1))//It'll take abs_x_distance steps to get there @@ -86,7 +86,7 @@ /** * Get a list of turfs in a perimeter given the `center_atom` and `radius`. - * Automatically rounds down decimals and does not accept values less than positive 1 as they dont play well with it. + * Automatically rounds down decimals and does not accept values less than positive 1 as they don't play well with it. * Is efficient on large circles but ugly on small ones * Uses [Jesko`s method to the midpoint circle Algorithm](https://en.wikipedia.org/wiki/Midpoint_circle_algorithm). */ @@ -241,3 +241,7 @@ /// Useful for providing an additive modifier to a value that is used as a divisor, such as `/obj/projectile/var/speed` /proc/reciprocal_add(x, y) return 1/((1/x)+y) + +/// 180s an angle +/proc/reverse_angle(angle) + return (angle + 180) % 360 diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm index 68b94fc2fe654..8a5534e3827b8 100644 --- a/code/__HELPERS/matrices.dm +++ b/code/__HELPERS/matrices.dm @@ -40,8 +40,7 @@ decompose_matrix.rotation = arctan(cossine, sine) * flip_sign /matrix/proc/TurnTo(old_angle, new_angle) - . = new_angle - old_angle - Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT + return Turn(new_angle - old_angle) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT /** * Shear the transform on either or both axes. diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 67faf3f32b72c..867f6f9e7649d 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -208,7 +208,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( var/atom/target_loc = target?.loc var/drifting = FALSE - if(GLOB.move_manager.processing_on(user, SSspacedrift)) + if(GLOB.move_manager.processing_on(user, SSnewtonian_movement)) drifting = TRUE var/holding = user.get_active_held_item() @@ -237,7 +237,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( if(!QDELETED(progbar)) progbar.update(world.time - starttime) - if(drifting && !GLOB.move_manager.processing_on(user, SSspacedrift)) + if(drifting && !GLOB.move_manager.processing_on(user, SSnewtonian_movement)) drifting = FALSE user_loc = user.loc @@ -542,8 +542,8 @@ GLOBAL_LIST_INIT(skin_tone_names, list( * When passed the difference between two temperatures returns the amount of change to temperature to apply. * The change rate should be kept at a low value tween 0.16 and 0.02 for optimal results. * vars: - * * temp_diff (required) The differance between two temperatures - * * change_rate (optional)(Default: 0.06) The rate of range multiplyer + * * temp_diff (required) The difference between two temperatures + * * change_rate (optional)(Default: 0.06) The rate of range multiplier */ /proc/get_temp_change_amount(temp_diff, change_rate = 0.06) if(temp_diff < 0) @@ -632,7 +632,7 @@ GLOBAL_LIST_INIT(skin_tone_names, list( else return zone -///Takes a zone and returns it's "parent" zone, if it has one. +///Takes a zone and returns its "parent" zone, if it has one. /proc/deprecise_zone(precise_zone) switch(precise_zone) if(BODY_ZONE_PRECISE_GROIN) @@ -693,6 +693,8 @@ GLOBAL_LIST_INIT(skin_tone_names, list( slot_strings += "dextrous storage" if(slot_flags & ITEM_SLOT_BACKPACK) slot_strings += "backpack" + if(slot_flags & ITEM_SLOT_BELTPACK) + slot_strings += "belt" // ? return slot_strings ///Returns the direction that the initiator and the target are facing diff --git a/code/__HELPERS/mouse_control.dm b/code/__HELPERS/mouse_control.dm index 0c99e53e7a0cd..14588b41cb701 100644 --- a/code/__HELPERS/mouse_control.dm +++ b/code/__HELPERS/mouse_control.dm @@ -11,8 +11,8 @@ var/x = (text2num(screen_loc_X[1]) * 32 + text2num(screen_loc_X[2]) - 32) var/y = (text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32) var/list/screenview = getviewsize(client.view) - var/screenviewX = screenview[1] * world.icon_size - var/screenviewY = screenview[2] * world.icon_size + var/screenviewX = screenview[1] * ICON_SIZE_X + var/screenviewY = screenview[2] * ICON_SIZE_Y var/ox = round(screenviewX/2) - client.pixel_x //"origin" x var/oy = round(screenviewY/2) - client.pixel_y //"origin" y var/angle = SIMPLIFY_DEGREES(ATAN2(y - oy, x - ox)) diff --git a/code/__HELPERS/movement.dm b/code/__HELPERS/movement.dm new file mode 100644 index 0000000000000..e820b3dfff125 --- /dev/null +++ b/code/__HELPERS/movement.dm @@ -0,0 +1,2 @@ +/// Converts w_class into newtons from throwing it, in (0.6 ~ 2.2) range +#define WEIGHT_TO_NEWTONS(w_class, arguments...) 0.2 NEWTONS + w_class * 0.4 NEWTONS diff --git a/code/__HELPERS/paths/path.dm b/code/__HELPERS/paths/path.dm index 189120b76c3bc..9530a5452351a 100644 --- a/code/__HELPERS/paths/path.dm +++ b/code/__HELPERS/paths/path.dm @@ -16,7 +16,7 @@ */ /proc/get_path_to(atom/movable/caller, atom/end, max_distance = 30, mintargetdist, access=list(), simulated_only = TRUE, turf/exclude, skip_first=TRUE, diagonal_handling=DIAGONAL_REMOVE_CLUNKY) var/list/hand_around = list() - // We're guarenteed that list will be the first list in pathfinding_finished's argset because of how callback handles the arguments list + // We're guaranteed that list will be the first list in pathfinding_finished's argset because of how callback handles the arguments list var/datum/callback/await = list(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(pathfinding_finished), hand_around)) if(!SSpathfinder.pathfind(caller, end, max_distance, mintargetdist, access, simulated_only, exclude, skip_first, diagonal_handling, await)) return list() @@ -49,7 +49,7 @@ */ /proc/get_swarm_path_to(atom/movable/caller, atom/end, max_distance = 30, mintargetdist, age = MAP_REUSE_INSTANT, access = list(), simulated_only = TRUE, turf/exclude, skip_first=TRUE) var/list/hand_around = list() - // We're guarenteed that list will be the first list in pathfinding_finished's argset because of how callback handles the arguments list + // We're guaranteed that list will be the first list in pathfinding_finished's argset because of how callback handles the arguments list var/datum/callback/await = list(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(pathfinding_finished), hand_around)) if(!SSpathfinder.swarmed_pathfind(caller, end, max_distance, mintargetdist, age, access, simulated_only, exclude, skip_first, await)) return list() @@ -62,7 +62,7 @@ /proc/get_sssp(atom/movable/caller, max_distance = 30, access = list(), simulated_only = TRUE, turf/exclude) var/list/hand_around = list() - // We're guarenteed that list will be the first list in pathfinding_finished's argset because of how callback handles the arguments list + // We're guaranteed that list will be the first list in pathfinding_finished's argset because of how callback handles the arguments list var/datum/callback/await = list(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(pathfinding_finished), hand_around)) if(!SSpathfinder.build_map(caller, get_turf(caller), max_distance, access, simulated_only, exclude, await)) return null @@ -335,7 +335,7 @@ src.has_gravity = construct_from.has_gravity() if(ismob(construct_from)) var/mob/living/mob_construct = construct_from - src.incapacitated = mob_construct.incapacitated() + src.incapacitated = mob_construct.incapacitated if(mob_construct.buckled) src.buckled_info = new(mob_construct.buckled, access, no_id, call_depth + 1) if(isobserver(construct_from)) diff --git a/code/__HELPERS/paths/sssp.dm b/code/__HELPERS/paths/sssp.dm index f735c66469487..21e520ea0164c 100644 --- a/code/__HELPERS/paths/sssp.dm +++ b/code/__HELPERS/paths/sssp.dm @@ -130,7 +130,7 @@ /// Returns a new /datum/pathfind/sssp based off our settings /// Will have an invalid source mob, no max distance, and no ending callback /datum/path_map/proc/settings_to_path() - // Default creation to not set any vars incidentially + // Default creation to not set any vars incidentally var/static/mob/jeremy = new() var/datum/pathfind/sssp/based_on_what = new() based_on_what.setup(pass_info, null, INFINITY, pass_space, avoid) @@ -155,7 +155,7 @@ working_index -= 1 var/list/hand_around = list() - // We're guarenteed that hand_around will be the first list in pathfinding_finished's argset because of how callback handles the arguments list + // We're guaranteed that hand_around will be the first list in pathfinding_finished's argset because of how callback handles the arguments list var/datum/callback/await = CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(pathfinding_finished), hand_around) // We're gonna build a pathfind datum from our settings and set it running diff --git a/code/__HELPERS/piping_colors_lists.dm b/code/__HELPERS/piping_colors_lists.dm index c198e569635e7..8b92e2d530a3d 100644 --- a/code/__HELPERS/piping_colors_lists.dm +++ b/code/__HELPERS/piping_colors_lists.dm @@ -4,7 +4,7 @@ GLOBAL_LIST_INIT(pipe_paint_colors, list( "green" = COLOR_VIBRANT_LIME, "blue" = COLOR_BLUE, "red" = COLOR_RED, - "orange" = COLOR_TAN_ORANGE, + "orange" = COLOR_ENGINEERING_ORANGE, "cyan" = COLOR_CYAN, "dark" = COLOR_DARK, "yellow" = COLOR_YELLOW, @@ -23,7 +23,7 @@ GLOBAL_LIST_INIT(pipe_colors_ordered, sort_list(list( COLOR_DARK = -2, COLOR_VIBRANT_LIME = -1, COLOR_VERY_LIGHT_GRAY = 0, - COLOR_TAN_ORANGE = 1, + COLOR_ENGINEERING_ORANGE = 1, COLOR_PURPLE = 2, COLOR_RED = 3, COLOR_STRONG_VIOLET = 4, @@ -36,7 +36,7 @@ GLOBAL_LIST_INIT(pipe_color_name, sort_list(list( COLOR_BLUE = "blue", COLOR_RED = "red", COLOR_VIBRANT_LIME = "green", - COLOR_TAN_ORANGE = "orange", + COLOR_ENGINEERING_ORANGE = "orange", COLOR_CYAN = "cyan", COLOR_DARK = "dark", COLOR_YELLOW = "yellow", diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 895ff2388fd26..db381d2d589a4 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -142,7 +142,7 @@ else finalized_announcement = CHAT_ALERT_DEFAULT_SPAN(jointext(minor_announcement_strings, "")) - var/custom_sound = sound_override || (alert ? 'sound/misc/notice1.ogg' : 'sound/misc/notice2.ogg') + var/custom_sound = sound_override || (alert ? 'sound/announcer/notice/notice1.ogg' : 'sound/announcer/notice/notice2.ogg') dispatch_announcement_to_players(finalized_announcement, players, custom_sound, should_play_sound) /// Sends an announcement about the level changing to players. Uses the passed in datum and the subsystem's previous security level to generate the message. @@ -186,7 +186,7 @@ /// Proc that just dispatches the announcement to our applicable audience. Only the announcement is a mandatory arg. /proc/dispatch_announcement_to_players(announcement, list/players = GLOB.player_list, sound_override = null, should_play_sound = TRUE) - var/sound_to_play = !isnull(sound_override) ? sound_override : 'sound/misc/notice2.ogg' + var/sound_to_play = !isnull(sound_override) ? sound_override : 'sound/announcer/notice/notice2.ogg' for(var/mob/target in players) if(isnewplayer(target) || !target.can_hear()) diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index fe2357d6ce422..28bb4c1166262 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -86,7 +86,8 @@ gender = targeted_gender else gender = targeted_atom.gender - var/regex/pronoun_regex = regex("%PRONOUN(_(they|They|their|Their|theirs|Theirs|them|Them|have|are|were|do|theyve|Theyve|theyre|Theyre|s|es))") + ///The pronouns are ordered by their length to avoid %PRONOUN_Theyve being translated to "Heve" instead of "He's", for example + var/regex/pronoun_regex = regex("%PRONOUN(_(theirs|Theirs|theyve|Theyve|theyre|Theyre|their|Their|they|They|them|Them|have|were|are|do|es|s))") while(pronoun_regex.Find(target_string)) target_string = pronoun_regex.Replace(target_string, GET_TARGET_PRONOUN(targeted_atom, pronoun_regex.match, gender)) return target_string diff --git a/code/__HELPERS/reagents.dm b/code/__HELPERS/reagents.dm index 012a1fd5cc09d..51ff7df475ee1 100644 --- a/code/__HELPERS/reagents.dm +++ b/code/__HELPERS/reagents.dm @@ -180,16 +180,35 @@ else return null -///Returns a random reagent object minus blacklisted reagents -/proc/get_random_reagent_id() - var/static/list/random_reagents = list() - if(!random_reagents.len) +///Returns a random reagent object, with the option to blacklist reagents. +/proc/get_random_reagent_id(list/blacklist) + var/static/list/reagent_static_list = list() //This is static, and will be used by default if a blacklist is not passed. + var/list/reagent_list_to_process + if(blacklist) //If we do have a blacklist, we recompile a new list with the excluded reagents not present and pick from there. + reagent_list_to_process = list() + else + reagent_list_to_process = reagent_static_list + + if(!reagent_list_to_process.len) for(var/datum/reagent/reagent_path as anything in subtypesof(/datum/reagent)) + if(is_path_in_list(reagent_path, blacklist)) + continue if(initial(reagent_path.chemical_flags) & REAGENT_CAN_BE_SYNTHESIZED) - random_reagents += reagent_path - var/picked_reagent = pick(random_reagents) + reagent_list_to_process += reagent_path + + var/picked_reagent = pick(reagent_list_to_process) return picked_reagent +///Returns a random reagent consumable ethanol object minus blacklisted reagents +/proc/get_random_drink_id() + var/static/list/random_drinks = list() + if(!random_drinks.len) + for(var/datum/reagent/drink_path as anything in subtypesof(/datum/reagent/consumable/ethanol)) + if(initial(drink_path.chemical_flags) & REAGENT_CAN_BE_SYNTHESIZED) + random_drinks += drink_path + var/picked_drink = pick(random_drinks) + return picked_drink + ///Returns reagent datum from reagent name string /proc/get_chem_id(chem_name) for(var/X in GLOB.chemical_reagents_list) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index ed8d882393b5c..72af6cf3ac181 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -192,7 +192,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) if(human_mob.mind && (length(human_mob.mind.antag_datums) > 0)) for(var/datum/antagonist/antag_datums as anything in human_mob.mind.antag_datums) - if(!antag_datums.hardcore_random_bonus) //dont give bonusses to dumb stuff like revs or hypnos + if(!antag_datums.hardcore_random_bonus) //don't give bonuses to dumb stuff like revs or hypnos continue if(initial(antag_datums.can_assign_self_objectives) && !antag_datums.can_assign_self_objectives) continue // You don't get a prize if you picked your own objective, you can't fail those @@ -571,7 +571,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) /datum/controller/subsystem/ticker/proc/medal_report() if(GLOB.commendations.len) var/list/parts = list() - parts += "Medal Commendations:" + parts += span_header("Medal Commendations:") for (var/com in GLOB.commendations) parts += com return "
[parts.Join("
")]
" @@ -660,7 +660,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) var/datum/action/report/R = new C.player_details.player_actions += R R.Grant(C.mob) - to_chat(C,"Show roundend report again") + to_chat(C,span_infoplain("Show roundend report again")) /datum/action/report name = "Show roundend report" diff --git a/code/__HELPERS/screen_objs.dm b/code/__HELPERS/screen_objs.dm index cb8520225ab8c..00f6bd415704f 100644 --- a/code/__HELPERS/screen_objs.dm +++ b/code/__HELPERS/screen_objs.dm @@ -13,11 +13,11 @@ if(findtext(screen_loc, "EAST")) // If you're starting from the east, we start from the east too x += view_size[1] if(findtext(screen_loc, "WEST")) // HHHHHHHHHHHHHHHHHHHHHH WEST is technically a 1 tile offset from the start. Shoot me please - x += world.icon_size + x += ICON_SIZE_X if(findtext(screen_loc, "NORTH")) y += view_size[2] if(findtext(screen_loc, "SOUTH")) - y += world.icon_size + y += ICON_SIZE_Y var/list/x_and_y = splittext(screen_loc, ",") @@ -36,8 +36,8 @@ x_coord = text2num(cut_relative_direction(x_coord)) y_coord = text2num(cut_relative_direction(y_coord)) - x += x_coord * world.icon_size - y += y_coord * world.icon_size + x += x_coord * ICON_SIZE_X + y += y_coord * ICON_SIZE_Y if(length(x_pack) > 1) x += text2num(x_pack[2]) @@ -51,14 +51,14 @@ /proc/offset_to_screen_loc(x_offset, y_offset, view = null) if(view) var/list/view_bounds = view_to_pixels(view) - x_offset = clamp(x_offset, world.icon_size, view_bounds[1]) - y_offset = clamp(y_offset, world.icon_size, view_bounds[2]) + x_offset = clamp(x_offset, ICON_SIZE_X, view_bounds[1]) + y_offset = clamp(y_offset, ICON_SIZE_Y, view_bounds[2]) // Round with no argument is floor, so we get the non pixel offset here - var/x = round(x_offset / world.icon_size) - var/pixel_x = x_offset % world.icon_size - var/y = round(y_offset / world.icon_size) - var/pixel_y = y_offset % world.icon_size + var/x = round(x_offset / ICON_SIZE_X) + var/pixel_x = x_offset % ICON_SIZE_X + var/y = round(y_offset / ICON_SIZE_Y) + var/pixel_y = y_offset % ICON_SIZE_Y var/list/generated_loc = list() generated_loc += "[x]" @@ -88,9 +88,9 @@ // Bias to the right, down, left, and then finally up if(base_x + target_offset < view_size[1]) return offset_to_screen_loc(base_x + target_offset, base_y, view) - if(base_y - target_offset > world.icon_size) + if(base_y - target_offset > ICON_SIZE_Y) return offset_to_screen_loc(base_x, base_y - target_offset, view) - if(base_x - target_offset > world.icon_size) + if(base_x - target_offset > ICON_SIZE_X) return offset_to_screen_loc(base_x - target_offset, base_y, view) if(base_y + target_offset < view_size[2]) return offset_to_screen_loc(base_x, base_y + target_offset, view) @@ -104,12 +104,12 @@ /// Returns a screen_loc format for a tiling screen objects from start and end positions. Start should be bottom left corner, and end top right corner. /proc/spanning_screen_loc(start_px, start_py, end_px, end_py) - var/starting_tile_x = round(start_px / 32) - start_px -= starting_tile_x * 32 - var/starting_tile_y = round(start_py/ 32) - start_py -= starting_tile_y * 32 - var/ending_tile_x = round(end_px / 32) - end_px -= ending_tile_x * 32 - var/ending_tile_y = round(end_py / 32) - end_py -= ending_tile_y * 32 + var/starting_tile_x = round(start_px / ICON_SIZE_X) + start_px -= starting_tile_x * ICON_SIZE_X + var/starting_tile_y = round(start_py/ ICON_SIZE_Y) + start_py -= starting_tile_y * ICON_SIZE_Y + var/ending_tile_x = round(end_px / ICON_SIZE_X) + end_px -= ending_tile_x * ICON_SIZE_X + var/ending_tile_y = round(end_py / ICON_SIZE_Y) + end_py -= ending_tile_y * ICON_SIZE_Y return "[starting_tile_x]:[start_px],[starting_tile_y]:[start_py] to [ending_tile_x]:[end_px],[ending_tile_y]:[end_py]" diff --git a/code/__HELPERS/sorts/sort_instance.dm b/code/__HELPERS/sorts/sort_instance.dm index bd1bbe0582a28..eaae55c18d399 100644 --- a/code/__HELPERS/sorts/sort_instance.dm +++ b/code/__HELPERS/sorts/sort_instance.dm @@ -392,7 +392,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sort_instance, new()) var/count1 = 0 //# of times in a row that first run won var/count2 = 0 // " " " " " " second run won - //do the straightfoward thin until one run starts winning consistently + //do the straightforward thin until one run starts winning consistently do //ASSERT(len1 > 1 && len2 > 0) @@ -417,7 +417,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sort_instance, new()) while((count1 | count2) < minGallop) - //one run is winning consistently so galloping may provide huge benifits + //one run is winning consistently so galloping may provide huge benefits //so try galloping, until such time as the run is no longer consistently winning do //ASSERT(len1 > 1 && len2 > 0) @@ -493,7 +493,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sort_instance, new()) var/count1 = 0 //# of times in a row that first run won var/count2 = 0 // " " " " " " second run won - //do the straightfoward thing until one run starts winning consistently + //do the straightforward thing until one run starts winning consistently do //ASSERT(len1 > 0 && len2 > 1) if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) @@ -516,7 +516,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sort_instance, new()) break outer while((count1 | count2) < minGallop) - //one run is winning consistently so galloping may provide huge benifits + //one run is winning consistently so galloping may provide huge benefits //so try galloping, until such time as the run is no longer consistently winning do //ASSERT(len1 > 0 && len2 > 1) diff --git a/code/__HELPERS/spatial_info.dm b/code/__HELPERS/spatial_info.dm index 529532f50cf4d..a2c47e87c0a10 100644 --- a/code/__HELPERS/spatial_info.dm +++ b/code/__HELPERS/spatial_info.dm @@ -211,37 +211,49 @@ for(var/obj/item/radio/radio as anything in radios) . |= get_hearers_in_LOS(radio.canhear_range, radio, FALSE) +//Used when converting pixels to tiles to make them accurate +#define OFFSET_X (0.5 / ICON_SIZE_X) +#define OFFSET_Y (0.5 / ICON_SIZE_Y) + ///Calculate if two atoms are in sight, returns TRUE or FALSE /proc/inLineOfSight(X1,Y1,X2,Y2,Z=1,PX1=16.5,PY1=16.5,PX2=16.5,PY2=16.5) - var/turf/T + var/turf/current_turf if(X1 == X2) if(Y1 == Y2) return TRUE //Light cannot be blocked on same tile else - var/s = SIGN(Y2-Y1) - Y1+=s + var/sign = SIGN(Y2-Y1) + Y1 += sign while(Y1 != Y2) - T=locate(X1,Y1,Z) - if(IS_OPAQUE_TURF(T)) + current_turf = locate(X1, Y1, Z) + if(IS_OPAQUE_TURF(current_turf)) return FALSE - Y1+=s + Y1 += sign else - var/m=(32*(Y2-Y1)+(PY2-PY1))/(32*(X2-X1)+(PX2-PX1)) - var/b=(Y1+PY1/32-0.015625)-m*(X1+PX1/32-0.015625) //In tiles + //This looks scary but we're just calculating a linear function (y = mx + b) + + //m = y/x + var/m = (ICON_SIZE_Y*(Y2-Y1) + (PY2-PY1)) / (ICON_SIZE_X*(X2-X1) + (PX2-PX1))//In pixels + + //b = y - mx + var/b = (Y1 + PY1/ICON_SIZE_Y - OFFSET_Y) - m*(X1 + PX1/ICON_SIZE_X - OFFSET_X)//In tiles + var/signX = SIGN(X2-X1) var/signY = SIGN(Y2-Y1) - if(X1= mx+b + Y1 += signY //Line exits tile vertically else - X1+=signX //Line exits tile horizontally - T=locate(X1,Y1,Z) - if(IS_OPAQUE_TURF(T)) + X1 += signX //Line exits tile horizontally + current_turf = locate(X1, Y1, Z) + if(IS_OPAQUE_TURF(current_turf)) return FALSE return TRUE +#undef OFFSET_X +#undef OFFSET_Y /proc/is_in_sight(atom/first_atom, atom/second_atom) var/turf/first_turf = get_turf(first_atom) diff --git a/code/__HELPERS/spawns.dm b/code/__HELPERS/spawns.dm index 2c93e4ba19e56..c72c5a555de5a 100644 --- a/code/__HELPERS/spawns.dm +++ b/code/__HELPERS/spawns.dm @@ -29,7 +29,13 @@ if(!ispath(path)) path.forceMove(pod) else - path = new path(pod) + var/amount_to_spawn = paths_to_spawn[path] || 1 + if(!isnum(amount_to_spawn)) + stack_trace("amount to spawn for path \"[path]\" is not a number, defaulting to 1") + amount_to_spawn = 1 + + for(var/item_number in 1 to amount_to_spawn) + new path(pod) //remove non var edits from specifications specifications -= "target" diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 53b8b95997cc9..f1fa482f50664 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -71,7 +71,7 @@ return t t = matchMiddle.group[1] - // Replace any non-space whitespace characters with spaces, and also multiple occurences with just one space + // Replace any non-space whitespace characters with spaces, and also multiple occurrences with just one space var/static/regex/matchSpacing = new(@"\s+", "g") t = replacetext(t, matchSpacing, " ") @@ -121,7 +121,7 @@ if(isnull(user_input)) // User pressed cancel return if(no_trim) - return copytext(html_encode(user_input), 1, max_length) + return copytext_char(html_encode(user_input), 1, max_length) else return trim(html_encode(user_input), max_length) //trim is "outside" because html_encode can expand single symbols into multiple symbols (such as turning < into <) @@ -140,7 +140,7 @@ if(isnull(user_input)) // User pressed cancel return if(no_trim) - return copytext(html_encode(user_input), 1, max_length) + return copytext_char(html_encode(user_input), 1, max_length) else return trim(html_encode(user_input), max_length) @@ -153,7 +153,7 @@ /** * Filters out undesirable characters from names. * - * * strict - return null immidiately instead of filtering out + * * strict - return null immediately instead of filtering out * * allow_numbers - allows numbers and common special characters - used for silicon/other weird things names * * cap_after_symbols - words like Bob's will be capitalized to Bob'S by default. False is good for titles. */ @@ -169,7 +169,7 @@ var/char = "" // This is a sanity short circuit, if the users name is three times the maximum allowable length of name - // We bail out on trying to process the name at all, as it could be a bug or malicious input and we dont + // We bail out on trying to process the name at all, as it could be a bug or malicious input and we don't // Want to iterate all of it. if(t_len > 3 * MAX_NAME_LEN) return @@ -368,7 +368,7 @@ */ /proc/truncate(text, max_length) if(length(text) > max_length) - return copytext(text, 1, max_length) + return copytext_char(text, 1, max_length) return text //Returns a string with reserved characters and spaces before the first word and after the last word removed. @@ -463,6 +463,9 @@ GLOBAL_LIST_INIT(binary, list("0","1")) /proc/random_color() return random_string(6, GLOB.hex_characters) +/proc/ready_random_color() + return "#" + random_string(6, GLOB.hex_characters) + //merges non-null characters (3rd argument) from "from" into "into". Returns result //e.g. into = "Hello World" // from = "Seeya______" @@ -1139,8 +1142,8 @@ GLOBAL_LIST_INIT(binary, list("0","1")) return word var/first_letter = copytext(word, 1, 2) var/first_two_letters = copytext(word, 1, 3) - var/first_word_is_vowel = (first_letter in list("a", "e", "i", "o", "u")) - var/second_word_is_vowel = (copytext(word, 2, 3) in list("a", "e", "i", "o", "u")) + var/first_word_is_vowel = (first_letter in VOWELS) + var/second_word_is_vowel = (copytext(word, 2, 3) in VOWELS) //If a word starts with a vowel add the word "way" at the end of the word. if(first_word_is_vowel) return word + pick("yay", "way", "hay") //in cultures around the world it's different, so heck lets have fun and make it random. should still be readable @@ -1225,6 +1228,13 @@ GLOBAL_LIST_INIT(binary, list("0","1")) var/input_length = LAZYLEN(ending) return !!findtext(input_text, ending, -input_length) +/// Returns TRUE if the input_text starts with any of the beginnings +/proc/starts_with_any(input_text, list/beginnings) + for(var/beginning in beginnings) + if(!!findtext(input_text, beginning, 1, LAZYLEN(beginning)+1)) + return TRUE + return FALSE + /// Generate a grawlix string of length of the text argument. /proc/grawlix(text) var/grawlix = "" diff --git a/code/__HELPERS/turfs.dm b/code/__HELPERS/turfs.dm index 88509b88ce802..c779c4b681b0f 100644 --- a/code/__HELPERS/turfs.dm +++ b/code/__HELPERS/turfs.dm @@ -76,7 +76,7 @@ Turf and target are separate in case you want to teleport some distance from a t //destination_list = new() /*This will draw a block around the target turf, given what the error is. Specifying the values above will basically draw a different sort of block. - If the values are the same, it will be a square. If they are different, it will be a rectengle. + If the values are the same, it will be a square. If they are different, it will be a rectangle. In either case, it will center based on offset. Offset is position from center. Offset always calculates in relation to direction faced. In other words, depending on the direction of the teleport, the offset should remain positioned in relation to destination.*/ @@ -206,13 +206,15 @@ Turf and target are separate in case you want to teleport some distance from a t * NOTE: if your atom has non-standard bounds then this proc * will handle it, but: * if the bounds are even, then there are an even amount of "middle" turfs, the one to the EAST, NORTH, or BOTH is picked - * this may seem bad, but you're atleast as close to the center of the atom as possible, better than byond's default loc being all the way off) + * this may seem bad, but you're at least as close to the center of the atom as possible, better than byond's default loc being all the way off) * if the bounds are odd, the true middle turf of the atom is returned **/ /proc/get_turf_pixel(atom/checked_atom) - var/turf/atom_turf = get_turf(checked_atom) //use checked_atom's turfs, as it's coords are the same as checked_atom's AND checked_atom's coords are lost if it is inside another atom + var/turf/atom_turf = get_turf(checked_atom) //use checked_atom's turfs, as its coords are the same as checked_atom's AND checked_atom's coords are lost if it is inside another atom if(!atom_turf) return null + if(checked_atom.flags_1 & IGNORE_TURF_PIXEL_OFFSET_1) + return atom_turf var/list/offsets = get_visual_offset(checked_atom) return pixel_offset_turf(atom_turf, offsets) @@ -225,7 +227,7 @@ Turf and target are separate in case you want to teleport some distance from a t * Icon width/height **/ /proc/get_visual_offset(atom/checked_atom) - //Find checked_atom's matrix so we can use it's X/Y pixel shifts + //Find checked_atom's matrix so we can use its X/Y pixel shifts var/matrix/atom_matrix = matrix(checked_atom.transform) var/pixel_x_offset = checked_atom.pixel_x + checked_atom.pixel_w + atom_matrix.get_x_shift() @@ -235,9 +237,9 @@ Turf and target are separate in case you want to teleport some distance from a t var/list/icon_dimensions = get_icon_dimensions(checked_atom.icon) var/checked_atom_icon_height = icon_dimensions["height"] var/checked_atom_icon_width = icon_dimensions["width"] - if(checked_atom_icon_height != world.icon_size || checked_atom_icon_width != world.icon_size) - pixel_x_offset += ((checked_atom_icon_width / world.icon_size) - 1) * (world.icon_size * 0.5) - pixel_y_offset += ((checked_atom_icon_height / world.icon_size) - 1) * (world.icon_size * 0.5) + if(checked_atom_icon_height != ICON_SIZE_Y || checked_atom_icon_width != ICON_SIZE_X) + pixel_x_offset += ((checked_atom_icon_width / ICON_SIZE_X) - 1) * (ICON_SIZE_X * 0.5) + pixel_y_offset += ((checked_atom_icon_height / ICON_SIZE_Y) - 1) * (ICON_SIZE_Y * 0.5) return list(pixel_x_offset, pixel_y_offset) @@ -246,8 +248,8 @@ Turf and target are separate in case you want to teleport some distance from a t **/ /proc/pixel_offset_turf(turf/offset_from, list/offsets) //DY and DX - var/rough_x = round(round(offsets[1], world.icon_size) / world.icon_size) - var/rough_y = round(round(offsets[2], world.icon_size) / world.icon_size) + var/rough_x = round(round(offsets[1], ICON_SIZE_X) / ICON_SIZE_X) + var/rough_y = round(round(offsets[2], ICON_SIZE_Y) / ICON_SIZE_Y) var/final_x = clamp(offset_from.x + rough_x, 1, world.maxx) var/final_y = clamp(offset_from.y + rough_y, 1, world.maxy) @@ -273,8 +275,8 @@ Turf and target are separate in case you want to teleport some distance from a t click_turf_y = origin.y + text2num(click_turf_y[1]) - round(actual_view[2] / 2) - 1 var/turf/click_turf = locate(clamp(click_turf_x, 1, world.maxx), clamp(click_turf_y, 1, world.maxy), click_turf_z) - LAZYSET(modifiers, ICON_X, "[(click_turf_px - click_turf.pixel_x) + ((click_turf_x - click_turf.x) * world.icon_size)]") - LAZYSET(modifiers, ICON_Y, "[(click_turf_py - click_turf.pixel_y) + ((click_turf_y - click_turf.y) * world.icon_size)]") + LAZYSET(modifiers, ICON_X, "[(click_turf_px - click_turf.pixel_x) + ((click_turf_x - click_turf.x) * ICON_SIZE_X)]") + LAZYSET(modifiers, ICON_Y, "[(click_turf_py - click_turf.pixel_y) + ((click_turf_y - click_turf.y) * ICON_SIZE_Y)]") return click_turf ///Almost identical to the params_to_turf(), but unused (remove?) diff --git a/code/__HELPERS/view.dm b/code/__HELPERS/view.dm index 30e8bc8f9f973..139bdedc425ff 100644 --- a/code/__HELPERS/view.dm +++ b/code/__HELPERS/view.dm @@ -16,8 +16,8 @@ if(!view) return list(0, 0) var/list/view_info = getviewsize(view) - view_info[1] *= world.icon_size - view_info[2] *= world.icon_size + view_info[1] *= ICON_SIZE_X + view_info[2] *= ICON_SIZE_Y return view_info /** diff --git a/code/__HELPERS/visual_effects.dm b/code/__HELPERS/visual_effects.dm index d219d11e1ce82..2b845c2131b00 100644 --- a/code/__HELPERS/visual_effects.dm +++ b/code/__HELPERS/visual_effects.dm @@ -44,9 +44,9 @@ speed /= segments if(parallel) - animate(src, transform = matrices[1], time = speed, loops , flags = ANIMATION_PARALLEL) + animate(src, transform = matrices[1], time = speed, loop = loops, flags = ANIMATION_PARALLEL) else - animate(src, transform = matrices[1], time = speed, loops) + animate(src, transform = matrices[1], time = speed, loop = loops) for(var/i in 2 to segments) //2 because 1 is covered above animate(transform = matrices[i], time = speed) //doesn't have an object argument because this is "Stacking" with the animate call above diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm index 87d4348580e29..769f3984cf1a0 100644 --- a/code/__byond_version_compat.dm +++ b/code/__byond_version_compat.dm @@ -9,6 +9,13 @@ #error You need version 515.1627 or higher #endif +// Unable to compile this version thanks to mutable appearance changes +#if (DM_VERSION == 515 && DM_BUILD == 1643) +#error This specific version of BYOND (515.1643) cannot compile this project. +#error If 515.1643 IS NOT the latest version of BYOND, then you should simply update as normal. +#error But if 515.1643 IS the latest version of BYOND, i.e. you can't update, then you MUST visit www.byond.com/download/build and downgrade to 515.1642. +#endif + // Keep savefile compatibilty at minimum supported level /savefile/byond_version = MIN_COMPILER_VERSION @@ -16,7 +23,7 @@ // We use wrappers for this in case some part of the api ever changes, and to make their function more clear // For the record: GLOBAL_VERB_REF would be useless as verbs can't be global. -/// Call by name proc references, checks if the proc exists on either this type or as a global proc. +/// Call by name proc references, checks if the proc exists on either this type () (AND ONLY THIS TYPE) or as a global proc. #define PROC_REF(X) (nameof(.proc/##X)) /// Call by name verb references, checks if the verb exists on either this type or as a global verb. #define VERB_REF(X) (nameof(.verb/##X)) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 6056a292ed61f..3fe456e488ecb 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -19,7 +19,7 @@ /// We'll use another define to convert uses of the proc over. That'll be all // #define APPEARANCE_SUCCESS_TRACKING -///Used to find the sources of harddels, quite laggy, don't be surpised if it freezes your client for a good while +///Used to find the sources of harddels, quite laggy, don't be surprised if it freezes your client for a good while //#define REFERENCE_TRACKING #ifdef REFERENCE_TRACKING @@ -83,7 +83,8 @@ // If this is uncommented, we do a single run though of the game setup and tear down process with unit tests in between // #define UNIT_TESTS -// If this is uncommented, will attempt to load and initialize prof.dll/libprof.so. +// If this is uncommented, will attempt to load and initialize prof.dll/libprof.so by default. +// Even if it's not defined, you can pass "tracy" via -params in order to try to load it. // We do not ship byond-tracy. Build it yourself here: https://github.com/mafemergency/byond-tracy/ // #define USE_BYOND_TRACY diff --git a/code/_globalvars/admin.dm b/code/_globalvars/admin.dm index 96f07e3cca870..e14a56c16814c 100644 --- a/code/_globalvars/admin.dm +++ b/code/_globalvars/admin.dm @@ -76,6 +76,7 @@ GLOBAL_LIST_INIT(spanname_to_formatting, list( "Drone Radio" = "drone", "Engineering Radio" = "engradio", "Extremely Big" = "extremelybig", + "Entertainment Radio" = "enteradio", "Game Say" = "game say", "Ghost Alert" = "ghostalert", "Green" = "green", diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index ea1b16d71cef8..0f5f47b242ab7 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -64,6 +64,8 @@ DEFINE_BITFIELD(area_flags, list( "UNIQUE_AREA" = UNIQUE_AREA, "VALID_TERRITORY" = VALID_TERRITORY, "XENOBIOLOGY_COMPATIBLE" = XENOBIOLOGY_COMPATIBLE, + "NO_BOH" = NO_BOH, + "UNLIMITED_FISHING" = UNLIMITED_FISHING, )) DEFINE_BITFIELD(turf_flags, list( @@ -160,6 +162,7 @@ DEFINE_BITFIELD(interaction_flags_machine, list( "INTERACT_MACHINE_REQUIRES_SILICON" = INTERACT_MACHINE_REQUIRES_SILICON, "INTERACT_MACHINE_REQUIRES_SIGHT" = INTERACT_MACHINE_REQUIRES_SIGHT, "INTERACT_MACHINE_REQUIRES_LITERACY" = INTERACT_MACHINE_REQUIRES_LITERACY, + "INTERACT_MACHINE_REQUIRES_STANDING" = INTERACT_MACHINE_REQUIRES_STANDING, )) DEFINE_BITFIELD(interaction_flags_item, list( @@ -199,6 +202,7 @@ DEFINE_BITFIELD(flags_inv, list( "HIDEHEADGEAR" = HIDEHEADGEAR, "HIDEJUMPSUIT" = HIDEJUMPSUIT, "HIDEMASK" = HIDEMASK, + "HIDEBELT" = HIDEBELT, "HIDENECK" = HIDENECK, "HIDESHOES" = HIDESHOES, "HIDESNOUT" = HIDESNOUT, @@ -251,6 +255,10 @@ DEFINE_BITFIELD(mob_biotypes, list( "MOB_UNDEAD" = MOB_UNDEAD, )) +DEFINE_BITFIELD(mob_flags, list( + "MOB_HAS_SCREENTIPS_NAME_OVERRIDE" = MOB_HAS_SCREENTIPS_NAME_OVERRIDE, +)) + DEFINE_BITFIELD(mob_respiration_type, list( "RESPIRATION_OXYGEN" = RESPIRATION_OXYGEN, "RESPIRATION_N2" = RESPIRATION_N2, @@ -440,6 +448,7 @@ DEFINE_BITFIELD(supports_variations_flags, list( "CLOTHING_NO_VARIATION" = CLOTHING_NO_VARIATION, "CLOTHING_DIGITIGRADE_VARIATION" = CLOTHING_DIGITIGRADE_VARIATION, "CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON" = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON, + "CLOTHING_DIGITIGRADE_MASK" = CLOTHING_DIGITIGRADE_MASK, )) DEFINE_BITFIELD(flora_flags, list( @@ -557,6 +566,13 @@ DEFINE_BITFIELD(gun_flags, list( "TURRET_INCOMPATIBLE" = TURRET_INCOMPATIBLE, )) +DEFINE_BITFIELD(fish_flags, list( + "FISH_FLAG_SHOW_IN_CATALOG" = FISH_FLAG_SHOW_IN_CATALOG, + "FISH_DO_FLOP_ANIM" = FISH_DO_FLOP_ANIM, + "FISH_FLAG_PETTED" = FISH_FLAG_PETTED, + "FISH_FLAG_EXPERIMENT_SCANNABLE" = FISH_FLAG_EXPERIMENT_SCANNABLE, +)) + DEFINE_BITFIELD(bot_mode_flags, list( "POWER_ON" = BOT_MODE_ON, "AUTO_PATROL" = BOT_MODE_AUTOPATROL, diff --git a/code/_globalvars/lists/achievements.dm b/code/_globalvars/lists/achievements.dm index 283931f99847c..c788f070ad3b7 100644 --- a/code/_globalvars/lists/achievements.dm +++ b/code/_globalvars/lists/achievements.dm @@ -3,7 +3,7 @@ GLOBAL_LIST_EMPTY(commendations) GLOBAL_LIST_INIT(achievement_categories, list("Bosses", "Jobs", "Skills", "Misc", "Mafia", "Scores")) ///A list of sounds that can be played when unlocking an achievement, set in the preferences. GLOBAL_LIST_INIT(achievement_sounds, list( - CHEEVO_SOUND_PING = sound('sound/effects/glockenspiel_ping.ogg', volume = 70), - CHEEVO_SOUND_JINGLE = sound('sound/effects/beeps_jingle.ogg', volume = 70), - CHEEVO_SOUND_TADA = sound('sound/effects/tada_fanfare.ogg', volume = 30), + CHEEVO_SOUND_PING = sound('sound/effects/achievement/glockenspiel_ping.ogg', volume = 70), + CHEEVO_SOUND_JINGLE = sound('sound/effects/achievement/beeps_jingle.ogg', volume = 70), + CHEEVO_SOUND_TADA = sound('sound/effects/achievement/tada_fanfare.ogg', volume = 30), )) diff --git a/code/_globalvars/lists/ambience.dm b/code/_globalvars/lists/ambience.dm index 6dd4935817fea..24d765b71c183 100644 --- a/code/_globalvars/lists/ambience.dm +++ b/code/_globalvars/lists/ambience.dm @@ -1,162 +1,167 @@ GLOBAL_LIST_INIT(generic_ambience,list( - 'sound/ambience/ambigen1.ogg', - 'sound/ambience/ambigen2.ogg', - 'sound/ambience/ambigen3.ogg', - 'sound/ambience/ambigen4.ogg', - 'sound/ambience/ambigen5.ogg', - 'sound/ambience/ambigen6.ogg', - 'sound/ambience/ambigen7.ogg', - 'sound/ambience/ambigen8.ogg', - 'sound/ambience/ambigen9.ogg', - 'sound/ambience/ambigen10.ogg', - 'sound/ambience/ambigen11.ogg', - 'sound/ambience/ambigen13.ogg', - 'sound/ambience/ambigen14.ogg', + 'sound/ambience/general/ambigen1.ogg', + 'sound/ambience/general/ambigen2.ogg', + 'sound/ambience/general/ambigen3.ogg', + 'sound/ambience/general/ambigen4.ogg', + 'sound/ambience/general/ambigen5.ogg', + 'sound/ambience/general/ambigen6.ogg', + 'sound/ambience/general/ambigen7.ogg', + 'sound/ambience/general/ambigen8.ogg', + 'sound/ambience/general/ambigen9.ogg', + 'sound/ambience/general/ambigen10.ogg', + 'sound/ambience/general/ambigen11.ogg', + 'sound/ambience/general/ambigen13.ogg', + 'sound/ambience/general/ambigen14.ogg', )) GLOBAL_LIST_INIT(holy_ambience,list( - 'sound/ambience/ambicha1.ogg', - 'sound/ambience/ambicha2.ogg', - 'sound/ambience/ambicha3.ogg', - 'sound/ambience/ambicha4.ogg', - 'sound/ambience/ambiholy.ogg', - 'sound/ambience/ambiholy2.ogg', - 'sound/ambience/ambiholy3.ogg', + 'sound/ambience/holy/ambicha1.ogg', + 'sound/ambience/holy/ambicha2.ogg', + 'sound/ambience/holy/ambicha3.ogg', + 'sound/ambience/holy/ambicha4.ogg', + 'sound/ambience/holy/ambiholy.ogg', + 'sound/ambience/holy/ambiholy2.ogg', + 'sound/ambience/holy/ambiholy3.ogg', )) GLOBAL_LIST_INIT(danger_ambience,list( - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', )) GLOBAL_LIST_INIT(ruins_ambience,list( - 'sound/ambience/ambicave.ogg', - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimine.ogg', - 'sound/ambience/ambimystery.ogg', - 'sound/ambience/ambiruin.ogg', - 'sound/ambience/ambiruin2.ogg', - 'sound/ambience/ambiruin3.ogg', - 'sound/ambience/ambiruin4.ogg', - 'sound/ambience/ambiruin5.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', - 'sound/ambience/ambitech3.ogg', + 'sound/ambience/lavaland/ambicave.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', + 'sound/ambience/ruin/ambimine.ogg', + 'sound/ambience/misc/ambimystery.ogg', + 'sound/ambience/ruin/ambiruin.ogg', + 'sound/ambience/ruin/ambiruin2.ogg', + 'sound/ambience/ruin/ambiruin3.ogg', + 'sound/ambience/ruin/ambiruin4.ogg', + 'sound/ambience/ruin/ambiruin5.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', + 'sound/ambience/engineering/ambitech3.ogg', )) GLOBAL_LIST_INIT(engi_ambience,list( - 'sound/ambience/ambiatmos.ogg', - 'sound/ambience/ambiatmos2.ogg', - 'sound/ambience/ambisin1.ogg', - 'sound/ambience/ambisin2.ogg', - 'sound/ambience/ambisin3.ogg', - 'sound/ambience/ambisin4.ogg', - 'sound/ambience/ambitech.ogg', - 'sound/ambience/ambitech2.ogg', - 'sound/ambience/ambitech3.ogg', + 'sound/ambience/engineering/ambiatmos.ogg', + 'sound/ambience/engineering/ambiatmos2.ogg', + 'sound/ambience/engineering/ambisin1.ogg', + 'sound/ambience/engineering/ambisin2.ogg', + 'sound/ambience/engineering/ambisin3.ogg', + 'sound/ambience/engineering/ambisin4.ogg', + 'sound/ambience/engineering/ambitech.ogg', + 'sound/ambience/engineering/ambitech2.ogg', + 'sound/ambience/engineering/ambitech3.ogg', )) GLOBAL_LIST_INIT(mining_ambience, list( - 'sound/ambience/ambicave.ogg', - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambilava1.ogg', - 'sound/ambience/ambilava2.ogg', - 'sound/ambience/ambilava3.ogg', - 'sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimine.ogg', - 'sound/ambience/ambiruin.ogg', - 'sound/ambience/ambiruin2.ogg', - 'sound/ambience/ambiruin3.ogg', - 'sound/ambience/ambiruin4.ogg', - 'sound/ambience/ambiruin5.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', + 'sound/ambience/lavaland/ambicave.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', + 'sound/ambience/lavaland/ambilava1.ogg', + 'sound/ambience/lavaland/ambilava2.ogg', + 'sound/ambience/lavaland/ambilava3.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', + 'sound/ambience/ruin/ambimine.ogg', + 'sound/ambience/ruin/ambiruin.ogg', + 'sound/ambience/ruin/ambiruin2.ogg', + 'sound/ambience/ruin/ambiruin3.ogg', + 'sound/ambience/ruin/ambiruin4.ogg', + 'sound/ambience/ruin/ambiruin5.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', )) GLOBAL_LIST_INIT(icemoon_ambience,list( - 'sound/ambience/ambiicetheme.ogg', - 'sound/ambience/ambiicemelody1.ogg', - 'sound/ambience/ambiicemelody2.ogg', - 'sound/ambience/ambiicemelody3.ogg', - 'sound/ambience/ambiicemelody4.ogg', - 'sound/ambience/ambiicesting1.ogg', - 'sound/ambience/ambiicesting2.ogg', - 'sound/ambience/ambiicesting3.ogg', - 'sound/ambience/ambiicesting4.ogg', - 'sound/ambience/ambiicesting5.ogg', + 'sound/ambience/icemoon/ambiicetheme.ogg', + 'sound/ambience/icemoon/ambiicemelody1.ogg', + 'sound/ambience/icemoon/ambiicemelody2.ogg', + 'sound/ambience/icemoon/ambiicemelody3.ogg', + 'sound/ambience/icemoon/ambiicemelody4.ogg', + 'sound/ambience/icemoon/ambiicesting1.ogg', + 'sound/ambience/icemoon/ambiicesting2.ogg', + 'sound/ambience/icemoon/ambiicesting3.ogg', + 'sound/ambience/icemoon/ambiicesting4.ogg', + 'sound/ambience/icemoon/ambiicesting5.ogg', )) GLOBAL_LIST_INIT(medical_ambience,list( - 'sound/ambience/ambinice.ogg', + 'sound/ambience/medical/ambinice.ogg', )) GLOBAL_LIST_INIT(virology_ambience,list( - 'sound/ambience/ambiviro.ogg', - 'sound/ambience/ambiviro1.ogg', - 'sound/ambience/ambiviro2.ogg', + 'sound/ambience/medical/ambiviro.ogg', + 'sound/ambience/medical/ambiviro1.ogg', + 'sound/ambience/medical/ambiviro2.ogg', )) GLOBAL_LIST_INIT(spooky_ambience,list( - 'sound/ambience/ambimo1.ogg', - 'sound/ambience/ambimo2.ogg', - 'sound/ambience/ambimystery.ogg', - 'sound/ambience/ambiodd.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', + 'sound/ambience/medical/ambimo1.ogg', + 'sound/ambience/medical/ambimo2.ogg', + 'sound/ambience/misc/ambimystery.ogg', + 'sound/ambience/misc/ambiodd.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', )) GLOBAL_LIST_INIT(space_ambience,list( - 'sound/ambience/ambiatmos.ogg', - 'sound/ambience/ambispace.ogg', - 'sound/ambience/ambispace2.ogg', - 'sound/ambience/ambispace3.ogg', - 'sound/ambience/ambispace4.ogg', - 'sound/ambience/ambispace5.ogg', - 'sound/ambience/ambispace6.ogg', - 'sound/ambience/title2.ogg', + 'sound/ambience/engineering/ambiatmos.ogg', + 'sound/ambience/space/ambispace.ogg', + 'sound/ambience/space/ambispace2.ogg', + 'sound/ambience/space/ambispace3.ogg', + 'sound/ambience/space/ambispace4.ogg', + 'sound/ambience/space/ambispace5.ogg', + 'sound/ambience/space/ambispace6.ogg', + 'sound/music/lobby_music/title2.ogg', )) GLOBAL_LIST_INIT(maint_ambience,list( - 'sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimaint2.ogg', - 'sound/ambience/ambimaint3.ogg', - 'sound/ambience/ambimaint4.ogg', - 'sound/ambience/ambimaint5.ogg', - 'sound/ambience/ambimaint6.ogg', - 'sound/ambience/ambimaint7.ogg', - 'sound/ambience/ambitech2.ogg', - 'sound/voice/lowHiss1.ogg', - 'sound/voice/lowHiss2.ogg', - 'sound/voice/lowHiss3.ogg', - 'sound/voice/lowHiss4.ogg', - 'sound/ambience/maintambience.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', + 'sound/ambience/maintenance/ambimaint2.ogg', + 'sound/ambience/maintenance/ambimaint3.ogg', + 'sound/ambience/maintenance/ambimaint4.ogg', + 'sound/ambience/maintenance/ambimaint5.ogg', + 'sound/ambience/maintenance/ambimaint6.ogg', + 'sound/ambience/maintenance/ambimaint7.ogg', + 'sound/ambience/maintenance/ambimaint8.ogg', + 'sound/ambience/maintenance/ambimaint9.ogg', + 'sound/ambience/maintenance/ambimaint10.ogg', + 'sound/ambience/maintenance/ambimaint11.ogg', + 'sound/ambience/maintenance/ambimaint12.ogg', + 'sound/ambience/engineering/ambitech2.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss1.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss2.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss3.ogg', + 'sound/mobs/non-humanoids/hiss/lowHiss4.ogg', + 'sound/ambience/maintenance/maintambience.ogg', )) GLOBAL_LIST_INIT(away_ambience,list( - 'sound/ambience/ambiatmos.ogg', - 'sound/ambience/ambiatmos2.ogg', - 'sound/ambience/ambidanger.ogg', - 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambimaint.ogg', - 'sound/ambience/ambiodd.ogg', - 'sound/ambience/ambiruin.ogg', - 'sound/ambience/ambiruin2.ogg', - 'sound/ambience/ambiruin3.ogg', - 'sound/ambience/ambiruin4.ogg', - 'sound/ambience/ambiruin5.ogg', - 'sound/ambience/ambiruin6.ogg', - 'sound/ambience/ambiruin7.ogg', - 'sound/ambience/ambitech.ogg', - 'sound/ambience/ambitech2.ogg', + 'sound/ambience/engineering/ambiatmos.ogg', + 'sound/ambience/engineering/ambiatmos2.ogg', + 'sound/ambience/misc/ambidanger.ogg', + 'sound/ambience/misc/ambidanger2.ogg', + 'sound/ambience/maintenance/ambimaint.ogg', + 'sound/ambience/misc/ambiodd.ogg', + 'sound/ambience/ruin/ambiruin.ogg', + 'sound/ambience/ruin/ambiruin2.ogg', + 'sound/ambience/ruin/ambiruin3.ogg', + 'sound/ambience/ruin/ambiruin4.ogg', + 'sound/ambience/ruin/ambiruin5.ogg', + 'sound/ambience/ruin/ambiruin6.ogg', + 'sound/ambience/ruin/ambiruin7.ogg', + 'sound/ambience/engineering/ambitech.ogg', + 'sound/ambience/engineering/ambitech2.ogg', )) GLOBAL_LIST_INIT(reebe_ambience,list( - 'sound/ambience/ambireebe1.ogg', - 'sound/ambience/ambireebe2.ogg', - 'sound/ambience/ambireebe3.ogg', + 'sound/ambience/misc/ambireebe1.ogg', + 'sound/ambience/misc/ambireebe2.ogg', + 'sound/ambience/misc/ambireebe3.ogg', )) GLOBAL_LIST_INIT(creepy_ambience,list( @@ -164,25 +169,25 @@ GLOBAL_LIST_INIT(creepy_ambience,list( 'sound/effects/ghost2.ogg', 'sound/effects/heart_beat.ogg', 'sound/effects/screech.ogg', - 'sound/hallucinations/behind_you1.ogg', - 'sound/hallucinations/behind_you2.ogg', - 'sound/hallucinations/far_noise.ogg', - 'sound/hallucinations/growl1.ogg', - 'sound/hallucinations/growl2.ogg', - 'sound/hallucinations/growl3.ogg', - 'sound/hallucinations/i_see_you1.ogg', - 'sound/hallucinations/i_see_you2.ogg', - 'sound/hallucinations/im_here1.ogg', - 'sound/hallucinations/im_here2.ogg', - 'sound/hallucinations/look_up1.ogg', - 'sound/hallucinations/look_up2.ogg', - 'sound/hallucinations/over_here1.ogg', - 'sound/hallucinations/over_here2.ogg', - 'sound/hallucinations/over_here3.ogg', - 'sound/hallucinations/turn_around1.ogg', - 'sound/hallucinations/turn_around2.ogg', - 'sound/hallucinations/veryfar_noise.ogg', - 'sound/hallucinations/wail.ogg', + 'sound/effects/hallucinations/behind_you1.ogg', + 'sound/effects/hallucinations/behind_you2.ogg', + 'sound/effects/hallucinations/far_noise.ogg', + 'sound/effects/hallucinations/growl1.ogg', + 'sound/effects/hallucinations/growl2.ogg', + 'sound/effects/hallucinations/growl3.ogg', + 'sound/effects/hallucinations/i_see_you1.ogg', + 'sound/effects/hallucinations/i_see_you2.ogg', + 'sound/effects/hallucinations/im_here1.ogg', + 'sound/effects/hallucinations/im_here2.ogg', + 'sound/effects/hallucinations/look_up1.ogg', + 'sound/effects/hallucinations/look_up2.ogg', + 'sound/effects/hallucinations/over_here1.ogg', + 'sound/effects/hallucinations/over_here2.ogg', + 'sound/effects/hallucinations/over_here3.ogg', + 'sound/effects/hallucinations/turn_around1.ogg', + 'sound/effects/hallucinations/turn_around2.ogg', + 'sound/effects/hallucinations/veryfar_noise.ogg', + 'sound/effects/hallucinations/wail.ogg', )) GLOBAL_LIST_INIT(ambience_assoc,list( diff --git a/code/_globalvars/lists/basic_ai.dm b/code/_globalvars/lists/basic_ai.dm new file mode 100644 index 0000000000000..a8646bb8d7f92 --- /dev/null +++ b/code/_globalvars/lists/basic_ai.dm @@ -0,0 +1,19 @@ +///all basic ai subtrees +GLOBAL_LIST_EMPTY(ai_subtrees) + +///basic ai controllers based on status +GLOBAL_LIST_INIT(ai_controllers_by_status, list( + AI_STATUS_ON = list(), + AI_STATUS_OFF = list(), + AI_STATUS_IDLE = list(), +)) + +///basic ai controllers based on their z level +GLOBAL_LIST_EMPTY(ai_controllers_by_zlevel) + +///basic ai controllers that are currently performing idled behaviors +GLOBAL_LIST_INIT(unplanned_controllers, list( + AI_STATUS_ON = list(), + AI_STATUS_IDLE = list(), +)) + diff --git a/code/_globalvars/lists/cargo.dm b/code/_globalvars/lists/cargo.dm index 5e4766fc7c3ff..1a41609d25ce7 100644 --- a/code/_globalvars/lists/cargo.dm +++ b/code/_globalvars/lists/cargo.dm @@ -15,20 +15,3 @@ GLOBAL_LIST_INIT(pack_discount_odds, list( )) GLOBAL_LIST_EMPTY(supplypod_loading_bays) - -GLOBAL_LIST_INIT(podstyles, list(\ - list(POD_SHAPE_NORML, "pod", TRUE, "default", "yellow", RUBBLE_NORMAL, "supply pod", "A Nanotrasen supply drop pod."),\ - list(POD_SHAPE_NORML, "advpod", TRUE, "bluespace", "blue", RUBBLE_NORMAL, "bluespace supply pod" , "A Nanotrasen Bluespace supply pod. Teleports back to CentCom after delivery."),\ - list(POD_SHAPE_NORML, "advpod", TRUE, "centcom", "blue", RUBBLE_NORMAL, "\improper CentCom supply pod", "A Nanotrasen supply pod, this one has been marked with Central Command's designations. Teleports back to CentCom after delivery."),\ - list(POD_SHAPE_NORML, "darkpod", TRUE, "syndicate", "red", RUBBLE_NORMAL, "blood-red supply pod", "An intimidating supply pod, covered in the blood-red markings of the Syndicate. It's probably best to stand back from this."),\ - list(POD_SHAPE_NORML, "darkpod", TRUE, "deathsquad", "blue", RUBBLE_NORMAL, "\improper Deathsquad drop pod", "A Nanotrasen drop pod. This one has been marked the markings of Nanotrasen's elite strike team."),\ - list(POD_SHAPE_NORML, "pod", TRUE, "cultist", "red", RUBBLE_NORMAL, "bloody supply pod", "A Nanotrasen supply pod covered in scratch-marks, blood, and strange runes."),\ - list(POD_SHAPE_OTHER, "missile", FALSE, FALSE, FALSE, RUBBLE_THIN, "cruise missile", "A big ass missile that didn't seem to fully detonate. It was likely launched from some far-off deep space missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ - list(POD_SHAPE_OTHER, "smissile", FALSE, FALSE, FALSE, RUBBLE_THIN, "\improper Syndicate cruise missile", "A big ass, blood-red missile that didn't seem to fully detonate. It was likely launched from some deep space Syndicate missile silo. There appears to be an auxillery payload hatch on the side, though manually opening it is likely impossible."),\ - list(POD_SHAPE_OTHER, "box", TRUE, FALSE, FALSE, RUBBLE_WIDE, "\improper Aussec supply crate", "An incredibly sturdy supply crate, designed to withstand orbital re-entry. Has 'Aussec Armory - 2532' engraved on the side."),\ - list(POD_SHAPE_NORML, "clownpod", TRUE, "clown", "green", RUBBLE_NORMAL, "\improper HONK pod", "A brightly-colored supply pod. It likely originated from the Clown Federation."),\ - list(POD_SHAPE_OTHER, "orange", TRUE, FALSE, FALSE, RUBBLE_NONE, "\improper Orange", "An angry orange."),\ - list(POD_SHAPE_OTHER, FALSE, FALSE, FALSE, FALSE, RUBBLE_NONE, "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\ - list(POD_SHAPE_OTHER, "gondola", FALSE, FALSE, FALSE, RUBBLE_NONE, "gondola", "The silent walker. This one seems to be part of a delivery agency."),\ - list(POD_SHAPE_OTHER, FALSE, FALSE, FALSE, FALSE, RUBBLE_NONE, FALSE, FALSE, "rl_click", "give_po")\ -)) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index faaabd77ba134..123deaa2518e5 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -134,22 +134,22 @@ GLOBAL_LIST_EMPTY(female_clothing_icons) GLOBAL_LIST_INIT(scarySounds, list( 'sound/effects/footstep/clownstep1.ogg', 'sound/effects/footstep/clownstep2.ogg', - 'sound/effects/glassbr1.ogg', - 'sound/effects/glassbr2.ogg', - 'sound/effects/glassbr3.ogg', - 'sound/items/welder.ogg', - 'sound/items/welder2.ogg', - 'sound/machines/airlock.ogg', - 'sound/voice/hiss1.ogg', - 'sound/voice/hiss2.ogg', - 'sound/voice/hiss3.ogg', - 'sound/voice/hiss4.ogg', - 'sound/voice/hiss5.ogg', - 'sound/voice/hiss6.ogg', - 'sound/weapons/armbomb.ogg', - 'sound/weapons/taser.ogg', - 'sound/weapons/thudswoosh.ogg', - 'sound/weapons/shove.ogg', + 'sound/effects/glass/glassbr1.ogg', + 'sound/effects/glass/glassbr2.ogg', + 'sound/effects/glass/glassbr3.ogg', + 'sound/items/tools/welder.ogg', + 'sound/items/tools/welder2.ogg', + 'sound/machines/airlock/airlock.ogg', + 'sound/mobs/non-humanoids/hiss/hiss1.ogg', + 'sound/mobs/non-humanoids/hiss/hiss2.ogg', + 'sound/mobs/non-humanoids/hiss/hiss3.ogg', + 'sound/mobs/non-humanoids/hiss/hiss4.ogg', + 'sound/mobs/non-humanoids/hiss/hiss5.ogg', + 'sound/mobs/non-humanoids/hiss/hiss6.ogg', + 'sound/items/weapons/armbomb.ogg', + 'sound/items/weapons/taser.ogg', + 'sound/items/weapons/thudswoosh.ogg', + 'sound/items/weapons/shove.ogg', )) @@ -265,3 +265,5 @@ GLOBAL_LIST_INIT(status_display_state_pictures, list( "blank", "shuttle", )) + +GLOBAL_LIST_INIT(fishing_tips, world.file2list("strings/fishing_tips.txt")) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 76c69425bf54b..fe28ec63969ba 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -151,6 +151,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/stack/spacecash/c10 = 1, /obj/item/stack/sticky_tape = 1, /obj/item/tank/internals/emergency_oxygen = 1, + /obj/item/paper/paperslip/fishing_tip = 1, //light sources /obj/effect/spawner/random/decoration/glowstick = 1, @@ -312,7 +313,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items list(//equipment /obj/item/clothing/glasses/hud/security = 1, /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/clothing/gloves/color/black = 1, + /obj/item/clothing/gloves/color/black/security = 1, /obj/item/clothing/gloves/color/yellow = 1, /obj/item/clothing/gloves/tackler/combat = 1, /obj/item/clothing/head/helmet/toggleable/justice = 1, diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index dce2dc69a50ae..f9f70a2c7069f 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -31,6 +31,7 @@ GLOBAL_LIST_INIT(guardian_first_names, world.file2list("strings/names/guardian_d GLOBAL_LIST_INIT(guardian_tech_surnames, world.file2list("strings/names/guardian_gamepieces.txt")) GLOBAL_LIST_INIT(guardian_fantasy_surnames, world.file2list("strings/names/guardian_tarot.txt")) GLOBAL_LIST_INIT(operative_aliases, world.file2list("strings/names/operative_alias.txt")) +GLOBAL_LIST_INIT(voidwalker_names, world.file2list("strings/names/voidwalker.txt")) GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm index 22ef830ea773d..c052f761b03bf 100644 --- a/code/_globalvars/lists/quirks.dm +++ b/code/_globalvars/lists/quirks.dm @@ -92,3 +92,33 @@ GLOBAL_LIST_INIT(organ_choice, list( "Liver" = ORGAN_SLOT_LIVER, "Stomach" = ORGAN_SLOT_STOMACH, )) + +///Paraplegic Quirk +GLOBAL_LIST_INIT(paraplegic_choice, list( + "Default" = FALSE, + "Amputee" = TRUE, +)) + +///Scarred Eye Quirk +GLOBAL_LIST_INIT(scarred_eye_choice, list( + "Random", + "Left Eye", + "Right Eye", + "Double", +)) + +///chipped Quirk +GLOBAL_LIST_INIT(quirk_chipped_choice, list( + "Basketsoft 3000" = /obj/item/skillchip/basketweaving, + "WINE" = /obj/item/skillchip/wine_taster, + "Hedge 3" = /obj/item/skillchip/bonsai, + "Skillchip adapter" = /obj/item/skillchip/useless_adapter, + "N16H7M4R3" = /obj/item/skillchip/light_remover, + "3NTR41LS" = /obj/item/skillchip/entrails_reader, + "GENUINE ID Appraisal Now!" = /obj/item/skillchip/appraiser, + "Le S48R4G3" = /obj/item/skillchip/sabrage, + "Integrated Intuitive Thinking and Judging" = /obj/item/skillchip/intj, + "F0RC3 4DD1CT10N" = /obj/item/skillchip/drunken_brawler, + "\"Space Station 13: The Musical\"" = /obj/item/skillchip/musical, + "Mast-Angl-Er skillchip" = /obj/item/skillchip/master_angler, +)) diff --git a/code/_globalvars/lists/reagents.dm b/code/_globalvars/lists/reagents.dm index 685eda9357610..dc18f9814c63f 100644 --- a/code/_globalvars/lists/reagents.dm +++ b/code/_globalvars/lists/reagents.dm @@ -49,7 +49,7 @@ GLOBAL_LIST_INIT(chemical_reagents_list, init_chemical_reagent_list()) GLOBAL_LIST(chemical_reactions_results_lookup_list) /// list of all reagents that are parent types used to define a bunch of children - but aren't used themselves as anything. GLOBAL_LIST(fake_reagent_blacklist) -/// Turfs metalgen cant touch +/// Turfs metalgen can't touch GLOBAL_LIST_INIT(blacklisted_metalgen_types, typecacheof(list( /turf/closed/indestructible, //indestructible turfs should be indestructible, metalgen transmutation to plasma allows them to be destroyed /turf/open/indestructible @@ -176,7 +176,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagentlist()) /proc/build_name2reagentlist() . = list() - //build map with keys stored seperatly + //build map with keys stored separately var/list/name_to_reagent = list() var/list/only_names = list() for (var/datum/reagent/reagent as anything in GLOB.chemical_reagents_list) diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm index 07e0eabf01f62..b1460165564e6 100644 --- a/code/_globalvars/lists/typecache.dm +++ b/code/_globalvars/lists/typecache.dm @@ -1,5 +1,5 @@ //please store common type caches here. -//type caches should only be stored here if used in mutiple places or likely to be used in mutiple places. +//type caches should only be stored here if used in multiple places or likely to be used in multiple places. //Note: typecache can only replace istype if you know for sure the thing is at least a datum. @@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(typecache_elevated_structures, typecacheof(list( /obj/structure/table, //Kitchen /obj/machinery/smartfridge, - /obj/machinery/smartfridge/drying_rack, // Redundant, given above, but this is for the sake of explicitness. + /obj/machinery/smartfridge/drying, // Redundant, given above, but this is for the sake of explicitness. /obj/structure/bonfire, /obj/machinery/grill, /obj/machinery/griddle, diff --git a/code/_globalvars/phobias.dm b/code/_globalvars/phobias.dm index 131e530ce82ac..e112d376adf5d 100644 --- a/code/_globalvars/phobias.dm +++ b/code/_globalvars/phobias.dm @@ -69,6 +69,7 @@ GLOBAL_LIST_INIT(phobia_mobs, list( )), "carps" = typecacheof(list( /mob/living/basic/carp, + /mob/living/basic/space_dragon, )), "conspiracies" = typecacheof(list( /mob/living/basic/drone, @@ -247,6 +248,7 @@ GLOBAL_LIST_INIT(phobia_objs, list( /obj/item/clothing/mask/gas/carp, /obj/item/cigarette/carp, /obj/item/clothing/under/suit/carpskin, + /obj/item/fish/baby_carp, /obj/item/food/cubancarp, /obj/item/food/fishmeat/carp, /obj/item/grenade/clusterbuster/spawner_spesscarp, diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index de5d04799696b..eef2f1a299439 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_AI_PAUSED" = TRAIT_AI_PAUSED, "TRAIT_BANNED_FROM_CARGO_SHUTTLE" = TRAIT_BANNED_FROM_CARGO_SHUTTLE, "TRAIT_BEING_SHOCKED" = TRAIT_BEING_SHOCKED, + "TRAIT_CATCH_AND_RELEASE" = TRAIT_CATCH_AND_RELEASE, "TRAIT_COMMISSIONED" = TRAIT_COMMISSIONED, "TRAIT_CLIMBABLE" = TRAIT_CLIMBABLE, "TRAIT_CURRENTLY_CLEANING" = TRAIT_CURRENTLY_CLEANING, @@ -17,16 +18,20 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DO_NOT_SPLASH" = TRAIT_DO_NOT_SPLASH, "TRAIT_DRIED" = TRAIT_DRIED, "TRAIT_DRYABLE" = TRAIT_DRYABLE, + "TRAIT_FISHING_SPOT" = TRAIT_FISHING_SPOT, "TRAIT_FOOD_CHEF_MADE" = TRAIT_FOOD_CHEF_MADE, "TRAIT_FOOD_FRIED" = TRAIT_FOOD_FRIED, + "TRAIT_QUALITY_FOOD_INGREDIENT" = TRAIT_QUALITY_FOOD_INGREDIENT, "TRAIT_FOOD_SILVER" = TRAIT_FOOD_SILVER, "TRAIT_KEEP_TOGETHER" = TRAIT_KEEP_TOGETHER, "TRAIT_LIGHTING_DEBUGGED" = TRAIT_LIGHTING_DEBUGGED, + "TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION" = TRAIT_MESSAGE_IN_A_BOTTLE_LOCATION, "TRAIT_RECENTLY_COINED" = TRAIT_RECENTLY_COINED, "TRAIT_RUSTY" = TRAIT_RUSTY, "TRAIT_SPINNING" = TRAIT_SPINNING, "TRAIT_STICKERED" = TRAIT_STICKERED, "TRAIT_UNHITTABLE_BY_PROJECTILES" = TRAIT_UNHITTABLE_BY_PROJECTILES, + "TRAIT_UNLINKABLE_FISHING_SPOT" = TRAIT_UNLINKABLE_FISHING_SPOT, ), /atom/movable = list( "TRAIT_ACTIVE_STORAGE" = TRAIT_ACTIVE_STORAGE, @@ -35,9 +40,11 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BLOCKING_EXPLOSIVES" = TRAIT_BLOCKING_EXPLOSIVES, "TRAIT_BOULDER_BREAKER" = TRAIT_BOULDER_BREAKER, "TRAIT_CASTABLE_LOC" = TRAIT_CASTABLE_LOC, + "TRAIT_CHASM_STOPPER" = TRAIT_CHASM_STOPPER, + "TRAIT_COMBAT_MODE_SKIP_INTERACTION" = TRAIT_COMBAT_MODE_SKIP_INTERACTION, "TRAIT_DEL_ON_SPACE_DUMP" = TRAIT_DEL_ON_SPACE_DUMP, + "TRAIT_VALID_DNA_INFUSION" = TRAIT_VALID_DNA_INFUSION, "TRAIT_FISH_CASE_COMPATIBILE" = TRAIT_FISH_CASE_COMPATIBILE, - "TRAIT_FISH_SAFE_STORAGE" = TRAIT_FISH_SAFE_STORAGE, "TRAIT_FROZEN" = TRAIT_FROZEN, "TRAIT_HAS_LABEL" = TRAIT_HAS_LABEL, "TRAIT_HEARING_SENSITIVE" = TRAIT_HEARING_SENSITIVE, @@ -49,26 +56,29 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_MOVE_FLYING" = TRAIT_MOVE_FLYING, "TRAIT_MOVE_GROUND" = TRAIT_MOVE_GROUND, "TRAIT_MOVE_PHASING" = TRAIT_MOVE_PHASING, + "TRAIT_MOVE_UPSIDE_DOWN" = TRAIT_MOVE_UPSIDE_DOWN, "TRAIT_MOVE_VENTCRAWLING" = TRAIT_MOVE_VENTCRAWLING, "TRAIT_MOVE_UPSIDE_DOWN" = TRAIT_MOVE_UPSIDE_DOWN, "TRAIT_NO_FLOATING_ANIM" = TRAIT_NO_FLOATING_ANIM, "TRAIT_NO_MANIFEST_CONTENTS_ERROR" = TRAIT_NO_MANIFEST_CONTENTS_ERROR, "TRAIT_NO_MISSING_ITEM_ERROR" = TRAIT_NO_MISSING_ITEM_ERROR, "TRAIT_NO_THROW_HITPUSH" = TRAIT_NO_THROW_HITPUSH, + "TRAIT_NOT_BARFABLE" = TRAIT_NOT_BARFABLE, "TRAIT_NOT_ENGRAVABLE" = TRAIT_NOT_ENGRAVABLE, - "TRAIT_SPELLS_TRANSFER_TO_LOC" = TRAIT_SPELLS_TRANSFER_TO_LOC, "TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENT" = TRAIT_ODD_CUSTOMIZABLE_FOOD_INGREDIENT, + "TRAIT_ON_HIT_EFFECT" = TRAIT_ON_HIT_EFFECT, "TRAIT_RUNECHAT_HIDDEN" = TRAIT_RUNECHAT_HIDDEN, + "TRAIT_SCARY_FISHERMAN" = TRAIT_SCARY_FISHERMAN, "TRAIT_SECLUDED_LOCATION" = TRAIT_SECLUDED_LOCATION, "TRAIT_SNOWSTORM_IMMUNE" = TRAIT_SNOWSTORM_IMMUNE, + "TRAIT_SPELLS_TRANSFER_TO_LOC" = TRAIT_SPELLS_TRANSFER_TO_LOC, "TRAIT_TELEKINESIS_CONTROLLED" = TRAIT_TELEKINESIS_CONTROLLED, "TRAIT_UNDERFLOOR" = TRAIT_UNDERFLOOR, "TRAIT_UNIQUE_IMMERSE" = TRAIT_UNIQUE_IMMERSE, - "TRAIT_VOIDSTORM_IMMUNE" = TRAIT_VOIDSTORM_IMMUNE, - "TRAIT_WAS_RENAMED" = TRAIT_WAS_RENAMED, "TRAIT_WADDLING" = TRAIT_WADDLING, + "TRAIT_WAS_RENAMED" = TRAIT_WAS_RENAMED, "TRAIT_WEATHER_IMMUNE" = TRAIT_WEATHER_IMMUNE, - "TRAIT_CHASM_STOPPER" = TRAIT_CHASM_STOPPER, + "TRAIT_SILENT_REACTIONS" = TRAIT_SILENT_REACTIONS, ), /datum/controller/subsystem/economy = list( "TRAIT_MARKET_CRASHING" = TRAIT_MARKET_CRASHING, @@ -80,6 +90,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "STATION_TRAIT_BIGGER_PODS" = STATION_TRAIT_BIGGER_PODS, "STATION_TRAIT_BIRTHDAY" = STATION_TRAIT_BIRTHDAY, "STATION_TRAIT_BOTS_GLITCHED" = STATION_TRAIT_BOTS_GLITCHED, + "STATION_TRAIT_MACHINES_GLITCHED" = STATION_TRAIT_MACHINES_GLITCHED, "STATION_TRAIT_BRIGHT_DAY" = STATION_TRAIT_BRIGHT_DAY, "STATION_TRAIT_CARP_INFESTATION" = STATION_TRAIT_CARP_INFESTATION, "STATION_TRAIT_CYBERNETIC_REVOLUTION" = STATION_TRAIT_CYBERNETIC_REVOLUTION, @@ -102,6 +113,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "STATION_TRAIT_UNIQUE_AI" = STATION_TRAIT_UNIQUE_AI, "STATION_TRAIT_UNNATURAL_ATMOSPHERE" = STATION_TRAIT_UNNATURAL_ATMOSPHERE, "STATION_TRAIT_VENDING_SHORTAGE" = STATION_TRAIT_VENDING_SHORTAGE, + "STATION_TRAIT_SPIKED_DRINKS" = STATION_TRAIT_SPIKED_DRINKS, ), /datum/deathmatch_lobby = list( "TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS" = TRAIT_DEATHMATCH_EXPLOSIVE_IMPLANTS, @@ -111,10 +123,14 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj = list( "TRAIT_WALLMOUNTED" = TRAIT_WALLMOUNTED, + "TRAIT_CONTRABAND" = TRAIT_CONTRABAND, ), /mob = list( + "TRAIT_AI_ACCESS" = TRAIT_AI_ACCESS, "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, "TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING, + "TRAIT_ACT_AS_CULTIST" = TRAIT_ACT_AS_CULTIST, + "TRAIT_ACT_AS_HERETIC" = TRAIT_ACT_AS_HERETIC, "TRAIT_ADAMANTINE_EXTRACT_ARMOR" = TRAIT_ADAMANTINE_EXTRACT_ARMOR, "TRAIT_ADVANCEDTOOLUSER" = TRAIT_ADVANCEDTOOLUSER, "TRAIT_AGENDER" = TRAIT_AGENDER, @@ -144,13 +160,13 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_BIRTHDAY_BOY" = TRAIT_BIRTHDAY_BOY, "TRAIT_BLOB_ALLY" = TRAIT_BLOB_ALLY, "TRAIT_BLOCK_SHUTTLE_MOVEMENT" = TRAIT_BLOCK_SHUTTLE_MOVEMENT, + "TRAIT_BLOCKING_PROJECTILES" = TRAIT_BLOCKING_PROJECTILES, "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS, "TRAIT_BLOODSHOT_EYES" = TRAIT_BLOODSHOT_EYES, "TRAIT_BLOODY_MESS" = TRAIT_BLOODY_MESS, "TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE, "TRAIT_BONSAI" = TRAIT_BONSAI, "TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER, - "TRAIT_BOXING_READY" = TRAIT_BOXING_READY, "TRAIT_BORN_MONKEY" = TRAIT_BORN_MONKEY, "TRAIT_BOXING_READY" = TRAIT_BOXING_READY, "TRAIT_BRAINWASHING" = TRAIT_BRAINWASHING, @@ -171,6 +187,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_CHEF_KISS" = TRAIT_CHEF_KISS, "TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS, "TRAIT_CHUNKYFINGERS_IGNORE_BATON" = TRAIT_CHUNKYFINGERS_IGNORE_BATON, + "TRAIT_CHUUNIBYOU" = TRAIT_CHUUNIBYOU, "TRAIT_CLEANBOT_WHISPERER" = TRAIT_CLEANBOT_WHISPERER, "TRAIT_CLIFF_WALKER" = TRAIT_CLIFF_WALKER, "TRAIT_CLOWN_ENJOYER" = TRAIT_CLOWN_ENJOYER, @@ -187,6 +204,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DETECTIVES_TASTE" = TRAIT_DETECTIVES_TASTE, "TRAIT_DETECT_STORM" = TRAIT_DETECT_STORM, "TRAIT_DIAGNOSTIC_HUD" = TRAIT_DIAGNOSTIC_HUD, + "TRAIT_BOT_PATH_HUD" = TRAIT_BOT_PATH_HUD, "TRAIT_DISCOORDINATED_TOOL_USER" = TRAIT_DISCOORDINATED_TOOL_USER, "TRAIT_DISEASELIKE_SEVERITY_MEDIUM" = TRAIT_DISEASELIKE_SEVERITY_MEDIUM, "TRAIT_DISFIGURED" = TRAIT_DISFIGURED, @@ -199,6 +217,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DOUBLE_TAP" = TRAIT_DOUBLE_TAP, "TRAIT_DREAMING" = TRAIT_DREAMING, "TRAIT_DRINKS_BLOOD" = TRAIT_DRINKS_BLOOD, + "TRAIT_DRUNKEN_BRAWLER" = TRAIT_DRUNKEN_BRAWLER, "TRAIT_DUMB" = TRAIT_DUMB, "TRAIT_DWARF" = TRAIT_DWARF, "TRAIT_EASILY_WOUNDED" = TRAIT_EASILY_WOUNDED, @@ -208,10 +227,12 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_ECHOLOCATION_RECEIVER" = TRAIT_ECHOLOCATION_RECEIVER, "TRAIT_ELDRITCH_PAINTING_EXAMINE" = TRAIT_ELDRITCH_PAINTING_EXAMINE, "TRAIT_ELITE_CHALLENGER" = TRAIT_ELITE_CHALLENGER, - "TRAIT_EMOTEMUTE " = TRAIT_EMOTEMUTE, "TRAIT_EMOTEMUTE" = TRAIT_EMOTEMUTE, "TRAIT_EMPATH" = TRAIT_EMPATH, "TRAIT_ENTRAILS_READER" = TRAIT_ENTRAILS_READER, + "TRAIT_EVIL" = TRAIT_EVIL, + "TRAIT_EXAMINE_DEEPER_FISH" = TRAIT_EXAMINE_DEEPER_FISH, + "TRAIT_EXAMINE_FISH" = TRAIT_EXAMINE_FISH, "TRAIT_EXAMINE_FISHING_SPOT" = TRAIT_EXAMINE_FISHING_SPOT, "TRAIT_EXAMINE_FITNESS" = TRAIT_EXAMINE_FITNESS, "TRAIT_EXPANDED_FOV" = TRAIT_EXPANDED_FOV, @@ -225,11 +246,12 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_FEARLESS" = TRAIT_FEARLESS, "TRAIT_FENCE_CLIMBER" = TRAIT_FENCE_CLIMBER, "TRAIT_FINGERPRINT_PASSTHROUGH" = TRAIT_FINGERPRINT_PASSTHROUGH, + "TRAIT_FISH_EATER" = TRAIT_FISH_EATER, "TRAIT_FIST_MINING" = TRAIT_FIST_MINING, - "TRAIT_FIXED_HAIRCOLOR" = TRAIT_FIXED_HAIRCOLOR, "TRAIT_FIXED_MUTANT_COLORS" = TRAIT_FIXED_MUTANT_COLORS, "TRAIT_FLESH_DESIRE" = TRAIT_FLESH_DESIRE, "TRAIT_FLOORED" = TRAIT_FLOORED, + "TRAIT_FLOPPING" = TRAIT_FLOPPING, "TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION" = TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION, "TRAIT_FORCED_GRAVITY" = TRAIT_FORCED_GRAVITY, "TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING, @@ -245,8 +267,9 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_GARLIC_BREATH" = TRAIT_GARLIC_BREATH, "TRAIT_GENELESS" = TRAIT_GENELESS, "TRAIT_GIANT" = TRAIT_GIANT, - "TRAIT_GONE_FISHING" = TRAIT_GONE_FISHING, + "TRAIT_GODMODE" = TRAIT_GODMODE, "TRAIT_GOOD_HEARING" = TRAIT_GOOD_HEARING, + "TRAIT_GRABRESISTANCE" = TRAIT_GRABRESISTANCE, "TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS, "TRAIT_GREENTEXT_CURSED" = TRAIT_GREENTEXT_CURSED, "TRAIT_GUNFLIP" = TRAIT_GUNFLIP, @@ -270,9 +293,9 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_HOT_SPRING_CURSED" = TRAIT_HOT_SPRING_CURSED, "TRAIT_HULK" = TRAIT_HULK, "TRAIT_HUSK" = TRAIT_HUSK, + "TRAIT_HYPOTHERMIC" = TRAIT_HYPOTHERMIC, "TRAIT_ID_APPRAISER" = TRAIT_ID_APPRAISER, "TRAIT_IGNORE_ELEVATION" = TRAIT_IGNORE_ELEVATION, - "TRAIT_IGNOREDAMAGESLOWDOWN" = TRAIT_IGNOREDAMAGESLOWDOWN, "TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN, "TRAIT_IGNORING_GRAVITY" = TRAIT_IGNORING_GRAVITY, "TRAIT_ILLITERATE" = TRAIT_ILLITERATE, @@ -282,9 +305,11 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_INVISIBLE_MAN" = TRAIT_INVISIBLE_MAN, "TRAIT_INVISIMIN" = TRAIT_INVISIMIN, "TRAIT_IN_CALL" = TRAIT_IN_CALL, + "TRAIT_IS_WET" = TRAIT_IS_WET, "TRAIT_IWASBATONED" = TRAIT_IWASBATONED, "TRAIT_JOLLY" = TRAIT_JOLLY, "TRAIT_KISS_OF_DEATH" = TRAIT_KISS_OF_DEATH, + "TRAIT_SYNDIE_KISS" = TRAIT_SYNDIE_KISS, "TRAIT_KNOCKEDOUT" = TRAIT_KNOCKEDOUT, "TRAIT_KNOW_ENGI_WIRES" = TRAIT_KNOW_ENGI_WIRES, "TRAIT_KNOW_ROBO_WIRES" = TRAIT_KNOW_ROBO_WIRES, @@ -311,7 +336,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_MOB_BREEDER" = TRAIT_MOB_BREEDER, "TRAIT_MOB_EATER" = TRAIT_MOB_EATER, "TRAIT_MOB_HATCHED" = TRAIT_MOB_HATCHED, - "TRAIT_MOB_RELAY_HAPPINESS" = TRAIT_MOB_RELAY_HAPPINESS, + "TRAIT_MOB_HIDE_HAPPINESS" = TRAIT_MOB_HIDE_HAPPINESS, "TRAIT_MOB_TIPPED" = TRAIT_MOB_TIPPED, "TRAIT_MORBID" = TRAIT_MORBID, "TRAIT_MULTIZ_SUIT_SENSORS" = TRAIT_MULTIZ_SUIT_SENSORS, @@ -336,11 +361,12 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NOFIRE_SPREAD" = TRAIT_NOFIRE_SPREAD, "TRAIT_NOFLASH" = TRAIT_NOFLASH, "TRAIT_NOGUNS" = TRAIT_NOGUNS, + "TRAIT_TOSS_GUN_HARD" = TRAIT_TOSS_GUN_HARD, "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT, "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, "TRAIT_NOMOBSWAP" = TRAIT_NOMOBSWAP, - "TRAIT_NOSELFIGNITION_HEAD_ONLY" = TRAIT_NOSELFIGNITION_HEAD_ONLY, + "TRAIT_HEAD_ATMOS_SEALED" = TRAIT_HEAD_ATMOS_SEALED, "TRAIT_NOSOFTCRIT" = TRAIT_NOSOFTCRIT, "TRAIT_NO_AUGMENTS" = TRAIT_NO_AUGMENTS, "TRAIT_NO_BLOOD_OVERLAY" = TRAIT_NO_BLOOD_OVERLAY, @@ -363,6 +389,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_SOUL" = TRAIT_NO_SOUL, "TRAIT_NO_STAGGER" = TRAIT_NO_STAGGER, "TRAIT_NO_STRIP" = TRAIT_NO_STRIP, + "TRAIT_NO_THROWING" = TRAIT_NO_THROWING, "TRAIT_NO_TRANSFORM" = TRAIT_NO_TRANSFORM, "TRAIT_NO_TWOHANDING" = TRAIT_NO_TWOHANDING, "TRAIT_NO_UNDERWEAR" = TRAIT_NO_UNDERWEAR, @@ -437,9 +464,12 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, "TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG, "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, + "TRAIT_SILICON_ACCESS" = TRAIT_SILICON_ACCESS, + "TRAIT_SILICON_EMOTES_ALLOWED" = TRAIT_SILICON_EMOTES_ALLOWED, "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE, "TRAIT_SKITTISH" = TRAIT_SKITTISH, "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, + "TRAIT_SLIPPERY_WHEN_WET" = TRAIT_SLIPPERY_WHEN_WET, "TRAIT_SMOKER" = TRAIT_SMOKER, "TRAIT_SNEAK" = TRAIT_SNEAK, "TRAIT_SNOB" = TRAIT_SNOB, @@ -449,8 +479,10 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SPARRING" = TRAIT_SPARRING, "TRAIT_SPEAKS_CLEARLY" = TRAIT_SPEAKS_CLEARLY, "TRAIT_SPECIAL_TRAUMA_BOOST" = TRAIT_SPECIAL_TRAUMA_BOOST, + "TRAIT_SPELLS_LOTTERY" = TRAIT_SPELLS_LOTTERY, "TRAIT_SPIDER_CONSUMED" = TRAIT_SPIDER_CONSUMED, "TRAIT_SPIRITUAL" = TRAIT_SPIRITUAL, + "TRAIT_SPLATTERCASTER" = TRAIT_SPLATTERCASTER, "TRAIT_SPRAY_PAINTABLE" = TRAIT_SPRAY_PAINTABLE, "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, @@ -478,6 +510,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_TENACIOUS" = TRAIT_TENACIOUS, "TRAIT_TENTACLE_IMMUNE" = TRAIT_TENTACLE_IMMUNE, "TRAIT_TESLA_SHOCKIMMUNE" = TRAIT_TESLA_SHOCKIMMUNE, + "TRAIT_TETRODOTOXIN_HEALING" = TRAIT_TETRODOTOXIN_HEALING, "TRAIT_THERMAL_VISION" = TRAIT_THERMAL_VISION, "TRAIT_THINKING_IN_CHARACTER" = TRAIT_THINKING_IN_CHARACTER, "TRAIT_THROWINGARM" = TRAIT_THROWINGARM, @@ -491,6 +524,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_TUMOR_SUPPRESSION" = TRAIT_TUMOR_SUPPRESSED, "TRAIT_UI_BLOCKED" = TRAIT_UI_BLOCKED, "TRAIT_UNBREAKABLE" = TRAIT_UNBREAKABLE, + "TRAIT_UNCONVERTABLE" = TRAIT_UNCONVERTABLE, "TRAIT_UNDENSE" = TRAIT_UNDENSE, "TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE" = TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE, "TRAIT_UNHUSKABLE" = TRAIT_UNHUSKABLE, @@ -503,15 +537,19 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_USER_SCOPED" = TRAIT_USER_SCOPED, "TRAIT_USES_SKINTONES" = TRAIT_USES_SKINTONES, "TRAIT_VATGROWN" = TRAIT_VATGROWN, + "TRAIT_VEGETARIAN" = TRAIT_VEGETARIAN, "TRAIT_VENTCRAWLER_ALWAYS" = TRAIT_VENTCRAWLER_ALWAYS, "TRAIT_VENTCRAWLER_NUDE" = TRAIT_VENTCRAWLER_NUDE, "TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE, "TRAIT_VIRUS_RESISTANCE" = TRAIT_VIRUS_RESISTANCE, "TRAIT_VORACIOUS" = TRAIT_VORACIOUS, "TRAIT_WAS_EVOLVED" = TRAIT_WAS_EVOLVED, + "TRAIT_WATER_ADAPTATION" = TRAIT_WATER_ADAPTATION, + "TRAIT_WATER_HATER" = TRAIT_WATER_HATER, "TRAIT_WEAK_SOUL" = TRAIT_WEAK_SOUL, "TRAIT_WEB_SURFER" = TRAIT_WEB_SURFER, "TRAIT_WEB_WEAVER" = TRAIT_WEB_WEAVER, + "TRAIT_WET_FOR_LONGER" = TRAIT_WET_FOR_LONGER, "TRAIT_WINE_TASTER" = TRAIT_WINE_TASTER, "TRAIT_WING_BUFFET" = TRAIT_WING_BUFFET, "TRAIT_WING_BUFFET_TIRED" = TRAIT_WING_BUFFET_TIRED, @@ -520,21 +558,35 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE, "TRAIT_XRAY_HEARING" = TRAIT_XRAY_HEARING, "TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION, + "TRAIT_NOGRAV_ALWAYS_DRIFT" = TRAIT_NOGRAV_ALWAYS_DRIFT, + "TRAIT_SPEECH_BOOSTER" = TRAIT_SPEECH_BOOSTER, + "TRAIT_MINING_PARRYING" = TRAIT_MINING_PARRYING, + "TRAIT_ILLUSORY_EFFECT" = TRAIT_ILLUSORY_EFFECT, + "TRAIT_IGNORE_FIRE_PROTECTION" = TRAIT_IGNORE_FIRE_PROTECTION, + "TRAIT_LEFT_EYE_SCAR" = TRAIT_LEFT_EYE_SCAR, + "TRAIT_RIGHT_EYE_SCAR" = TRAIT_RIGHT_EYE_SCAR, ), /obj/item = list( "TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING, + "TRAIT_BAIT_ALLOW_FISHING_DUD" = TRAIT_BAIT_ALLOW_FISHING_DUD, + "TRAIT_BAIT_IGNORE_ENVIRONMENT" = TRAIT_BAIT_IGNORE_ENVIRONMENT, + "TRAIT_BAIT_UNCONSUMABLE" = TRAIT_BAIT_UNCONSUMABLE, + "TRAIT_BAKEABLE" = TRAIT_BAKEABLE, "TRAIT_BASIC_QUALITY_BAIT" = TRAIT_BASIC_QUALITY_BAIT, "TRAIT_BLIND_TOOL" = TRAIT_BLIND_TOOL, "TRAIT_BYPASS_RANGED_ARMOR" = TRAIT_BYPASS_RANGED_ARMOR, + "TRAIT_CONTRABAND_BLOCKER" = TRAIT_CONTRABAND_BLOCKER, "TRAIT_CUSTOM_TAP_SOUND" = TRAIT_CUSTOM_TAP_SOUND, "TRAIT_DANGEROUS_OBJECT" = TRAIT_DANGEROUS_OBJECT, "TRAIT_FISHING_BAIT" = TRAIT_FISHING_BAIT, + "TRAIT_FOOD_BBQ_GRILLED" = TRAIT_FOOD_BBQ_GRILLED, "TRAIT_GERM_SENSITIVE" = TRAIT_GERM_SENSITIVE, "TRAIT_GOOD_QUALITY_BAIT" = TRAIT_GOOD_QUALITY_BAIT, "TRAIT_GREAT_QUALITY_BAIT" = TRAIT_GREAT_QUALITY_BAIT, "TRAIT_HAUNTED" = TRAIT_HAUNTED, "TRAIT_HONKSPAMMING" = TRAIT_HONKSPAMMING, "TRAIT_INNATELY_FANTASTICAL_ITEM" = TRAIT_INNATELY_FANTASTICAL_ITEM, + "TRAIT_INSTANTLY_PROCESSES_BOULDERS" = TRAIT_INSTANTLY_PROCESSES_BOULDERS, "TRAIT_ITEM_OBJECTIVE_BLOCKED" = TRAIT_ITEM_OBJECTIVE_BLOCKED, "TRAIT_NEEDS_TWO_HANDS" = TRAIT_NEEDS_TWO_HANDS, "TRAIT_NO_BARCODES" = TRAIT_NO_BARCODES, @@ -544,12 +596,13 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NODROP" = TRAIT_NODROP, "TRAIT_OMNI_BAIT" = TRAIT_OMNI_BAIT, "TRAIT_PLANT_WILDMUTATE" = TRAIT_PLANT_WILDMUTATE, + "TRAIT_POISONOUS_BAIT" = TRAIT_POISONOUS_BAIT, "TRAIT_T_RAY_VISIBLE" = TRAIT_T_RAY_VISIBLE, "TRAIT_TRANSFORM_ACTIVE" = TRAIT_TRANSFORM_ACTIVE, "TRAIT_UNCATCHABLE" = TRAIT_UNCATCHABLE, + "TRAIT_UNCOMPOSTABLE" = TRAIT_UNCOMPOSTABLE, + "TRAIT_UNIQUE_AQUARIUM_CONTENT" = TRAIT_UNIQUE_AQUARIUM_CONTENT, "TRAIT_WIELDED" = TRAIT_WIELDED, - "TRAIT_BAKEABLE" = TRAIT_BAKEABLE, - "TRAIT_INSTANTLY_PROCESSES_BOULDERS" = TRAIT_INSTANTLY_PROCESSES_BOULDERS, ), /obj/item/ammo_casing = list( "TRAIT_DART_HAS_INSERT" = TRAIT_DART_HAS_INSERT, @@ -576,16 +629,30 @@ GLOBAL_LIST_INIT(traits_by_type, list( /obj/item/fish = list( "TRAIT_FISH_AMPHIBIOUS" = TRAIT_FISH_AMPHIBIOUS, "TRAIT_FISH_CROSSBREEDER" = TRAIT_FISH_CROSSBREEDER, + "TRAIT_FISH_ELECTROGENESIS" = TRAIT_FISH_ELECTROGENESIS, "TRAIT_FISH_FED_LUBE" = TRAIT_FISH_FED_LUBE, + "TRAIT_FISH_FLOPPING" = TRAIT_FISH_FLOPPING, "TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE, + "TRAIT_FISH_INK_ON_COOLDOWN" = TRAIT_FISH_INK_ON_COOLDOWN, + "TRAIT_FISH_MUTAGENIC" = TRAIT_FISH_MUTAGENIC, "TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER, "TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING, + "TRAIT_FISH_ON_TESLIUM" = TRAIT_FISH_ON_TESLIUM, + "TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE, "TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE, + "TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED, + "TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS, + "TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER, + "TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING, + "TRAIT_FISH_QUICK_GROWTH" = TRAIT_FISH_QUICK_GROWTH, "TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE, - "TRAIT_FISH_ELECTROGENESIS" = TRAIT_FISH_ELECTROGENESIS, "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, + "TRAIT_FISH_WELL_COOKED" = TRAIT_FISH_WELL_COOKED, "TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH, ), + /obj/item/fishing_rod = list( + "TRAIT_ROD_REMOVE_FISHING_DUD" = TRAIT_ROD_REMOVE_FISHING_DUD, + ), /obj/item/integrated_circuit = list( "TRAIT_CIRCUIT_UI_OPEN" = TRAIT_CIRCUIT_UI_OPEN, "TRAIT_CIRCUIT_UNDUPABLE" = TRAIT_CIRCUIT_UNDUPABLE, @@ -598,6 +665,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj/item/organ = list( "TRAIT_LIVING_HEART" = TRAIT_LIVING_HEART, + "TRAIT_USED_ORGAN" = TRAIT_USED_ORGAN, ), /obj/item/organ/internal/liver = list( "TRAIT_BALLMER_SCIENTIST" = TRAIT_BALLMER_SCIENTIST, @@ -618,9 +686,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( /obj/machinery/modular_computer = list( "TRAIT_MODPC_INTERACTING_WITH_FRAME" = TRAIT_MODPC_INTERACTING_WITH_FRAME, ), - /obj/projectile = list( - "TRAIT_ALWAYS_HIT_ZONE" = TRAIT_ALWAYS_HIT_ZONE, - ), /obj/structure = list( "TRAIT_RADSTORM_IMMUNE" = TRAIT_RADSTORM_IMMUNE, ), @@ -633,15 +698,15 @@ GLOBAL_LIST_INIT(traits_by_type, list( /turf = list( "TRAIT_CHASM_STOPPED" = TRAIT_CHASM_STOPPED, "TRAIT_CONTAINMENT_FIELD" = TRAIT_CONTAINMENT_FIELD, + "TRAIT_ELEVATED_TURF" = TRAIT_ELEVATED_TURF, "TRAIT_FIREDOOR_STOP" = TRAIT_FIREDOOR_STOP, "TRAIT_HYPERSPACE_STOPPED" = TRAIT_HYPERSPACE_STOPPED, "TRAIT_IMMERSE_STOPPED" = TRAIT_IMMERSE_STOPPED, "TRAIT_LAVA_STOPPED" = TRAIT_LAVA_STOPPED, + "TRAIT_NO_TERRAFORM" = TRAIT_NO_TERRAFORM, "TRAIT_SPINNING_WEB_TURF" = TRAIT_SPINNING_WEB_TURF, "TRAIT_TURF_IGNORE_SLIPPERY" = TRAIT_TURF_IGNORE_SLIPPERY, "TRAIT_TURF_IGNORE_SLOWDOWN" = TRAIT_TURF_IGNORE_SLOWDOWN, - "TRAIT_ELEVATED_TURF" = TRAIT_ELEVATED_TURF, - "TRAIT_FISHING_SPOT" = TRAIT_FISHING_SPOT, ), )) diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index e29a140bfe03a..7ede706f157ea 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -1,11 +1,12 @@ // This file contains any stuff related to admin-visible traits. // There's likely more than a few traits missing from this file, do consult the `_traits.dm` file in this folder to see every global trait that exists. -// quirks have it's own panel so we don't need them here. +// quirks have their own panel so we don't need them here. GLOBAL_LIST_INIT(admin_visible_traits, list( /atom = list( - "TRAIT_UNHITTABLE_BY_PROJECTILES" = TRAIT_UNHITTABLE_BY_PROJECTILES, + "TRAIT_CATCH_AND_RELEASE" = TRAIT_CATCH_AND_RELEASE, "TRAIT_KEEP_TOGETHER" = TRAIT_KEEP_TOGETHER, + "TRAIT_UNHITTABLE_BY_PROJECTILES" = TRAIT_UNHITTABLE_BY_PROJECTILES, ), /atom/movable = list( "TRAIT_ASHSTORM_IMMUNE" = TRAIT_ASHSTORM_IMMUNE, @@ -18,25 +19,35 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_MOVE_VENTCRAWLING" = TRAIT_MOVE_VENTCRAWLING, "TRAIT_MOVE_UPSIDE_DOWN" = TRAIT_MOVE_UPSIDE_DOWN, "TRAIT_RUNECHAT_HIDDEN" = TRAIT_RUNECHAT_HIDDEN, + "TRAIT_SCARY_FISHERMAN" = TRAIT_SCARY_FISHERMAN, "TRAIT_SNOWSTORM_IMMUNE" = TRAIT_SNOWSTORM_IMMUNE, - "TRAIT_VOIDSTORM_IMMUNE" = TRAIT_VOIDSTORM_IMMUNE, "TRAIT_WEATHER_IMMUNE" = TRAIT_WEATHER_IMMUNE, + "TRAIT_SILENT_REACTIONS" = TRAIT_SILENT_REACTIONS, ), /mob = list( "TRAIT_ABDUCTOR_SCIENTIST_TRAINING" = TRAIT_ABDUCTOR_SCIENTIST_TRAINING, "TRAIT_ABDUCTOR_TRAINING" = TRAIT_ABDUCTOR_TRAINING, + "TRAIT_ACT_AS_CULTIST" = TRAIT_ACT_AS_CULTIST, + "TRAIT_ACT_AS_HERETIC" = TRAIT_ACT_AS_HERETIC, "TRAIT_ADVANCEDTOOLUSER" = TRAIT_ADVANCEDTOOLUSER, "TRAIT_AGENDER" = TRAIT_AGENDER, "TRAIT_AGEUSIA" = TRAIT_AGEUSIA, "TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE, + "TRAIT_ALLOW_HERETIC_CASTING" = TRAIT_ALLOW_HERETIC_CASTING, + "TRAIT_ALWAYS_NO_ACCESS" = TRAIT_ALWAYS_NO_ACCESS, + "TRAIT_ALWAYS_WANTED" = TRAIT_ALWAYS_WANTED, "TRAIT_ANOSMIA" = TRAIT_ANOSMIA, + "TRAIT_ANTENNAE" = TRAIT_ANTENNAE, "TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC, + "TRAIT_ANTIMAGIC_NO_SELFBLOCK" = TRAIT_ANTIMAGIC_NO_SELFBLOCK, "TRAIT_ANXIOUS" = TRAIT_ANXIOUS, "TRAIT_BADDNA" = TRAIT_BADDNA, "TRAIT_BADTOUCH" = TRAIT_BADTOUCH, "TRAIT_BALD" = TRAIT_BALD, + "TRAIT_BALLOON_SUTRA" = TRAIT_BALLOON_SUTRA, "TRAIT_BATON_RESISTANCE" = TRAIT_BATON_RESISTANCE, "TRAIT_BEAST_EMPATHY" = TRAIT_BEAST_EMPATHY, + "TRAIT_BLOB_ALLY" = TRAIT_BLOB_ALLY, "TRAIT_BLOCK_SHUTTLE_MOVEMENT" = TRAIT_BLOCK_SHUTTLE_MOVEMENT, "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS, "TRAIT_BLOODSHOT_EYES" = TRAIT_BLOODSHOT_EYES, @@ -45,21 +56,29 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER, "TRAIT_BYPASS_MEASURES" = TRAIT_BYPASS_MEASURES, "TRAIT_CAN_HOLD_ITEMS" = TRAIT_CAN_HOLD_ITEMS, + "TRAIT_CAN_STRIP" = TRAIT_CAN_STRIP, + "TRAIT_CAN_USE_NUKE" = TRAIT_CAN_USE_NUKE, "TRAIT_CANNOT_BE_UNBUCKLED" = TRAIT_CANNOT_BE_UNBUCKLED, "TRAIT_CANNOT_OPEN_PRESENTS" = TRAIT_CANNOT_OPEN_PRESENTS, + "TRAIT_CATLIKE_GRACE" = TRAIT_CATLIKE_GRACE, "TRAIT_CHASM_DESTROYED" = TRAIT_CHASM_DESTROYED, "TRAIT_CHUNKYFINGERS_IGNORE_BATON" = TRAIT_CHUNKYFINGERS_IGNORE_BATON, "TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS, + "TRAIT_CLEANBOT_WHISPERER" = TRAIT_CLEANBOT_WHISPERER, + "TRAIT_CLIFF_WALKER" = TRAIT_CLIFF_WALKER, "TRAIT_CLOWN_ENJOYER" = TRAIT_CLOWN_ENJOYER, "TRAIT_CLUMSY" = TRAIT_CLUMSY, "TRAIT_COMMISSIONED" = TRAIT_COMMISSIONED, + "TRAIT_CORPSELOCKED" = TRAIT_CORPSELOCKED, "TRAIT_CRITICAL_CONDITION" = TRAIT_CRITICAL_CONDITION, "TRAIT_CULT_HALO" = TRAIT_CULT_HALO, "TRAIT_DEAF" = TRAIT_DEAF, "TRAIT_DEATHCOMA" = TRAIT_DEATHCOMA, "TRAIT_DEFIB_BLACKLISTED" = TRAIT_DEFIB_BLACKLISTED, "TRAIT_DEPRESSION" = TRAIT_DEPRESSION, + "TRAIT_DETECT_STORM" = TRAIT_DETECT_STORM, "TRAIT_DIAGNOSTIC_HUD" = TRAIT_DIAGNOSTIC_HUD, + "TRAIT_BOT_PATH_HUD" = TRAIT_BOT_PATH_HUD, "TRAIT_DISCOORDINATED_TOOL_USER" = TRAIT_DISCOORDINATED_TOOL_USER, "TRAIT_DISFIGURED" = TRAIT_DISFIGURED, "TRAIT_DISK_VERIFIER" = TRAIT_DISK_VERIFIER, @@ -69,43 +88,61 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_DWARF" = TRAIT_DWARF, "TRAIT_EASILY_WOUNDED" = TRAIT_EASILY_WOUNDED, "TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER, - "TRAIT_EMOTEMUTE " = TRAIT_EMOTEMUTE, + "TRAIT_EMOTEMUTE" = TRAIT_EMOTEMUTE, "TRAIT_EMPATH" = TRAIT_EMPATH, + "TRAIT_ENTRAILS_READER" = TRAIT_ENTRAILS_READER, + "TRAIT_EXAMINE_FISHING_SPOT" = TRAIT_EXAMINE_FISHING_SPOT, "TRAIT_EXAMINE_FITNESS" = TRAIT_EXAMINE_FITNESS, "TRAIT_EXPANDED_FOV" = TRAIT_EXPANDED_FOV, "TRAIT_EXPERT_FISHER" = TRAIT_EXPERT_FISHER, + "TRAIT_EXTROVERT" = TRAIT_EXTROVERT, "TRAIT_FAKEDEATH" = TRAIT_FAKEDEATH, + "TRAIT_FASTMED" = TRAIT_FASTMED, "TRAIT_FAST_CUFFING" = TRAIT_FAST_CUFFING, + "TRAIT_FAST_TYING" = TRAIT_FAST_TYING, "TRAIT_FAT" = TRAIT_FAT, "TRAIT_FEARLESS" = TRAIT_FEARLESS, "TRAIT_FENCE_CLIMBER" = TRAIT_FENCE_CLIMBER, + "TRAIT_FISH_EATER" = TRAIT_FISH_EATER, "TRAIT_FIST_MINING" = TRAIT_FIST_MINING, - "TRAIT_FIXED_HAIRCOLOR" = TRAIT_FIXED_HAIRCOLOR, "TRAIT_FIXED_MUTANT_COLORS" = TRAIT_FIXED_MUTANT_COLORS, + "TRAIT_FLESH_DESIRE" = TRAIT_FLESH_DESIRE, "TRAIT_FLOORED" = TRAIT_FLOORED, + "TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION" = TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION, "TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING, "TRAIT_FREERUNNING" = TRAIT_FREERUNNING, + "TRAIT_FREE_FLOAT_MOVEMENT" = TRAIT_FREE_FLOAT_MOVEMENT, + "TRAIT_FREE_HYPERSPACE_MOVEMENT" = TRAIT_FREE_HYPERSPACE_MOVEMENT, + "TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT" = TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT, "TRAIT_FRIENDLY" = TRAIT_FRIENDLY, "TRAIT_GAMER" = TRAIT_GAMER, "TRAIT_GAMERGOD" = TRAIT_GAMERGOD, + "TRAIT_GARLIC_BREATH" = TRAIT_GARLIC_BREATH, "TRAIT_GENELESS" = TRAIT_GENELESS, "TRAIT_GIANT" = TRAIT_GIANT, + "TRAIT_GODMODE" = TRAIT_GODMODE, "TRAIT_GOOD_HEARING" = TRAIT_GOOD_HEARING, + "TRAIT_GRABRESISTANCE" = TRAIT_GRABRESISTANCE, "TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS, "TRAIT_GREENTEXT_CURSED" = TRAIT_GREENTEXT_CURSED, "TRAIT_GUNFLIP" = TRAIT_GUNFLIP, + "TRAIT_GUN_NATURAL" = TRAIT_GUN_NATURAL, "TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED, "TRAIT_HARDLY_WOUNDED" = TRAIT_HARDLY_WOUNDED, + "TRAIT_HATED_BY_DOGS" = TRAIT_HATED_BY_DOGS, + "TRAIT_HEAVY_DRINKER" = TRAIT_HEAVY_DRINKER, "TRAIT_HEAVY_SLEEPER" = TRAIT_HEAVY_SLEEPER, "TRAIT_HIDE_EXTERNAL_ORGANS" = TRAIT_HIDE_EXTERNAL_ORGANS, + "TRAIT_HIGH_VALUE_RANSOM" = TRAIT_HIGH_VALUE_RANSOM, "TRAIT_HOLY" = TRAIT_HOLY, "TRAIT_HUSK" = TRAIT_HUSK, + "TRAIT_ID_APPRAISER" = TRAIT_ID_APPRAISER, "TRAIT_IGNORE_ELEVATION" = TRAIT_IGNORE_ELEVATION, - "TRAIT_IGNOREDAMAGESLOWDOWN" = TRAIT_IGNOREDAMAGESLOWDOWN, "TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN, "TRAIT_ILLITERATE" = TRAIT_ILLITERATE, "TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED, "TRAIT_INCAPACITATED" = TRAIT_INCAPACITATED, + "TRAIT_INTROVERT" = TRAIT_INTROVERT, "TRAIT_INVISIBLE_MAN" = TRAIT_INVISIBLE_MAN, "TRAIT_IWASBATONED" = TRAIT_IWASBATONED, "TRAIT_JOLLY" = TRAIT_JOLLY, @@ -113,22 +150,28 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_KNOCKEDOUT" = TRAIT_KNOCKEDOUT, "TRAIT_KNOW_ENGI_WIRES" = TRAIT_KNOW_ENGI_WIRES, "TRAIT_KNOW_ROBO_WIRES" = TRAIT_KNOW_ROBO_WIRES, + "TRAIT_LIGHTBULB_REMOVER" = TRAIT_LIGHTBULB_REMOVER, "TRAIT_LIGHT_DRINKER" = TRAIT_LIGHT_DRINKER, "TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP, "TRAIT_LIGHTBULB_REMOVER" = TRAIT_LIGHTBULB_REMOVER, "TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT, "TRAIT_LITERATE" = TRAIT_LITERATE, "TRAIT_LIVERLESS_METABOLISM" = TRAIT_LIVERLESS_METABOLISM, + "TRAIT_MADNESS_IMMUNE" = TRAIT_MADNESS_IMMUNE, "TRAIT_MAGICALLY_GIFTED" = TRAIT_MAGICALLY_GIFTED, + "TRAIT_MARTIAL_ARTS_IMMUNE" = TRAIT_MARTIAL_ARTS_IMMUNE, "TRAIT_MEDICAL_HUD" = TRAIT_MEDICAL_HUD, "TRAIT_MIME_FAN" = TRAIT_MIME_FAN, "TRAIT_MIMING" = TRAIT_MIMING, "TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD, + "TRAIT_MOB_HIDE_HAPPINESS" = TRAIT_MOB_HIDE_HAPPINESS, "TRAIT_MORBID" = TRAIT_MORBID, + "TRAIT_MULTIZ_SUIT_SENSORS" = TRAIT_MULTIZ_SUIT_SENSORS, "TRAIT_MUSICIAN" = TRAIT_MUSICIAN, "TRAIT_MUTANT_COLORS" = TRAIT_MUTANT_COLORS, "TRAIT_MUTE" = TRAIT_MUTE, "TRAIT_NAIVE" = TRAIT_NAIVE, + "TRAIT_NEGATES_GRAVITY" = TRAIT_NEGATES_GRAVITY, "TRAIT_NEVER_WOUNDED" = TRAIT_NEVER_WOUNDED, "TRAIT_NICE_SHOT" = TRAIT_NICE_SHOT, "TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION, @@ -137,13 +180,18 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_NO_DNA_COPY" = TRAIT_NO_DNA_COPY, "TRAIT_NO_EXTINGUISH" = TRAIT_NO_EXTINGUISH, "TRAIT_NO_GLIDE" = TRAIT_NO_GLIDE, + "TRAIT_NO_GUN_AKIMBO" = TRAIT_NO_GUN_AKIMBO, + "TRAIT_NO_MINDSWAP" = TRAIT_NO_MINDSWAP, + "TRAIT_NO_MIRROR_REFLECTION" = TRAIT_NO_MIRROR_REFLECTION, "TRAIT_NO_PLASMA_TRANSFORM" = TRAIT_NO_PLASMA_TRANSFORM, "TRAIT_NO_SLIP_ALL" = TRAIT_NO_SLIP_ALL, "TRAIT_NO_SLIP_ICE" = TRAIT_NO_SLIP_ICE, "TRAIT_NO_SLIP_SLIDE" = TRAIT_NO_SLIP_SLIDE, "TRAIT_NO_SLIP_WATER" = TRAIT_NO_SLIP_WATER, "TRAIT_NO_SOUL" = TRAIT_NO_SOUL, + "TRAIT_NO_STAGGER" = TRAIT_NO_STAGGER, "TRAIT_NO_TRANSFORM" = TRAIT_NO_TRANSFORM, + "TRAIT_NO_TWOHANDING" = TRAIT_NO_TWOHANDING, "TRAIT_NO_UNDERWEAR" = TRAIT_NO_UNDERWEAR, "TRAIT_NO_ZOMBIFY" = TRAIT_NO_ZOMBIFY, "TRAIT_NOBLOOD" = TRAIT_NOBLOOD, @@ -152,15 +200,21 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_NOCRITOVERLAY" = TRAIT_NOCRITOVERLAY, "TRAIT_NODEATH" = TRAIT_NODEATH, "TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER, + "TRAIT_NOFAT" = TRAIT_NOFAT, + "TRAIT_NOFEAR_HOLDUPS" = TRAIT_NOFEAR_HOLDUPS, "TRAIT_NOFIRE" = TRAIT_NOFIRE, + "TRAIT_NOFIRE_SPREAD" = TRAIT_NOFIRE_SPREAD, "TRAIT_NOFLASH" = TRAIT_NOFLASH, "TRAIT_NOGUNS" = TRAIT_NOGUNS, + "TRAIT_TOSS_GUN_HARD" = TRAIT_TOSS_GUN_HARD, "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT, "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, "TRAIT_NOMOBSWAP" = TRAIT_NOMOBSWAP, "TRAIT_NOSOFTCRIT" = TRAIT_NOSOFTCRIT, + "TRAIT_OFF_BALANCE_TACKLER" = TRAIT_OFF_BALANCE_TACKLER, "TRAIT_OIL_FRIED" = TRAIT_OIL_FRIED, + "TRAIT_OVERDOSEIMMUNE" = TRAIT_OVERDOSEIMMUNE, "TRAIT_OVERWATCH_IMMUNE" = TRAIT_OVERWATCH_IMMUNE, "TRAIT_PACIFISM" = TRAIT_PACIFISM, "TRAIT_HIPPOCRATIC_OATH" = TRAIT_HIPPOCRATIC_OATH, @@ -172,6 +226,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_PASSTABLE" = TRAIT_PASSTABLE, "TRAIT_PASSWINDOW" = TRAIT_PASSWINDOW, "TRAIT_PERFECT_ATTACKER" = TRAIT_PERFECT_ATTACKER, + "TRAIT_PERMANENTLY_MORTAL" = TRAIT_PERMANENTLY_MORTAL, "TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER, "TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE, "TRAIT_PLANT_SAFE" = TRAIT_PLANT_SAFE, @@ -182,16 +237,22 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_PROSOPAGNOSIA" = TRAIT_PROSOPAGNOSIA, "TRAIT_PULL_BLOCKED" = TRAIT_PULL_BLOCKED, "TRAIT_PUSHIMMUNE" = TRAIT_PUSHIMMUNE, + "TRAIT_QUICK_BUILD" = TRAIT_QUICK_BUILD, "TRAIT_QUICK_CARRY" = TRAIT_QUICK_CARRY, "TRAIT_QUICKER_CARRY" = TRAIT_QUICKER_CARRY, "TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE, + "TRAIT_REMOTE_TASTING" = TRAIT_REMOTE_TASTING, "TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD, "TRAIT_RESISTHEAT" = TRAIT_RESISTHEAT, "TRAIT_RESISTHEATHANDS" = TRAIT_RESISTHEATHANDS, "TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE, "TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE, "TRAIT_RESTRAINED" = TRAIT_RESTRAINED, + "TRAIT_REVEAL_FISH" = TRAIT_REVEAL_FISH, + "TRAIT_ROCK_STONER" = TRAIT_ROCK_STONER, + "TRAIT_ROD_SUPLEX" = TRAIT_ROD_SUPLEX, "TRAIT_ROUGHRIDER" = TRAIT_ROUGHRIDER, + "TRAIT_SABRAGE_PRO" = TRAIT_SABRAGE_PRO, "TRAIT_SECURITY_HUD" = TRAIT_SECURITY_HUD, "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE, "TRAIT_SETTLER" = TRAIT_SETTLER, @@ -199,33 +260,42 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, "TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG, "TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS, + "TRAIT_SILICON_EMOTES_ALLOWED" = TRAIT_SILICON_EMOTES_ALLOWED, "TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE, "TRAIT_SKITTISH" = TRAIT_SKITTISH, "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, + "TRAIT_SLIPPERY_WHEN_WET" = TRAIT_SLIPPERY_WHEN_WET, "TRAIT_SMOKER" = TRAIT_SMOKER, "TRAIT_SNOB" = TRAIT_SNOB, + "TRAIT_SOFTSPOKEN" = TRAIT_SOFTSPOKEN, "TRAIT_SOOTHED_THROAT" = TRAIT_SOOTHED_THROAT, "TRAIT_SPACEWALK" = TRAIT_SPACEWALK, "TRAIT_SPECIAL_TRAUMA_BOOST" = TRAIT_SPECIAL_TRAUMA_BOOST, "TRAIT_SPIRITUAL" = TRAIT_SPIRITUAL, "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, + "TRAIT_STRENGTH" = TRAIT_STRENGTH, "TRAIT_STRONG_GRABBER" = TRAIT_STRONG_GRABBER, "TRAIT_STRONG_STOMACH" = TRAIT_STRONG_STOMACH, "TRAIT_STUBBY_BODY" = TRAIT_STUBBY_BODY, "TRAIT_STUNIMMUNE" = TRAIT_STUNIMMUNE, "TRAIT_STURDY_FRAME" = TRAIT_STURDY_FRAME, + "TRAIT_SUPERMATTER_SOOTHER" = TRAIT_SUPERMATTER_SOOTHER, "TRAIT_SURGEON" = TRAIT_SURGEON, "TRAIT_SURGICALLY_ANALYZED" = TRAIT_SURGICALLY_ANALYZED, "TRAIT_TAGGER" = TRAIT_TAGGER, "TRAIT_TENTACLE_IMMUNE" = TRAIT_TENTACLE_IMMUNE, "TRAIT_TESLA_SHOCKIMMUNE" = TRAIT_TESLA_SHOCKIMMUNE, + "TRAIT_TETRODOTOXIN_HEALING" = TRAIT_TETRODOTOXIN_HEALING, "TRAIT_THERMAL_VISION" = TRAIT_THERMAL_VISION, + "TRAIT_THROWINGARM" = TRAIT_THROWINGARM, + "TRAIT_TIME_STOP_IMMUNE" = TRAIT_TIME_STOP_IMMUNE, "TRAIT_TOXIMMUNE" = TRAIT_TOXIMMUNE, "TRAIT_TOXINLOVER" = TRAIT_TOXINLOVER, "TRAIT_TRAIT_MEDIBOTCOMINGTHROUGH" = TRAIT_MEDIBOTCOMINGTHROUGH, "TRAIT_TUMOR_SUPPRESSION" = TRAIT_TUMOR_SUPPRESSED, "TRAIT_UI_BLOCKED" = TRAIT_UI_BLOCKED, + "TRAIT_UNCONVERTABLE" = TRAIT_UNCONVERTABLE, "TRAIT_UNDENSE" = TRAIT_UNDENSE, "TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE" = TRAIT_UNDERWATER_BASKETWEAVING_KNOWLEDGE, "TRAIT_UNHUSKABLE" = TRAIT_UNHUSKABLE, @@ -236,17 +306,28 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_UNSTABLE" = TRAIT_UNSTABLE, "TRAIT_USED_DNA_VAULT" = TRAIT_USED_DNA_VAULT, "TRAIT_USES_SKINTONES" = TRAIT_USES_SKINTONES, + "TRAIT_VEGETARIAN" = TRAIT_VEGETARIAN, + "TRAIT_VENTCRAWLER_ALWAYS" = TRAIT_VENTCRAWLER_ALWAYS, + "TRAIT_VENTCRAWLER_NUDE" = TRAIT_VENTCRAWLER_NUDE, "TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE, + "TRAIT_VIRUS_RESISTANCE" = TRAIT_VIRUS_RESISTANCE, "TRAIT_VORACIOUS" = TRAIT_VORACIOUS, - "TRAIT_WOUND_LICKER" = TRAIT_WOUND_LICKER, + "TRAIT_WATER_ADAPTATION" = TRAIT_WATER_ADAPTATION, + "TRAIT_WATER_HATER" = TRAIT_WATER_HATER, "TRAIT_WEAK_SOUL" = TRAIT_WEAK_SOUL, "TRAIT_WEB_SURFER" = TRAIT_WEB_SURFER, "TRAIT_WEB_WEAVER" = TRAIT_WEB_WEAVER, + "TRAIT_WET_FOR_LONGER" = TRAIT_WET_FOR_LONGER, "TRAIT_WINE_TASTER" = TRAIT_WINE_TASTER, + "TRAIT_WOUND_LICKER" = TRAIT_WOUND_LICKER, "TRAIT_XENO_HOST" = TRAIT_XENO_HOST, "TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE, "TRAIT_XRAY_HEARING" = TRAIT_XRAY_HEARING, "TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION, + "TRAIT_MINING_PARRYING" = TRAIT_MINING_PARRYING, + "TRAIT_IGNORE_FIRE_PROTECTION" = TRAIT_IGNORE_FIRE_PROTECTION, + "TRAIT_LEFT_EYE_SCAR" = TRAIT_LEFT_EYE_SCAR, + "TRAIT_RIGHT_EYE_SCAR" = TRAIT_RIGHT_EYE_SCAR, ), /obj/item = list( "TRAIT_APC_SHOCKING" = TRAIT_APC_SHOCKING, @@ -266,15 +347,30 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_MAGNETIC_ID_CARD" = TRAIT_MAGNETIC_ID_CARD, ), /obj/item/fish = list( + "TRAIT_FISH_AMPHIBIOUS" = TRAIT_FISH_AMPHIBIOUS, "TRAIT_FISH_CROSSBREEDER" = TRAIT_FISH_CROSSBREEDER, + "TRAIT_FISH_ELECTROGENESIS" = TRAIT_FISH_ELECTROGENESIS, "TRAIT_FISH_FED_LUBE" = TRAIT_FISH_FED_LUBE, + "TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE, + "TRAIT_FISH_INK_ON_COOLDOWN" = TRAIT_FISH_INK_ON_COOLDOWN, + "TRAIT_FISH_MUTAGENIC" = TRAIT_FISH_MUTAGENIC, "TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER, "TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING, + "TRAIT_FISH_ON_TESLIUM" = TRAIT_FISH_ON_TESLIUM, + "TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE, "TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE, + "TRAIT_FISH_SHOULD_TWOHANDED" = TRAIT_FISH_SHOULD_TWOHANDED, + "TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS, + "TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER, + "TRAIT_FISH_SURVIVE_COOKING" = TRAIT_FISH_SURVIVE_COOKING, + "TRAIT_FISH_QUICK_GROWTH" = TRAIT_FISH_QUICK_GROWTH, "TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE, - "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, + "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, "TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH, ), + /obj/item/fishing_rod = list( + "TRAIT_ROD_REMOVE_FISHING_DUD" = TRAIT_ROD_REMOVE_FISHING_DUD, + ), /obj/item/organ/internal/liver = list( "TRAIT_BALLMER_SCIENTIST" = TRAIT_BALLMER_SCIENTIST, "TRAIT_COMEDY_METABOLISM" = TRAIT_COMEDY_METABOLISM, diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm index ab5b3f4aad974..a4a8ae1cdc41a 100644 --- a/code/_onclick/adjacent.dm +++ b/code/_onclick/adjacent.dm @@ -68,6 +68,8 @@ /atom/movable/Adjacent(atom/neighbor, atom/target, atom/movable/mover) if(neighbor == loc) return TRUE + if(neighbor?.loc == src) + return TRUE var/turf/T = loc if(!istype(T)) return FALSE @@ -79,6 +81,8 @@ /obj/item/Adjacent(atom/neighbor, atom/target, atom/movable/mover, recurse = 1) if(neighbor == loc) return TRUE + if(neighbor?.loc == src) + return TRUE if(isitem(loc)) if(recurse > 0) return loc.Adjacent(neighbor, target, mover, recurse - 1) diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index ec76dee9c8e22..200f56bed971c 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -7,7 +7,7 @@ Note that AI have no need for the adjacency proc, and so this proc is a lot cleaner. */ /mob/living/silicon/ai/DblClickOn(atom/A, params) - if(control_disabled || incapacitated()) + if(control_disabled || incapacitated) return if(ismob(A)) @@ -39,7 +39,7 @@ if(check_click_intercept(params,A)) return - if(control_disabled || incapacitated()) + if(control_disabled || incapacitated) return var/turf/pixel_turf = get_turf_pixel(A) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 1d7e07f7b9912..ff9a1fc54eb1b 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -101,7 +101,7 @@ CtrlClickOn(A) return - if(incapacitated(IGNORE_RESTRAINTS|IGNORE_STASIS)) + if(INCAPACITATED_IGNORING(src, INCAPABLE_RESTRAINTS|INCAPABLE_STASIS)) return face_atom(A) @@ -400,15 +400,15 @@ mouse_opacity = MOUSE_OPACITY_OPAQUE screen_loc = "CENTER" -#define MAX_SAFE_BYOND_ICON_SCALE_TILES (MAX_SAFE_BYOND_ICON_SCALE_PX / world.icon_size) -#define MAX_SAFE_BYOND_ICON_SCALE_PX (33 * 32) //Not using world.icon_size on purpose. +#define MAX_SAFE_BYOND_ICON_SCALE_TILES (MAX_SAFE_BYOND_ICON_SCALE_PX / ICON_SIZE_ALL) +#define MAX_SAFE_BYOND_ICON_SCALE_PX (33 * 32) //Not using world.icon_size on purpose. //Ok well I trust you /atom/movable/screen/click_catcher/proc/UpdateGreed(view_size_x = 15, view_size_y = 15) var/icon/newicon = icon('icons/hud/screen_gen.dmi', "catcher") var/ox = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_x) var/oy = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_y) - var/px = view_size_x * world.icon_size - var/py = view_size_y * world.icon_size + var/px = view_size_x * ICON_SIZE_X + var/py = view_size_y * ICON_SIZE_Y var/sx = min(MAX_SAFE_BYOND_ICON_SCALE_PX, px) var/sy = min(MAX_SAFE_BYOND_ICON_SCALE_PX, py) newicon.Scale(sx, sy) diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index 4e9777ae9cd8d..60640d01d5a1f 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -31,7 +31,10 @@ MiddleClickOn(A, params) return if(LAZYACCESS(modifiers, ALT_CLICK)) // alt and alt-gr (rightalt) - A.borg_click_alt(src) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + AltClickSecondaryOn(A) + else + A.borg_click_alt(src) return if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlClickOn(A) @@ -55,7 +58,7 @@ return if(W) - if(incapacitated()) + if(incapacitated) return //while buckled, you can still connect to and control things like doors, but you can't use your modules diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 84efaf77c5dc9..aaad7457f6d3c 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -2,7 +2,7 @@ icon = 'icons/hud/screen_ai.dmi' /atom/movable/screen/ai/Click() - if(isobserver(usr) || usr.incapacitated()) + if(isobserver(usr) || usr.incapacitated) return TRUE /atom/movable/screen/ai/aicore diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index f8f79f442940b..838326f5ca563 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -51,13 +51,15 @@ thealert.owner = src if(new_master) - var/old_layer = new_master.layer - var/old_plane = new_master.plane - new_master.layer = FLOAT_LAYER - new_master.plane = FLOAT_PLANE - thealert.add_overlay(new_master) - new_master.layer = old_layer - new_master.plane = old_plane + var/mutable_appearance/master_appearance = new(new_master) + master_appearance.appearance_flags = KEEP_TOGETHER + master_appearance.layer = FLOAT_LAYER + master_appearance.plane = FLOAT_PLANE + master_appearance.dir = SOUTH + master_appearance.pixel_x = new_master.base_pixel_x + master_appearance.pixel_y = new_master.base_pixel_y + master_appearance.pixel_z = new_master.base_pixel_z + thealert.add_overlay(master_appearance) thealert.icon_state = "template" // We'll set the icon to the client's ui pref in reorganize_alerts() thealert.master_ref = master_ref else @@ -183,6 +185,11 @@ desc = "There's sleeping gas in the air and you're breathing it in. Find some fresh air. The box in your backpack has an oxygen tank and breath mask in it." icon_state = ALERT_TOO_MUCH_N2O +/atom/movable/screen/alert/not_enough_water + name = "Choking (No H2O)" + desc = "You're not getting enough water. Drench yourself in some water (e.g. showers) or get some water vapor before you pass out!" + icon_state = ALERT_NOT_ENOUGH_WATER + //End gas alerts /atom/movable/screen/alert/gross @@ -435,7 +442,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." if(!QDELETED(rube) && !QDELETED(offerer)) offerer.visible_message(span_danger("[offerer] pulls away from [rube]'s slap at the last second, dodging the high-five entirely!"), span_nicegreen("[rube] fails to make contact with your hand, making an utter fool of [rube.p_them()]self!"), span_hear("You hear a disappointing sound of flesh not hitting flesh!"), ignored_mobs=rube) to_chat(rube, span_userdanger("[uppertext("NO! [offerer] PULLS [offerer.p_their()] HAND AWAY FROM YOURS! YOU'RE TOO SLOW!")]")) - playsound(offerer, 'sound/weapons/thudswoosh.ogg', 100, TRUE, 1) + playsound(offerer, 'sound/items/weapons/thudswoosh.ogg', 100, TRUE, 1) rube.Knockdown(1 SECONDS) offerer.add_mood_event("high_five", /datum/mood_event/down_low) rube.add_mood_event("high_five", /datum/mood_event/too_slow) @@ -549,9 +556,9 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." construct_owner = null // construct track - if(construct_owner?.seeking && construct_owner.master) - blood_target = construct_owner.master - desc = "Your blood sense is leading you to [construct_owner.master]" + if(construct_owner?.seeking && construct_owner.construct_master) + blood_target = construct_owner.construct_master + desc = "Your blood sense is leading you to [construct_owner.construct_master]" // cult track var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index c3b91173a45f5..b9a0e3bf655f4 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -59,14 +59,15 @@ H.leap_icon.screen_loc = ui_alien_storage_r static_inventory += H.leap_icon + floor_change = new /atom/movable/screen/floor_changer(null, src) + floor_change.icon = ui_style + floor_change.screen_loc = ui_above_intent + static_inventory += floor_change + using = new/atom/movable/screen/language_menu(null, src) using.screen_loc = ui_alien_language_menu static_inventory += using - using = new /atom/movable/screen/floor_menu(null, src) - using.screen_loc = ui_alien_floor_menu - static_inventory += using - using = new /atom/movable/screen/navigate(null, src) using.screen_loc = ui_alien_navigate_menu static_inventory += using @@ -79,6 +80,7 @@ using = new /atom/movable/screen/resist(null, src) using.icon = ui_style using.screen_loc = ui_above_movement + using.update_appearance() hotkeybuttons += using throw_icon = new /atom/movable/screen/throw_catch(null, src) diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 77d135ce2c663..bb2b9fcb14aee 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -10,6 +10,11 @@ action_intent.screen_loc = ui_combat_toggle static_inventory += action_intent + floor_change = new /atom/movable/screen/floor_changer(null, src) + floor_change.icon = ui_style + floor_change.screen_loc = ui_above_intent + static_inventory += floor_change + healths = new /atom/movable/screen/healths/alien(null, src) infodisplay += healths @@ -32,10 +37,6 @@ using.screen_loc = ui_alien_language_menu static_inventory += using - using = new /atom/movable/screen/floor_menu(null, src) - using.screen_loc = ui_alien_floor_menu - static_inventory += using - using = new /atom/movable/screen/navigate(null, src) using.screen_loc = ui_alien_navigate_menu static_inventory += using diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm index c4650437c6396..2ce3923c88740 100644 --- a/code/_onclick/hud/credits.dm +++ b/code/_onclick/hud/credits.dm @@ -1,6 +1,6 @@ #define CREDIT_ROLL_SPEED 125 #define CREDIT_SPAWN_SPEED 10 -#define CREDIT_ANIMATE_HEIGHT (14 * world.icon_size) +#define CREDIT_ANIMATE_HEIGHT (14 * ICON_SIZE_Y) #define CREDIT_EASE_DURATION 22 #define CREDITS_PATH "[global.config.directory]/contributors.dmi" @@ -45,9 +45,9 @@ parent = P icon_state = credited maptext = MAPTEXT_PIXELLARI(credited) - maptext_x = world.icon_size + 8 - maptext_y = (world.icon_size / 2) - 4 - maptext_width = world.icon_size * 3 + maptext_x = ICON_SIZE_X + 8 + maptext_y = (ICON_SIZE_Y / 2) - 4 + maptext_width = ICON_SIZE_X * 3 var/matrix/M = matrix(transform) M.Translate(0, CREDIT_ANIMATE_HEIGHT) animate(src, transform = M, time = CREDIT_ROLL_SPEED) diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm index 83ac1b8be93ed..91b5c9b8e2af8 100644 --- a/code/_onclick/hud/fullscreen.dm +++ b/code/_onclick/hud/fullscreen.dm @@ -72,6 +72,8 @@ if(screen.needs_offsetting) screen.plane = GET_NEW_PLANE(initial(screen.plane), offset) +INITIALIZE_IMMEDIATE(/atom/movable/screen/fullscreen) + /atom/movable/screen/fullscreen icon = 'icons/hud/screen_full.dmi' icon_state = "default" diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm index aac5a2b75ccaa..4048fd91b16f6 100644 --- a/code/_onclick/hud/generic_dextrous.dm +++ b/code/_onclick/hud/generic_dextrous.dm @@ -33,6 +33,10 @@ action_intent.screen_loc = ui_combat_toggle static_inventory += action_intent + floor_change = new /atom/movable/screen/floor_changer(null, src) + floor_change.icon = 'icons/hud/screen_midnight.dmi' + static_inventory += floor_change + zone_select = new /atom/movable/screen/zone_sel(null, src) zone_select.icon = ui_style diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index e20c1ede2f663..9f90076a3ac71 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -91,10 +91,10 @@ using.icon = ui_style static_inventory += using - using = new /atom/movable/screen/floor_menu(null, src) - using.screen_loc = ui_ghost_floor_menu - using.icon = ui_style - static_inventory += using + floor_change = new /atom/movable/screen/floor_changer/vertical(null, src) + floor_change.icon = ui_style + floor_change.screen_loc = ui_ghost_floor_changer + static_inventory += floor_change /datum/hud/ghost/show_hud(version = 0, mob/viewmob) // don't show this HUD if observing; show the HUD of the observee diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 0b907833f76c7..f92bb4682e1c8 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -41,6 +41,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/atom/movable/screen/rest_icon var/atom/movable/screen/throw_icon var/atom/movable/screen/module_store_icon + var/atom/movable/screen/floor_change var/list/static_inventory = list() //the screen objects which are static var/list/toggleable_inventory = list() //the screen objects which can be hidden @@ -93,7 +94,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/atom/movable/screen/healths var/atom/movable/screen/stamina - var/atom/movable/screen/healthdoll + var/atom/movable/screen/healthdoll/healthdoll var/atom/movable/screen/spacesuit var/atom/movable/screen/hunger // subtypes can override this to force a specific UI style @@ -185,7 +186,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( for(var/group_key as anything in master_groups) var/datum/plane_master_group/group = master_groups[group_key] - group.transform_lower_turfs(src, current_plane_offset) + group.build_planes_offset(src, current_plane_offset) /datum/hud/proc/should_use_scale() return should_sight_scale(mymob.sight) @@ -197,6 +198,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( SIGNAL_HANDLER update_parallax_pref() // If your eye changes z level, so should your parallax prefs var/turf/eye_turf = get_turf(eye) + SEND_SIGNAL(src, COMSIG_HUD_Z_CHANGED, eye_turf.z) var/new_offset = GET_TURF_PLANE_OFFSET(eye_turf) if(current_plane_offset == new_offset) return @@ -204,10 +206,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list( current_plane_offset = new_offset SEND_SIGNAL(src, COMSIG_HUD_OFFSET_CHANGED, old_offset, new_offset) - if(should_use_scale()) - for(var/group_key as anything in master_groups) - var/datum/plane_master_group/group = master_groups[group_key] - group.transform_lower_turfs(src, new_offset) + for(var/group_key as anything in master_groups) + var/datum/plane_master_group/group = master_groups[group_key] + group.build_planes_offset(src, new_offset) /datum/hud/Destroy() if(mymob.hud_used == src) @@ -229,6 +230,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( zone_select = null pull_icon = null rest_icon = null + floor_change = null hand_slots.Cut() QDEL_LIST(toggleable_inventory) @@ -420,6 +422,11 @@ GLOBAL_LIST_INIT(available_ui_styles, list( return update_robot_modules_display() +/datum/hud/new_player/show_hud(version = 0, mob/viewmob) + . = ..() + if(.) + show_station_trait_buttons() + /datum/hud/proc/hidden_inventory_update() return @@ -498,6 +505,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( if(ismob(mymob) && mymob.hud_used == src) show_hud(hud_version) +/// Handles dimming inventory slots that a mob can't equip items to in their current state /datum/hud/proc/update_locked_slots() return @@ -542,7 +550,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( if(!our_client) position_action(button, button.linked_action.default_button_position) return - button.screen_loc = get_valid_screen_location(relative_to.screen_loc, world.icon_size, our_client.view_size.getView()) // Asks for a location adjacent to our button that won't overflow the map + button.screen_loc = get_valid_screen_location(relative_to.screen_loc, ICON_SIZE_ALL, our_client.view_size.getView()) // Asks for a location adjacent to our button that won't overflow the map button.location = relative_to.location @@ -585,7 +593,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list( listed_actions.check_against_view() palette_actions.check_against_view() for(var/atom/movable/screen/movable/action_button/floating_button as anything in floating_actions) - var/list/current_offsets = screen_loc_to_offset(floating_button.screen_loc) + var/list/current_offsets = screen_loc_to_offset(floating_button.screen_loc, our_view) // We set the view arg here, so the output will be properly hemm'd in by our new view floating_button.screen_loc = offset_to_screen_loc(current_offsets[1], current_offsets[2], view = our_view) @@ -706,14 +714,14 @@ GLOBAL_LIST_INIT(available_ui_styles, list( // We're primarially concerned about width here, if someone makes us 1x2000 I wish them a swift and watery death var/furthest_screen_loc = ButtonNumberToScreenCoords(column_max - 1) var/list/offsets = screen_loc_to_offset(furthest_screen_loc, owner_view) - if(offsets[1] > world.icon_size && offsets[1] < view_size[1] && offsets[2] > world.icon_size && offsets[2] < view_size[2]) // We're all good + if(offsets[1] > ICON_SIZE_X && offsets[1] < view_size[1] && offsets[2] > ICON_SIZE_Y && offsets[2] < view_size[2]) // We're all good return for(column_max in column_max - 1 to 1 step -1) // Yes I could do this by unwrapping ButtonNumberToScreenCoords, but I don't feel like it var/tested_screen_loc = ButtonNumberToScreenCoords(column_max) offsets = screen_loc_to_offset(tested_screen_loc, owner_view) // We've found a valid max length, pack it in - if(offsets[1] > world.icon_size && offsets[1] < view_size[1] && offsets[2] > world.icon_size && offsets[2] < view_size[2]) + if(offsets[1] > ICON_SIZE_X && offsets[1] < view_size[1] && offsets[2] > ICON_SIZE_Y && offsets[2] < view_size[2]) break // Use our newly resized column max refresh_actions() diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 5834a3973555c..cdf63cb68812c 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -70,15 +70,16 @@ using.icon = ui_style static_inventory += using - using = new /atom/movable/screen/floor_menu(null, src) - using.icon = ui_style - static_inventory += using - action_intent = new /atom/movable/screen/combattoggle/flashy(null, src) action_intent.icon = ui_style action_intent.screen_loc = ui_combat_toggle static_inventory += action_intent + floor_change = new /atom/movable/screen/floor_changer(null, src) + floor_change.icon = ui_style + floor_change.screen_loc = ui_human_floor_changer + static_inventory += floor_change + using = new /atom/movable/screen/mov_intent(null, src) using.icon = ui_style @@ -275,7 +276,7 @@ hunger = new /atom/movable/screen/hunger(null, src) infodisplay += hunger - healthdoll = new /atom/movable/screen/healthdoll(null, src) + healthdoll = new /atom/movable/screen/healthdoll/human(null, src) infodisplay += healthdoll stamina = new /atom/movable/screen/stamina(null, src) @@ -305,16 +306,40 @@ /datum/hud/human/update_locked_slots() if(!mymob) return - var/mob/living/carbon/human/H = mymob - if(!istype(H) || !H.dna.species) - return - var/datum/species/S = H.dna.species + var/blocked_slots = NONE + + var/mob/living/carbon/human/human_mob = mymob + if(istype(human_mob)) + blocked_slots |= human_mob.dna?.species?.no_equip_flags + if(isnull(human_mob.w_uniform) && !HAS_TRAIT(human_mob, TRAIT_NO_JUMPSUIT)) + var/obj/item/bodypart/chest = human_mob.get_bodypart(BODY_ZONE_CHEST) + if(isnull(chest) || IS_ORGANIC_LIMB(chest)) + blocked_slots |= ITEM_SLOT_ID|ITEM_SLOT_BELT + var/obj/item/bodypart/left_leg = human_mob.get_bodypart(BODY_ZONE_L_LEG) + if(isnull(left_leg) || IS_ORGANIC_LIMB(left_leg)) + blocked_slots |= ITEM_SLOT_LPOCKET + var/obj/item/bodypart/right_leg = human_mob.get_bodypart(BODY_ZONE_R_LEG) + if(isnull(right_leg) || IS_ORGANIC_LIMB(right_leg)) + blocked_slots |= ITEM_SLOT_RPOCKET + if(isnull(human_mob.wear_suit)) + blocked_slots |= ITEM_SLOT_SUITSTORE + if(human_mob.num_hands <= 0) + blocked_slots |= ITEM_SLOT_GLOVES + if(human_mob.num_legs < 2) // update this when you can wear shoes on one foot + blocked_slots |= ITEM_SLOT_FEET + var/obj/item/bodypart/head/head = human_mob.get_bodypart(BODY_ZONE_HEAD) + if(isnull(head)) + blocked_slots |= ITEM_SLOT_HEAD|ITEM_SLOT_EARS|ITEM_SLOT_EYES|ITEM_SLOT_MASK + var/obj/item/organ/internal/eyes/eyes = human_mob.get_organ_slot(ORGAN_SLOT_EYES) + if(eyes?.no_glasses) + blocked_slots |= ITEM_SLOT_EYES + if(human_mob.bodyshape & BODYSHAPE_DIGITIGRADE) + blocked_slots |= ITEM_SLOT_FEET + for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory)) - if(inv.slot_id) - if(S.no_equip_flags & inv.slot_id) - inv.alpha = 128 - else - inv.alpha = initial(inv.alpha) + if(!inv.slot_id) + continue + inv.alpha = (blocked_slots & inv.slot_id) ? 128 : initial(inv.alpha) /datum/hud/human/hidden_inventory_update(mob/viewer) if(!mymob) diff --git a/code/_onclick/hud/living.dm b/code/_onclick/hud/living.dm index 70084b1ecd9c6..d70d2f7d55d39 100644 --- a/code/_onclick/hud/living.dm +++ b/code/_onclick/hud/living.dm @@ -15,6 +15,10 @@ action_intent.screen_loc = ui_combat_toggle static_inventory += action_intent + floor_change = new /atom/movable/screen/floor_changer(null, src) + floor_change.icon = 'icons/hud/screen_midnight.dmi' + static_inventory += floor_change + combo_display = new /atom/movable/screen/combo(null, src) infodisplay += combo_display diff --git a/code/_onclick/hud/map_popups.dm b/code/_onclick/hud/map_popups.dm index f0277d187ff4d..bf524b6c8d906 100644 --- a/code/_onclick/hud/map_popups.dm +++ b/code/_onclick/hud/map_popups.dm @@ -105,8 +105,8 @@ if(!popup_name) return clear_map("[popup_name]_map") - var/x_value = world.icon_size * tilesize * width - var/y_value = world.icon_size * tilesize * height + var/x_value = ICON_SIZE_X * tilesize * width + var/y_value = ICON_SIZE_Y * tilesize * height var/map_name = create_popup(popup_name, title, x_value, y_value) var/atom/movable/screen/background/background = new diff --git a/code/_onclick/hud/map_view.dm b/code/_onclick/hud/map_view.dm index bc304f20f8a15..06a4197fe45eb 100644 --- a/code/_onclick/hud/map_view.dm +++ b/code/_onclick/hud/map_view.dm @@ -16,10 +16,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/map_view) /atom/movable/screen/map_view/Destroy() for(var/datum/weakref/client_ref in viewers_to_huds) - var/client/our_client = client_ref.resolve() - if(!our_client) - continue - hide_from(our_client.mob) + hide_from_client(client_ref.resolve()) return ..() @@ -55,12 +52,18 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/map_view) return pop_planes /atom/movable/screen/map_view/proc/hide_from(mob/hide_from) - hide_from?.canon_client.clear_map(assigned_map) - var/client_ref = WEAKREF(hide_from?.canon_client) + hide_from_client(hide_from?.canon_client) +/atom/movable/screen/map_view/proc/hide_from_client(client/hide_from) + if(!hide_from) + return + hide_from.clear_map(assigned_map) + + var/datum/weakref/client_ref = WEAKREF(hide_from) // Make sure we clear the *right* hud var/datum/weakref/hud_ref = viewers_to_huds[client_ref] viewers_to_huds -= client_ref + var/datum/hud/clear_from = hud_ref?.resolve() if(!clear_from) return diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index 7a0937974bd36..cac1be97ae688 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -6,7 +6,7 @@ //Movable Screen Object -//Not tied to the grid, places it's center where the cursor is +//Not tied to the grid, places its center where the cursor is /atom/movable/screen/movable mouse_drag_pointer = 'icons/effects/mouse_pointers/screen_drag.dmi' @@ -37,8 +37,8 @@ var/client/our_client = usr.client var/list/offset = screen_loc_to_offset(LAZYACCESS(modifiers, SCREEN_LOC)) if(snap2grid) //Discard Pixel Values - offset[1] = FLOOR(offset[1], world.icon_size) // drops any pixel offset - offset[2] = FLOOR(offset[2], world.icon_size) // drops any pixel offset + offset[1] = FLOOR(offset[1], ICON_SIZE_X) // drops any pixel offset + offset[2] = FLOOR(offset[2], ICON_SIZE_Y) // drops any pixel offset else //Normalise Pixel Values (So the object drops at the center of the mouse, not 16 pixels off) offset[1] += x_off offset[2] += y_off diff --git a/code/_onclick/hud/new_player.dm b/code/_onclick/hud/new_player.dm index 5fa44b7f0542b..1c794b5566d2d 100644 --- a/code/_onclick/hud/new_player.dm +++ b/code/_onclick/hud/new_player.dm @@ -6,6 +6,7 @@ /datum/hud/new_player ///Whether the menu is currently on the client's screen or not var/menu_hud_status = TRUE + var/list/shown_station_trait_buttons /datum/hud/new_player/New(mob/owner) . = ..() @@ -26,31 +27,58 @@ if (!lobbyscreen.always_shown) lobbyscreen.RegisterSignal(src, COMSIG_HUD_LOBBY_COLLAPSED, TYPE_PROC_REF(/atom/movable/screen/lobby, collapse_button)) lobbyscreen.RegisterSignal(src, COMSIG_HUD_LOBBY_EXPANDED, TYPE_PROC_REF(/atom/movable/screen/lobby, expand_button)) - if (istype(lobbyscreen, /atom/movable/screen/lobby/button)) - var/atom/movable/screen/lobby/button/lobby_button = lobbyscreen - lobby_button.owner = REF(owner) - add_station_trait_buttons() -/// Display buttons for relevant station traits -/datum/hud/new_player/proc/add_station_trait_buttons() +/// Load and then display the buttons for relevant station traits +/datum/hud/new_player/proc/show_station_trait_buttons() if (!mymob?.client || mymob.client.interviewee || !length(GLOB.lobby_station_traits)) return - var/buttons_created = 0 - var/y_offset = 397 - var/y_button_offset = 27 for (var/datum/station_trait/trait as anything in GLOB.lobby_station_traits) - if (!trait.can_display_lobby_button(mymob.client)) + if (QDELETED(trait) || !trait.can_display_lobby_button(mymob.client)) + remove_station_trait_button(trait) + continue + if(LAZYACCESS(shown_station_trait_buttons, trait)) continue var/atom/movable/screen/lobby/button/sign_up/sign_up_button = new(our_hud = src) - sign_up_button.SlowInit() - sign_up_button.owner = REF(mymob) - sign_up_button.screen_loc = offset_to_screen_loc(233, y_offset, mymob.client.view) - y_offset += y_button_offset - static_inventory += sign_up_button trait.setup_lobby_button(sign_up_button) - buttons_created++ - if (buttons_created >= MAX_STATION_TRAIT_BUTTONS_VERTICAL) - return + static_inventory |= sign_up_button + LAZYSET(shown_station_trait_buttons, trait, sign_up_button) + RegisterSignal(trait, COMSIG_QDELETING, PROC_REF(remove_station_trait_button)) + + place_station_trait_buttons() + +/// Display the buttosn for relevant station traits. +/datum/hud/new_player/proc/place_station_trait_buttons() + if(hud_version != HUD_STYLE_STANDARD || !mymob?.client) + return + + var/y_offset = 397 + var/x_offset = 233 + var/y_button_offset = 27 + var/x_button_offset = -27 + var/iteration = 0 + for(var/trait in shown_station_trait_buttons) + var/atom/movable/screen/lobby/button/sign_up/sign_up_button = shown_station_trait_buttons[trait] + iteration++ + sign_up_button.screen_loc = offset_to_screen_loc(x_offset, y_offset, mymob.client.view) + mymob.client.screen |= sign_up_button + if (iteration >= MAX_STATION_TRAIT_BUTTONS_VERTICAL) + iteration = 0 + y_offset = 397 + x_offset += x_button_offset + else + y_offset += y_button_offset + +/// Remove a station trait button, then re-order the rest. +/datum/hud/new_player/proc/remove_station_trait_button(datum/station_trait/trait) + SIGNAL_HANDLER + var/atom/movable/screen/lobby/button/sign_up/button = LAZYACCESS(shown_station_trait_buttons, trait) + if(!button) + return + LAZYREMOVE(shown_station_trait_buttons, trait) + UnregisterSignal(trait, COMSIG_QDELETING) + static_inventory -= button + qdel(button) + place_station_trait_buttons() /atom/movable/screen/lobby plane = SPLASHSCREEN_PLANE @@ -63,8 +91,7 @@ ///Set the HUD in New, as lobby screens are made before Atoms are Initialized. /atom/movable/screen/lobby/New(loc, datum/hud/our_hud, ...) - if(our_hud) - hud = our_hud + set_new_hud(our_hud) return ..() ///Run sleeping actions after initialize @@ -95,11 +122,9 @@ var/enabled = TRUE ///Is the button currently being hovered over with the mouse? var/highlighted = FALSE - /// The ref of the mob that owns this button. Only the owner can click on it. - var/owner /atom/movable/screen/lobby/button/Click(location, control, params) - if(owner != REF(usr)) + if(usr != get_mob()) return if(!usr.client || usr.client.interviewee) @@ -114,7 +139,7 @@ return TRUE /atom/movable/screen/lobby/button/MouseEntered(location,control,params) - if(owner != REF(usr)) + if(usr != get_mob()) return if(!usr.client || usr.client.interviewee) @@ -125,7 +150,7 @@ update_appearance(UPDATE_ICON) /atom/movable/screen/lobby/button/MouseExited() - if(owner != REF(usr)) + if(usr != get_mob()) return if(!usr.client || usr.client.interviewee) diff --git a/code/_onclick/hud/parallax/parallax.dm b/code/_onclick/hud/parallax/parallax.dm index bcdcd0e74fed1..ee266cd21e314 100644 --- a/code/_onclick/hud/parallax/parallax.dm +++ b/code/_onclick/hud/parallax/parallax.dm @@ -191,7 +191,7 @@ if(!offset_x && !offset_y && !force) return - var/glide_rate = round(world.icon_size / screenmob.glide_size * world.tick_lag, world.tick_lag) + var/glide_rate = round(ICON_SIZE_ALL / screenmob.glide_size * world.tick_lag, world.tick_lag) C.previous_turf = posobj var/largest_change = max(abs(offset_x), abs(offset_y)) @@ -273,9 +273,9 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) /atom/movable/screen/parallax_layer/Initialize(mapload, datum/hud/hud_owner, template = FALSE) . = ..() - // Parallax layers are independant of hud, they care about client + // Parallax layers are independent of hud, they care about client // Not doing this will just create a bunch of hard deletes - hud = null + set_new_hud(hud_owner = null) if(template) return @@ -297,8 +297,8 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) /atom/movable/screen/parallax_layer/proc/update_o(view) if (!view) view = world.view - - var/static/parallax_scaler = world.icon_size / 480 + var/static/pixel_grid_size = ICON_SIZE_ALL * 15 + var/static/parallax_scaler = ICON_SIZE_ALL / pixel_grid_size // Turn the view size into a grid of correctly scaled overlays var/list/viewscales = getviewsize(view) @@ -311,8 +311,8 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) if(x == 0 && y == 0) continue var/mutable_appearance/texture_overlay = mutable_appearance(icon, icon_state) - texture_overlay.pixel_w += 480 * x - texture_overlay.pixel_z += 480 * y + texture_overlay.pixel_w += pixel_grid_size * x + texture_overlay.pixel_z += pixel_grid_size * y new_overlays += texture_overlay cut_overlays() add_overlay(new_overlays) @@ -335,7 +335,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer) /atom/movable/screen/parallax_layer/planet icon_state = "planet" blend_mode = BLEND_OVERLAY - absolute = TRUE //Status of seperation + absolute = TRUE //Status of separation speed = 3 layer = 30 diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm index b6ac49446fc80..f2cf8f4b21081 100644 --- a/code/_onclick/hud/picture_in_picture.dm +++ b/code/_onclick/hud/picture_in_picture.dm @@ -56,7 +56,7 @@ move_tab.icon_state = "move" move_tab.plane = HUD_PLANE var/matrix/M = matrix() - M.Translate(0, (height + 0.25) * world.icon_size) + M.Translate(0, (height + 0.25) * ICON_SIZE_Y) move_tab.transform = M add_overlay(move_tab) @@ -69,7 +69,7 @@ MA.plane = HUD_PLANE button_x.appearance = MA M = matrix() - M.Translate((max(4, width) - 0.75) * world.icon_size, (height + 0.25) * world.icon_size) + M.Translate((max(4, width) - 0.75) * ICON_SIZE_X, (height + 0.25) * ICON_SIZE_Y) button_x.transform = M vis_contents += button_x @@ -82,7 +82,7 @@ MA.plane = HUD_PLANE button_expand.appearance = MA M = matrix() - M.Translate(world.icon_size, (height + 0.25) * world.icon_size) + M.Translate(ICON_SIZE_X, (height + 0.25) * ICON_SIZE_Y) button_expand.transform = M vis_contents += button_expand @@ -95,7 +95,7 @@ MA.plane = HUD_PLANE button_shrink.appearance = MA M = matrix() - M.Translate(2 * world.icon_size, (height + 0.25) * world.icon_size) + M.Translate(2 * ICON_SIZE_X, (height + 0.25) * ICON_SIZE_Y) button_shrink.transform = M vis_contents += button_shrink @@ -103,7 +103,7 @@ if((width > 0) && (height > 0)) var/matrix/M = matrix() M.Scale(width + 0.5, height + 0.5) - M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) + M.Translate((width-1)/2 * ICON_SIZE_X, (height-1)/2 * ICON_SIZE_Y) standard_background.transform = M add_overlay(standard_background) @@ -115,7 +115,7 @@ src.width = width src.height = height - y_off = -height * world.icon_size - 16 + y_off = (-height * ICON_SIZE_Y) - (ICON_SIZE_Y / 2) cut_overlays() add_background() diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm index 6c7377c382543..ab95d3bb392eb 100644 --- a/code/_onclick/hud/radial.dm +++ b/code/_onclick/hud/radial.dm @@ -7,6 +7,7 @@ GLOBAL_LIST_EMPTY(radial_menus) icon = 'icons/hud/radial.dmi' plane = ABOVE_HUD_PLANE vis_flags = VIS_INHERIT_PLANE + var/click_on_hover = FALSE var/datum/radial_menu/parent /atom/movable/screen/radial/proc/set_parent(new_value) @@ -39,6 +40,8 @@ GLOBAL_LIST_EMPTY(radial_menus) icon_state = "[parent.radial_slice_icon]_focus" if(tooltips) openToolTip(usr, src, params, title = name) + if (click_on_hover && !isnull(usr) && !isnull(parent)) + Click(location, control, params) /atom/movable/screen/radial/slice/MouseExited(location, control, params) . = ..() @@ -146,7 +149,7 @@ GLOBAL_LIST_EMPTY(radial_menus) starting_angle = 180 ending_angle = 45 -/datum/radial_menu/proc/setup_menu(use_tooltips, set_page = 1) +/datum/radial_menu/proc/setup_menu(use_tooltips, set_page = 1, click_on_hover = FALSE) if(ending_angle > starting_angle) zone = ending_angle - starting_angle else @@ -183,18 +186,26 @@ GLOBAL_LIST_EMPTY(radial_menus) page_data[page] = current pages = page current_page = clamp(set_page, 1, pages) - update_screen_objects(anim = entry_animation) + update_screen_objects(entry_animation, click_on_hover) -/datum/radial_menu/proc/update_screen_objects(anim = FALSE) +/datum/radial_menu/proc/update_screen_objects(anim = FALSE, click_on_hover = FALSE) var/list/page_choices = page_data[current_page] var/angle_per_element = round(zone / page_choices.len) for(var/i in 1 to elements.len) - var/atom/movable/screen/radial/E = elements[i] + var/atom/movable/screen/radial/element = elements[i] var/angle = WRAP(starting_angle + (i - 1) * angle_per_element,0,360) if(i > page_choices.len) - HideElement(E) + HideElement(element) + element.click_on_hover = FALSE else - SetElement(E,page_choices[i],angle,anim = anim,anim_order = i) + SetElement(element,page_choices[i],angle,anim = anim,anim_order = i) + // Only activate click on hover after the animation plays + if (!click_on_hover) + continue + if (anim) + addtimer(VARSET_CALLBACK(element, click_on_hover, TRUE), i * 0.5) + else + element.click_on_hover = TRUE /datum/radial_menu/proc/HideElement(atom/movable/screen/radial/slice/E) E.cut_overlays() @@ -272,7 +283,7 @@ GLOBAL_LIST_EMPTY(radial_menus) /datum/radial_menu/proc/get_next_id() return "c_[choices.len]" -/datum/radial_menu/proc/set_choices(list/new_choices, use_tooltips, set_page = 1) +/datum/radial_menu/proc/set_choices(list/new_choices, use_tooltips, click_on_hover = FALSE, set_page = 1) if(choices.len) Reset() for(var/E in new_choices) @@ -286,7 +297,7 @@ GLOBAL_LIST_EMPTY(radial_menus) if (istype(new_choices[E], /datum/radial_menu_choice)) choice_datums[id] = new_choices[E] - setup_menu(use_tooltips, set_page) + setup_menu(use_tooltips, set_page, click_on_hover) /datum/radial_menu/proc/extract_image(to_extract_from) if (istype(to_extract_from, /datum/radial_menu_choice)) @@ -306,14 +317,14 @@ GLOBAL_LIST_EMPTY(radial_menus) current_page = WRAP(current_page + 1,1,pages+1) update_screen_objects() -/datum/radial_menu/proc/show_to(mob/M) +/datum/radial_menu/proc/show_to(mob/M, offset_x = 0, offset_y = 0) if(current_user) hide() if(!M.client || !anchor) return current_user = M.client //Blank - menu_holder = image(icon='icons/effects/effects.dmi',loc=anchor,icon_state="nothing", layer = RADIAL_BACKGROUND_LAYER) + menu_holder = image(icon='icons/effects/effects.dmi',loc=anchor,icon_state="nothing", layer = RADIAL_BACKGROUND_LAYER, pixel_x = offset_x, pixel_y = offset_y) SET_PLANE_EXPLICIT(menu_holder, ABOVE_HUD_PLANE, M) menu_holder.appearance_flags |= KEEP_APART|RESET_ALPHA|RESET_COLOR|RESET_TRANSFORM menu_holder.vis_contents += elements + close_button @@ -345,7 +356,7 @@ GLOBAL_LIST_EMPTY(radial_menus) Choices should be a list where list keys are movables or text used for element names and return value and list values are movables/icons/images used for element icons */ -/proc/show_radial_menu(mob/user, atom/anchor, list/choices, uniqueid, radius, datum/callback/custom_check, require_near = FALSE, tooltips = FALSE, no_repeat_close = FALSE, radial_slice_icon = "radial_slice", autopick_single_option = TRUE) +/proc/show_radial_menu(mob/user, atom/anchor, list/choices, uniqueid, radius, datum/callback/custom_check, require_near = FALSE, tooltips = FALSE, no_repeat_close = FALSE, radial_slice_icon = "radial_slice", autopick_single_option = TRUE, entry_animation = TRUE, click_on_hover = FALSE, user_space = FALSE) if(!user || !anchor || !length(choices)) return @@ -362,16 +373,24 @@ GLOBAL_LIST_EMPTY(radial_menus) return var/datum/radial_menu/menu = new + menu.entry_animation = entry_animation GLOB.radial_menus[uniqueid] = menu if(radius) menu.radius = radius if(istype(custom_check)) menu.custom_check_callback = custom_check - menu.anchor = anchor + menu.anchor = user_space ? user : anchor menu.radial_slice_icon = radial_slice_icon menu.check_screen_border(user) //Do what's needed to make it look good near borders or on hud - menu.set_choices(choices, tooltips) - menu.show_to(user) + menu.set_choices(choices, tooltips, click_on_hover) + var/offset_x = 0 + var/offset_y = 0 + if (user_space) + var/turf/user_turf = get_turf(user) + var/turf/anchor_turf = get_turf(anchor) + offset_x = (anchor_turf.x - user_turf.x) * ICON_SIZE_X + anchor.pixel_x - user.pixel_x + offset_y = (anchor_turf.y - user_turf.y) * ICON_SIZE_Y + anchor.pixel_y - user.pixel_y + menu.show_to(user, offset_x, offset_y) menu.wait(user, anchor, require_near) var/answer = menu.selected_choice qdel(menu) diff --git a/code/_onclick/hud/rendering/_render_readme.md b/code/_onclick/hud/rendering/_render_readme.md index 2c1cd559a58db..493b9c68491ee 100644 --- a/code/_onclick/hud/rendering/_render_readme.md +++ b/code/_onclick/hud/rendering/_render_readme.md @@ -8,11 +8,11 @@ ## Byond internal functionality This part of the guide will assume that you have read the byond reference entry for rendering at www.byond.com/docs/ref//#/{notes}/renderer -When you create an atom, this will always create an internal byond structure called an "appearance". This appearance you will likely be familiar with, as it is exposed through the /atom/var/appearance var. This appearance var holds data on how to render the object, ie what icon/icon_state/color etc it is using. Note that appearance vars will always copy, and do not hold a reference. When you update a var, for example lets pretend we add a filter, the appearance will be updated to include the filter. Note that, however, vis_contents objets are uniquely excluded from appearances. Then, when the filter is updated, the appearance will be recreated, and the atom marked as "dirty". After it has been updated, the SendMaps() function (sometimes also called maptick), which is a internal byond function that iterates over all objects in a clients view and in the clients.mob.contents, checks for "dirty" atoms, then resends any "dirty" appearances to clients as needed and unmarks them as dirty. This function is notoriosly slow, but we can see it's tick usage through the world.map_cpu var. We can also avoid more complex checks checking whether an object is visible on a clients screen by using the TILE_BOUND appearance flag. +When you create an atom, this will always create an internal byond structure called an "appearance". This appearance you will likely be familiar with, as it is exposed through the /atom/var/appearance var. This appearance var holds data on how to render the object, ie what icon/icon_state/color etc it is using. Note that appearance vars will always copy, and do not hold a reference. When you update a var, for example lets pretend we add a filter, the appearance will be updated to include the filter. Note that, however, vis_contents objets are uniquely excluded from appearances. Then, when the filter is updated, the appearance will be recreated, and the atom marked as "dirty". After it has been updated, the SendMaps() function (sometimes also called maptick), which is a internal byond function that iterates over all objects in a clients view and in the clients.mob.contents, checks for "dirty" atoms, then resends any "dirty" appearances to clients as needed and unmarks them as dirty. This function is notoriously slow, but we can see its tick usage through the world.map_cpu var. We can also avoid more complex checks checking whether an object is visible on a clients screen by using the TILE_BOUND appearance flag. -Finally, we arrive at clientside behavior, where we have two main clientside functions: GetMapIcons, and Render. GetMapIcons is repsonsible for actual rendering calculations on the clientside, such as "Group Icons and Set bounds", which performs clientside calculations for transform matrixes. Note that particles here are handled in a separate thread and are not diplayed in the clientside profiler. Render handles the actual drawing of the screen. +Finally, we arrive at clientside behavior, where we have two main clientside functions: GetMapIcons, and Render. GetMapIcons is responsible for actual rendering calculations on the clientside, such as "Group Icons and Set bounds", which performs clientside calculations for transform matrixes. Note that particles here are handled in a separate thread and are not displayed in the clientside profiler. Render handles the actual drawing of the screen. -For debugging rendering issues its reccomended you do two things: +For debugging rendering issues its recommended you do two things: A) Talk to someone who has inside knowledge(like lummox) about it, most of this is undocumented and bugs often B) Use the undocumented debug printer which reads of data on icons rendering, this is very dense but can be useful in some cases. To use: Right click top tab -> Options & Messages -> Client -> Command -> Enter ".debug profile mapicons" and press Enter -> go to your Byond directory and find BYOND/cfg/mapicons.json . Yes this is one giant one-line json. @@ -22,9 +22,9 @@ The following is an incomplete list of pitfalls that come from byond snowflake t 1. Transforms are very slow on clientside. This is not usually noticable, but if you start using large amounts of them it will grind you to a halt quickly, regardless of whether its on overlays or objs 2. The darkness plane. This is unused, as it doesn't work with our rendering format, so this section is purely academic. The darkness plane has specific variables it needs to render correctly, and these can be found in the plane masters file. it is composed internally of two parts, a black mask over the clients screen, and a non rendering mask that blocks all luminosity=0 turfs and their contents from rendering if the SEE_BLACKNESS flag is set properly. The blocker will always block rendering but the mask can be layered under other objects. 3. render_target/source. Render_target/source will only copy certain rendering instructions, and these are only defined as "etc." in the byond reference. Known non copied appearance vars include: blend_mode, plane, layer, vis_contents, mouse_opacity... -4. Large icons on the screen that peek over the edge will instead of only rendering partly like you would expect will instead stretch the screen while not adgusting the render buffer, which means that you can actively see as tiles and map objects are rendered. You can use this for an easy "offscreen" UI. +4. Large icons on the screen that peek over the edge will instead of only rendering partly like you would expect will instead stretch the screen while not adjusting the render buffer, which means that you can actively see as tiles and map objects are rendered. You can use this for an easy "offscreen" UI. 5. Numerically large filters on objects of any size will torpedo performance, even though large objects with small filters will perform massively better. (ie blur(size=20) BAD) -6. Texture Atlas: the texture atlas byond uses to render icons is very susceptible to corruption and can regularily replace icons with other icons or just not render at all. This can be exasperated by alt tabbing or pausing the dreamseeker process. +6. Texture Atlas: the texture atlas byond uses to render icons is very susceptible to corruption and can regularly replace icons with other icons or just not render at all. This can be exasperated by alt tabbing or pausing the dreamseeker process. 7. The renderer is awful code and lummox said he will try changing a large part of it for 515 so keep an eye on that 8. Byond uses DirectX 9 (Lummox said he wants to update to DirectX 11) 9. Particles are just fancy overlays and are not independent of their owner @@ -32,7 +32,7 @@ The following is an incomplete list of pitfalls that come from byond snowflake t 11. Displacement filter: The byond "displacement filter" does not, as the name would make you expect, use displacement maps, but instead uses normal maps. ## The rendering solution -One of the main issues with making pretty effects is how objects can only render to one plane, and how filters can only be applied to single objects. Quite simply it means we cant apply effects to multiple planes at once, and an effect to one plane only by treating it as a single unit: +One of the main issues with making pretty effects is how objects can only render to one plane, and how filters can only be applied to single objects. Quite simply it means we can't apply effects to multiple planes at once, and an effect to one plane only by treating it as a single unit: ![](https://raw.githubusercontent.com/tgstation/documentation-assets/main/rendering/renderpipe_old.png) @@ -50,8 +50,8 @@ Through these this allows us to treat planes as single objects, and lets us dist ## Render plates -The rendering system uses two objects to unify planes: render_relay and render_plates. Render relays use render_target/source and the relay_render_to_plane proc to replicate the plane master on the render relay. This render relay is then rendered onto a render_plate, which is a plane master that renders the render_relays onto itself. This plate can then be hierachically rendered with the same process until it reaches the master render_plate, which is the plate that will actually render to the player. These plates naturally in the byond style have quirks. For example, rendering to two plates will double any effects such as color or filters, and as such you need to carefully manage how you render them. Keep in mind as well that when sorting the layers for rendering on a plane that they should not be negative, this is handled automatically in relay_render_to_plane. When debugging note that mouse_opacity can act bizzarly with this method, such as only allowing you to click things that are layered over objects on a certain plane but auomatically setting the mouse_opacity should be handling this. Note that if you decide to manipulate a plane with internal byond objects that you will have to manually extrapolate the vars that are set if you want to render them to another plane (See blackness plane for example), and that this is not documented anywhere. +The rendering system uses two objects to unify planes: render_relay and render_plates. Render relays use render_target/source and the relay_render_to_plane proc to replicate the plane master on the render relay. This render relay is then rendered onto a render_plate, which is a plane master that renders the render_relays onto itself. This plate can then be hierarchically rendered with the same process until it reaches the master render_plate, which is the plate that will actually render to the player. These plates naturally in the byond style have quirks. For example, rendering to two plates will double any effects such as color or filters, and as such you need to carefully manage how you render them. Keep in mind as well that when sorting the layers for rendering on a plane that they should not be negative, this is handled automatically in relay_render_to_plane. When debugging note that mouse_opacity can act bizarrely with this method, such as only allowing you to click things that are layered over objects on a certain plane but automatically setting the mouse_opacity should be handling this. Note that if you decide to manipulate a plane with internal byond objects that you will have to manually extrapolate the vars that are set if you want to render them to another plane (See blackness plane for example), and that this is not documented anywhere. -Goodluck and godspeed with coding +Good luck and godspeed with coding - Just another contributor diff --git a/code/_onclick/hud/rendering/plane_master_group.dm b/code/_onclick/hud/rendering/plane_master_group.dm index 894190984e652..4bed46f983f4a 100644 --- a/code/_onclick/hud/rendering/plane_master_group.dm +++ b/code/_onclick/hud/rendering/plane_master_group.dm @@ -24,10 +24,23 @@ build_plane_masters(0, SSmapping.max_plane_offset) /datum/plane_master_group/Destroy() - orphan_hud() + set_hud(null) QDEL_LIST_ASSOC_VAL(plane_masters) return ..() +/datum/plane_master_group/proc/set_hud(datum/hud/new_hud) + if(new_hud == our_hud) + return + if(our_hud) + our_hud.master_groups -= key + hide_hud() + our_hud = new_hud + if(new_hud) + our_hud.master_groups[key] = src + show_hud() + build_planes_offset(our_hud, active_offset) + SEND_SIGNAL(src, COMSIG_GROUP_HUD_CHANGED, our_hud) + /// Display a plane master group to some viewer, so show all our planes to it /datum/plane_master_group/proc/attach_to(datum/hud/viewing_hud) if(viewing_hud.master_groups[key]) @@ -42,17 +55,10 @@ relay_loc = "1,1" rebuild_plane_masters() - our_hud = viewing_hud + set_hud(viewing_hud) our_hud.master_groups[key] = src show_hud() - transform_lower_turfs(our_hud, active_offset) - -/// Hide the plane master from its current hud, fully clear it out -/datum/plane_master_group/proc/orphan_hud() - if(our_hud) - our_hud.master_groups -= key - hide_hud() - our_hud = null + build_planes_offset(our_hud, active_offset) /// Well, refresh our group, mostly useful for plane specific updates /datum/plane_master_group/proc/refresh_hud() @@ -64,7 +70,7 @@ hide_hud() rebuild_plane_masters() show_hud() - transform_lower_turfs(our_hud, active_offset) + build_planes_offset(our_hud, active_offset) /// Regenerate our plane masters, this is useful if we don't have a mob but still want to rebuild. Such in the case of changing the screen_loc of relays /datum/plane_master_group/proc/rebuild_plane_masters() @@ -97,7 +103,7 @@ /datum/plane_master_group/proc/build_plane_masters(starting_offset, ending_offset) for(var/atom/movable/screen/plane_master/mytype as anything in get_plane_types()) for(var/plane_offset in starting_offset to ending_offset) - if(plane_offset != 0 && !initial(mytype.allows_offsetting)) + if(plane_offset != 0 && (initial(mytype.offsetting_flags) & BLOCKS_PLANE_OFFSETTING)) continue var/atom/movable/screen/plane_master/instance = new mytype(null, null, src, plane_offset) plane_masters["[instance.plane]"] = instance @@ -110,7 +116,7 @@ // It would be nice to setup parallaxing for stairs and things when doing this // So they look nicer. if you can't it's all good, if you think you can sanely look at monster's work // It's hard, and potentially expensive. be careful -/datum/plane_master_group/proc/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/proc/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) // Check if this feature is disabled for the client, in which case don't use scale. var/mob/our_mob = our_hud?.mymob if(!our_mob?.client?.prefs?.read_preference(/datum/preference/toggle/multiz_parallax)) @@ -158,7 +164,11 @@ for(var/plane_key in plane_masters) var/atom/movable/screen/plane_master/plane = plane_masters[plane_key] - if(!plane.allows_offsetting) + if(plane.offsetting_flags & BLOCKS_PLANE_OFFSETTING) + if(plane.offsetting_flags & OFFSET_RELAYS_MATCH_HIGHEST) + // Don't offset the plane, do offset where the relays point + // Required for making things like the blind fullscreen not render over runechat + plane.offset_relays_in_place(new_offset) continue var/visual_offset = plane.offset - new_offset @@ -199,13 +209,13 @@ #undef MAX_CLIENT_BUILD_WITH_WORKING_SECONDARY_MAPS -/datum/plane_master_group/popup/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/popup/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) return ..(source, new_offset, FALSE) /// Holds the main plane master /datum/plane_master_group/main -/datum/plane_master_group/main/transform_lower_turfs(datum/hud/source, new_offset, use_scale = TRUE) +/datum/plane_master_group/main/build_planes_offset(datum/hud/source, new_offset, use_scale = TRUE) if(use_scale) return ..(source, new_offset, source.should_use_scale()) return ..() diff --git a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm index 13f94fa9f5aa0..bebf872f8ebe6 100644 --- a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm +++ b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm @@ -20,9 +20,9 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master) /// The plane master group we're a member of, our "home" var/datum/plane_master_group/home - /// If our plane master allows for offsetting - /// Mostly used for planes that really don't need to be duplicated, like the hud planes - var/allows_offsetting = TRUE + /// If our plane master has different offsetting logic + /// Possible flags are defined in [_DEFINES/layers.dm] + var/offsetting_flags = NONE /// Our offset from our "true" plane, see below var/offset /// When rendering multiz, lower levels get their own set of plane masters diff --git a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm index fa438af4b7016..acfa5ee274ca2 100644 --- a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm +++ b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm @@ -7,7 +7,7 @@ mouse_opacity = MOUSE_OPACITY_TRANSPARENT render_relay_planes = list() // We do NOT allow offsetting, because there's no case where you would want to block only one layer, at least currently - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING // We mark as multiz_scaled FALSE so transforms don't effect us, and we draw to the planes below us as if they were us. // This is safe because we will ALWAYS be on the top z layer, so it DON'T MATTER multiz_scaled = FALSE @@ -243,6 +243,18 @@ documentation = "Holds the areas themselves, which ends up meaning it holds any overlays/effects we apply to areas. NOT snow or rad storms, those go on above lighting" plane = AREA_PLANE +/atom/movable/screen/plane_master/weather + name = "Weather" + documentation = "Holds the main tiling 32x32 sprites of weather. We mask against walls that are on the edge of weather effects." + plane = WEATHER_PLANE + start_hidden = TRUE + +/atom/movable/screen/plane_master/weather/set_home(datum/plane_master_group/home) + . = ..() + if(!.) + return + home.AddComponent(/datum/component/hide_weather_planes, src) + /atom/movable/screen/plane_master/massive_obj name = "Massive object" documentation = "Huge objects need to render above everything else on the game plane, otherwise they'd well, get clipped and look not that huge. This does that." @@ -285,6 +297,18 @@ documentation = "Anything on the game plane that needs a space to draw on that will be above the lighting plane.\
Mostly little alerts and effects, also sometimes contains things that are meant to look as if they glow." +/atom/movable/screen/plane_master/weather_glow + name = "Weather Glow" + documentation = "Holds the glowing parts of the main tiling 32x32 sprites of weather." + plane = WEATHER_GLOW_PLANE + start_hidden = TRUE + +/atom/movable/screen/plane_master/weather_glow/set_home(datum/plane_master_group/home) + . = ..() + if(!.) + return + home.AddComponent(/datum/component/hide_weather_planes, src) + /** * Handles emissive overlays and emissive blockers. */ @@ -368,7 +392,7 @@ appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) mouse_opacity = MOUSE_OPACITY_TRANSPARENT - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/runechat name = "Runechat" @@ -397,7 +421,7 @@ plane = HUD_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/above_hud name = "Above HUD" @@ -405,7 +429,7 @@ plane = ABOVE_HUD_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/splashscreen name = "Splashscreen" @@ -413,7 +437,7 @@ plane = SPLASHSCREEN_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_NON_GAME) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST /atom/movable/screen/plane_master/escape_menu name = "Escape Menu" @@ -421,4 +445,4 @@ plane = ESCAPE_MENU_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR render_relay_planes = list(RENDER_PLANE_MASTER) - allows_offsetting = FALSE + offsetting_flags = BLOCKS_PLANE_OFFSETTING|OFFSET_RELAYS_MATCH_HIGHEST diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm index aa7f9fe30c516..66339c837d050 100644 --- a/code/_onclick/hud/rendering/render_plate.dm +++ b/code/_onclick/hud/rendering/render_plate.dm @@ -6,7 +6,7 @@ /** - * Render relay object assigned to a plane master to be able to relay it's render onto other planes that are not it's own + * Render relay object assigned to a plane master to be able to relay its render onto other planes that are not its own */ /atom/movable/render_plane_relay screen_loc = "CENTER" @@ -345,7 +345,7 @@ if(!.) return - RegisterSignal(mymob, COMSIG_MOB_SIGHT_CHANGE, PROC_REF(handle_sight)) + RegisterSignal(mymob, COMSIG_MOB_SIGHT_CHANGE, PROC_REF(handle_sight), override = TRUE) handle_sight(mymob, mymob.sight, NONE) /atom/movable/screen/plane_master/rendering_plate/light_mask/hide_from(mob/oldmob) @@ -457,6 +457,8 @@ // That's what this is for if(show_to) show_to.screen += relay + if(offsetting_flags & OFFSET_RELAYS_MATCH_HIGHEST && home.our_hud) + offset_relay(relay, home.our_hud.current_plane_offset) return relay /// Breaks a connection between this plane master, and the passed in place @@ -479,3 +481,40 @@ return relay return null + +/** + * Offsets our relays in place using the given parameter by adjusting their plane and + * layer values, avoiding changing the layer for relays with custom-set layers. + * + * Used in [proc/build_planes_offset] to make the relays for non-offsetting planes + * match the highest rendering plane that matches the target, to avoid them rendering + * on the highest level above things that should be visible. + * + * Parameters: + * - new_offset: the offset we will adjust our relays to + */ +/atom/movable/screen/plane_master/proc/offset_relays_in_place(new_offset) + for(var/atom/movable/render_plane_relay/rpr in relays) + offset_relay(rpr, new_offset) + +/** + * Offsets a given render relay using the given parameter by adjusting its plane and + * layer values, avoiding changing the layer if it has a custom-set layer. + * + * Parameters: + * - rpr: the render plane relay we will offset + * - new_offset: the offset we will adjust it by + */ +/atom/movable/screen/plane_master/proc/offset_relay(atom/movable/render_plane_relay/rpr, new_offset) + var/base_relay_plane = PLANE_TO_TRUE(rpr.plane) + var/old_offset = PLANE_TO_OFFSET(rpr.plane) + rpr.plane = GET_NEW_PLANE(base_relay_plane, new_offset) + + var/old_offset_plane = real_plane - (PLANE_RANGE * old_offset) + var/old_layer = (old_offset_plane + abs(LOWEST_EVER_PLANE * 30)) + if(rpr.layer != old_layer) // Avoid overriding custom-set layers + return + + var/offset_plane = real_plane - (PLANE_RANGE * new_offset) + var/new_layer = (offset_plane + abs(LOWEST_EVER_PLANE * 30)) + rpr.layer = new_layer diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index e2e534443691a..2d82bb0c1e6e8 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -87,11 +87,6 @@ using.screen_loc = ui_borg_navigate_menu static_inventory += using -// Z-level floor change - using = new /atom/movable/screen/floor_menu(null, src) - using.screen_loc = ui_borg_floor_menu - static_inventory += using - //Radio using = new /atom/movable/screen/robot/radio(null, src) using.screen_loc = ui_borg_radio @@ -149,6 +144,11 @@ action_intent.screen_loc = ui_combat_toggle static_inventory += action_intent + floor_change = new /atom/movable/screen/floor_changer(null, src) + floor_change.icon = ui_style + floor_change.screen_loc = ui_borg_floor_changer + static_inventory += floor_change + //Health healths = new /atom/movable/screen/healths/robot(null, src) infodisplay += healths diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 8cc29740870ca..efc7f1c3cfedf 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -45,8 +45,9 @@ /atom/movable/screen/Initialize(mapload, datum/hud/hud_owner) . = ..() - if(hud_owner && istype(hud_owner)) - hud = hud_owner + if(isnull(hud_owner)) //some screens set their hud owners on /new, this prevents overriding them with null post atoms init + return + set_new_hud(hud_owner) /atom/movable/screen/Destroy() master_ref = null @@ -72,10 +73,25 @@ /atom/movable/screen/proc/component_click(atom/movable/screen/component_button/component, params) return +///setter used to set our new hud +/atom/movable/screen/proc/set_new_hud(datum/hud/hud_owner) + if(hud) + UnregisterSignal(hud, COMSIG_QDELETING) + if(isnull(hud_owner)) + hud = null + return + hud = hud_owner + RegisterSignal(hud, COMSIG_QDELETING, PROC_REF(on_hud_delete)) + /// Returns the mob this is being displayed to, if any /atom/movable/screen/proc/get_mob() return hud?.mymob +/atom/movable/screen/proc/on_hud_delete(datum/source) + SIGNAL_HANDLER + + set_new_hud(hud_owner = null) + /atom/movable/screen/text icon = null icon_state = null @@ -94,7 +110,7 @@ if(world.time <= usr.next_move) return 1 - if(usr.incapacitated()) + if(usr.incapacitated) return 1 if(ismob(usr)) @@ -127,7 +143,7 @@ screen_loc = ui_building /atom/movable/screen/area_creator/Click() - if(usr.incapacitated() || (isobserver(usr) && !isAdminGhostAI(usr))) + if(usr.incapacitated || (isobserver(usr) && !isAdminGhostAI(usr))) return TRUE var/area/A = get_area(usr) if(!A.outdoors) @@ -144,33 +160,6 @@ /atom/movable/screen/language_menu/Click() usr.get_language_holder().open_language_menu(usr) -/atom/movable/screen/floor_menu - name = "change floor" - icon = 'icons/hud/screen_midnight.dmi' - icon_state = "floor_change" - screen_loc = ui_floor_menu - -/atom/movable/screen/floor_menu/Initialize(mapload) - . = ..() - register_context() - -/atom/movable/screen/floor_menu/add_context(atom/source, list/context, obj/item/held_item, mob/user) - . = ..() - - context[SCREENTIP_CONTEXT_LMB] = "Go up a floor" - context[SCREENTIP_CONTEXT_RMB] = "Go down a floor" - return CONTEXTUAL_SCREENTIP_SET - -/atom/movable/screen/floor_menu/Click(location,control,params) - var/list/modifiers = params2list(params) - - if(LAZYACCESS(modifiers, RIGHT_CLICK) || LAZYACCESS(modifiers, ALT_CLICK)) - usr.down() - return - - usr.up() - return - /atom/movable/screen/inventory /// The identifier for the slot. It has nothing to do with ID cards. var/slot_id @@ -188,7 +177,7 @@ if(world.time <= usr.next_move) return TRUE - if(usr.incapacitated(IGNORE_STASIS)) + if(INCAPACITATED_IGNORING(usr, INCAPABLE_STASIS)) return TRUE if(ismecha(usr.loc)) // stops inventory actions in a mech return TRUE @@ -278,7 +267,7 @@ return TRUE if(world.time <= user.next_move) return TRUE - if(user.incapacitated()) + if(user.incapacitated) return TRUE if (ismecha(user.loc)) // stops inventory actions in a mech return TRUE @@ -364,6 +353,34 @@ icon = 'icons/hud/screen_cyborg.dmi' screen_loc = ui_borg_intents +/atom/movable/screen/floor_changer + name = "change floor" + icon = 'icons/hud/screen_midnight.dmi' + icon_state = "floor_change" + screen_loc = ui_floor_changer + var/vertical = FALSE + +/atom/movable/screen/floor_changer/Click(location,control,params) + var/list/modifiers = params2list(params) + + var/mouse_position + + if(vertical) + mouse_position = text2num(LAZYACCESS(modifiers, ICON_Y)) + else + mouse_position = text2num(LAZYACCESS(modifiers, ICON_X)) + + if(mouse_position > 16) + usr.up() + return + + usr.down() + return + +/atom/movable/screen/floor_changer/vertical + icon_state = "floor_change_v" + vertical = TRUE + /atom/movable/screen/spacesuit name = "Space suit cell status" icon_state = "spacesuit_0" @@ -455,7 +472,7 @@ if(world.time <= usr.next_move) return TRUE - if(usr.incapacitated()) + if(usr.incapacitated) return TRUE if(ismecha(usr.loc)) // stops inventory actions in a mech return TRUE @@ -466,8 +483,26 @@ return TRUE +/atom/movable/screen/storage/cell + +/atom/movable/screen/storage/cell/mouse_drop_receive(atom/target, mob/living/user, params) + var/datum/storage/storage = master_ref?.resolve() + + if (isnull(storage) || !istype(user) || storage != user.active_storage) + return + + if (!user.can_perform_action(storage.parent, FORBID_TELEKINESIS_REACH)) + return + + if (target.loc != storage.real_location) + return + + /// Due to items in storage ignoring transparency for click hitboxes, this only can happen if we drag onto a free cell - aka after all current contents + storage.real_location.contents -= target + storage.real_location.contents += target + storage.refresh_views() + /atom/movable/screen/storage/corner - name = "storage" icon_state = "storage_corner_topleft" /atom/movable/screen/storage/corner/top_right @@ -689,6 +724,88 @@ screen_loc = ui_living_healthdoll var/filtered = FALSE //so we don't repeatedly create the mask of the mob every update +/atom/movable/screen/healthdoll/human + /// Tracks components of our doll, each limb is a separate atom in our vis_contents + VAR_PRIVATE/list/atom/movable/screen/limbs + /// Lazylist, tracks all body zones that are wounded currently + /// Used so we can sync animations should the list be updated + VAR_PRIVATE/list/animated_zones + +/atom/movable/screen/healthdoll/human/Initialize(mapload, datum/hud/hud_owner) + . = ..() + limbs = list() + for(var/i in GLOB.all_body_zones) + var/atom/movable/screen/healthdoll_limb/limb = new(src, null) + // layer chest above other limbs, it's the center after all + limb.layer = i == BODY_ZONE_CHEST ? layer + 0.05 : layer + limbs[i] = limb + // why viscontents? why not overlays? - because i want to animate filters + vis_contents += limb + update_appearance() + +/atom/movable/screen/healthdoll/human/Destroy() + QDEL_LIST_ASSOC_VAL(limbs) + vis_contents.Cut() + return ..() + +/atom/movable/screen/healthdoll/human/update_icon_state() + . = ..() + var/mob/living/carbon/human/owner = hud?.mymob + if(isnull(owner)) + return + if(owner.stat == DEAD) + for(var/limb in limbs) + limbs[limb].icon_state = "[limb]DEAD" + return + + var/list/current_animated = LAZYLISTDUPLICATE(animated_zones) + + for(var/obj/item/bodypart/body_part as anything in owner.bodyparts) + var/icon_key = 0 + var/part_zone = body_part.body_zone + + var/list/overridable_key = list(icon_key) + if(body_part.bodypart_disabled) + icon_key = 7 + else if(owner.stat == DEAD) + icon_key = "DEAD" + else if(SEND_SIGNAL(body_part, COMSIG_BODYPART_UPDATING_HEALTH_HUD, owner, overridable_key) & OVERRIDE_BODYPART_HEALTH_HUD) + icon_key = overridable_key[1] // thanks i hate it + else if(!owner.has_status_effect(/datum/status_effect/grouped/screwy_hud/fake_healthy)) + var/damage = body_part.get_damage() / body_part.max_damage + // calculate what icon state (1-5, or 0 if undamaged) to use based on damage + icon_key = clamp(ceil(damage * 5), 0, 5) + + if(length(body_part.wounds)) + LAZYSET(animated_zones, part_zone, TRUE) + else + LAZYREMOVE(animated_zones, part_zone) + limbs[part_zone].icon_state = "[part_zone][icon_key]" + // handle leftovers + for(var/missing_zone in owner.get_missing_limbs()) + limbs[missing_zone].icon_state = "[missing_zone]6" + LAZYREMOVE(animated_zones, missing_zone) + // time to re-sync animations, something changed + if(animated_zones ~! current_animated) + for(var/animated_zone in animated_zones) + var/atom/wounded_zone = limbs[animated_zone] + var/existing_filter = wounded_zone.get_filter("wound_outline") + if(existing_filter) + animate(existing_filter) // stop animation so we can resync + else + wounded_zone.add_filter("wound_outline", 1, list("type" = "outline", "color" = "#FF0033", "alpha" = 0, "size" = 1.2)) + existing_filter = wounded_zone.get_filter("wound_outline") + animate(existing_filter, alpha = 200, time = 1.5 SECONDS, loop = -1) + animate(alpha = 0, time = 1.5 SECONDS) + if(LAZYLEN(current_animated)) // avoid null - list() runtimes please + for(var/lost_zone in current_animated - animated_zones) + limbs[lost_zone].remove_filter("wound_outline") + +// Basically just holds an icon we can put a filter on +/atom/movable/screen/healthdoll_limb + screen_loc = ui_living_healthdoll + vis_flags = VIS_INHERIT_ID | VIS_INHERIT_PLANE + /atom/movable/screen/mood name = "mood" icon_state = "mood5" @@ -853,9 +970,9 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash) /atom/movable/screen/hunger/update_appearance(updates) var/old_state = state update_hunger_state() // Do this before we call all the other update procs - . = ..() if(state == old_state) // Let's not be wasteful return + . = ..() if(state == HUNGER_STATE_FINE) SetInvisibility(INVISIBILITY_ABSTRACT, name) return @@ -869,13 +986,14 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/splash) animate(get_filter("hunger_outline"), alpha = 200, time = 1.5 SECONDS, loop = -1) animate(alpha = 0, time = 1.5 SECONDS) - else if(get_filter("hunger_outline")) + else remove_filter("hunger_outline") // Update color of the food - underlays -= food_image - food_image.color = state == HUNGER_STATE_FAT ? COLOR_DARK : null - underlays += food_image + if((state == HUNGER_STATE_FAT) != (old_state == HUNGER_STATE_FAT)) + underlays -= food_image + food_image.color = state == HUNGER_STATE_FAT ? COLOR_DARK : null + underlays += food_image /atom/movable/screen/hunger/update_icon_state() . = ..() diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index a5c2035b9394d..3d17d9abe894c 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -200,14 +200,12 @@ * * params - Click params of this attack */ /obj/item/proc/attack(mob/living/target_mob, mob/living/user, params) - var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, target_mob, user, params) + var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, target_mob, user, params) || SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, target_mob, user, params) if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE if(signal_return & COMPONENT_SKIP_ATTACK) return FALSE - SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, target_mob, user, params) - if(item_flags & NOBLUDGEON) return FALSE @@ -216,7 +214,7 @@ return FALSE if(!force && !HAS_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND)) - playsound(src, 'sound/weapons/tap.ogg', get_clamped_volume(), TRUE, -1) + playsound(src, 'sound/items/weapons/tap.ogg', get_clamped_volume(), TRUE, -1) else if(hitsound) playsound(src, hitsound, get_clamped_volume(), TRUE, extrarange = stealthy_audio ? SILENCED_SOUND_EXTRARANGE : -1, falloff_distance = 0) @@ -253,7 +251,7 @@ /// The equivalent of the standard version of [/obj/item/proc/attack] but for non mob targets. /obj/item/proc/attack_atom(atom/attacked_atom, mob/living/user, params) - var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_ATOM, attacked_atom, user) + var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_ATOM, attacked_atom, user) | SEND_SIGNAL(user, COMSIG_LIVING_ATTACK_ATOM, attacked_atom) if(signal_return & COMPONENT_SKIP_ATTACK) return TRUE if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN) @@ -272,12 +270,12 @@ /// Called from [/obj/item/proc/attack_atom] and [/obj/item/proc/attack] if the attack succeeds /atom/proc/attacked_by(obj/item/attacking_item, mob/living/user) if(!uses_integrity) - CRASH("attacked_by() was called on an object that doesnt use integrity!") + CRASH("attacked_by() was called on an object that doesn't use integrity!") if(!attacking_item.force) return - var/damage = take_damage(attacking_item.force, attacking_item.damtype, MELEE, 1) + var/damage = take_damage(attacking_item.force, attacking_item.damtype, MELEE, 1, get_dir(src, user)) //only witnesses close by and the victim see a hit message. user.visible_message(span_danger("[user] hits [src] with [attacking_item][damage ? "." : ", without leaving a mark!"]"), \ span_danger("You hit [src] with [attacking_item][damage ? "." : ", without leaving a mark!"]"), null, COMBAT_MESSAGE_RANGE) @@ -360,18 +358,6 @@ return FALSE -/mob/living/silicon/robot/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) - if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) - spark_system.start() - . = TRUE - return ..() || . - -/mob/living/silicon/ai/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) - if(damage_done > 0 && attacking_item.damtype != STAMINA && stat != DEAD) - spark_system.start() - . = TRUE - return ..() || . - /mob/living/carbon/attack_effects(damage_done, hit_zone, armor_block, obj/item/attacking_item, mob/living/attacker) var/obj/item/bodypart/hit_bodypart = get_bodypart(hit_zone) || bodyparts[1] if(!hit_bodypart.can_bleed()) @@ -486,4 +472,3 @@ return " in the [input_area]" return "" - diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 0dd8ee0a582f6..eab5f0a7cd9c9 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -109,11 +109,11 @@ if(!(interaction_flags_atom & INTERACT_ATOM_IGNORE_INCAPACITATED)) var/ignore_flags = NONE if(interaction_flags_atom & INTERACT_ATOM_IGNORE_RESTRAINED) - ignore_flags |= IGNORE_RESTRAINTS + ignore_flags |= INCAPABLE_RESTRAINTS if(!(interaction_flags_atom & INTERACT_ATOM_CHECK_GRAB)) - ignore_flags |= IGNORE_GRAB + ignore_flags |= INCAPABLE_GRAB - if(user.incapacitated(ignore_flags)) + if(INCAPACITATED_IGNORING(user, ignore_flags)) return FALSE return TRUE @@ -200,7 +200,8 @@ /atom/proc/attack_paw(mob/user, list/modifiers) if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_PAW, user, modifiers) & COMPONENT_CANCEL_ATTACK_CHAIN) return TRUE - return FALSE + if(interaction_flags_atom & INTERACT_ATOM_ATTACK_PAW) + . = _try_interact(user) /* diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index b7f48fcab5e4a..6ba6cd2de09fc 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -506,7 +506,7 @@ Example config: if(!fexists(file(config_toml))) SSjob.legacy_mode = TRUE - message += "jobconfig.toml not found, falling back to legacy mode (using jobs.txt). To surpress this warning, generate a jobconfig.toml by running the verb 'Generate Job Configuration' in the Server tab.\n\ + message += "jobconfig.toml not found, falling back to legacy mode (using jobs.txt). To suppress this warning, generate a jobconfig.toml by running the verb 'Generate Job Configuration' in the Server tab.\n\ From there, you can then add it to the /config folder of your server to have it take effect for future rounds." if(!fexists(file(config_txt))) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 8297085dbcf01..08c6ae681655a 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -70,6 +70,7 @@ /// Determines how fast traitors scale in general. /datum/config_entry/number/traitor_scaling_multiplier default = 1 + integer = FALSE min_val = 0.01 /// Determines how many potential objectives a traitor can have. @@ -106,9 +107,22 @@ /datum/config_entry/flag/protect_assistant_from_antagonist //If assistants can be traitor/cult/other -/datum/config_entry/flag/enforce_human_authority //If non-human species are barred from joining as a head of staff +/datum/config_entry/string/human_authority //Controls how to enforce human authority + default = "HUMAN_WHITELIST" + +/////////////////////////////////////////////////Outdated human authority settings +/datum/config_entry/flag/enforce_human_authority + deprecated_by = /datum/config_entry/string/human_authority + +/datum/config_entry/flag/enforce_human_authority/DeprecationUpdate(value) + return value ? HUMAN_AUTHORITY_NON_HUMAN_WHITELIST : HUMAN_AUTHORITY_DISABLED -/datum/config_entry/flag/enforce_human_authority_on_everyone //If non-human species are barred from joining as a head of staff, including jobs flagged as allowed for non-humans, ie. Quartermaster. +/datum/config_entry/flag/enforce_human_authority_on_everyone + deprecated_by = /datum/config_entry/string/human_authority + +/datum/config_entry/flag/enforce_human_authority_on_everyone/DeprecationUpdate(value) + return value ? HUMAN_AUTHORITY_ENFORCED : HUMAN_AUTHORITY_DISABLED +///////////////////////////////////////////////// /datum/config_entry/flag/allow_latejoin_antagonists // If late-joining players can be traitor/changeling @@ -265,7 +279,7 @@ /datum/config_entry/flag/roundstart_away //Will random away mission be loaded. /datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled. - default = 18000 + default = 30 MINUTES integer = FALSE min_val = 0 @@ -274,6 +288,16 @@ min_val = 0 max_val = 100 +///An override to gateway_delay for specific maps or start points +/datum/config_entry/keyed_list/gateway_delays_by_id + default = list( + AWAYSTART_BEACH = 5 MINUTES, //Chill RP zone + AWAYSTART_MUSEUM = 12 MINUTES, //Chill place with some cool puzzles and effects. + ) + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + lowercase_key = FALSE //The macros are written the exact same way as their values, only without the quotation marks. + /datum/config_entry/flag/ghost_interaction /datum/config_entry/flag/near_death_experience //If carbons can hear ghosts when unconscious and very close to death @@ -471,5 +495,6 @@ * If higher than 1, it'll lean toward common spawns even more. */ /datum/config_entry/number/random_loot_weight_modifier + integer = FALSE default = 1 min_val = 0.05 diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 964459aea68d4..e1ed3284441f6 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -313,13 +313,13 @@ /datum/config_entry/string/banappeals /datum/config_entry/string/wikiurl - default = "http://www.tgstation13.org/wiki" + default = "http://tgstation13.org/wiki" /datum/config_entry/string/forumurl default = "http://tgstation13.org/phpBB/index.php" /datum/config_entry/string/rulesurl - default = "http://www.tgstation13.org/wiki/Rules" + default = "http://tgstation13.org/wiki/Rules" /datum/config_entry/string/githuburl default = "https://www.github.com/tgstation/tgstation" @@ -738,3 +738,27 @@ /datum/config_entry/number/upload_limit_admin default = 5242880 min_val = 0 + +/// The minimum number of tallies a map vote entry can have. +/datum/config_entry/number/map_vote_minimum_tallies + default = 1 + min_val = 0 + max_val = 50 + +/// The flat amount all maps get by default +/datum/config_entry/number/map_vote_flat_bonus + default = 5 + min_val = 0 + max_val = INFINITY + +/// The maximum number of tallies a map vote entry can have. +/datum/config_entry/number/map_vote_maximum_tallies + default = 200 + min_val = 0 + max_val = INFINITY + +/// The number of tallies that are carried over between rounds. +/datum/config_entry/number/map_vote_tally_carryover_percentage + default = 100 + min_val = 0 + max_val = 100 diff --git a/code/controllers/configuration/entries/jobs.dm b/code/controllers/configuration/entries/jobs.dm index 06563e01a8e3d..d25ae3964eb1f 100644 --- a/code/controllers/configuration/entries/jobs.dm +++ b/code/controllers/configuration/entries/jobs.dm @@ -133,6 +133,11 @@ var/list/working_list = list() for(var/config_datum_key in job_config_datum_singletons) var/datum/job_config_type/config_datum = job_config_datum_singletons[config_datum_key] + + // Dont make the entry if it doesn't apply to this job + if(!config_datum.validate_entry(occupation)) + continue + var/config_read_value = job_config[job_key][config_datum_key] if(!config_datum.validate_value(config_read_value)) working_list += list( @@ -155,6 +160,11 @@ var/returnable_list = list() for(var/config_datum_key in job_config_datum_singletons) var/datum/job_config_type/config_datum = job_config_datum_singletons[config_datum_key] + + // Dont make the entry if it doesn't apply to this job + if(!config_datum.validate_entry(new_occupation)) + continue + // Remember, every time we write the TOML from scratch, we want to have it commented out by default. // This is to ensure that the server operator knows that they are overriding codebase defaults when they remove the comment. // Having comments mean that we allow server operators to defer to codebase standards when they deem acceptable. They must uncomment to override the codebase default. @@ -171,6 +181,11 @@ var/list/datums_to_read = job_config_datum_singletons - list(JOB_CONFIG_TOTAL_POSITIONS, JOB_CONFIG_SPAWN_POSITIONS) for(var/config_datum_key in datums_to_read) var/datum/job_config_type/config_datum = job_config_datum_singletons[config_datum_key] + + // Dont make the entry if it doesn't apply to this job + if(!config_datum.validate_entry(new_occupation)) + continue + returnable_list += list( "# [config_datum_key]" = config_datum.get_current_value(new_occupation), ) diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm index f6d03eb828d4c..e92e30079b878 100644 --- a/code/controllers/failsafe.dm +++ b/code/controllers/failsafe.dm @@ -16,7 +16,7 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) // The alert level. For every failed poke, we drop a DEFCON level. Once we hit DEFCON 1, restart the MC. var/defcon = 5 //the world.time of the last check, so the mc can restart US if we hang. - // (Real friends look out for *eachother*) + // (Real friends look out for *each other*) var/lasttick = 0 // Track the MC iteration to make sure its still on track. diff --git a/code/controllers/master.dm b/code/controllers/master.dm index a7dbc38f68bcd..c3f0478cedb96 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -78,6 +78,10 @@ GLOBAL_REAL(Master, /datum/controller/master) /// Whether the Overview UI will update as fast as possible for viewers. var/overview_fast_update = FALSE + /// Enables rolling usage averaging + var/use_rolling_usage = FALSE + /// How long to run our rolling usage averaging + var/rolling_usage_length = 5 SECONDS /datum/controller/master/New() if(!config) @@ -151,12 +155,32 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie if(isnull(ui)) ui = new /datum/tgui(user, src, "ControllerOverview") ui.open() + use_rolling_usage = TRUE + +/datum/controller/master/ui_close(mob/user) + var/valid_found = FALSE + for(var/datum/tgui/open_ui as anything in open_uis) + if(open_ui.user == user) + continue + valid_found = TRUE + if(!valid_found) + use_rolling_usage = FALSE + return ..() /datum/controller/master/ui_data(mob/user) var/list/data = list() var/list/subsystem_data = list() for(var/datum/controller/subsystem/subsystem as anything in subsystems) + var/list/rolling_usage = subsystem.rolling_usage + subsystem.prune_rolling_usage() + + // Then we sum + var/sum = 0 + for(var/i in 2 to length(rolling_usage) step 2) + sum += rolling_usage[i] + var/average = sum / DS2TICKS(rolling_usage_length) + subsystem_data += list(list( "name" = subsystem.name, "ref" = REF(subsystem), @@ -167,6 +191,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie "doesnt_fire" = !!(subsystem.flags & SS_NO_FIRE), "cost_ms" = subsystem.cost, "tick_usage" = subsystem.tick_usage, + "usage_per_tick" = average, "tick_overrun" = subsystem.tick_overrun, "initialized" = subsystem.initialized, "initialization_failure_message" = subsystem.initialization_failure_message, @@ -175,6 +200,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie data["world_time"] = world.time data["map_cpu"] = world.map_cpu data["fast_update"] = overview_fast_update + data["rolling_length"] = rolling_usage_length return data @@ -187,6 +213,13 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie overview_fast_update = !overview_fast_update return TRUE + if("set_rolling_length") + var/length = text2num(params["rolling_length"]) + if(!length || length < 0) + return + rolling_usage_length = length SECONDS + return TRUE + if("view_variables") var/datum/controller/subsystem/subsystem = locate(params["ref"]) in subsystems if(isnull(subsystem)) @@ -278,7 +311,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie Initialize(20, TRUE, FALSE) // Please don't stuff random bullshit here, -// Make a subsystem, give it the SS_NO_FIRE flag, and do your work in it's Initialize() +// Make a subsystem, give it the SS_NO_FIRE flag, and do your work in its Initialize() /datum/controller/master/Initialize(delay, init_sss, tgs_prime) set waitfor = 0 @@ -542,7 +575,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie //Anti-tick-contention heuristics: if (init_stage == INITSTAGE_MAX) - //if there are mutiple sleeping procs running before us hogging the cpu, we have to run later. + //if there are multiple sleeping procs running before us hogging the cpu, we have to run later. // (because sleeps are processed in the order received, longer sleeps are more likely to run first) if (starting_tick_usage > TICK_LIMIT_MC) //if there isn't enough time to bother doing anything this tick, sleep a bit. sleep_delta *= 2 @@ -764,6 +797,12 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie var/state = queue_node.ignite(queue_node_paused) tick_usage = TICK_USAGE - tick_usage + if(use_rolling_usage) + queue_node.prune_rolling_usage() + // Rolling usage is an unrolled list that we know the order off + // OPTIMIZATION POSTING + queue_node.rolling_usage += list(DS2TICKS(world.time), tick_usage) + if(queue_node.profiler_focused) world.Profile(PROFILE_STOP) @@ -903,3 +942,4 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie return FALSE last_profiled = REALTIMEOFDAY SSprofiler.DumpFile(allow_yield = FALSE) + diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index c9a2f07c4ee83..4bde26e3c9d10 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -19,7 +19,7 @@ /// Time to wait (in deciseconds) between each call to fire(). Must be a positive integer. var/wait = 20 - /// Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems + /// Priority Weight: When multiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems var/priority = FIRE_PRIORITY_DEFAULT /// [Subsystem Flags][SS_NO_INIT] to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again) @@ -63,6 +63,9 @@ /// Running average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing var/tick_overrun = 0 + /// Flat list of usage and time, every odd index is a log time, every even index is a usage + var/list/rolling_usage = list() + /// How much of a tick (in percents of a tick) were we allocated last fire. var/tick_allocation_last = 0 @@ -269,7 +272,7 @@ /datum/controller/subsystem/proc/OnConfigLoad() /** - * Used to initialize the subsystem. This is expected to be overriden by subtypes. + * Used to initialize the subsystem. This is expected to be overridden by subtypes. */ /datum/controller/subsystem/Initialize() return SS_INIT_NONE @@ -299,6 +302,15 @@ if (can_fire && cycles >= 1) postponed_fires += cycles +/// Prunes out of date entries in our rolling usage list +/datum/controller/subsystem/proc/prune_rolling_usage() + var/list/rolling_usage = src.rolling_usage + var/cut_to = 0 + while(cut_to + 2 <= length(rolling_usage) && rolling_usage[cut_to + 1] < DS2TICKS(world.time - Master.rolling_usage_length)) + cut_to += 2 + if(cut_to) + rolling_usage.Cut(1, cut_to + 1) + //usually called via datum/controller/subsystem/New() when replacing a subsystem (i.e. due to a recurring crash) //should attempt to salvage what it can from the old instance of subsystem /datum/controller/subsystem/Recover() diff --git a/code/controllers/subsystem/ai_controllers.dm b/code/controllers/subsystem/ai_controllers.dm index a6badb44a3f0e..8a5eb43bfc9dd 100644 --- a/code/controllers/subsystem/ai_controllers.dm +++ b/code/controllers/subsystem/ai_controllers.dm @@ -6,61 +6,55 @@ SUBSYSTEM_DEF(ai_controllers) init_order = INIT_ORDER_AI_CONTROLLERS wait = 0.5 SECONDS //Plan every half second if required, not great not terrible. runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME - - ///List of all ai_subtree singletons, key is the typepath while assigned value is a newly created instance of the typepath. See setup_subtrees() - var/list/datum/ai_planning_subtree/ai_subtrees = list() - ///Assoc List of all AI statuses and all AI controllers with that status. - var/list/ai_controllers_by_status = list( - AI_STATUS_ON = list(), - AI_STATUS_OFF = list(), - AI_STATUS_IDLE = list(), - ) - ///Assoc List of all AI controllers and the Z level they are on, which we check when someone enters/leaves a Z level to turn them on/off. - var/list/ai_controllers_by_zlevel = list() - /// The tick cost of all active AI, calculated on fire. - var/cost_on - /// The tick cost of all idle AI, calculated on fire. - var/cost_idle - + ///type of status we are interested in running + var/planning_status = AI_STATUS_ON + /// The average tick cost of all active AI, calculated on fire. + var/our_cost + /// The tick cost of all currently processed AI, being summed together + var/summing_cost /datum/controller/subsystem/ai_controllers/Initialize() setup_subtrees() return SS_INIT_SUCCESS /datum/controller/subsystem/ai_controllers/stat_entry(msg) - var/list/active_list = ai_controllers_by_status[AI_STATUS_ON] - var/list/inactive_list = ai_controllers_by_status[AI_STATUS_OFF] - var/list/idle_list = ai_controllers_by_status[AI_STATUS_IDLE] - msg = "Active AIs:[length(active_list)]/[round(cost_on,1)]%|Inactive:[length(inactive_list)]|Idle:[length(idle_list)]/[round(cost_idle,1)]%" + var/list/planning_list = GLOB.ai_controllers_by_status[planning_status] + msg = "Planning AIs:[length(planning_list)]/[round(our_cost,1)]%" return ..() /datum/controller/subsystem/ai_controllers/fire(resumed) + if(!resumed) + summing_cost = 0 var/timer = TICK_USAGE_REAL - cost_idle = MC_AVERAGE(cost_idle, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) - - timer = TICK_USAGE_REAL - for(var/datum/ai_controller/ai_controller as anything in ai_controllers_by_status[AI_STATUS_ON]) - if(!COOLDOWN_FINISHED(ai_controller, failed_planning_cooldown)) - continue - - if(!ai_controller.able_to_plan()) + for(var/datum/ai_controller/ai_controller as anything in GLOB.ai_controllers_by_status[planning_status]) + if(!ai_controller.able_to_plan) continue ai_controller.SelectBehaviors(wait * 0.1) - if(!LAZYLEN(ai_controller.current_behaviors)) //Still no plan - COOLDOWN_START(ai_controller, failed_planning_cooldown, AI_FAILED_PLANNING_COOLDOWN) - cost_on = MC_AVERAGE(cost_on, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) + if(!length(ai_controller.current_behaviors)) //Still no plan + ai_controller.planning_failed() + + if(MC_TICK_CHECK) + break + + summing_cost += TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer) + if(MC_TICK_CHECK) + return + + our_cost = MC_AVERAGE(our_cost, summing_cost) ///Creates all instances of ai_subtrees and assigns them to the ai_subtrees list. /datum/controller/subsystem/ai_controllers/proc/setup_subtrees() + if(length(GLOB.ai_subtrees)) + return for(var/subtree_type in subtypesof(/datum/ai_planning_subtree)) var/datum/ai_planning_subtree/subtree = new subtree_type - ai_subtrees[subtree_type] = subtree + GLOB.ai_subtrees[subtree_type] = subtree ///Called when the max Z level was changed, updating our coverage. /datum/controller/subsystem/ai_controllers/proc/on_max_z_changed() - if (!islist(ai_controllers_by_zlevel)) - ai_controllers_by_zlevel = new /list(world.maxz,0) - while (SSai_controllers.ai_controllers_by_zlevel.len < world.maxz) - SSai_controllers.ai_controllers_by_zlevel.len++ - SSai_controllers.ai_controllers_by_zlevel[ai_controllers_by_zlevel.len] = list() + if(!length(GLOB.ai_controllers_by_zlevel)) + GLOB.ai_controllers_by_zlevel = new /list(world.maxz,0) + while (GLOB.ai_controllers_by_zlevel.len < world.maxz) + GLOB.ai_controllers_by_zlevel.len++ + GLOB.ai_controllers_by_zlevel[GLOB.ai_controllers_by_zlevel.len] = list() diff --git a/code/controllers/subsystem/ai_idle_controllers.dm b/code/controllers/subsystem/ai_idle_controllers.dm new file mode 100644 index 0000000000000..367a2c82ffc95 --- /dev/null +++ b/code/controllers/subsystem/ai_idle_controllers.dm @@ -0,0 +1,8 @@ +AI_CONTROLLER_SUBSYSTEM_DEF(ai_idle_controllers) + name = "AI Idle Controllers" + flags = SS_POST_FIRE_TIMING | SS_BACKGROUND + priority = FIRE_PRIORITY_IDLE_NPC + init_order = INIT_ORDER_AI_IDLE_CONTROLLERS + wait = 5 SECONDS + runlevels = RUNLEVEL_GAME + planning_status = AI_STATUS_IDLE diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 1cb3e2dec3783..bbc21becc0f3b 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -488,29 +488,26 @@ SUBSYSTEM_DEF(air) T.excited = FALSE ///Adds a turf to active processing, handles duplicates. Call this with blockchanges == TRUE if you want to nuke the assoc excited group -/datum/controller/subsystem/air/proc/add_to_active(turf/open/T, blockchanges = FALSE) - if(istype(T) && T.air) - T.significant_share_ticker = 0 - if(blockchanges && T.excited_group) //This is used almost exclusivly for shuttles, so the excited group doesn't stay behind - T.excited_group.garbage_collect() //Nuke it - if(T.excited) //Don't keep doing it if there's no point +/datum/controller/subsystem/air/proc/add_to_active(turf/open/activate, blockchanges = FALSE) + if(istype(activate) && activate.air) + activate.significant_share_ticker = 0 + if(blockchanges && activate.excited_group) //This is used almost exclusivly for shuttles, so the excited group doesn't stay behind + activate.excited_group.garbage_collect() //Nuke it + if(activate.excited) //Don't keep doing it if there's no point return #ifdef VISUALIZE_ACTIVE_TURFS - T.add_atom_colour(COLOR_VIBRANT_LIME, TEMPORARY_COLOUR_PRIORITY) + activate.add_atom_colour(COLOR_VIBRANT_LIME, TEMPORARY_COLOUR_PRIORITY) #endif - T.excited = TRUE - active_turfs += T - if(currentpart == SSAIR_ACTIVETURFS) - currentrun += T - else if(T.flags_1 & INITIALIZED_1) - for(var/turf/S in T.atmos_adjacent_turfs) - add_to_active(S, TRUE) + activate.excited = TRUE + active_turfs += activate + else if(activate.flags_1 & INITIALIZED_1) + for(var/turf/neighbor as anything in activate.atmos_adjacent_turfs) + add_to_active(neighbor, TRUE) else if(map_loading) if(queued_for_activation) - queued_for_activation[T] = T - return + queued_for_activation[activate] = activate else - T.requires_activation = TRUE + activate.requires_activation = TRUE /datum/controller/subsystem/air/StartLoadingMap() LAZYINITLIST(queued_for_activation) @@ -559,9 +556,9 @@ SUBSYSTEM_DEF(air) // If it's already been processed, then it's already talked to us if(enemy_tile.current_cycle == -INFINITE) continue - // .air instead of .return_air() because we can guarentee that the proc won't do anything - if(potential_diff.air.compare(enemy_tile.air)) - //testing("Active turf found. Return value of compare(): [T.air.compare(enemy_tile.air)]") + // .air instead of .return_air() because we can guarantee that the proc won't do anything + if(potential_diff.air.compare(enemy_tile.air, MOLES)) + //testing("Active turf found. Return value of compare(): [T.air.compare(enemy_tile.air, MOLES)]") if(!potential_diff.excited) potential_diff.excited = TRUE SSair.active_turfs += potential_diff @@ -707,7 +704,7 @@ SUBSYSTEM_DEF(air) CHECK_TICK //this can't be done with setup_atmos_machinery() because -// all atmos machinery has to initalize before the first +// all atmos machinery has to initialize before the first // pipenet can be built. /datum/controller/subsystem/air/proc/setup_pipenets() for (var/obj/machinery/atmospherics/AM in atmos_machinery) diff --git a/code/controllers/subsystem/ambience.dm b/code/controllers/subsystem/ambience.dm index cae5d85246d80..87f088a41ea13 100644 --- a/code/controllers/subsystem/ambience.dm +++ b/code/controllers/subsystem/ambience.dm @@ -70,16 +70,16 @@ SUBSYSTEM_DEF(ambience) ///A list of rare sound effects to fuck with players. No, it does not contain actual minecraft sounds anymore. var/static/list/minecraft_cave_noises = list( - 'sound/machines/airlock.ogg', + 'sound/machines/airlock/airlock.ogg', 'sound/effects/snap.ogg', 'sound/effects/footstep/clownstep1.ogg', 'sound/effects/footstep/clownstep2.ogg', - 'sound/items/welder.ogg', - 'sound/items/welder2.ogg', - 'sound/items/crowbar.ogg', + 'sound/items/tools/welder.ogg', + 'sound/items/tools/welder2.ogg', + 'sound/items/tools/crowbar.ogg', 'sound/items/deconstruct.ogg', - 'sound/ambience/source_holehit3.ogg', - 'sound/ambience/cavesound3.ogg', + 'sound/ambience/misc/source_holehit3.ogg', + 'sound/ambience//misc/cavesound3.ogg', ) /area/station/maintenance/play_ambience(mob/M, sound/override_sound, volume) @@ -124,7 +124,7 @@ SUBSYSTEM_DEF(ambience) client.current_ambient_sound = null return - //Station ambience is dependant on a functioning and charged APC with enviorment power enabled. + //Station ambience is dependent on a functioning and charged APC with environment power enabled. if(!is_mining_level(my_area.z) && ((!my_area.apc || !my_area.apc.operating || !my_area.apc.cell?.charge && my_area.requires_power || !my_area.power_environ))) SEND_SOUND(src, sound(null, repeat = 0, wait = 0, channel = CHANNEL_BUZZ)) client.current_ambient_sound = null diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 71eaed14ea23f..20d5a093be6da 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -75,7 +75,7 @@ SUBSYSTEM_DEF(atoms) rustg_file_write(json_encode(mapload_init_times), "[GLOB.log_directory]/init_times.json") #endif -/// Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break +/// Actually creates the list of atoms. Exists solely so a runtime in the creation logic doesn't cause initialized to totally break /datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms, list/atoms_to_return = null, mapload_source = null) if (atoms_to_return) LAZYINITLIST(created_atoms) @@ -137,8 +137,8 @@ SUBSYSTEM_DEF(atoms) return null return initialized_state[state_length][1] -/// Use this to set initialized to prevent error states where the old initialized is overriden, and we end up losing all context -/// Accepts a state and a source, the most recent state is used, sources exist to prevent overriding old values accidentially +/// Use this to set initialized to prevent error states where the old initialized is overridden, and we end up losing all context +/// Accepts a state and a source, the most recent state is used, sources exist to prevent overriding old values accidentally /datum/controller/subsystem/atoms/proc/set_tracked_initalized(state, source) if(!length(initialized_state)) base_initialized = initialized diff --git a/code/controllers/subsystem/bitrunning.dm b/code/controllers/subsystem/bitrunning.dm index 78afb101945b0..63c2561f0f496 100644 --- a/code/controllers/subsystem/bitrunning.dm +++ b/code/controllers/subsystem/bitrunning.dm @@ -25,7 +25,7 @@ SUBSYSTEM_DEF(bitrunning) var/can_view_reward = domain.difficulty < (scanner_tier + 1) && domain.cost <= points + 3 UNTYPED_LIST_ADD(levels, list( - "announce_ghosts"= domain.announce_to_ghosts, + "announce_ghosts" = domain.announce_to_ghosts, "cost" = domain.cost, "desc" = can_view ? domain.desc : "Limited scanning capabilities. Cannot infer domain details.", "difficulty" = domain.difficulty, diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index bb4f3802d89b1..83c666de64ac4 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -152,6 +152,8 @@ SUBSYSTEM_DEF(blackbox) record_feedback("tally", "radio_usage", 1, "centcom") if(FREQ_AI_PRIVATE) record_feedback("tally", "radio_usage", 1, "ai private") + if(FREQ_ENTERTAINMENT) + record_feedback("tally", "radio_usage", 1, "entertainment") if(FREQ_CTF_RED) record_feedback("tally", "radio_usage", 1, "CTF red team") if(FREQ_CTF_BLUE) @@ -190,7 +192,7 @@ feedback data can be recorded in 5 formats: used to track the number of occurances of multiple related values i.e. how many times each type of gun is fired further calls to the same key will: add or subtract from the saved value of the data key if it already exists - append the key and it's value if it doesn't exist + append the key and its value if it doesn't exist calls: SSblackbox.record_feedback("tally", "example", 1, "sample data") SSblackbox.record_feedback("tally", "example", 4, "sample data") SSblackbox.record_feedback("tally", "example", 2, "other data") @@ -202,7 +204,7 @@ feedback data can be recorded in 5 formats: all data list elements must be strings further calls to the same key will: add or subtract from the saved value of the data key if it already exists in the same multi-dimensional position - append the key and it's value if it doesn't exist + append the key and its value if it doesn't exist calls: SSblackbox.record_feedback("nested tally", "example", 1, list("fruit", "orange", "apricot")) SSblackbox.record_feedback("nested tally", "example", 2, list("fruit", "orange", "orange")) SSblackbox.record_feedback("nested tally", "example", 3, list("fruit", "orange", "apricot")) @@ -355,7 +357,7 @@ Versioning "z_coord" = L.z, "last_words" = L.last_words, "suicide" = did_they_suicide, - "map" = SSmapping.config.map_name, + "map" = SSmapping.current_map.map_name, "internet_address" = world.internet_address || "0", "port" = "[world.port]", "round_id" = GLOB.round_id, diff --git a/code/controllers/subsystem/blackmarket.dm b/code/controllers/subsystem/blackmarket.dm deleted file mode 100644 index f6a4aa25566ff..0000000000000 --- a/code/controllers/subsystem/blackmarket.dm +++ /dev/null @@ -1,125 +0,0 @@ -SUBSYSTEM_DEF(blackmarket) - name = "Blackmarket" - flags = SS_BACKGROUND - init_order = INIT_ORDER_DEFAULT - - /// Descriptions for each shipping methods. - var/shipping_method_descriptions = list( - SHIPPING_METHOD_LAUNCH = "Launches the item at the station from space, cheap but you might not receive your item at all.", - SHIPPING_METHOD_LTSRBT = "Long-To-Short-Range-Bluespace-Transceiver, a machine that receives items outside the station and then teleports them to the location of the uplink.", - SHIPPING_METHOD_TELEPORT = "Teleports the item in a random area in the station, you get 60 seconds to get there first though.", - SHIPPING_METHOD_SUPPLYPOD = "Ships the item inside a supply pod at your exact location. Showy, speedy and expensive.", - ) - - /// List of all existing markets. - var/list/datum/market/markets = list() - /// List of existing ltsrbts. - var/list/obj/machinery/ltsrbt/telepads = list() - /// Currently queued purchases. - var/list/queued_purchases = list() - -/datum/controller/subsystem/blackmarket/Initialize() - for(var/market in subtypesof(/datum/market)) - markets[market] += new market - - for(var/datum/market_item/item as anything in subtypesof(/datum/market_item)) - if(!initial(item.item)) - continue - if(!prob(initial(item.availability_prob))) - continue - - var/datum/market_item/item_instance = new item() - for(var/potential_market in item_instance.markets) - if(!markets[potential_market]) - stack_trace("SSblackmarket: Item [item_instance] available in market that does not exist.") - continue - // If this fails the market item will just be GC'd - markets[potential_market].add_item(item_instance) - - return SS_INIT_SUCCESS - -/datum/controller/subsystem/blackmarket/fire(resumed) - while(length(queued_purchases)) - var/datum/market_purchase/purchase = queued_purchases[1] - queued_purchases.Cut(1,2) - - var/mob/buyer = recursive_loc_check(purchase.uplink.loc, /mob) - - switch(purchase.method) - // Find a ltsrbt pad and make it handle the shipping. - if(SHIPPING_METHOD_LTSRBT) - if(!length(telepads)) - continue - // Prioritize pads that don't have a cooldown active. - var/obj/machinery/ltsrbt/lowest_cd_pad - // The time left of the shortest cooldown amongst all telepads. - var/lowest_timeleft = INFINITY - for(var/obj/machinery/ltsrbt/pad as anything in telepads) - if(!COOLDOWN_FINISHED(pad, recharge_cooldown)) - var/timeleft = COOLDOWN_TIMELEFT(pad, recharge_cooldown) - if(timeleft < lowest_timeleft) - lowest_cd_pad = pad - lowest_timeleft = timeleft - continue - lowest_cd_pad = pad - break - - lowest_cd_pad.add_to_queue(purchase) - - to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting that the order is being processed by [lowest_cd_pad].")) - - // Get random area, throw it somewhere there. - if(SHIPPING_METHOD_TELEPORT) - var/turf/targetturf = get_safe_random_station_turf() - // This shouldn't happen. - if (!targetturf) - continue - queued_purchases -= purchase - - to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting that the order is being teleported to [get_area(targetturf)] in 60 seconds.")) - - // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks. - addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/blackmarket,fake_teleport), purchase, targetturf), 60 SECONDS) - - // Get the current location of the uplink if it exists, then throws the item from space at the station from a random direction. - if(SHIPPING_METHOD_LAUNCH) - var/startSide = pick(GLOB.cardinals) - var/turf/T = get_turf(purchase.uplink) - var/pickedloc = spaceDebrisStartLoc(startSide, T.z) - - var/atom/movable/item = purchase.entry.spawn_item(pickedloc, purchase) - item.throw_at(purchase.uplink, 3, 3, spin = FALSE) - - to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting the order is being launched at the station from [dir2text(startSide)].")) - qdel(purchase) - - if(SHIPPING_METHOD_SUPPLYPOD) - var/obj/structure/closet/supplypod/back_to_station/pod = new() - purchase.entry.spawn_item(pod, purchase) - new /obj/effect/pod_landingzone(get_turf(purchase.uplink), pod) - - to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting the order is being launched at your location. Right here, right now!")) - qdel(purchase) - - if(MC_TICK_CHECK) - break - -/// Used to make a teleportation effect as do_teleport does not like moving items from nullspace. -/datum/controller/subsystem/blackmarket/proc/fake_teleport(datum/market_purchase/purchase, turf/target) - // Oopsie, whoopsie, the item is gone. So long, and thanks for all the money. - if(QDELETED(purchase)) - return - var/atom/movable/thing = purchase.entry.spawn_item(target, purchase) - var/datum/effect_system/spark_spread/sparks = new - sparks.set_up(5, 1, target) - sparks.attach(thing) - sparks.start() - qdel(purchase) - -/// Used to add /datum/market_purchase to queued_purchases var. Returns TRUE when queued. -/datum/controller/subsystem/blackmarket/proc/queue_item(datum/market_purchase/purchase) - if((purchase.method == SHIPPING_METHOD_LTSRBT && !telepads.len) || isnull(purchase.uplink)) - qdel(purchase) - return FALSE - queued_purchases += purchase - return TRUE diff --git a/code/controllers/subsystem/discord.dm b/code/controllers/subsystem/discord.dm index 7efdbfcda6a55..5fd1db1fd074d 100644 --- a/code/controllers/subsystem/discord.dm +++ b/code/controllers/subsystem/discord.dm @@ -140,9 +140,9 @@ SUBSYSTEM_DEF(discord) * ``` * * Notes: - * * The token is guaranteed to unique during it's validity period + * * The token is guaranteed to unique during its validity period * * The validity period is currently set at 4 hours - * * a token may not be unique outside it's validity window (to reduce conflicts) + * * a token may not be unique outside its validity window (to reduce conflicts) * * Arguments: * * ckey_for a string representing the ckey this token is for diff --git a/code/controllers/subsystem/dynamic/dynamic.dm b/code/controllers/subsystem/dynamic/dynamic.dm index e34b0c7e446c0..c3edc30dc6866 100644 --- a/code/controllers/subsystem/dynamic/dynamic.dm +++ b/code/controllers/subsystem/dynamic/dynamic.dm @@ -140,10 +140,10 @@ SUBSYSTEM_DEF(dynamic) /// The maximum amount of time for antag random events to be hijacked. var/random_event_hijack_maximum = 18 MINUTES - /// What is the lower bound of when the roundstart annoucement is sent out? + /// What is the lower bound of when the roundstart announcement is sent out? var/waittime_l = 600 - /// What is the higher bound of when the roundstart annoucement is sent out? + /// What is the higher bound of when the roundstart announcement is sent out? var/waittime_h = 1800 /// A number between 0 and 100. The maximum amount of threat allowed to generate. @@ -526,7 +526,7 @@ SUBSYSTEM_DEF(dynamic) //To new_player and such, and we want the datums to just free when the roundstart work is done var/list/roundstart_rules = init_rulesets(/datum/dynamic_ruleset/roundstart) - SSjob.DivideOccupations(pure = TRUE, allow_all = TRUE) + SSjob.divide_occupations(pure = TRUE, allow_all = TRUE) for(var/i in GLOB.new_player_list) var/mob/dead/new_player/player = i if(player.ready == PLAYER_READY_TO_PLAY && player.mind && player.check_preferences()) @@ -541,7 +541,7 @@ SUBSYSTEM_DEF(dynamic) else roundstart_pop_ready++ candidates.Add(player) - SSjob.ResetOccupations() + SSjob.reset_occupations() log_dynamic("Listing [roundstart_rules.len] round start rulesets, and [candidates.len] players ready.") if (candidates.len <= 0) log_dynamic("[candidates.len] candidates.") @@ -999,7 +999,7 @@ SUBSYSTEM_DEF(dynamic) #define MAXIMUM_DYN_DISTANCE 5 /** - * Returns the comulative distribution of threat centre and width, and a random location of -0.5 to 0.5 + * Returns the comulative distribution of threat centre and width, and a random location of -5 to 5 * plus or minus the otherwise unattainable lower and upper percentiles. All multiplied by the maximum * threat and then rounded to the nearest interval. * rand() calls without arguments returns a value between 0 and 1, allowing for smaller intervals. @@ -1018,7 +1018,7 @@ SUBSYSTEM_DEF(dynamic) var/list/reopened_jobs = list() for(var/mob/living/quitter in GLOB.suicided_mob_list) - var/datum/job/job = SSjob.GetJob(quitter.job) + var/datum/job/job = SSjob.get_job(quitter.job) if(!job || !(job.job_flags & JOB_REOPEN_ON_ROUNDSTART_LOSS)) continue if(!include_command && job.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND) diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets.dm index c77cce50d0157..0d3242a4d17b2 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets.dm @@ -283,7 +283,7 @@ if(length(exclusive_roles)) var/exclusive_candidate = FALSE for(var/role in exclusive_roles) - var/datum/job/job = SSjob.GetJob(role) + var/datum/job/job = SSjob.get_job(role) if((role in candidate_client.prefs.job_preferences) && SSjob.check_job_eligibility(candidate_player, job, "Dynamic Roundstart TC", add_job_to_log = TRUE) == JOB_AVAILABLE) exclusive_candidate = TRUE diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm index d853876fed143..b204b62e965aa 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_latejoin.dm @@ -167,7 +167,7 @@ /// Checks for revhead loss conditions and other antag datums. /datum/dynamic_ruleset/latejoin/provocateur/proc/check_eligible(datum/mind/M) var/turf/T = get_turf(M.current) - if(!considered_afk(M) && considered_alive(M) && is_station_level(T.z) && !M.antag_datums?.len && !HAS_TRAIT(M, TRAIT_MINDSHIELD)) + if(!considered_afk(M) && considered_alive(M) && is_station_level(T.z) && !M.antag_datums?.len && !HAS_MIND_TRAIT(M.current, TRAIT_UNCONVERTABLE)) return TRUE return FALSE diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm index 857a1babd3249..4d182febb07e5 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_midround.dm @@ -349,6 +349,7 @@ requirements = REQUIREMENTS_VERY_HIGH_THREAT_NEEDED flags = HIGH_IMPACT_RULESET ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_WIZARDDEN) + signup_item_path = /obj/item/clothing/head/wizard /datum/dynamic_ruleset/midround/from_ghosts/wizard/ready(forced = FALSE) if(!check_candidates()) @@ -388,6 +389,7 @@ requirements = REQUIREMENTS_VERY_HIGH_THREAT_NEEDED ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_NUKIEBASE) flags = HIGH_IMPACT_RULESET + signup_item_path = /obj/machinery/nuclearbomb var/list/operative_cap = list(2,2,3,3,4,5,5,5,5,5) @@ -411,7 +413,7 @@ return ..() /datum/dynamic_ruleset/midround/from_ghosts/nuclear/finish_setup(mob/new_character, index) - new_character.mind.set_assigned_role(SSjob.GetJobType(/datum/job/nuclear_operative)) + new_character.mind.set_assigned_role(SSjob.get_job_type(/datum/job/nuclear_operative)) new_character.mind.special_role = ROLE_NUCLEAR_OPERATIVE if(index == 1) var/datum/antagonist/nukeop/leader/leader_antag_datum = new() @@ -433,6 +435,7 @@ cost = 8 minimum_players = 25 repeatable = TRUE + signup_item_path = /obj/structure/blob/normal /datum/dynamic_ruleset/midround/from_ghosts/blob/generate_ruleset_body(mob/applicant) var/body = applicant.become_overmind() @@ -506,6 +509,7 @@ cost = 10 minimum_players = 25 repeatable = TRUE + signup_item_path = /mob/living/basic/alien var/list/vents = list() /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/forget_startup() @@ -554,6 +558,7 @@ cost = 5 minimum_players = 15 repeatable = TRUE + signup_item_path = /obj/item/light_eater /datum/dynamic_ruleset/midround/from_ghosts/nightmare/acceptable(population = 0, threat_level = 0) var/turf/spawn_loc = find_maintenance_spawn(atmos_sensitive = TRUE, require_darkness = TRUE) //Checks if there's a single safe, dark tile on station. @@ -567,12 +572,12 @@ var/mob/living/carbon/human/new_nightmare = new (find_maintenance_spawn(atmos_sensitive = TRUE, require_darkness = TRUE)) player_mind.transfer_to(new_nightmare) - player_mind.set_assigned_role(SSjob.GetJobType(/datum/job/nightmare)) + player_mind.set_assigned_role(SSjob.get_job_type(/datum/job/nightmare)) player_mind.special_role = ROLE_NIGHTMARE player_mind.add_antag_datum(/datum/antagonist/nightmare) new_nightmare.set_species(/datum/species/shadow/nightmare) - playsound(new_nightmare, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(new_nightmare, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(new_nightmare)] has been made into a Nightmare by the midround ruleset.") log_dynamic("[key_name(new_nightmare)] was spawned as a Nightmare by the midround ruleset.") return new_nightmare @@ -590,6 +595,7 @@ cost = 7 minimum_players = 25 repeatable = TRUE + signup_item_path = /mob/living/basic/space_dragon var/list/spawn_locs = list() /datum/dynamic_ruleset/midround/from_ghosts/space_dragon/forget_startup() @@ -612,7 +618,7 @@ player_mind.transfer_to(S) player_mind.add_antag_datum(/datum/antagonist/space_dragon) - playsound(S, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + playsound(S, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Space Dragon by the midround ruleset.") log_dynamic("[key_name(S)] was spawned as a Space Dragon by the midround ruleset.") priority_announce("A large organic energy flux has been recorded near of [station_name()], please stand-by.", "Lifesign Alert") @@ -669,6 +675,7 @@ minimum_players = 30 repeatable = TRUE ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_NINJA_HOLDING_FACILITY) // I mean, no one uses the nets anymore but whateva + signup_item_path = /obj/item/energy_katana var/list/spawn_locs = list() @@ -728,6 +735,7 @@ cost = 5 minimum_players = 15 repeatable = TRUE + signup_item_path = /mob/living/basic/revenant var/dead_mobs_required = 20 var/need_extra_spawns_value = 15 var/list/spawn_locs = list() @@ -870,6 +878,7 @@ cost = 7 minimum_players = 15 repeatable = TRUE + signup_item_path = /obj/effect/meteor/meaty/changeling /datum/dynamic_ruleset/midround/from_ghosts/changeling_midround/generate_ruleset_body(mob/applicant) var/body = generate_changeling_meteor(applicant) @@ -921,7 +930,7 @@ new_datum.original_ref = WEAKREF(clone_victim.mind) new_datum.setup_clone() - playsound(clone, 'sound/weapons/zapbang.ogg', 30, TRUE) + playsound(clone, 'sound/items/weapons/zapbang.ogg', 30, TRUE) new /obj/item/storage/toolbox/mechanical(clone.loc) //so they dont get stuck in maints message_admins("[ADMIN_LOOKUPFLW(clone)] has been made into a Paradox Clone by the midround ruleset.") @@ -949,3 +958,44 @@ #undef MALF_ION_PROB #undef REPLACE_LAW_WITH_ION_PROB + +/// Midround Voidwalker Ruleset (From Ghosts) +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker + name = "Voidwalker" + midround_ruleset_style = MIDROUND_RULESET_STYLE_LIGHT + antag_datum = /datum/antagonist/voidwalker + antag_flag = ROLE_VOIDWALKER + antag_flag_override = ROLE_VOIDWALKER + ruleset_category = parent_type::ruleset_category | RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTS + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 1 + weight = 2 + cost = 5 + minimum_players = 40 + repeatable = TRUE + signup_item_path = /obj/item/cosmic_skull + ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_VOIDWALKER_VOID) + /// The space turf we find in acceptable(), cached for ease + var/space_turf + +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker/acceptable(population = 0, threat_level = 0) + space_turf = find_space_spawn() + // Space only antag and will die on planetary gravity. + if(SSmapping.is_planetary() || !space_turf) + return FALSE + return ..() + +/datum/dynamic_ruleset/midround/from_ghosts/voidwalker/generate_ruleset_body(mob/applicant) + var/datum/mind/player_mind = new /datum/mind(applicant.key) + player_mind.active = TRUE + + var/mob/living/carbon/human/voidwalker = new (space_turf) + player_mind.transfer_to(voidwalker) + player_mind.set_assigned_role(SSjob.get_job_type(/datum/job/voidwalker)) + player_mind.special_role = antag_flag + player_mind.add_antag_datum(antag_datum) + + playsound(voidwalker, 'sound/effects/magic/ethereal_exit.ogg', 50, TRUE, -1) + message_admins("[ADMIN_LOOKUPFLW(voidwalker)] has been made into a Voidwalker by the midround ruleset.") + log_dynamic("[key_name(voidwalker)] was spawned as a Voidwalker by the midround ruleset.") + return voidwalker diff --git a/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm index 72554a108e328..79eedc0adb8d7 100644 --- a/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/controllers/subsystem/dynamic/dynamic_rulesets_roundstart.dm @@ -63,7 +63,7 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) flags = HIGH_IMPACT_RULESET /datum/dynamic_ruleset/roundstart/malf_ai/ready(forced) - var/datum/job/ai_job = SSjob.GetJobType(/datum/job/ai) + var/datum/job/ai_job = SSjob.get_job_type(/datum/job/ai) // If we're not forced, we're going to make sure we can actually have an AI in this shift, if(!forced && min(ai_job.total_positions - ai_job.current_positions, ai_job.spawn_positions) <= 0) @@ -75,7 +75,7 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) /datum/dynamic_ruleset/roundstart/malf_ai/pre_execute(population) . = ..() - var/datum/job/ai_job = SSjob.GetJobType(/datum/job/ai) + var/datum/job/ai_job = SSjob.get_job_type(/datum/job/ai) // Maybe a bit too pedantic, but there should never be more malf AIs than there are available positions, spawn positions or antag cap allocations. var/num_malf = min(get_antag_cap(population), min(ai_job.total_positions - ai_job.current_positions, ai_job.spawn_positions)) for (var/i in 1 to num_malf) @@ -296,7 +296,7 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) var/mob/M = pick_n_take(candidates) if (M) assigned += M.mind - M.mind.set_assigned_role(SSjob.GetJobType(/datum/job/space_wizard)) + M.mind.set_assigned_role(SSjob.get_job_type(/datum/job/space_wizard)) M.mind.special_role = ROLE_WIZARD return TRUE @@ -429,7 +429,7 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) break var/mob/M = pick_n_take(candidates) assigned += M.mind - M.mind.set_assigned_role(SSjob.GetJobType(job_type)) + M.mind.set_assigned_role(SSjob.get_job_type(job_type)) M.mind.special_role = required_role return TRUE @@ -574,7 +574,7 @@ GLOBAL_VAR_INIT(revolutionary_win, FALSE) /// Checks for revhead loss conditions and other antag datums. /datum/dynamic_ruleset/roundstart/revs/proc/check_eligible(datum/mind/M) var/turf/T = get_turf(M.current) - if(!considered_afk(M) && considered_alive(M) && is_station_level(T.z) && !M.antag_datums?.len && !HAS_TRAIT(M, TRAIT_MINDSHIELD)) + if(!considered_afk(M) && considered_alive(M) && is_station_level(T.z) && !M.antag_datums?.len && !HAS_MIND_TRAIT(M.current, TRAIT_UNCONVERTABLE)) return TRUE return FALSE diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index b117a35718196..38fbdaa793bbb 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -8,7 +8,7 @@ SUBSYSTEM_DEF(events) var/list/running = list() ///cache of currently running events, for lag checking. var/list/currentrun = list() - ///The next world.time that a naturally occuring random event can be selected. + ///The next world.time that a naturally occurring random event can be selected. var/scheduled = 0 ///The lower bound for how soon another random event can be scheduled. var/frequency_lower = 2.5 MINUTES @@ -66,7 +66,7 @@ SUBSYSTEM_DEF(events) scheduled = world.time + rand(frequency_lower, max(frequency_lower,frequency_upper)) /** - * Selects a random event based on whether it can occur and it's 'weight'(probability) + * Selects a random event based on whether it can occur and its 'weight'(probability) * * Arguments: * * excluded_event - The event path we will be foregoing, if present. diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index 7bb597ba30e12..20194e66626ca 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -352,7 +352,7 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec who_did_it = "\[Projectile firer: [ADMIN_LOOKUPFLW(fired_projectile.firer)]\]" who_did_it_game_log = "\[Projectile firer: [key_name(fired_projectile.firer)]\]" else - who_did_it = "\[Projectile firer: [ADMIN_LOOKUPFLW(fired_projectile.firer.fingerprintslast)]\]" + who_did_it = "\[Projectile firer: [ADMIN_LOOKUPFLW(fired_projectile.firer?.fingerprintslast)]\]" who_did_it_game_log = "\[Projectile firer: [key_name(fired_projectile.firer.fingerprintslast)]\]" // Otherwise if the explosion cause is an atom, try get the fingerprints. else if(istype(explosion_cause)) @@ -521,7 +521,7 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec * - [creaking_sound][/sound]: The sound that plays when the station creaks during the explosion. * - [hull_creaking_sound][/sound]: The sound that plays when the station creaks after the explosion. */ -/datum/controller/subsystem/explosions/proc/shake_the_room(turf/epicenter, near_distance, far_distance, quake_factor, echo_factor, creaking, sound/near_sound = sound(get_sfx(SFX_EXPLOSION)), sound/far_sound = sound('sound/effects/explosionfar.ogg'), sound/echo_sound = sound('sound/effects/explosion_distant.ogg'), sound/creaking_sound = sound(get_sfx(SFX_EXPLOSION_CREAKING)), hull_creaking_sound = sound(get_sfx(SFX_HULL_CREAKING))) +/datum/controller/subsystem/explosions/proc/shake_the_room(turf/epicenter, near_distance, far_distance, quake_factor, echo_factor, creaking, sound/near_sound = sound(get_sfx(SFX_EXPLOSION)), sound/far_sound = sound('sound/effects/explosion/explosionfar.ogg'), sound/echo_sound = sound('sound/effects/explosion/explosion_distant.ogg'), sound/creaking_sound = sound(get_sfx(SFX_EXPLOSION_CREAKING)), hull_creaking_sound = sound(get_sfx(SFX_HULL_CREAKING))) var/frequency = get_rand_frequency() var/blast_z = epicenter.z if(isnull(creaking)) // Autoset creaking. diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 706b4e51d690f..ad1b9e4132fed 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -346,6 +346,7 @@ SUBSYSTEM_DEF(garbage) /// Datums passed to this will be given a chance to clean up references to allow the GC to collect them. /proc/qdel(datum/to_delete, force = FALSE) if(!istype(to_delete)) + DREAMLUAU_CLEAR_REF_USERDATA(to_delete) del(to_delete) return diff --git a/code/controllers/subsystem/id_access.dm b/code/controllers/subsystem/id_access.dm index 38bf3b568a1f9..93b823f18b595 100644 --- a/code/controllers/subsystem/id_access.dm +++ b/code/controllers/subsystem/id_access.dm @@ -291,7 +291,7 @@ SUBSYSTEM_DEF(id_access) desc_by_access["[ACCESS_VIROLOGY]"] = "Virology" desc_by_access["[ACCESS_PSYCHOLOGY]"] = "Psychology" desc_by_access["[ACCESS_CMO]"] = "CMO Office" - desc_by_access["[ACCESS_QM]"] = "Quartermaster" + desc_by_access["[ACCESS_QM]"] = "QM Office" desc_by_access["[ACCESS_SURGERY]"] = "Surgery" desc_by_access["[ACCESS_THEATRE]"] = "Theatre" desc_by_access["[ACCESS_RESEARCH]"] = "Science" @@ -398,6 +398,8 @@ SUBSYSTEM_DEF(id_access) id_card.clear_access() id_card.trim = trim + id_card.big_pointer = trim.big_pointer + id_card.pointer_color = trim.pointer_color if(copy_access) id_card.access = trim.access.Copy() @@ -407,6 +409,12 @@ SUBSYSTEM_DEF(id_access) if(trim.assignment) id_card.assignment = trim.assignment + var/datum/job/trim_job = trim.find_job() + if (!isnull(id_card.registered_account)) + var/datum/job/old_job = id_card.registered_account.account_job + id_card.registered_account.account_job = trim_job + id_card.registered_account.update_account_job_lists(trim_job, old_job) + id_card.update_label() id_card.update_icon() @@ -441,6 +449,8 @@ SUBSYSTEM_DEF(id_access) id_card.department_color_override = trim.department_color id_card.department_state_override = trim.department_state id_card.subdepartment_color_override = trim.subdepartment_color + id_card.big_pointer = trim.big_pointer + id_card.pointer_color = trim.pointer_color if(!check_forged || !id_card.forged) id_card.assignment = trim.assignment @@ -461,6 +471,8 @@ SUBSYSTEM_DEF(id_access) id_card.department_color_override = null id_card.department_state_override = null id_card.subdepartment_color_override = null + id_card.big_pointer = id_card.trim.big_pointer + id_card.pointer_color = id_card.trim.pointer_color /** * Adds the accesses associated with a trim to an ID card. diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 65dc1e31a1e42..e4e12418a7576 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -19,7 +19,7 @@ VERB_MANAGER_SUBSYSTEM_DEF(input) ///running average of how many movement iterations from player input the server processes every second. used for the subsystem stat entry var/movements_per_second = 0 ///running average of the amount of real time clicks take to truly execute after the command is originally sent to the server. - ///if a click isnt delayed at all then it counts as 0 deciseconds. + ///if a click isn't delayed at all then it counts as 0 deciseconds. var/average_click_delay = 0 /datum/controller/subsystem/verb_manager/input/Initialize() @@ -31,7 +31,7 @@ VERB_MANAGER_SUBSYSTEM_DEF(input) return SS_INIT_SUCCESS -// This is for when macro sets are eventualy datumized +// This is for when macro sets are eventually datumized /datum/controller/subsystem/verb_manager/input/proc/setup_default_macro_sets() macro_set = list( "Any" = "\"KeyDown \[\[*\]\]\"", @@ -75,7 +75,7 @@ VERB_MANAGER_SUBSYSTEM_DEF(input) movements_per_second = MC_AVG_SECONDS(movements_per_second, moves_this_run, wait TICKS) /datum/controller/subsystem/verb_manager/input/run_verb_queue() - var/deferred_clicks_this_run = 0 //acts like current_clicks but doesnt count clicks that dont get processed by SSinput + var/deferred_clicks_this_run = 0 //acts like current_clicks but doesn't count clicks that don't get processed by SSinput for(var/datum/callback/verb_callback/queued_click as anything in verb_queue) if(!istype(queued_click)) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index dc1091bcfc516..9af14f226ace5 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -22,7 +22,7 @@ SUBSYSTEM_DEF(job) var/list/unassigned = list() //Players who need jobs var/initial_players_to_assign = 0 //used for checking against population caps - // Whether to run DivideOccupations pure so that there are no side-effects from calling it other than + // Whether to run divide_occupations pure so that there are no side-effects from calling it other than // a player's assigned_role being set to some value. var/run_divide_occupation_pure = FALSE @@ -31,7 +31,7 @@ SUBSYSTEM_DEF(job) var/overflow_role = /datum/job/assistant - var/list/level_order = list(JP_HIGH,JP_MEDIUM,JP_LOW) + var/list/level_order = list(JP_HIGH, JP_MEDIUM, JP_LOW) /// Lazylist of mob:occupation_string pairs. var/list/dynamic_forced_occupations @@ -73,10 +73,11 @@ SUBSYSTEM_DEF(job) /// This is just the message we prepen and put into all of the config files to ensure documentation. We use this in more than one place, so let's put it in the SS to make life a bit easier. var/config_documentation = "## This is the configuration file for the job system.\n## This will only be enabled when the config flag LOAD_JOBS_FROM_TXT is enabled.\n\ - ## We use a system of keys here that directly correlate to the job, just to ensure they don't desync if we choose to change the name of a job.\n## You are able to change (as of now) five different variables in this file.\n\ + ## We use a system of keys here that directly correlate to the job, just to ensure they don't desync if we choose to change the name of a job.\n## You are able to change (as of now) five (six if the job is a command head) different variables in this file.\n\ ## Total Positions are how many job slots you get in a shift, Spawn Positions are how many you get that load in at spawn. If you set this to -1, it is unrestricted.\n## Playtime Requirements is in minutes, and the job will unlock when a player reaches that amount of time.\n\ ## However, that can be superseded by Required Account Age, which is a time in days that you need to have had an account on the server for.\n\ - ## Also there is a required character age in years. It prevents player from joining as this job, if their character's age as is lower than required. Setting it to 0 means it is turned off for this job.\n\n\ + ## Also there is a required character age in years. It prevents player from joining as this job, if their character's age as is lower than required. Setting it to 0 means it is turned off for this job.\n\ + ## Lastly there's Human Authority Whitelist Setting. You can set it to either \"HUMANS_ONLY\" or \"NON_HUMANS_ALLOWED\". Check the \"Human Authority\" setting on the game_options file to know which you should choose. Note that this entry only appears on jobs that are marked as heads of staff.\n\n\ ## As time goes on, more config options may be added to this file.\n\ ## You can use the admin verb 'Generate Job Configuration' in-game to auto-regenerate this config as a downloadable file without having to manually edit this file if we add more jobs or more things you can edit here.\n\ ## It will always respect prior-existing values in the config, but will appropriately add more fields when they generate.\n## It's strongly advised you create your own version of this file rather than use the one provisioned on the codebase.\n\n\ @@ -88,7 +89,7 @@ SUBSYSTEM_DEF(job) setup_job_lists() job_config_datum_singletons = generate_config_singletons() // we set this up here regardless in case someone wants to use the verb to generate the config file. if(!length(all_occupations)) - SetupOccupations() + setup_occupations() if(CONFIG_GET(flag/load_jobs_from_txt)) load_jobs_from_config() set_overflow_role(CONFIG_GET(string/overflow_job)) // this must always go after load_jobs_from_config() due to how the legacy systems operate, this always takes precedent. @@ -108,9 +109,9 @@ SUBSYSTEM_DEF(job) return overflow_jobs /datum/controller/subsystem/job/proc/set_overflow_role(new_overflow_role) - var/datum/job/new_overflow = ispath(new_overflow_role) ? GetJobType(new_overflow_role) : GetJob(new_overflow_role) + var/datum/job/new_overflow = ispath(new_overflow_role) ? get_job_type(new_overflow_role) : get_job(new_overflow_role) if(!new_overflow) - JobDebug("Failed to set new overflow role: [new_overflow_role]") + job_debug("SET_OVRFLW: Failed to set new overflow role: [new_overflow_role]") CRASH("set_overflow_role failed | new_overflow_role: [isnull(new_overflow_role) ? "null" : new_overflow_role]") var/cap = CONFIG_GET(number/overflow_cap) @@ -121,17 +122,16 @@ SUBSYSTEM_DEF(job) if(new_overflow.type == overflow_role) return - var/datum/job/old_overflow = GetJobType(overflow_role) + var/datum/job/old_overflow = get_job_type(overflow_role) old_overflow.allow_bureaucratic_error = initial(old_overflow.allow_bureaucratic_error) old_overflow.spawn_positions = initial(old_overflow.spawn_positions) old_overflow.total_positions = initial(old_overflow.total_positions) if(!(initial(old_overflow.job_flags) & JOB_CANNOT_OPEN_SLOTS)) old_overflow.job_flags &= ~JOB_CANNOT_OPEN_SLOTS overflow_role = new_overflow.type - JobDebug("Overflow role set to : [new_overflow.type]") + job_debug("SET_OVRFLW: Overflow role set to: [new_overflow.type]") - -/datum/controller/subsystem/job/proc/SetupOccupations() +/datum/controller/subsystem/job/proc/setup_occupations() name_occupations = list() type_occupations = list() @@ -205,20 +205,20 @@ SUBSYSTEM_DEF(job) return TRUE -/datum/controller/subsystem/job/proc/GetJob(rank) +/datum/controller/subsystem/job/proc/get_job(rank) if(!length(all_occupations)) - SetupOccupations() + setup_occupations() return name_occupations[rank] -/datum/controller/subsystem/job/proc/GetJobType(jobtype) +/datum/controller/subsystem/job/proc/get_job_type(jobtype) RETURN_TYPE(/datum/job) if(!length(all_occupations)) - SetupOccupations() + setup_occupations() return type_occupations[jobtype] /datum/controller/subsystem/job/proc/get_department_type(department_type) if(!length(all_occupations)) - SetupOccupations() + setup_occupations() return joinable_departments_by_type[department_type] /** @@ -230,89 +230,92 @@ SUBSYSTEM_DEF(job) * * latejoin - Set to TRUE if this is a latejoin role assignment. * * do_eligibility_checks - Set to TRUE to conduct all job eligibility tests and reject on failure. Set to FALSE if job eligibility has been tested elsewhere and they can be safely skipped. */ -/datum/controller/subsystem/job/proc/AssignRole(mob/dead/new_player/player, datum/job/job, latejoin = FALSE, do_eligibility_checks = TRUE) - JobDebug("Running AR, Player: [player], Job: [isnull(job) ? "null" : job], LateJoin: [latejoin]") +/datum/controller/subsystem/job/proc/assign_role(mob/dead/new_player/player, datum/job/job, latejoin = FALSE, do_eligibility_checks = TRUE) + job_debug("AR: Running, Player: [player], Job: [isnull(job) ? "null" : job], LateJoin: [latejoin]") if(!player?.mind || !job) - JobDebug("AR has failed, player has no mind or job is null, Player: [player], Rank: [isnull(job) ? "null" : job.type]") + job_debug("AR: Failed, player has no mind or job is null. Player: [player], Rank: [isnull(job) ? "null" : job.type]") return FALSE if(do_eligibility_checks && (check_job_eligibility(player, job, "AR", add_job_to_log = TRUE) != JOB_AVAILABLE)) return FALSE - JobDebug("Player: [player] is now Rank: [job.title], JCP:[job.current_positions], JPL:[latejoin ? job.total_positions : job.spawn_positions]") + job_debug("AR: Role now set and assigned - [player] is [job.title], JCP:[job.current_positions], JPL:[latejoin ? job.total_positions : job.spawn_positions]") player.mind.set_assigned_role(job) unassigned -= player job.current_positions++ return TRUE -/datum/controller/subsystem/job/proc/FindOccupationCandidates(datum/job/job, level) - JobDebug("Running FOC, Job: [job], Level: [job_priority_level_to_string(level)]") +/datum/controller/subsystem/job/proc/find_occupation_candidates(datum/job/job, level = 0) + job_debug("FOC: Now running, Job: [job], Level: [job_priority_level_to_string(level)]") var/list/candidates = list() for(var/mob/dead/new_player/player in unassigned) if(!player) - JobDebug("FOC player no longer exists.") + job_debug("FOC: Player no longer exists.") continue + if(!player.client) - JobDebug("FOC player client no longer exists, Player: [player]") + job_debug("FOC: Player client no longer exists, Player: [player]") continue + // Initial screening check. Does the player even have the job enabled, if they do - Is it at the correct priority level? var/player_job_level = player.client?.prefs.job_preferences[job.title] if(isnull(player_job_level)) - JobDebug("FOC player job not enabled, Player: [player]") + job_debug("FOC: Player job not enabled, Player: [player]") continue - else if(player_job_level != level) - JobDebug("FOC player job enabled at wrong level, Player: [player], TheirLevel: [job_priority_level_to_string(player_job_level)], ReqLevel: [job_priority_level_to_string(level)]") + + if(level && (player_job_level != level)) + job_debug("FOC: Player job enabled at wrong level, Player: [player], TheirLevel: [job_priority_level_to_string(player_job_level)], ReqLevel: [job_priority_level_to_string(level)]") continue - // This check handles its own output to JobDebug. + // This check handles its own output to job_debug. if(check_job_eligibility(player, job, "FOC", add_job_to_log = FALSE) != JOB_AVAILABLE) continue // They have the job enabled, at this priority level, with no restrictions applying to them. - JobDebug("FOC pass, Player: [player], Level: [job_priority_level_to_string(level)]") + job_debug("FOC: Player eligible, Player: [player], Level: [job_priority_level_to_string(level)]") candidates += player return candidates -/datum/controller/subsystem/job/proc/GiveRandomJob(mob/dead/new_player/player) - JobDebug("GRJ Giving random job, Player: [player]") +/datum/controller/subsystem/job/proc/give_random_job(mob/dead/new_player/player) + job_debug("GRJ: Giving random job, Player: [player]") . = FALSE for(var/datum/job/job as anything in shuffle(joinable_occupations)) if(QDELETED(player)) - JobDebug("GRJ player is deleted, aborting") + job_debug("GRJ: Player is deleted, aborting") break if((job.current_positions >= job.spawn_positions) && job.spawn_positions != -1) - JobDebug("GRJ job lacks spawn positions to be eligible, Player: [player], Job: [job]") + job_debug("GRJ: Job lacks spawn positions to be eligible, Player: [player], Job: [job]") continue - if(istype(job, GetJobType(overflow_role))) // We don't want to give him assistant, that's boring! - JobDebug("GRJ skipping overflow role, Player: [player], Job: [job]") + if(istype(job, get_job_type(overflow_role))) // We don't want to give him assistant, that's boring! + job_debug("GRJ: Skipping overflow role, Player: [player], Job: [job]") continue if(job.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND) //If you want a command position, select it! - JobDebug("GRJ skipping command role, Player: [player], Job: [job]") + job_debug("GRJ: Skipping command role, Player: [player], Job: [job]") continue - // This check handles its own output to JobDebug. + // This check handles its own output to job_debug. if(check_job_eligibility(player, job, "GRJ", add_job_to_log = TRUE) != JOB_AVAILABLE) continue - if(AssignRole(player, job, do_eligibility_checks = FALSE)) - JobDebug("GRJ Random job given, Player: [player], Job: [job]") + if(assign_role(player, job, do_eligibility_checks = FALSE)) + job_debug("GRJ: Random job given, Player: [player], Job: [job]") return TRUE - JobDebug("GRJ Player eligible but AssignRole failed, Player: [player], Job: [job]") + job_debug("GRJ: Player eligible but assign_role failed, Player: [player], Job: [job]") -/datum/controller/subsystem/job/proc/ResetOccupations() - JobDebug("Occupations reset.") +/datum/controller/subsystem/job/proc/reset_occupations() + job_debug("RO: Occupations reset.") for(var/mob/dead/new_player/player as anything in GLOB.new_player_list) if(!player?.mind) continue - player.mind.set_assigned_role(GetJobType(/datum/job/unassigned)) + player.mind.set_assigned_role(get_job_type(/datum/job/unassigned)) player.mind.special_role = null - SetupOccupations() + setup_occupations() unassigned = list() if(CONFIG_GET(flag/load_jobs_from_txt)) // Any errors with the configs has already been said, we don't need to repeat them here. @@ -321,12 +324,11 @@ SUBSYSTEM_DEF(job) return -/** - * Will try to select a head, ignoring ALL non-head preferences for every level until. - * - * Basically tries to ensure there is at least one head in every shift if anyone has that job preference enabled at all. +/* + * Forces a random Head of Staff role to be assigned to a random eligible player. + * Returns TRUE if a player was selected and assigned the role. FALSE otherwise. */ -/datum/controller/subsystem/job/proc/FillHeadPosition() +/datum/controller/subsystem/job/proc/force_one_head_assignment() var/datum/job_department/command_department = get_department_type(/datum/job_department/command) if(!command_department) return FALSE @@ -334,61 +336,75 @@ SUBSYSTEM_DEF(job) for(var/datum/job/job as anything in command_department.department_jobs) if((job.current_positions >= job.total_positions) && job.total_positions != -1) continue - var/list/candidates = FindOccupationCandidates(job, level) + var/list/candidates = find_occupation_candidates(job, level) if(!candidates.len) continue var/mob/dead/new_player/candidate = pick(candidates) - // Eligibility checks done as part of FindOccupationCandidates. - if(AssignRole(candidate, job, do_eligibility_checks = FALSE)) + // Eligibility checks done as part of find_occupation_candidates. + if(assign_role(candidate, job, do_eligibility_checks = FALSE)) return TRUE return FALSE /** * Attempts to fill out all possible head positions for players with that job at a a given job priority level. + * Returns the number of Head positions assigned. * * Arguments: - * * level - One of the JP_LOW, JP_MEDIUM or JP_HIGH defines. Attempts to find candidates with head jobs at this priority only. + * * level - One of the JP_LOW, JP_MEDIUM, JP_HIGH or JP_ANY defines. Attempts to find candidates with head jobs at that priority only. */ -/datum/controller/subsystem/job/proc/CheckHeadPositions(level) +/datum/controller/subsystem/job/proc/fill_all_head_positions_at_priority(level) + . = 0 var/datum/job_department/command_department = get_department_type(/datum/job_department/command) + if(!command_department) - return + return . + for(var/datum/job/job as anything in command_department.department_jobs) if((job.current_positions >= job.total_positions) && job.total_positions != -1) continue - var/list/candidates = FindOccupationCandidates(job, level) + + var/list/candidates = find_occupation_candidates(job, level) if(!candidates.len) continue + var/mob/dead/new_player/candidate = pick(candidates) - // Eligibility checks done as part of FindOccupationCandidates - AssignRole(candidate, job, do_eligibility_checks = FALSE) + + // Eligibility checks done as part of find_occupation_candidates() above. + if(!assign_role(candidate, job, do_eligibility_checks = FALSE)) + continue + + .++ + + if((job.current_positions >= job.spawn_positions) && job.spawn_positions != -1) + job_debug("JOBS: Command Job is now full, Job: [job], Positions: [job.current_positions], Limit: [job.spawn_positions]") /// Attempts to fill out all available AI positions. /datum/controller/subsystem/job/proc/fill_ai_positions() - var/datum/job/ai_job = GetJob(JOB_AI) + var/datum/job/ai_job = get_job(JOB_AI) if(!ai_job) return // In byond for(in to) loops, the iteration is inclusive so we need to stop at ai_job.total_positions - 1 for(var/i in ai_job.current_positions to ai_job.total_positions - 1) for(var/level in level_order) var/list/candidates = list() - candidates = FindOccupationCandidates(ai_job, level) + candidates = find_occupation_candidates(ai_job, level) if(candidates.len) var/mob/dead/new_player/candidate = pick(candidates) - // Eligibility checks done as part of FindOccupationCandidates - if(AssignRole(candidate, GetJobType(/datum/job/ai), do_eligibility_checks = FALSE)) + // Eligibility checks done as part of find_occupation_candidates + if(assign_role(candidate, get_job_type(/datum/job/ai), do_eligibility_checks = FALSE)) break -/** Proc DivideOccupations +/** Proc divide_occupations * fills var "assigned_role" for all ready players. * This proc must not have any side effect besides of modifying "assigned_role". **/ -/datum/controller/subsystem/job/proc/DivideOccupations(pure = FALSE, allow_all = FALSE) +/datum/controller/subsystem/job/proc/divide_occupations(pure = FALSE, allow_all = FALSE) //Setup new player list and get the jobs list - JobDebug("Running DO, allow_all = [allow_all], pure = [pure]") + job_debug("DO: Running, allow_all = [allow_all], pure = [pure]") run_divide_occupation_pure = pure + SEND_SIGNAL(src, COMSIG_OCCUPATIONS_DIVIDED, pure, allow_all) //Get the players who are ready for(var/i in GLOB.new_player_list) @@ -396,162 +412,175 @@ SUBSYSTEM_DEF(job) if(player.ready == PLAYER_READY_TO_PLAY && player.check_preferences() && player.mind && is_unassigned_job(player.mind.assigned_role)) unassigned += player - initial_players_to_assign = unassigned.len + initial_players_to_assign = length(unassigned) - JobDebug("DO, Len: [unassigned.len]") + job_debug("DO: Player count to assign roles to: [initial_players_to_assign]") //Scale number of open security officer slots to population setup_officer_positions() //Jobs will have fewer access permissions if the number of players exceeds the threshold defined in game_options.txt - var/mat = CONFIG_GET(number/minimal_access_threshold) - if(mat) - if(mat > unassigned.len) + var/min_access_threshold = CONFIG_GET(number/minimal_access_threshold) + if(min_access_threshold) + if(min_access_threshold > initial_players_to_assign) CONFIG_SET(flag/jobs_have_minimal_access, FALSE) else CONFIG_SET(flag/jobs_have_minimal_access, TRUE) - //Shuffle players and jobs - unassigned = shuffle(unassigned) + //Shuffle player list. + shuffle_inplace(unassigned) - HandleFeedbackGathering() + handle_feedback_gathering() - // Dynamic has picked a ruleset that requires enforcing some jobs before others. - JobDebug("DO, Assigning Priority Positions: [length(dynamic_forced_occupations)]") + // Assign any priority positions before all other standard job selections. + job_debug("DO: Assigning priority positions") assign_priority_positions() + job_debug("DO: Priority assignment complete") + + // The overflow role has limitless slots, plus having the Overflow box ticked in prefs should (with one exception) set the priority to JP_HIGH. + // So everyone with overflow enabled will get that job. Thus we can assign it immediately to all players that have it enabled. + job_debug("DO: Assigning early overflow roles") + assign_all_overflow_positions() + job_debug("DO: Early overflow roles assigned.") + + // At this point we can assume the following: + // From assign_priority_positions() + // 1. If possible, any necessary job roles to allow Dynamic rulesets to execute (such as an AI for malf AI) are satisfied. + // 2. All Head of Staff roles with any player pref set to JP_HIGH are filled out. + // 3. If any player not selected by the above has any Head of Staff preference enabled at any JP_ level, there is at least one Head of Staff. + // + // From assign_all_overflow_positions() + // 4. Anyone with the overflow role enabled has been given the overflow role. + + // Copy the joinable occupation list and filter out ineligible occupations due to above job assignments. + var/list/available_occupations = joinable_occupations.Copy() + var/datum/job_department/command_department = get_department_type(/datum/job_department/command) - //People who wants to be the overflow role, sure, go on. - JobDebug("DO, Running Overflow Check 1") - var/datum/job/overflow_datum = GetJobType(overflow_role) - var/list/overflow_candidates = FindOccupationCandidates(overflow_datum, JP_LOW) - JobDebug("AC1, Candidates: [overflow_candidates.len]") - for(var/mob/dead/new_player/player in overflow_candidates) - JobDebug("AC1 pass, Player: [player]") - // Eligibility checks done as part of FindOccupationCandidates - AssignRole(player, GetJobType(overflow_role), do_eligibility_checks = FALSE) - overflow_candidates -= player - JobDebug("DO, AC1 end") - - //Select one head - JobDebug("DO, Running Head Check") - FillHeadPosition() - JobDebug("DO, Head Check end") - - // Fill out any remaining AI positions. - JobDebug("DO, Running AI Check") - fill_ai_positions() - JobDebug("DO, AI Check end") + for(var/datum/job/job in available_occupations) + // Make sure the job isn't filled. If it is, remove it from the list so it doesn't get checked. + if((job.current_positions >= job.spawn_positions) && job.spawn_positions != -1) + job_debug("DO: Job is now filled, Job: [job], Current: [job.current_positions], Limit: [job.spawn_positions]") + available_occupations -= job + continue + + // Command jobs are handled via fill_all_head_positions_at_priority(...) + // Remove these jobs from the list of available occupations to prevent multiple players being assigned to the same + // limited role without constantly having to iterate over the available_occupations list and re-check them. + if(job in command_department?.department_jobs) + available_occupations -= job - //Other jobs are now checked - JobDebug("DO, Running standard job assignment") - // New job giving system by Donkie - // This will cause lots of more loops, but since it's only done once it shouldn't really matter much at all. - // Hopefully this will add more randomness and fairness to job giving. + job_debug("DO: Running standard job assignment") - // Loop through all levels from high to low - var/list/shuffledoccupations = shuffle(joinable_occupations) for(var/level in level_order) - //Check the head jobs first each level - CheckHeadPositions(level) + job_debug("JOBS: Filling in head roles, Level: [job_priority_level_to_string(level)]") + // Fill the head jobs first each level + fill_all_head_positions_at_priority(level) // Loop through all unassigned players for(var/mob/dead/new_player/player in unassigned) if(!allow_all) - if(PopcapReached()) - RejectPlayer(player) - - // Loop through all jobs - for(var/datum/job/job in shuffledoccupations) // SHUFFLE ME BABY - if(!job) - JobDebug("FOC invalid/null job in occupations, Player: [player], Job: [job]") - shuffledoccupations -= job - continue + if(popcap_reached()) + job_debug("JOBS: Popcap reached, trying to reject player: [player]") + try_reject_player(player) - // Make sure the job isn't filled. If it is, remove it from the list so it doesn't get checked again. - if((job.current_positions >= job.spawn_positions) && job.spawn_positions != -1) - JobDebug("FOC job filled and not overflow, Player: [player], Job: [job], Current: [job.current_positions], Limit: [job.spawn_positions]") - shuffledoccupations -= job - continue + job_debug("JOBS: Finding a job for player: [player], at job priority pref: [job_priority_level_to_string(level)]") + // Loop through all jobs and build a list of jobs this player could be eligible for. + var/list/possible_jobs = list() + for(var/datum/job/job in available_occupations) // Filter any job that doesn't fit the current level. var/player_job_level = player.client?.prefs.job_preferences[job.title] if(isnull(player_job_level)) - JobDebug("FOC player job not enabled, Player: [player]") + job_debug("JOBS: Job not enabled, Job: [job]") continue - else if(player_job_level != level) - JobDebug("FOC player job enabled but at different level, Player: [player], TheirLevel: [job_priority_level_to_string(player_job_level)], ReqLevel: [job_priority_level_to_string(level)]") + if(player_job_level != level) + job_debug("JOBS: Job enabled at different priority pref, Job: [job], TheirLevel: [job_priority_level_to_string(player_job_level)], ReqLevel: [job_priority_level_to_string(level)]") continue - if(check_job_eligibility(player, job, "DO", add_job_to_log = TRUE) != JOB_AVAILABLE) + if(check_job_eligibility(player, job, "JOBS", add_job_to_log = TRUE) != JOB_AVAILABLE) continue - JobDebug("DO pass, Player: [player], Level:[level], Job:[job.title]") - AssignRole(player, job, do_eligibility_checks = FALSE) - unassigned -= player - break + possible_jobs += job + + // If there are no possible jobs for them at this priority, skip them. + if(!length(possible_jobs)) + job_debug("JOBS: Player not eligible for any available jobs at this priority level: [player]") + continue + + // Otherwise, pick one of those jobs at random. + var/datum/job/picked_job = pick(possible_jobs) + + job_debug("JOBS: Now assigning role to player: [player], Job:[picked_job.title]") + assign_role(player, picked_job, do_eligibility_checks = FALSE) + if((picked_job.current_positions >= picked_job.spawn_positions) && picked_job.spawn_positions != -1) + job_debug("JOBS: Job is now full, Job: [picked_job], Positions: [picked_job.current_positions], Limit: [picked_job.spawn_positions]") + available_occupations -= picked_job - JobDebug("DO, Ending standard job assignment") + job_debug("DO: Ending standard job assignment") - JobDebug("DO, Handle unassigned.") - // Hand out random jobs to the people who didn't get any in the last check - // Also makes sure that they got their preference correct + job_debug("DO: Handle unassigned") + // For any players that didn't get a job, fall back on their pref setting for what to do. for(var/mob/dead/new_player/player in unassigned) - HandleUnassigned(player, allow_all) - JobDebug("DO, Ending handle unassigned.") + handle_unassigned(player, allow_all) + job_debug("DO: Ending handle unassigned") - JobDebug("DO, Handle unrejectable unassigned") + job_debug("DO: Handle unrejectable unassigned") //Mop up people who can't leave. for(var/mob/dead/new_player/player in unassigned) //Players that wanted to back out but couldn't because they're antags (can you feel the edge case?) - if(!GiveRandomJob(player)) - if(!AssignRole(player, GetJobType(overflow_role))) //If everything is already filled, make them an assistant - JobDebug("DO, Forced antagonist could not be assigned any random job or the overflow role. DivideOccupations failed.") - JobDebug("---------------------------------------------------") + if(!give_random_job(player)) + if(!assign_role(player, get_job_type(overflow_role))) //If everything is already filled, make them an assistant + job_debug("DO: Forced antagonist could not be assigned any random job or the overflow role. divide_occupations failed.") + job_debug("---------------------------------------------------") run_divide_occupation_pure = FALSE return FALSE //Living on the edge, the forced antagonist couldn't be assigned to overflow role (bans, client age) - just reroll - JobDebug("DO, Ending handle unrejectable unassigned") + job_debug("DO: Ending handle unrejectable unassigned") - JobDebug("All divide occupations tasks completed.") - JobDebug("---------------------------------------------------") + job_debug("All divide occupations tasks completed.") + job_debug("---------------------------------------------------") run_divide_occupation_pure = FALSE return TRUE //We couldn't find a job from prefs for this guy. -/datum/controller/subsystem/job/proc/HandleUnassigned(mob/dead/new_player/player, allow_all = FALSE) +/datum/controller/subsystem/job/proc/handle_unassigned(mob/dead/new_player/player, allow_all = FALSE) var/jobless_role = player.client.prefs.read_preference(/datum/preference/choiced/jobless_role) if(!allow_all) - if(PopcapReached()) - RejectPlayer(player) + if(popcap_reached()) + job_debug("HU: Popcap reached, trying to reject player: [player]") + try_reject_player(player) return switch (jobless_role) if (BEOVERFLOW) - var/datum/job/overflow_role_datum = GetJobType(overflow_role) + var/datum/job/overflow_role_datum = get_job_type(overflow_role) if(check_job_eligibility(player, overflow_role_datum, debug_prefix = "HU", add_job_to_log = TRUE) != JOB_AVAILABLE) - RejectPlayer(player) + job_debug("HU: Player cannot be overflow, trying to reject: [player]") + try_reject_player(player) return - if(!AssignRole(player, overflow_role_datum, do_eligibility_checks = FALSE)) - RejectPlayer(player) + if(!assign_role(player, overflow_role_datum, do_eligibility_checks = FALSE)) + job_debug("HU: Player could not be assigned overflow role, trying to reject: [player]") + try_reject_player(player) return if (BERANDOMJOB) - if(!GiveRandomJob(player)) - RejectPlayer(player) + if(!give_random_job(player)) + job_debug("HU: Player cannot be given a random job, trying to reject: [player]") + try_reject_player(player) return if (RETURNTOLOBBY) - RejectPlayer(player) + job_debug("HU: Player unable to be assigned job, return to lobby enabled: [player]") + try_reject_player(player) return else //Something gone wrong if we got here. - var/message = "HU: [player] fell through handling unassigned" - JobDebug(message) - log_game(message) - message_admins(message) - RejectPlayer(player) + job_debug("HU: [player] has an invalid jobless_role var: [jobless_role]") + log_game("[player] has an invalid jobless_role var: [jobless_role]") + message_admins("[player] has an invalid jobless_role, this shouldn't happen.") + try_reject_player(player) //Gives the player the stuff he should have with his rank -/datum/controller/subsystem/job/proc/EquipRank(mob/living/equipping, datum/job/job, client/player_client) +/datum/controller/subsystem/job/proc/equip_rank(mob/living/equipping, datum/job/job, client/player_client) equipping.job = job.title SEND_SIGNAL(equipping, COMSIG_JOB_RECEIVED, job) @@ -571,7 +600,7 @@ SUBSYSTEM_DEF(job) /datum/controller/subsystem/job/proc/handle_auto_deadmin_roles(client/C, rank) if(!C?.holder) return TRUE - var/datum/job/job = GetJob(rank) + var/datum/job/job = get_job(rank) var/timegate_expired = FALSE // allow only forcing deadminning in the first X seconds of the round if auto_deadmin_timegate is set in config @@ -589,7 +618,7 @@ SUBSYSTEM_DEF(job) return C.holder.auto_deadmin() /datum/controller/subsystem/job/proc/setup_officer_positions() - var/datum/job/J = SSjob.GetJob(JOB_SECURITY_OFFICER) + var/datum/job/J = SSjob.get_job(JOB_SECURITY_OFFICER) if(!J) CRASH("setup_officer_positions(): Security officer job is missing") @@ -597,7 +626,7 @@ SUBSYSTEM_DEF(job) if(ssc > 0) if(J.spawn_positions > 0) var/officer_positions = min(12, max(J.spawn_positions, round(unassigned.len / ssc))) //Scale between configured minimum and 12 officers - JobDebug("Setting open security officer positions to [officer_positions]") + job_debug("SOP: Setting open security officer positions to [officer_positions]") J.total_positions = officer_positions J.spawn_positions = officer_positions @@ -613,7 +642,7 @@ SUBSYSTEM_DEF(job) else //We ran out of spare locker spawns! break -/datum/controller/subsystem/job/proc/HandleFeedbackGathering() +/datum/controller/subsystem/job/proc/handle_feedback_gathering() for(var/datum/job/job as anything in joinable_occupations) var/high = 0 //high var/medium = 0 //medium @@ -621,6 +650,7 @@ SUBSYSTEM_DEF(job) var/never = 0 //never var/banned = 0 //banned var/young = 0 //account too young + var/newbie = 0 //exp too low for(var/i in GLOB.new_player_list) var/mob/dead/new_player/player = i if(!(player.ready == PLAYER_READY_TO_PLAY && player.mind && is_unassigned_job(player.mind.assigned_role))) @@ -632,7 +662,7 @@ SUBSYSTEM_DEF(job) young++ continue if(job.required_playtime_remaining(player.client)) - young++ + newbie++ continue switch(player.client.prefs.job_preferences[job.title]) if(JP_HIGH) @@ -649,8 +679,9 @@ SUBSYSTEM_DEF(job) SSblackbox.record_feedback("nested tally", "job_preferences", never, list("[job.title]", "never")) SSblackbox.record_feedback("nested tally", "job_preferences", banned, list("[job.title]", "banned")) SSblackbox.record_feedback("nested tally", "job_preferences", young, list("[job.title]", "young")) + SSblackbox.record_feedback("nested tally", "job_preferences", newbie, list("[job.title]", "newbie")) -/datum/controller/subsystem/job/proc/PopcapReached() +/datum/controller/subsystem/job/proc/popcap_reached() var/hpc = CONFIG_GET(number/hard_popcap) var/epc = CONFIG_GET(number/extreme_popcap) if(hpc || epc) @@ -659,15 +690,15 @@ SUBSYSTEM_DEF(job) return 1 return 0 -/datum/controller/subsystem/job/proc/RejectPlayer(mob/dead/new_player/player) +/datum/controller/subsystem/job/proc/try_reject_player(mob/dead/new_player/player) if(player.mind && player.mind.special_role) - return - if(PopcapReached()) - JobDebug("Popcap overflow Check observer located, Player: [player]") - JobDebug("Player rejected :[player]") + job_debug("RJCT: Player unable to be rejected due to special_role, Player: [player], SpecialRole: [player.mind.special_role]") + return FALSE + + job_debug("RJCT: Player rejected, Player: [player]") unassigned -= player if(!run_divide_occupation_pure) - to_chat(player, "You have failed to qualify for any job you desired.") + to_chat(player, span_infoplain("You have failed to qualify for any job you desired.")) player.ready = PLAYER_NOT_READY @@ -676,10 +707,10 @@ SUBSYSTEM_DEF(job) var/oldjobs = SSjob.all_occupations sleep(2 SECONDS) for (var/datum/job/job as anything in oldjobs) - INVOKE_ASYNC(src, PROC_REF(RecoverJob), job) + INVOKE_ASYNC(src, PROC_REF(recover_job), job) -/datum/controller/subsystem/job/proc/RecoverJob(datum/job/J) - var/datum/job/newjob = GetJob(J.title) +/datum/controller/subsystem/job/proc/recover_job(datum/job/J) + var/datum/job/newjob = get_job(J.title) if (!istype(newjob)) return newjob.total_positions = J.total_positions @@ -696,7 +727,7 @@ SUBSYSTEM_DEF(job) if(buckle && isliving(joining_mob)) buckle_mob(joining_mob, FALSE, FALSE) -/datum/controller/subsystem/job/proc/SendToLateJoin(mob/M, buckle = TRUE) +/datum/controller/subsystem/job/proc/send_to_late_join(mob/M, buckle = TRUE) var/atom/destination if(M.mind && !is_unassigned_job(M.mind.assigned_role) && length(GLOB.jobspawn_overrides[M.mind.assigned_role.title])) //We're doing something special today. destination = pick(GLOB.jobspawn_overrides[M.mind.assigned_role.title]) @@ -731,17 +762,6 @@ SUBSYSTEM_DEF(job) stack_trace("Unable to find last resort spawn point.") return GET_ERROR_ROOM -///Lands specified mob at a random spot in the hallways -/datum/controller/subsystem/job/proc/DropLandAtRandomHallwayPoint(mob/living/living_mob) - var/turf/spawn_turf = get_safe_random_station_turf(typesof(/area/station/hallway)) - - if(!spawn_turf) - SendToLateJoin(living_mob) - else - var/obj/structure/closet/supplypod/centcompod/toLaunch = new() - living_mob.forceMove(toLaunch) - new /obj/effect/pod_landingzone(spawn_turf, toLaunch) - /// Returns a list of minds of all heads of staff who are alive /datum/controller/subsystem/job/proc/get_living_heads() . = list() @@ -776,7 +796,7 @@ SUBSYSTEM_DEF(job) if(sec.assigned_role.departments_bitflags & DEPARTMENT_BITFLAG_SECURITY) . += sec -/datum/controller/subsystem/job/proc/JobDebug(message) +/datum/controller/subsystem/job/proc/job_debug(message) log_job_debug(message) /// Builds various lists of jobs based on station, centcom and additional jobs with icons associated with them. @@ -841,12 +861,47 @@ SUBSYSTEM_DEF(job) safe_code_timer_id = null safe_code_request_loc = null -/// Blindly assigns the required roles to every player in the dynamic_forced_occupations list. +/// Assigns roles that are considered high priority, either due to dynamic needing to force a specific role for a specific ruleset +/// or making sure roles critical to round progression exist where possible every shift. /datum/controller/subsystem/job/proc/assign_priority_positions() + job_debug("APP: Assigning Dynamic ruleset forced occupations: [length(dynamic_forced_occupations)]") for(var/mob/new_player in dynamic_forced_occupations) - // Eligibility checks already carried out as part of the dynamic ruleset trim_candidates proc.area - // However no guarantee of game state between then and now, so don't skip eligibility checks on AssignRole. - AssignRole(new_player, GetJob(dynamic_forced_occupations[new_player])) + // Eligibility checks already carried out as part of the dynamic ruleset trim_candidates proc. + // However no guarantee of game state between then and now, so don't skip eligibility checks on assign_role. + assign_role(new_player, get_job(dynamic_forced_occupations[new_player])) + + // Get JP_HIGH department Heads of Staff in place. Indirectly useful for the Revolution ruleset to have as many Heads as possible. + job_debug("APP: Assigning all JP_HIGH head of staff roles.") + var/head_count = fill_all_head_positions_at_priority(JP_HIGH) + + // If nobody has JP_HIGH on a Head role, try to force at least one Head of Staff so every shift has the best chance + // of having at least one leadership role. + if(head_count == 0) + force_one_head_assignment() + + // Fill out all AI positions. + job_debug("APP: Filling all AI positions") + fill_ai_positions() + +/datum/controller/subsystem/job/proc/assign_all_overflow_positions() + job_debug("OVRFLW: Assigning all overflow roles.") + job_debug("OVRFLW: This shift's overflow role: [overflow_role]") + var/datum/job/overflow_datum = get_job_type(overflow_role) + + // When the Overflow role changes for any reason, this allows players to set otherwise invalid job priority pref states. + // So if Assistant is the "usual" Overflow but it gets changed to Clown for a shift, players can set the Assistant role's priorities + // to JP_MEDIUM and JP_LOW. When the "usual" Overflow role comes back, it returns to an On option in the prefs menu but still + // keeps its old JP_MEDIUM or JP_LOW value in the background. + + // Due to this prefs quirk, we actually don't want to find JP_HIGH candidates as it may exclude people with abnormal pref states that + // appear normal from the UI. By passing in JP_ANY, it will return all players that have the overflow job pref (which should be a toggle) + // set to any level. + var/list/overflow_candidates = find_occupation_candidates(overflow_datum, JP_ANY) + for(var/mob/dead/new_player/player in overflow_candidates) + // Eligibility checks done as part of find_occupation_candidates, so skip them. + assign_role(player, get_job_type(overflow_role), do_eligibility_checks = FALSE) + job_debug("OVRFLW: Assigned overflow to player: [player]") + job_debug("OVRFLW: All overflow roles assigned.") /// Takes a job priority #define such as JP_LOW and gets its string representation for logging. /datum/controller/subsystem/job/proc/job_priority_level_to_string(priority) @@ -864,40 +919,40 @@ SUBSYSTEM_DEF(job) * Arguments: * * player - The player to check for job eligibility. * * possible_job - The job to check for eligibility against. - * * debug_prefix - Logging prefix for the JobDebug log entries. For example, GRJ during GiveRandomJob or DO during DivideOccupations. + * * debug_prefix - Logging prefix for the job_debug log entries. For example, GRJ during give_random_job or DO during divide_occupations. * * add_job_to_log - If TRUE, appends the job type to the log entry. If FALSE, does not. Set to FALSE when check is part of iterating over players for a specific job, set to TRUE when check is part of iterating over jobs for a specific player and you don't want extra log entry spam. */ /datum/controller/subsystem/job/proc/check_job_eligibility(mob/dead/new_player/player, datum/job/possible_job, debug_prefix = "", add_job_to_log = FALSE) if(!player.mind) - JobDebug("[debug_prefix] player has no mind, Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") + job_debug("[debug_prefix]: Player has no mind, Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") return JOB_UNAVAILABLE_GENERIC if(possible_job.title in player.mind.restricted_roles) - JobDebug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_ANTAG_INCOMPAT, possible_job.title)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") + job_debug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_ANTAG_INCOMPAT, possible_job.title)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") return JOB_UNAVAILABLE_ANTAG_INCOMPAT if(!possible_job.player_old_enough(player.client)) - JobDebug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_ACCOUNTAGE, possible_job.title)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") + job_debug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_ACCOUNTAGE, possible_job.title)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") return JOB_UNAVAILABLE_ACCOUNTAGE var/required_playtime_remaining = possible_job.required_playtime_remaining(player.client) if(required_playtime_remaining) - JobDebug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_PLAYTIME, possible_job.title)], Player: [player], MissingTime: [required_playtime_remaining][add_job_to_log ? ", Job: [possible_job]" : ""]") + job_debug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_PLAYTIME, possible_job.title)], Player: [player], MissingTime: [required_playtime_remaining][add_job_to_log ? ", Job: [possible_job]" : ""]") return JOB_UNAVAILABLE_PLAYTIME // Run the banned check last since it should be the rarest check to fail and can access the database. if(is_banned_from(player.ckey, possible_job.title)) - JobDebug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_BANNED, possible_job.title)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") + job_debug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_BANNED, possible_job.title)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") return JOB_UNAVAILABLE_BANNED // Check for character age if(possible_job.required_character_age > player.client.prefs.read_preference(/datum/preference/numeric/age) && possible_job.required_character_age != null) - JobDebug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_AGE)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") + job_debug("[debug_prefix] Error: [get_job_unavailable_error_message(JOB_UNAVAILABLE_AGE)], Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") return JOB_UNAVAILABLE_AGE // Need to recheck the player exists after is_banned_from since it can query the DB which may sleep. if(QDELETED(player)) - JobDebug("[debug_prefix] player is qdeleted, Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") + job_debug("[debug_prefix]: Player is qdeleted, Player: [player][add_job_to_log ? ", Job: [possible_job]" : ""]") return JOB_UNAVAILABLE_GENERIC return JOB_AVAILABLE diff --git a/code/controllers/subsystem/library.dm b/code/controllers/subsystem/library.dm index a657e442748a4..bfe77f70f02dd 100644 --- a/code/controllers/subsystem/library.dm +++ b/code/controllers/subsystem/library.dm @@ -26,14 +26,14 @@ SUBSYSTEM_DEF(library) /datum/controller/subsystem/library/proc/load_shelves() var/list/datum/callback/load_callbacks = list() - + for(var/obj/structure/bookcase/case_to_load as anything in shelves_to_load) if(!case_to_load) stack_trace("A null bookcase somehow ended up in SSlibrary's shelves_to_load list. Did something harddel?") continue load_callbacks += CALLBACK(case_to_load, TYPE_PROC_REF(/obj/structure/bookcase, load_shelf)) shelves_to_load = null - + //Load all of the shelves asyncronously at the same time, blocking until the last one is finished. callback_select(load_callbacks, savereturns = FALSE) @@ -59,6 +59,6 @@ SUBSYSTEM_DEF(library) /datum/controller/subsystem/library/proc/prepare_library_areas() library_areas = typesof(/area/station/service/library) - /area/station/service/library/abandoned - var/list/additional_areas = SSmapping.config.library_areas + var/list/additional_areas = SSmapping.current_map.library_areas if(additional_areas) library_areas += additional_areas diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 59ff294e959a2..24d871d2f09c4 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -26,6 +26,19 @@ SUBSYSTEM_DEF(lighting) return SS_INIT_SUCCESS + +/datum/controller/subsystem/lighting/proc/create_all_lighting_objects() + for(var/area/area as anything in GLOB.areas) + if(!area.static_lighting) + continue + for (var/list/zlevel_turfs as anything in area.get_zlevel_turf_lists()) + for(var/turf/area_turf as anything in zlevel_turfs) + if(area_turf.space_lit) + continue + new /datum/lighting_object(area_turf) + CHECK_TICK + CHECK_TICK + /datum/controller/subsystem/lighting/fire(resumed, init_tick_checks) MC_SPLIT_TICK_INIT(3) if(!init_tick_checks) diff --git a/code/controllers/subsystem/lua.dm b/code/controllers/subsystem/lua.dm index 1ab88a01746b7..99df8cf335490 100644 --- a/code/controllers/subsystem/lua.dm +++ b/code/controllers/subsystem/lua.dm @@ -2,7 +2,6 @@ SUBSYSTEM_DEF(lua) name = "Lua Scripting" runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT wait = 0.1 SECONDS - flags = SS_OK_TO_FAIL_INIT /// A list of all lua states var/list/datum/lua_state/states = list() @@ -18,31 +17,19 @@ SUBSYSTEM_DEF(lua) var/list/current_run = list() var/list/current_states_run = list() - /// Protects return values from getting GCed before getting converted to lua values - /// Gets cleared every tick. - var/list/gc_guard = list() + var/list/needs_gc_cycle = list() /datum/controller/subsystem/lua/Initialize() - if(!CONFIG_GET(flag/auxtools_enabled)) - warning("SSlua requires auxtools to be enabled to run.") - return SS_INIT_NO_NEED - - try - // Initialize the auxtools library - AUXTOOLS_CHECK(AUXLUA) - - // Set the wrappers for setting vars and calling procs - __lua_set_set_var_wrapper("/proc/wrap_lua_set_var") - __lua_set_datum_proc_call_wrapper("/proc/wrap_lua_datum_proc_call") - __lua_set_global_proc_call_wrapper("/proc/wrap_lua_global_proc_call") - __lua_set_print_wrapper("/proc/wrap_lua_print") - return SS_INIT_SUCCESS - catch(var/exception/e) - // Something went wrong, best not allow the subsystem to run - var/crash_message = "Error initializing SSlua: [e.name]" - initialization_failure_message = crash_message - warning(crash_message) - return SS_INIT_FAILURE + DREAMLUAU_SET_EXECUTION_LIMIT_SECS(5) + // Set wrappers to ensure that lua scripts are subject to the same safety restrictions as other admin tooling + DREAMLUAU_SET_NEW_WRAPPER("/proc/_new") + DREAMLUAU_SET_VAR_GET_WRAPPER("/proc/wrap_lua_get_var") + DREAMLUAU_SET_VAR_SET_WRAPPER("/proc/wrap_lua_set_var") + DREAMLUAU_SET_OBJECT_CALL_WRAPPER("/proc/wrap_lua_datum_proc_call") + DREAMLUAU_SET_GLOBAL_CALL_WRAPPER("/proc/wrap_lua_global_proc_call") + // Set the print wrapper, as otherwise, the print function is meaningless + DREAMLUAU_SET_PRINT_WRAPPER("/proc/wrap_lua_print") + return SS_INIT_SUCCESS /datum/controller/subsystem/lua/OnConfigLoad() // Read the paths from the config file @@ -52,9 +39,6 @@ SUBSYSTEM_DEF(lua) lua_path += path world.SetConfig("env", "LUAU_PATH", jointext(lua_path, ";")) -/datum/controller/subsystem/lua/Shutdown() - AUXTOOLS_FULL_SHUTDOWN(AUXLUA) - /datum/controller/subsystem/lua/proc/queue_resume(datum/lua_state/state, index, arguments) if(!initialized) return @@ -64,36 +48,33 @@ SUBSYSTEM_DEF(lua) arguments = list() else if(!islist(arguments)) arguments = list(arguments) + else + var/list/args_list = arguments + arguments = args_list.Copy() resumes += list(list("state" = state, "index" = index, "arguments" = arguments)) -/datum/controller/subsystem/lua/proc/kill_task(datum/lua_state/state, list/task_info) +/datum/controller/subsystem/lua/proc/kill_task(datum/lua_state/state, is_sleep, index) if(!istype(state)) return - if(!islist(task_info)) - return - if(!(istext(task_info["name"]) && istext(task_info["status"]) && isnum(task_info["index"]))) - return - switch(task_info["status"]) - if("sleep") - var/task_index = task_info["index"] - var/state_index = 1 - - // Get the nth sleep in the sleep list corresponding to the target state - for(var/i in 1 to length(sleeps)) - var/datum/lua_state/sleeping_state = sleeps[i] - if(sleeping_state == state) - if(state_index == task_index) - sleeps.Cut(i, i+1) - break - state_index++ - if("yield") - // Remove the resumt from the resumt list - for(var/i in 1 to length(resumes)) - var/resume = resumes[i] - if(resume["state"] == state && resume["index"] == task_info["index"]) - resumes.Cut(i, i+1) + if(is_sleep) + var/state_index = 1 + + // Get the nth sleep in the sleep list corresponding to the target state + for(var/i in 1 to length(sleeps)) + var/datum/lua_state/sleeping_state = sleeps[i] + if(sleeping_state == state) + if(state_index == index) + sleeps.Cut(i, i+1) break - state.kill_task(task_info) + state_index++ + else + // Remove the resumt from the resumt list + for(var/i in 1 to length(resumes)) + var/resume = resumes[i] + if(resume["state"] == state && resume["index"] == index) + resumes.Cut(i, i+1) + break + state.kill_task(is_sleep, index) /datum/controller/subsystem/lua/fire(resumed) // Each fire of SSlua awakens every sleeping task in the order they slept, @@ -104,7 +85,6 @@ SUBSYSTEM_DEF(lua) sleeps.Cut() resumes.Cut() - gc_guard.Cut() var/list/current_sleeps = current_run["sleeps"] var/list/affected_states = list() while(length(current_sleeps)) @@ -147,6 +127,32 @@ SUBSYSTEM_DEF(lua) if(MC_TICK_CHECK) break + while(length(needs_gc_cycle)) + var/datum/lua_state/state = needs_gc_cycle[needs_gc_cycle.len] + needs_gc_cycle.len-- + state.collect_garbage() + // Update every lua editor TGUI open for each state that had a task awakened or resumed for(var/datum/lua_state/state in affected_states) INVOKE_ASYNC(state, TYPE_PROC_REF(/datum/lua_state, update_editors)) + +/datum/controller/subsystem/lua/proc/log_involved_runtime(exception/runtime, list/desclines, list/lua_stacks) + var/list/json_data = list("status" = "runtime", "file" = runtime.file, "line" = runtime.line, "message" = runtime.name, "stack" = list()) + var/level = 1 + for(var/line in desclines) + line = copytext(line, 3) + if(starts_with_any(line, list( + "/datum/lua_state (/datum/lua_state): load script", + "/datum/lua_state (/datum/lua_state): call function", + "/datum/lua_state (/datum/lua_state): awaken", + "/datum/lua_state (/datum/lua_state): resume" + ))) + json_data["stack"] += lua_stacks[level] + level++ + json_data["stack"] += line + for(var/datum/weakref/state_ref as anything in GLOB.lua_state_stack) + var/datum/lua_state/state = state_ref.resolve() + if(!state) + continue + state.log_result(json_data) + return diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 3e07eca8a2e87..a9950f1f4d865 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -11,10 +11,19 @@ SUBSYSTEM_DEF(machines) VAR_PRIVATE/list/all_machines = list() var/list/processing = list() + var/list/processing_early = list() + var/list/processing_late = list() + var/list/processing_apcs = list() + var/list/currentrun = list() - var/list/apc_early_processing = list() - var/list/apc_late_processing = list() - var/current_part = SSMACHINES_APCS_EARLY + var/current_part = SSMACHINES_MACHINES_EARLY + var/list/apc_steps = list( + SSMACHINES_APCS_EARLY, + SSMACHINES_APCS_ENVIRONMENT, + SSMACHINES_APCS_LIGHTS, + SSMACHINES_APCS_EQUIPMENT, + SSMACHINES_APCS_LATE + ) ///List of all powernets on the server. var/list/datum/powernet/powernets = list() @@ -82,25 +91,53 @@ SUBSYSTEM_DEF(machines) if (!resumed) for(var/datum/powernet/powernet as anything in powernets) powernet.reset() //reset the power state. - current_part = SSMACHINES_APCS_EARLY - src.currentrun = apc_early_processing.Copy() + current_part = SSMACHINES_MACHINES_EARLY + src.currentrun = processing_early.Copy() - //APC early processing. Draws static power usages from their grids. - if(current_part == SSMACHINES_APCS_EARLY) + //Processing machines that get the priority power draw + if(current_part == SSMACHINES_MACHINES_EARLY) + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + while(currentrun.len) + var/obj/machinery/thing = currentrun[currentrun.len] + currentrun.len-- + if(QDELETED(thing) || thing.process_early(wait * 0.1) == PROCESS_KILL) + processing_early -= thing + thing.datum_flags &= ~DF_ISPROCESSING + if (MC_TICK_CHECK) + return + current_part = apc_steps[1] + src.currentrun = processing_apcs.Copy() + + //Processing APCs + while(current_part in apc_steps) //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun while(currentrun.len) var/obj/machinery/power/apc/apc = currentrun[currentrun.len] currentrun.len-- - if(QDELETED(apc) || apc.early_process(wait * 0.1) == PROCESS_KILL) - apc_early_processing -= apc + if(QDELETED(apc)) + processing_apcs -= apc apc.datum_flags &= ~DF_ISPROCESSING + switch(current_part) + if(SSMACHINES_APCS_EARLY) + apc.early_process(wait * 0.1) + if(SSMACHINES_APCS_LATE) + apc.charge_channel(null, wait * 0.1) + apc.late_process(wait * 0.1) + else + apc.charge_channel(current_part, wait * 0.1) if(MC_TICK_CHECK) return - current_part = SSMACHINES_MACHINES - src.currentrun = processing.Copy() - - //General machine processing. Their power usage can be dynamic and based on surplus power, so they come after static power usage have been applied. + var/next_index = apc_steps.Find(current_part) + 1 + if (next_index > apc_steps.len) + current_part = SSMACHINES_MACHINES + src.currentrun = processing.Copy() + break + current_part = apc_steps[next_index] + src.currentrun = processing_apcs.Copy() + + //Processing all machines if(current_part == SSMACHINES_MACHINES) //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun @@ -112,21 +149,20 @@ SUBSYSTEM_DEF(machines) thing.datum_flags &= ~DF_ISPROCESSING if (MC_TICK_CHECK) return - current_part = SSMACHINES_APCS_LATE - src.currentrun = apc_late_processing.Copy() + current_part = SSMACHINES_MACHINES_LATE + src.currentrun = processing_late.Copy() - //APC late processing. APCs will use the remaining power on the grid to charge their cells if needed. - //This is applied at the end so charging APCs don't cause others to discharge by taking all the power from the grid before machines use power. - if(current_part == SSMACHINES_APCS_LATE) + //Processing machines that record the power usage statistics + if(current_part == SSMACHINES_MACHINES_LATE) //cache for sanic speed (lists are references anyways) var/list/currentrun = src.currentrun while(currentrun.len) - var/obj/machinery/power/apc/apc = currentrun[currentrun.len] + var/obj/machinery/thing = currentrun[currentrun.len] currentrun.len-- - if(QDELETED(apc) || apc.late_process(wait * 0.1) == PROCESS_KILL) - apc_late_processing -= apc - apc.datum_flags &= ~DF_ISPROCESSING - if(MC_TICK_CHECK) + if(QDELETED(thing) || thing.process_late(wait * 0.1) == PROCESS_KILL) + processing_late -= thing + thing.datum_flags &= ~DF_ISPROCESSING + if (MC_TICK_CHECK) return /datum/controller/subsystem/machines/proc/setup_template_powernets(list/cables) diff --git a/code/controllers/subsystem/map_vote.dm b/code/controllers/subsystem/map_vote.dm new file mode 100644 index 0000000000000..44aa82172f3f0 --- /dev/null +++ b/code/controllers/subsystem/map_vote.dm @@ -0,0 +1,178 @@ +#define MAP_VOTE_CACHE_LOCATION "data/map_vote_cache.json" + +SUBSYSTEM_DEF(map_vote) + name = "Map Vote" + flags = SS_NO_FIRE + + /// Has an admin specifically set a map. + var/admin_override = FALSE + + /// Have we already done a vote. + var/already_voted = FALSE + + /// The map that has been chosen for next round. + var/datum/map_config/next_map_config + + /// Stores the current map vote cache, so that players can look at the current tally. + var/list/map_vote_cache + + /// Stores the previous map vote cache, used when a map vote is reverted. + var/list/previous_cache + + /// Stores a formatted html string of the tally counts + var/tally_printout = span_red("Loading...") + +/datum/controller/subsystem/map_vote/Initialize() + if(rustg_file_exists(MAP_VOTE_CACHE_LOCATION)) + map_vote_cache = json_decode(file2text(MAP_VOTE_CACHE_LOCATION)) + var/carryover = CONFIG_GET(number/map_vote_tally_carryover_percentage) + for(var/map_id in map_vote_cache) + map_vote_cache[map_id] = round(map_vote_cache[map_id] * (carryover / 100)) + sanitize_cache() + else + map_vote_cache = list() + update_tally_printout() + return SS_INIT_SUCCESS + +/datum/controller/subsystem/map_vote/proc/write_cache() + rustg_file_write(json_encode(map_vote_cache), MAP_VOTE_CACHE_LOCATION) + +/datum/controller/subsystem/map_vote/proc/sanitize_cache() + var/max = CONFIG_GET(number/map_vote_maximum_tallies) + for(var/map_id in map_vote_cache) + if(!(map_id in config.maplist)) + map_vote_cache -= map_id + var/count = map_vote_cache[map_id] + if(count > max) + map_vote_cache[map_id] = max + +/datum/controller/subsystem/map_vote/proc/send_map_vote_notice(...) + var/static/last_message_at + if(last_message_at == world.time) + message_admins("Call to send_map_vote_notice twice in one game tick. Yell at someone to condense messages.") + last_message_at = world.time + + var/list/messages = args.Copy() + to_chat(world, span_purple(examine_block("Map Vote\n
\n[messages.Join("\n")]"))) + +/datum/controller/subsystem/map_vote/proc/finalize_map_vote(datum/vote/map_vote/map_vote) + if(already_voted) + message_admins("Attempted to finalize a map vote after a map vote has already been finalized.") + return + already_voted = TRUE + + var/flat = CONFIG_GET(number/map_vote_flat_bonus) + previous_cache = map_vote_cache.Copy() + for(var/map_id in map_vote.choices) + var/datum/map_config/map = config.maplist[map_id] + map_vote_cache[map_id] += (map_vote.choices[map_id] * map.voteweight) + flat + sanitize_cache() + write_cache() + update_tally_printout() + + if(admin_override) + send_map_vote_notice("Admin Override is in effect. Map will not be changed.", "Tallies are recorded and saved.") + return + + var/list/valid_maps = filter_cache_to_valid_maps() + if(!length(valid_maps)) + send_map_vote_notice("No valid maps.") + return + + var/winner + var/winner_amount = 0 + for(var/map in valid_maps) + if(!winner_amount) + winner = map + winner_amount = map_vote_cache[map] + continue + if(map_vote_cache[map] <= winner_amount) + continue + winner = map + winner_amount = map_vote_cache[map] + + ASSERT(winner, "No winner found in map vote.") + set_next_map(config.maplist[winner]) + var/list/messages = list("Map Selected - [span_bold(next_map_config.map_name)]") + messages += "Tallies at the time of selection:" + messages += tally_printout + + // do not reset tallies if only one map is even possible + if(length(valid_maps) > 1) + map_vote_cache[winner] = CONFIG_GET(number/map_vote_minimum_tallies) + write_cache() + update_tally_printout() + else + messages += "Only one map was possible, tallies were not reset." + + send_map_vote_notice(arglist(messages)) + +/// Returns a list of all map options that are invalid for the current population. +/datum/controller/subsystem/map_vote/proc/get_valid_map_vote_choices() + var/list/valid_maps = list() + + // Fill in our default choices with all of the maps in our map config, if they are votable and not blocked. + var/list/maps = shuffle(global.config.maplist) + for(var/map in maps) + var/datum/map_config/possible_config = config.maplist[map] + if(!possible_config.votable || (possible_config.map_name in SSpersistence.blocked_maps)) + continue + valid_maps += possible_config.map_name + + var/filter_threshold = 0 + if(SSticker.HasRoundStarted()) + filter_threshold = get_active_player_count(alive_check = FALSE, afk_check = TRUE, human_check = FALSE) + else + filter_threshold = length(GLOB.clients) + + for(var/map in valid_maps) + var/datum/map_config/possible_config = config.maplist[map] + if(possible_config.config_min_users > 0 && filter_threshold < possible_config.config_min_users) + valid_maps -= map + + else if(possible_config.config_max_users > 0 && filter_threshold > possible_config.config_max_users) + valid_maps -= map + + return valid_maps + +/datum/controller/subsystem/map_vote/proc/filter_cache_to_valid_maps() + var/connected_players = length(GLOB.player_list) + var/list/valid_maps = list() + for(var/map_id in map_vote_cache) + var/datum/map_config/map = config.maplist[map_id] + if(!map.votable) + continue + if(map.config_min_users > 0 && (connected_players < map.config_min_users)) + continue + if(map.config_max_users > 0 && (connected_players > map.config_max_users)) + continue + valid_maps[map_id] = map_vote_cache[map_id] + return valid_maps + +/datum/controller/subsystem/map_vote/proc/set_next_map(datum/map_config/change_to) + if(!change_to.MakeNextMap()) + message_admins("Failed to set new map with next_map.json for [change_to.map_name]!") + return FALSE + + next_map_config = change_to + return TRUE + +/datum/controller/subsystem/map_vote/proc/revert_next_map() + if(!next_map_config) + return + if(previous_cache) + map_vote_cache = previous_cache + previous_cache = null + + already_voted = FALSE + admin_override = FALSE + send_map_vote_notice("Next map reverted. Voting re-enabled.") + +#undef MAP_VOTE_CACHE_LOCATION + +/datum/controller/subsystem/map_vote/proc/update_tally_printout() + var/list/data = list() + for(var/map_id in map_vote_cache) + var/datum/map_config/map = config.maplist[map_id] + data += "[map.map_name] - [map_vote_cache[map_id]]" + tally_printout = examine_block("Current Tallies\n
\n[data.Join("\n")]") diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 041359006797b..742073efca979 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -6,15 +6,8 @@ SUBSYSTEM_DEF(mapping) var/list/nuke_tiles = list() var/list/nuke_threats = list() - var/datum/map_config/config - var/datum/map_config/next_map_config - - /// Has the map for the next round been voted for already? - var/map_voted = FALSE - /// Has the map for the next round been deliberately chosen by an admin? - var/map_force_chosen = FALSE - /// Has the map vote been rocked? - var/map_vote_rocked = FALSE + /// The current map config the server loaded at round start. + var/datum/map_config/current_map var/list/map_templates = list() @@ -95,20 +88,20 @@ SUBSYSTEM_DEF(mapping) /datum/controller/subsystem/mapping/PreInit() ..() #ifdef FORCE_MAP - config = load_map_config(FORCE_MAP, FORCE_MAP_DIRECTORY) + current_map = load_map_config(FORCE_MAP, FORCE_MAP_DIRECTORY) #else - config = load_map_config(error_if_missing = FALSE) + current_map = load_map_config(error_if_missing = FALSE) #endif /datum/controller/subsystem/mapping/Initialize() if(initialized) return SS_INIT_SUCCESS - if(config.defaulted) - var/old_config = config - config = global.config.defaultmap - if(!config || config.defaulted) - to_chat(world, span_boldannounce("Unable to load next or default map config, defaulting to MetaStation.")) - config = old_config + if(current_map.defaulted) + var/datum/map_config/old_config = current_map + current_map = config.defaultmap + if(!current_map || current_map.defaulted) + to_chat(world, span_boldannounce("Unable to load next or default map config, defaulting to [old_config.map_name].")) + current_map = old_config plane_offset_to_true = list() true_to_offset_planes = list() plane_to_offset = list() @@ -132,11 +125,11 @@ SUBSYSTEM_DEF(mapping) #ifndef LOWMEMORYMODE // Create space ruin levels - while (space_levels_so_far < config.space_ruin_levels) + while (space_levels_so_far < current_map.space_ruin_levels) add_new_zlevel("Ruin Area [space_levels_so_far+1]", ZTRAITS_SPACE) ++space_levels_so_far // Create empty space levels - while (space_levels_so_far < config.space_empty_levels + config.space_ruin_levels) + while (space_levels_so_far < current_map.space_empty_levels + current_map.space_ruin_levels) empty_space = add_new_zlevel("Empty Area [space_levels_so_far+1]", list(ZTRAIT_LINKAGE = CROSSLINKED)) ++space_levels_so_far @@ -144,7 +137,7 @@ SUBSYSTEM_DEF(mapping) if(CONFIG_GET(flag/roundstart_away)) createRandomZlevel(prob(CONFIG_GET(number/config_gateway_chance))) - else if (SSmapping.config.load_all_away_missions) // we're likely in a local testing environment, so punch it. + else if (SSmapping.current_map.load_all_away_missions) // we're likely in a local testing environment, so punch it. load_all_away_missions() loading_ruins = TRUE @@ -184,17 +177,20 @@ SUBSYSTEM_DEF(mapping) if(index) lists_to_reserve.Cut(1, index) return - var/turf/T = packet[packetlen] - T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE) - LAZYINITLIST(unused_turfs["[T.z]"]) - unused_turfs["[T.z]"] |= T - var/area/old_area = T.loc - LISTASSERTLEN(old_area.turfs_to_uncontain_by_zlevel, T.z, list()) - old_area.turfs_to_uncontain_by_zlevel[T.z] += T - T.turf_flags = UNUSED_RESERVATION_TURF - world_contents += T - LISTASSERTLEN(world_turf_contents_by_z, T.z, list()) - world_turf_contents_by_z[T.z] += T + var/turf/reserving_turf = packet[packetlen] + reserving_turf.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE) + LAZYINITLIST(unused_turfs["[reserving_turf.z]"]) + unused_turfs["[reserving_turf.z]"] |= reserving_turf + var/area/old_area = reserving_turf.loc + LISTASSERTLEN(old_area.turfs_to_uncontain_by_zlevel, reserving_turf.z, list()) + old_area.turfs_to_uncontain_by_zlevel[reserving_turf.z] += reserving_turf + reserving_turf.turf_flags = UNUSED_RESERVATION_TURF + // reservation turfs are not allowed to interact with atmos at all + reserving_turf.blocks_air = TRUE + + world_contents += reserving_turf + LISTASSERTLEN(world_turf_contents_by_z, reserving_turf.z, list()) + world_turf_contents_by_z[reserving_turf.z] += reserving_turf packet.len-- packetlen = length(packet) @@ -360,9 +356,7 @@ Used by the AI doomsday and the self-destruct nuke. holodeck_templates = SSmapping.holodeck_templates areas_in_z = SSmapping.areas_in_z - config = SSmapping.config - next_map_config = SSmapping.next_map_config - + current_map = SSmapping.current_map clearing_reserved_turfs = SSmapping.clearing_reserved_turfs z_list = SSmapping.z_list @@ -392,13 +386,23 @@ Used by the AI doomsday and the self-destruct nuke. if (!length(traits)) // null or empty - default for (var/i in 1 to total_z) - traits += list(default_traits) + traits += list(default_traits.Copy()) else if (total_z != traits.len) // mismatch INIT_ANNOUNCE("WARNING: [traits.len] trait sets specified for [total_z] z-levels in [path]!") if (total_z < traits.len) // ignore extra traits traits.Cut(total_z + 1) while (total_z > traits.len) // fall back to defaults on extra levels - traits += list(default_traits) + traits += list(default_traits.Copy()) + + if(total_z > 1) // it's a multi z map + for(var/z in 1 to total_z) + if(z == 1) // bottom z-level + traits[z]["Up"] = TRUE + else if(z == total_z) // top z-level + traits[z]["Down"] = TRUE + else + traits[z]["Down"] = TRUE + traits[z]["Up"] = TRUE // preload the relevant space_level datums var/start_z = world.maxz + 1 @@ -428,22 +432,22 @@ Used by the AI doomsday and the self-destruct nuke. // load the station station_start = world.maxz + 1 - INIT_ANNOUNCE("Loading [config.map_name]...") - LoadGroup(FailedZs, "Station", config.map_path, config.map_file, config.traits, ZTRAITS_STATION) + INIT_ANNOUNCE("Loading [current_map.map_name]...") + LoadGroup(FailedZs, "Station", current_map.map_path, current_map.map_file, current_map.traits, ZTRAITS_STATION) if(SSdbcore.Connect()) var/datum/db_query/query_round_map_name = SSdbcore.NewQuery({" UPDATE [format_table_name("round")] SET map_name = :map_name WHERE id = :round_id - "}, list("map_name" = config.map_name, "round_id" = GLOB.round_id)) + "}, list("map_name" = current_map.map_name, "round_id" = GLOB.round_id)) query_round_map_name.Execute() qdel(query_round_map_name) #ifndef LOWMEMORYMODE - if(config.minetype == "lavaland") + if(current_map.minetype == "lavaland") LoadGroup(FailedZs, "Lavaland", "map_files/Mining", "Lavaland.dmm", default_traits = ZTRAITS_LAVALAND) - else if (!isnull(config.minetype) && config.minetype != "none") - INIT_ANNOUNCE("WARNING: An unknown minetype '[config.minetype]' was set! This is being ignored! Update the maploader code!") + else if (!isnull(current_map.minetype) && current_map.minetype != "none") + INIT_ANNOUNCE("WARNING: An unknown minetype '[current_map.minetype]' was set! This is being ignored! Update the maploader code!") #endif if(LAZYLEN(FailedZs)) //but seriously, unless the server's filesystem is messed up this will never happen @@ -456,10 +460,8 @@ Used by the AI doomsday and the self-destruct nuke. #undef INIT_ANNOUNCE // Custom maps are removed after station loading so the map files does not persist for no reason. - if(config.map_path == CUSTOM_MAP_PATH) - fdel("_maps/custom/[config.map_file]") - // And as the file is now removed set the next map to default. - next_map_config = load_default_map_config() + if(current_map.map_path == CUSTOM_MAP_PATH) + fdel("_maps/custom/[current_map.map_file]") /** * Global list of AREA TYPES that are associated with the station. @@ -491,88 +493,6 @@ GLOBAL_LIST_EMPTY(the_station_areas) for(var/area/A as anything in GLOB.areas) A.RunTerrainPopulation() -/datum/controller/subsystem/mapping/proc/maprotate() - if(map_voted || SSmapping.next_map_config) //If voted or set by other means. - return - - var/players = GLOB.clients.len - var/list/mapvotes = list() - //count votes - var/pmv = CONFIG_GET(flag/preference_map_voting) - if(pmv) - for (var/client/c in GLOB.clients) - var/vote = c.prefs.read_preference(/datum/preference/choiced/preferred_map) - if (!vote) - if (global.config.defaultmap) - mapvotes[global.config.defaultmap.map_name] += 1 - continue - mapvotes[vote] += 1 - else - for(var/M in global.config.maplist) - mapvotes[M] = 1 - - //filter votes - for (var/map in mapvotes) - if (!map) - mapvotes.Remove(map) - continue - if (!(map in global.config.maplist)) - mapvotes.Remove(map) - continue - if(map in SSpersistence.blocked_maps) - mapvotes.Remove(map) - continue - var/datum/map_config/VM = global.config.maplist[map] - if (!VM) - mapvotes.Remove(map) - continue - if (VM.voteweight <= 0) - mapvotes.Remove(map) - continue - if (VM.config_min_users > 0 && players < VM.config_min_users) - mapvotes.Remove(map) - continue - if (VM.config_max_users > 0 && players > VM.config_max_users) - mapvotes.Remove(map) - continue - - if(pmv) - mapvotes[map] = mapvotes[map]*VM.voteweight - - var/pickedmap = pick_weight(mapvotes) - if (!pickedmap) - return - var/datum/map_config/VM = global.config.maplist[pickedmap] - message_admins("Randomly rotating map to [VM.map_name]") - . = changemap(VM) - if (. && VM.map_name != config.map_name) - to_chat(world, span_boldannounce("Map rotation has chosen [VM.map_name] for next round!")) - -/datum/controller/subsystem/mapping/proc/mapvote() - if(map_voted || SSmapping.next_map_config) //If voted or set by other means. - return - if(SSvote.current_vote) //Theres already a vote running, default to rotation. - maprotate() - return - SSvote.initiate_vote(/datum/vote/map_vote, "automatic map rotation", forced = TRUE) - -/datum/controller/subsystem/mapping/proc/changemap(datum/map_config/change_to) - if(!change_to.MakeNextMap()) - next_map_config = load_default_map_config() - message_admins("Failed to set new map with next_map.json for [change_to.map_name]! Using default as backup!") - return - - var/filter_threshold = get_active_player_count(alive_check = FALSE, afk_check = TRUE, human_check = FALSE) - if (change_to.config_min_users > 0 && filter_threshold != 0 && filter_threshold < change_to.config_min_users) - message_admins("[change_to.map_name] was chosen for the next map, despite there being less current players than its set minimum population range!") - log_game("[change_to.map_name] was chosen for the next map, despite there being less current players than its set minimum population range!") - if (change_to.config_max_users > 0 && filter_threshold > change_to.config_max_users) - message_admins("[change_to.map_name] was chosen for the next map, despite there being more current players than its set maximum population range!") - log_game("[change_to.map_name] was chosen for the next map, despite there being more current players than its set maximum population range!") - - next_map_config = change_to - return TRUE - /datum/controller/subsystem/mapping/proc/preloadTemplates(path = "_maps/templates/") //see master controller setup var/list/filelist = flist(path) for(var/map in filelist) @@ -587,10 +507,10 @@ GLOBAL_LIST_EMPTY(the_station_areas) /datum/controller/subsystem/mapping/proc/preloadRuinTemplates() // Still supporting bans by filename var/list/banned = generateMapList("spaceruinblacklist.txt") - if(config.minetype == "lavaland") + if(current_map.minetype == "lavaland") banned += generateMapList("lavaruinblacklist.txt") - else if(config.blacklist_file) - banned += generateMapList(config.blacklist_file) + else if(current_map.blacklist_file) + banned += generateMapList(current_map.blacklist_file) for(var/item in sort_list(subtypesof(/datum/map_template/ruin), GLOBAL_PROC_REF(cmp_ruincost_priority))) var/datum/map_template/ruin/ruin_type = item @@ -731,6 +651,7 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away for(var/turf/T as anything in block) // No need to empty() these, because they just got created and are already /turf/open/space/basic. T.turf_flags = UNUSED_RESERVATION_TURF + T.blocks_air = TRUE CHECK_TICK // Gotta create these suckers if we've not done so already @@ -890,7 +811,7 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away var/offset_plane = GET_NEW_PLANE(plane_to_use, plane_offset) var/string_plane = "[offset_plane]" - if(!initial(master_type.allows_offsetting)) + if(initial(master_type.offsetting_flags) & BLOCKS_PLANE_OFFSETTING) plane_offset_blacklist[string_plane] = TRUE var/render_target = initial(master_type.render_target) if(!render_target) @@ -949,7 +870,7 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away /// Returns true if the map we're playing on is on a planet /datum/controller/subsystem/mapping/proc/is_planetary() - return config.planetary + return current_map.planetary /// For debug purposes, will add every single away mission present in a given directory. /// You can optionally pass in a string directory to load from instead of the default. diff --git a/code/controllers/subsystem/market.dm b/code/controllers/subsystem/market.dm new file mode 100644 index 0000000000000..0c134d5691570 --- /dev/null +++ b/code/controllers/subsystem/market.dm @@ -0,0 +1,151 @@ +SUBSYSTEM_DEF(market) + name = "Market" + flags = SS_BACKGROUND + init_order = INIT_ORDER_DEFAULT + + /// Descriptions for each shipping methods. + var/shipping_method_descriptions = list( + SHIPPING_METHOD_LAUNCH = "Launches the item at the station from space, cheap but you might not receive your item at all.", + SHIPPING_METHOD_LTSRBT = "Long-To-Short-Range-Bluespace-Transceiver, a machine that receives items outside the station and then teleports them to the location of the uplink.", + SHIPPING_METHOD_TELEPORT = "Teleports the item in a random area in the station, you get 60 seconds to get there first though.", + SHIPPING_METHOD_SUPPLYPOD = "Ships the item inside a supply pod at your exact location. Showy, speedy and expensive.", + ) + + /// List of all existing markets. + var/list/datum/market/markets = list() + /// List of existing ltsrbts. + var/list/obj/machinery/ltsrbt/telepads = list() + /// Currently queued purchases. + var/list/queued_purchases = list() + +/datum/controller/subsystem/market/Initialize() + for(var/market in subtypesof(/datum/market)) + markets[market] += new market + + for(var/path in subtypesof(/datum/market_item)) + initialize_item(path) + + return SS_INIT_SUCCESS + +/datum/controller/subsystem/market/proc/initialize_item(datum/market_item/path, list/market_whitelist) + if(!path::item || !prob(path::availability_prob)) + return + var/datum/market_item/item_instance = new path() + for(var/potential_market in item_instance.markets) + if(!markets[potential_market]) + stack_trace("SSmarket: Item [item_instance] available in market that does not exist.") + continue + if(isnull(market_whitelist) || (potential_market in market_whitelist)) + markets[potential_market].add_item(item_instance) + +/datum/controller/subsystem/market/fire(resumed) + while(length(queued_purchases)) + var/datum/market_purchase/purchase = queued_purchases[1] + queued_purchases.Cut(1,2) + + var/mob/buyer = recursive_loc_check(purchase.uplink.loc, /mob) + + switch(purchase.method) + // Find a ltsrbt pad and make it handle the shipping. + if(SHIPPING_METHOD_LTSRBT) + if(!length(telepads)) + continue + // Prioritize pads that don't have a cooldown active. + var/obj/machinery/ltsrbt/lowest_cd_pad + // The time left of the shortest cooldown amongst all telepads. + var/lowest_timeleft = INFINITY + for(var/obj/machinery/ltsrbt/pad as anything in telepads) + if(!COOLDOWN_FINISHED(pad, recharge_cooldown) || (pad.machine_stat & NOPOWER)) + var/timeleft = pad.machine_stat & NOPOWER ? INFINITY - 1 : COOLDOWN_TIMELEFT(pad, recharge_cooldown) + if(timeleft <= lowest_timeleft) + lowest_cd_pad = pad + lowest_timeleft = timeleft + continue + lowest_cd_pad = pad + break + + lowest_cd_pad.add_to_queue(purchase) + + to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting that the order is being processed by [lowest_cd_pad].")) + + // Get random area, throw it somewhere there. + if(SHIPPING_METHOD_TELEPORT) + var/turf/targetturf = get_safe_random_station_turf() + // This shouldn't happen. + if (!targetturf) + continue + queued_purchases -= purchase + + to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting that the order is being teleported to [get_area(targetturf)] in 60 seconds.")) + + // do_teleport does not want to teleport items from nullspace, so it just forceMoves and does sparks. + addtimer(CALLBACK(src, TYPE_PROC_REF(/datum/controller/subsystem/market, fake_teleport), purchase, targetturf), 60 SECONDS) + + // Get the current location of the uplink if it exists, then throws the item from space at the station from a random direction. + if(SHIPPING_METHOD_LAUNCH) + var/startSide = pick(GLOB.cardinals) + var/turf/T = get_turf(purchase.uplink) + var/pickedloc = spaceDebrisStartLoc(startSide, T.z) + + var/atom/movable/item = purchase.entry.spawn_item(pickedloc, purchase) + purchase.post_purchase_effects(item) + item.throw_at(purchase.uplink, 3, 3, spin = FALSE) + + to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting the order is being launched at the station from [dir2text(startSide)].")) + qdel(purchase) + + if(SHIPPING_METHOD_SUPPLYPOD) + var/obj/structure/closet/supplypod/spawned_pod = podspawn(list( + "target" = get_turf(purchase.uplink), + "path" = /obj/structure/closet/supplypod/back_to_station, + )) + purchase.entry.spawn_item(spawned_pod, purchase) + + to_chat(buyer, span_notice("[purchase.uplink] flashes a message noting the order is being launched at your location. Right here, right now!")) + qdel(purchase) + + if(MC_TICK_CHECK) + break + +/// Used to make a teleportation effect as do_teleport does not like moving items from nullspace. +/datum/controller/subsystem/market/proc/fake_teleport(datum/market_purchase/purchase, turf/target) + // Oopsie, whoopsie, the item is gone. So long, and thanks for all the money. + if(QDELETED(purchase)) + return + var/atom/movable/thing = purchase.entry.spawn_item(target, purchase) + purchase.post_purchase_effects(thing) + var/datum/effect_system/spark_spread/sparks = new + sparks.set_up(5, 1, target) + sparks.attach(thing) + sparks.start() + qdel(purchase) + +/// Used to add /datum/market_purchase to queued_purchases var. Returns TRUE when queued. +/datum/controller/subsystem/market/proc/queue_item(datum/market_purchase/purchase) + if((purchase.method == SHIPPING_METHOD_LTSRBT && !telepads.len) || isnull(purchase.uplink)) + qdel(purchase) + return FALSE + queued_purchases += purchase + return TRUE + +///A proc that restocks one or more markets, or all if the market_whitelist is null. +/datum/controller/subsystem/market/proc/restock(list/market_whitelist) + var/market_name = "Markets" + if(market_whitelist && !islist(market_whitelist)) + var/datum/market/market_path = market_whitelist + market_name = market_path::name + market_whitelist = list(market_path) + + var/list/existing_types = list() + for(var/path in markets) + if(isnull(market_whitelist) || (path in market_whitelist)) + markets[path].restock(existing_types) + + for(var/datum/market_item/path as anything in (subtypesof(/datum/market_item) - existing_types)) + if(!path::restockable) + continue + initialize_item(path, market_whitelist) + + for(var/obj/machinery/ltsrbt/pad as anything in telepads) + pad.say("[market_name] restocked!") + playsound(src, 'sound/effects/cashregister.ogg', 40, FALSE) diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm index 3a704d01a82fd..e8763dd33f3af 100644 --- a/code/controllers/subsystem/materials.dm +++ b/code/controllers/subsystem/materials.dm @@ -35,7 +35,7 @@ SUBSYSTEM_DEF(materials) ///A list of dimensional themes used by the dimensional anomaly and other things, most of which require materials to function. var/list/datum/dimension_theme/dimensional_themes -///Ran on initialize, populated the materials and materials_by_category dictionaries with their appropiate vars (See these variables for more info) +///Ran on initialize, populated the materials and materials_by_category dictionaries with their appropriate vars (See these variables for more info) /datum/controller/subsystem/materials/proc/InitializeMaterials() materials = list() materials_by_type = list() @@ -53,7 +53,7 @@ SUBSYSTEM_DEF(materials) /** Creates and caches a material datum. * - * Arugments: + * Arguments: * - [arguments][/list]: The arguments to use to create the material datum * - The first element is the type of material to initialize. */ @@ -134,7 +134,7 @@ SUBSYSTEM_DEF(materials) value = arguments[key] if(!(istext(key) || isnum(key))) key = REF(key) - key = "[key]" // Key is stringified so numbers dont break things + key = "[key]" // Key is stringified so numbers don't break things if(!isnull(value)) if(!(istext(value) || isnum(value))) value = REF(value) @@ -149,7 +149,7 @@ SUBSYSTEM_DEF(materials) /// Returns a list to be used as an object's custom_materials. Lists will be cached and re-used based on the parameters. -/datum/controller/subsystem/materials/proc/FindOrCreateMaterialCombo(list/materials_declaration, multiplier) +/datum/controller/subsystem/materials/proc/FindOrCreateMaterialCombo(list/materials_declaration, multiplier = 1) if(!LAZYLEN(materials_declaration)) return null // If we get a null we pass it right back, we don't want to generate stack traces just because something is clearing out its materials list. diff --git a/code/controllers/subsystem/minor_mapping.dm b/code/controllers/subsystem/minor_mapping.dm index 6acbbc1894e25..4aed29be350b6 100644 --- a/code/controllers/subsystem/minor_mapping.dm +++ b/code/controllers/subsystem/minor_mapping.dm @@ -49,6 +49,8 @@ SUBSYSTEM_DEF(minor_mapping) ///List of areas where satchels should not be placed. var/list/blacklisted_area_types = list( /area/station/holodeck, + /area/space/nearstation, + /area/station/solars, ) while(turfs.len && satchel_amount > 0) diff --git a/code/controllers/subsystem/modular_computers.dm b/code/controllers/subsystem/modular_computers.dm index c8efa4aa4ee24..0a985fc055c47 100644 --- a/code/controllers/subsystem/modular_computers.dm +++ b/code/controllers/subsystem/modular_computers.dm @@ -1,4 +1,4 @@ -s///The maximum amount of logs that can be generated before they start overwriting eachother. +s///The maximum amount of logs that can be generated before they start overwriting each other. #define MAX_LOG_COUNT 300 SUBSYSTEM_DEF(modular_computers) @@ -47,7 +47,7 @@ SUBSYSTEM_DEF(modular_computers) var/static/list/discounts = list("0.10" = 7, "0.15" = 16, "0.20" = 20, "0.25" = 16, "0.50" = 8, "0.66" = 1) var/static/list/flash_discounts = list("0.30" = 3, "0.40" = 8, "0.50" = 8, "0.66" = 2, "0.75" = 1) - ///Eliminates non-alphanumeri characters, as well as the word "Single-Pack" or "Pack" or "Crate" from the coupon code + ///Eliminates non-alphanumeric characters, as well as the word "Single-Pack" or "Pack" or "Crate" from the coupon code var/static/regex/strip_pack_name = regex("\[^a-zA-Z0-9]|(Single-)?Pack|Crate", "g") var/datum/supply_pack/discounted_pack = pick(GLOB.discountable_packs[pick_weight(GLOB.pack_discount_odds)]) diff --git a/code/controllers/subsystem/movement/movement.dm b/code/controllers/subsystem/movement/movement.dm index 425c67a0c474f..2b0463db7905f 100644 --- a/code/controllers/subsystem/movement/movement.dm +++ b/code/controllers/subsystem/movement/movement.dm @@ -1,6 +1,6 @@ SUBSYSTEM_DEF(movement) name = "Movement Loops" - flags = SS_NO_INIT|SS_BACKGROUND|SS_TICKER + flags = SS_NO_INIT|SS_TICKER wait = 1 //Fire each tick /* A breif aside about the bucketing system here @@ -66,7 +66,7 @@ SUBSYSTEM_DEF(movement) return // Still work to be done var/bucket_time = bucket_info[MOVEMENT_BUCKET_TIME] smash_bucket(1, bucket_time) // We assume we're the first bucket in the queue right now - visual_delay = MC_AVERAGE_FAST(visual_delay, max((world.time - canonical_time) / wait, 1)) + visual_delay = MC_AVERAGE_FAST(visual_delay, max((world.time - canonical_time) / TICKS2DS(wait), 1)) /// Removes a bucket from our system. You only need to pass in the time, but if you pass in the index of the list you save us some work /datum/controller/subsystem/movement/proc/smash_bucket(index, bucket_time) diff --git a/code/controllers/subsystem/movement/movement_types.dm b/code/controllers/subsystem/movement/movement_types.dm index 50864f731e21a..58b1c58b0bca1 100644 --- a/code/controllers/subsystem/movement/movement_types.dm +++ b/code/controllers/subsystem/movement/movement_types.dm @@ -703,7 +703,7 @@ y_rate = 1 /** - * Wrapper for walk_towards, not reccomended, as it's movement ends up being a bit stilted + * Wrapper for walk_towards, not reccomended, as its movement ends up being a bit stilted * * Returns TRUE if the loop sucessfully started, or FALSE if it failed * @@ -869,3 +869,95 @@ var/atom/old_loc = moving.loc holder.current_pipe = holder.current_pipe.transfer(holder) return old_loc != moving?.loc ? MOVELOOP_SUCCESS : MOVELOOP_FAILURE + + +/** + * Helper proc for the smooth_move datum + * + * Returns TRUE if the loop sucessfully started, or FALSE if it failed + * + * Arguments: + * moving - The atom we want to move + * angle - Angle at which we want to move + * delay - How many deci-seconds to wait between fires. Defaults to the lowest value, 0.1 + * timeout - Time in deci-seconds until the moveloop self expires. Defaults to INFINITY + * subsystem - The movement subsystem to use. Defaults to SSmovement. Only one loop can exist for any one subsystem + * priority - Defines how different move loops override each other. Lower numbers beat higher numbers, equal defaults to what currently exists. Defaults to MOVEMENT_DEFAULT_PRIORITY + * flags - Set of bitflags that effect move loop behavior in some way. Check _DEFINES/movement.dm + * +**/ + +/datum/move_manager/proc/smooth_move(moving, angle, delay, timeout, subsystem, priority, flags, datum/extra_info) + return add_to_loop(moving, subsystem, /datum/move_loop/smooth_move, priority, flags, extra_info, delay, timeout, angle) + +/datum/move_loop/smooth_move + /// Angle at which we move. 0 is north because byond. + var/angle = 0 + /// When this gets bigger than 1, we move a turf + var/x_ticker = 0 + var/y_ticker = 0 + /// The rate at which we move, between 0 and 1. Cached to cut down on trig + var/x_rate = 0 + var/y_rate = 1 + /// Sign for our movement + var/x_sign = 1 + var/y_sign = 1 + /// Actual move delay, as delay will be modified by move() depending on what direction we move in + var/saved_delay + +/datum/move_loop/smooth_move/setup(delay, timeout, angle) + . = ..() + if(!.) + return FALSE + set_angle(angle) + saved_delay = delay + +/datum/move_loop/smooth_move/set_delay(new_delay) + new_delay = round(new_delay, world.tick_lag) + . = ..() + saved_delay = delay + +/datum/move_loop/smooth_move/compare_loops(datum/move_loop/loop_type, priority, flags, extra_info, delay, timeout, atom/chasing, home = FALSE) + if(..() && angle == src.angle) + return TRUE + return FALSE + +/datum/move_loop/smooth_move/move() + var/atom/old_loc = moving.loc + // Defaulting to 2 because if one rate is 0 the other is guaranteed to be 1, so maxing out at 1 to_move + var/x_to_move = x_rate > 0 ? (1 - x_ticker) / x_rate : 2 + var/y_to_move = y_rate > 0 ? (1 - y_ticker) / y_rate : 2 + var/move_dist = min(x_to_move, y_to_move) + x_ticker += x_rate * move_dist + y_ticker += y_rate * move_dist + + // Per Bresenham's, if we are closer to the next tile's center move diagonally. Checked by seeing if we pass into the next tile after moving another half a tile + var/move_x = (x_ticker + x_rate * 0.5) > 1 + var/move_y = (y_ticker + y_rate * 0.5) > 1 + if (move_x) + x_ticker = 0 + if (move_y) + y_ticker = 0 + + var/turf/next_turf = locate(moving.x + (move_x ? x_sign : 0), moving.y + (move_y ? y_sign : 0), moving.z) + moving.Move(next_turf, get_dir(moving, next_turf), FALSE, !(flags & MOVEMENT_LOOP_NO_DIR_UPDATE)) + + if (old_loc == moving?.loc) + return MOVELOOP_FAILURE + + delay = saved_delay + if (move_x && move_y) + delay *= 1.4 + + return MOVELOOP_SUCCESS + +/datum/move_loop/smooth_move/proc/set_angle(new_angle) + angle = new_angle + x_rate = sin(angle) + y_rate = cos(angle) + x_sign = SIGN(x_rate) + y_sign = SIGN(y_rate) + x_rate = abs(x_rate) + y_rate = abs(y_rate) + x_ticker = 0 + y_ticker = 0 diff --git a/code/controllers/subsystem/movement/newtonian_movement.dm b/code/controllers/subsystem/movement/newtonian_movement.dm new file mode 100644 index 0000000000000..aeb03a576dae0 --- /dev/null +++ b/code/controllers/subsystem/movement/newtonian_movement.dm @@ -0,0 +1,31 @@ +/// The subsystem is intended to tick things related to space/newtonian movement, such as constant sources of inertia +MOVEMENT_SUBSYSTEM_DEF(newtonian_movement) + name = "Newtonian Movement" + flags = SS_NO_INIT|SS_TICKER + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + + var/stat_tag = "P" //Used for logging + var/list/processing = list() + var/list/currentrun = list() + +/datum/controller/subsystem/movement/newtonian_movement/stat_entry(msg) + msg = "[stat_tag]:[length(processing)]" + return ..() + +/datum/controller/subsystem/movement/newtonian_movement/fire(resumed = FALSE) + . = ..() + if (!resumed) + currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/current_run = currentrun + + while(current_run.len) + var/datum/thing = current_run[current_run.len] + current_run.len-- + if(QDELETED(thing)) + processing -= thing + else if(thing.process(TICKS2DS(wait) * 0.1) == PROCESS_KILL) + // fully stop so that a future START_PROCESSING will work + STOP_PROCESSING(src, thing) + if (MC_TICK_CHECK) + return diff --git a/code/controllers/subsystem/movement/spacedrift.dm b/code/controllers/subsystem/movement/spacedrift.dm deleted file mode 100644 index 4002b5eb555f2..0000000000000 --- a/code/controllers/subsystem/movement/spacedrift.dm +++ /dev/null @@ -1,5 +0,0 @@ -MOVEMENT_SUBSYSTEM_DEF(spacedrift) - name = "Space Drift" - priority = FIRE_PRIORITY_SPACEDRIFT - flags = SS_NO_INIT|SS_TICKER - runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME diff --git a/code/controllers/subsystem/nightshift.dm b/code/controllers/subsystem/nightshift.dm index b8df42742e43c..170f12696147f 100644 --- a/code/controllers/subsystem/nightshift.dm +++ b/code/controllers/subsystem/nightshift.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(nightshift) /datum/controller/subsystem/nightshift/proc/announce(message) priority_announce( text = message, - sound = 'sound/misc/notice2.ogg', + sound = 'sound/announcer/notice/notice2.ogg', sender_override = "Automated Lighting System Announcement", color_override = "grey", ) diff --git a/code/controllers/subsystem/overlays.dm b/code/controllers/subsystem/overlays.dm index db94c291a18bd..fda892be7a432 100644 --- a/code/controllers/subsystem/overlays.dm +++ b/code/controllers/subsystem/overlays.dm @@ -17,7 +17,7 @@ SUBSYSTEM_DEF(overlays) /// Don't have access to that type tho, so this is the best you're gonna get /proc/overlays2text(list/overlays) var/list/unique_overlays = list() - // As anything because we're basically doing type coerrsion, rather then actually filtering for mutable apperances + // As anything because we're basically doing type coercion, rather then actually filtering for mutable appearances for(var/mutable_appearance/overlay as anything in overlays) var/key = "[overlay.icon]-[overlay.icon_state]-[overlay.dir]" unique_overlays[key] += 1 diff --git a/code/controllers/subsystem/parallax.dm b/code/controllers/subsystem/parallax.dm index 212af9076bda6..28ebd80560f82 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -97,4 +97,12 @@ SUBSYSTEM_DEF(parallax) /datum/controller/subsystem/parallax/proc/post_station_setup() random_layer?.apply_global_effects() +/// Return the most dominant color, if we have a colored background (mostly nebula gas) +/datum/controller/subsystem/parallax/proc/get_parallax_color() + var/atom/movable/screen/parallax_layer/random/space_gas/gas = random_layer + if(!istype(gas)) + return + + return gas.parallax_color + #undef PARALLAX_NONE diff --git a/code/controllers/subsystem/pathfinder.dm b/code/controllers/subsystem/pathfinder.dm index fa1a7af5c8598..70dc152b06df2 100644 --- a/code/controllers/subsystem/pathfinder.dm +++ b/code/controllers/subsystem/pathfinder.dm @@ -158,7 +158,7 @@ SUBSYSTEM_DEF(pathfinder) /// Takes a set of pathfind info, returns the first valid pathmap that would work if one exists /// Optionally takes a max age to accept (defaults to 0 seconds) and a minimum acceptable range -/// If include_building is true and we can only find a building path, ew'll use that instead. tho we will wait for it to finish first +/// If include_building is true and we can only find a building path, we'll use that instead. tho we will wait for it to finish first /datum/controller/subsystem/pathfinder/proc/get_valid_map(datum/can_pass_info/pass_info, turf/target, simulated_only = TRUE, turf/exclude, age = MAP_REUSE_INSTANT, min_range = -INFINITY, include_building = FALSE) // Walk all the maps that match our caller's turf OR our target's // Then hold onto em. If their cache time is short we can reuse/expand them, if not we'll have to make a new one diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index 36679fa1d2a02..d38d7fa372e25 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -43,13 +43,22 @@ SUBSYSTEM_DEF(persistence) /// List of persistene ids which piggy banks. var/list/queued_broken_piggy_ids - var/list/broken_piggy_banks - var/rounds_since_engine_exploded = 0 var/delam_highscore = 0 var/tram_hits_this_round = 0 var/tram_hits_last_round = 0 + /// A json database to data/message_bottles.json + var/datum/json_database/message_bottles_database + /// An index used to create unique ids for the message bottles database + var/message_bottles_index = 0 + /** + * A list of non-maploaded photos or papers that met the 0.2% chance to be saved in the message bottles database + * because I don't want the database to feel empty unless there's someone constantly throwing bottles in the + * sea or beach/ocean fishing portals. + */ + var/list/queued_message_bottles + /datum/controller/subsystem/persistence/Initialize() load_poly() load_wall_engravings() @@ -74,11 +83,13 @@ SUBSYSTEM_DEF(persistence) save_scars() save_custom_outfits() save_delamination_counter() + save_queued_message_bottles() if(SStransport.can_fire) for(var/datum/transport_controller/linear/tram/transport as anything in SStransport.transports_by_type[TRANSPORT_TYPE_TRAM]) save_tram_history(transport.specific_transport_id) save_tram_counter() + ///Loads up Poly's speech buffer. /datum/controller/subsystem/persistence/proc/load_poly() for(var/mob/living/basic/parrot/poly/bird in GLOB.alive_mob_list) @@ -100,7 +111,7 @@ SUBSYSTEM_DEF(persistence) for(var/map in config.maplist) var/datum/map_config/VM = config.maplist[map] var/run = 0 - if(VM.map_name == SSmapping.config.map_name) + if(VM.map_name == SSmapping.current_map.map_name) run++ for(var/name in SSpersistence.saved_maps) if(VM.map_name == name) @@ -117,7 +128,7 @@ SUBSYSTEM_DEF(persistence) saved_maps += mapstosave for(var/i = mapstosave; i > 1; i--) saved_maps[i] = saved_maps[i-1] - saved_maps[1] = SSmapping.config.map_name + saved_maps[1] = SSmapping.current_map.map_name var/json_file = file(FILE_RECENT_MAPS) var/list/file_data = list() file_data["data"] = saved_maps diff --git a/code/controllers/subsystem/persistence/counter_delamination.dm b/code/controllers/subsystem/persistence/counter_delamination.dm index 81dca300c7e1e..dba683bc929a3 100644 --- a/code/controllers/subsystem/persistence/counter_delamination.dm +++ b/code/controllers/subsystem/persistence/counter_delamination.dm @@ -8,7 +8,7 @@ rounds_since_engine_exploded = text2num(file2text(DELAMINATION_COUNT_FILEPATH)) if(fexists(DELAMINATION_HIGHSCORE_FILEPATH)) delam_highscore = text2num(file2text(DELAMINATION_HIGHSCORE_FILEPATH)) - for(var/obj/machinery/incident_display/sign as anything in GLOB.map_delamination_counters) + for(var/obj/machinery/incident_display/sign as anything in GLOB.map_incident_displays) sign.update_delam_count(rounds_since_engine_exploded, delam_highscore) /datum/controller/subsystem/persistence/proc/save_delamination_counter() diff --git a/code/controllers/subsystem/persistence/counter_tram_hits.dm b/code/controllers/subsystem/persistence/counter_tram_hits.dm index 806d5d5b5c2cc..8f1db7dd1524f 100644 --- a/code/controllers/subsystem/persistence/counter_tram_hits.dm +++ b/code/controllers/subsystem/persistence/counter_tram_hits.dm @@ -58,7 +58,7 @@ tram_hits_last_round = text2num(file2text(TRAM_COUNT_FILEPATH)) /datum/controller/subsystem/persistence/proc/save_tram_counter() - rustg_file_write("[tram_hits_this_round]", TRAM_COUNT_FILEPATH) + rustg_file_write("[tram_hits_this_round]", TRAM_COUNT_FILEPATH) #undef TRAM_COUNT_FILEPATH #undef MAX_TRAM_SAVES diff --git a/code/controllers/subsystem/persistence/engravings.dm b/code/controllers/subsystem/persistence/engravings.dm index f47fc7fbba124..ad00c7909d723 100644 --- a/code/controllers/subsystem/persistence/engravings.dm +++ b/code/controllers/subsystem/persistence/engravings.dm @@ -14,7 +14,7 @@ saved_engravings = json["entries"] if(!saved_engravings.len) - log_world("Failed to load engraved messages on map [SSmapping.config.map_name]") + log_world("Failed to load engraved messages on map [SSmapping.current_map.map_name]") return var/list/viable_turfs = get_area_turfs(/area/station/maintenance, subtypes = TRUE) + get_area_turfs(/area/station/security/prison, subtypes = TRUE) @@ -27,7 +27,7 @@ var/successfully_loaded_engravings = 0 - for(var/iteration in 1 to rand(MIN_PERSISTENT_ENGRAVINGS, MAX_PERSISTENT_ENGRAVINGS)) + for(var/iteration in 1 to min(rand(MIN_PERSISTENT_ENGRAVINGS, MAX_PERSISTENT_ENGRAVINGS), saved_engravings.len)) var/engraving = pick_n_take(saved_engravings) if(!islist(engraving)) stack_trace("something's wrong with the engraving data! one of the saved engravings wasn't a list!") @@ -42,7 +42,7 @@ successfully_loaded_engravings++ turfs_to_pick_from -= engraved_wall - log_world("Loaded [successfully_loaded_engravings] engraved messages on map [SSmapping.config.map_name]") + log_world("Loaded [successfully_loaded_engravings] engraved messages on map [SSmapping.current_map.map_name]") ///Saves all new engravings in the world. /datum/controller/subsystem/persistence/proc/save_wall_engravings() diff --git a/code/controllers/subsystem/persistence/message_bottles.dm b/code/controllers/subsystem/persistence/message_bottles.dm new file mode 100644 index 0000000000000..ce1efe5e59c5e --- /dev/null +++ b/code/controllers/subsystem/persistence/message_bottles.dm @@ -0,0 +1,54 @@ +///This proc is used to save photos, papers and cash stored inside a bottle when tossed into the ocean. +/datum/controller/subsystem/persistence/proc/save_message_bottle(obj/item/message, bottle_type = /obj/item/reagent_containers/cup/glass/bottle) + if(isnull(message_bottles_database)) + message_bottles_database = new("data/message_bottles.json") + + var/list/data = list() + data["bottle_type"] = text2path(bottle_type) + if(istype(message, /obj/item/paper)) + var/obj/item/paper/paper = message + if(!length(paper.raw_text_inputs) && !length(paper.raw_stamp_data) && !length(paper.raw_field_input_data)) + return + data["paper"] = paper.convert_to_data() + else if(istype(message, /obj/item/photo)) + var/obj/item/photo/photo = message + if(!photo.picture?.id) + return + data["photo_id"] = photo.picture.id + else if(istype(message, /obj/item/stack/spacecash)) + var/obj/item/stack/spacecash/cash = message + data["cash"] = text2path(cash.type) + data["amount"] = cash.amount + message_bottles_index++ + message_bottles_database.set_key("message-[GLOB.round_id]-[message_bottles_index]", data) + +/datum/controller/subsystem/persistence/proc/load_message_bottle(atom/loc) + if(isnull(message_bottles_database)) + message_bottles_database = new("data/message_bottles.json") + + var/list/data = message_bottles_database.pick_and_take_key() + if(!data) + var/obj/item/reagent_containers/cup/glass/bottle/bottle = new(loc) + return bottle + + var/bottle_type = text2path(data["bottle_type"]) || /obj/item/reagent_containers/cup/glass/bottle + var/obj/item/reagent_containers/cup/glass/bottle/bottle = new bottle_type(loc) + bottle.reagents.remove_all(bottle.reagents.maximum_volume) + if(data["photo_id"]) + var/obj/item/photo/old/photo = load_photo_from_disk(data["photo_id"], bottle) + bottle.message_in_a_bottle = photo + else if(data["cash"]) + var/cash_type = text2path(data["cash"]) || /obj/item/stack/spacecash/c10 + var/obj/item/stack/spacecash/cash = new cash_type(bottle, data["amount"]) + bottle.message_in_a_bottle = cash + else if(data["paper"]) + var/obj/item/paper/paper = new(bottle) + paper.write_from_data(data["paper"]) + bottle.message_in_a_bottle = paper + + bottle.update_icon(UPDATE_OVERLAYS) + +/datum/controller/subsystem/persistence/proc/save_queued_message_bottles() + for(var/item in queued_message_bottles) + save_message_bottle(item) + queued_message_bottles = null diff --git a/code/controllers/subsystem/persistent_paintings.dm b/code/controllers/subsystem/persistent_paintings.dm index af0644a9a0d52..7da30fd477239 100644 --- a/code/controllers/subsystem/persistent_paintings.dm +++ b/code/controllers/subsystem/persistent_paintings.dm @@ -1,14 +1,5 @@ #define PAINTINGS_DATA_FORMAT_VERSION 3 -// Patronage thresholds for paintings. Different cosmetic frames become available as more credits are spent on the patronage. -#define PATRONAGE_OK_FRAME (PAYCHECK_CREW * 3) // 150 credits, as of march 2022 -#define PATRONAGE_NICE_FRAME (PATRONAGE_OK_FRAME * 2.5) -#define PATRONAGE_GREAT_FRAME (PATRONAGE_NICE_FRAME * 2) -#define PATRONAGE_EXCELLENT_FRAME (PATRONAGE_GREAT_FRAME * 2) -#define PATRONAGE_AMAZING_FRAME (PATRONAGE_EXCELLENT_FRAME * 2) -#define PATRONAGE_SUPERB_FRAME (PATRONAGE_AMAZING_FRAME * 2) -#define PATRONAGE_LEGENDARY_FRAME (PATRONAGE_SUPERB_FRAME * 2) - /* { "version":2 @@ -334,11 +325,3 @@ SUBSYSTEM_DEF(persistent_paintings) cache_paintings() #undef PAINTINGS_DATA_FORMAT_VERSION -#undef PATRONAGE_OK_FRAME -#undef PATRONAGE_NICE_FRAME -#undef PATRONAGE_GREAT_FRAME -#undef PATRONAGE_EXCELLENT_FRAME -#undef PATRONAGE_AMAZING_FRAME -#undef PATRONAGE_SUPERB_FRAME -#undef PATRONAGE_LEGENDARY_FRAME - diff --git a/code/controllers/subsystem/polling.dm b/code/controllers/subsystem/polling.dm index cbbcca59fa6e2..3fdbcbf3f06a5 100644 --- a/code/controllers/subsystem/polling.dm +++ b/code/controllers/subsystem/polling.dm @@ -36,7 +36,7 @@ SUBSYSTEM_DEF(polling) * * chat_text_border_icon: Object or path to make an icon of to decorate the chat announcement. * * announce_chosen: Whether we should announce the chosen candidates in chat. This is ignored unless amount_to_pick is greater than 0. * - * Returns a list of all mobs who signed up for the poll. + * Returns a list of all mobs who signed up for the poll, OR, in the case that amount_to_pick is equal to 1 the singular mob/null if no available candidates. */ /datum/controller/subsystem/polling/proc/poll_candidates( question, @@ -130,10 +130,9 @@ SUBSYSTEM_DEF(polling) // Image to display var/image/poll_image - if(ispath(alert_pic, /atom)) - poll_image = image(alert_pic) - else if(isatom(alert_pic)) + if(ispath(alert_pic, /atom) || isatom(alert_pic)) poll_image = new /mutable_appearance(alert_pic) + poll_image.pixel_z = 0 else if(!isnull(alert_pic)) poll_image = alert_pic else @@ -156,7 +155,7 @@ SUBSYSTEM_DEF(polling) act_never = "[custom_link_style_start]\[Never For This Round\]" if(!duplicate_message_check(alert_poll)) //Only notify people once. They'll notice if there are multiple and we don't want to spam people. - SEND_SOUND(candidate_mob, 'sound/misc/notice2.ogg') + SEND_SOUND(candidate_mob, 'sound/announcer/notice/notice2.ogg') var/surrounding_icon if(chat_text_border_icon) var/image/surrounding_image @@ -174,9 +173,15 @@ SUBSYSTEM_DEF(polling) // Sleep until the time is up UNTIL(new_poll.finished) - if(!(amount_to_pick > 0)) + if(!amount_to_pick) return new_poll.signed_up + if (!length(new_poll.signed_up)) + return null for(var/pick in 1 to amount_to_pick) + // There may be less people signed up than amount_to_pick + // pick_n_take returns the default return value of null if passed an empty list, so just break in that case rather than adding null to the list. + if(!length(new_poll.signed_up)) + break new_poll.chosen_candidates += pick_n_take(new_poll.signed_up) if(announce_chosen) new_poll.announce_chosen(group) @@ -206,6 +211,12 @@ SUBSYSTEM_DEF(polling) return for(var/mob/dead/observer/ghost_player in GLOB.player_list) candidates += ghost_player + +#ifdef TESTING + for(var/mob/dude in GLOB.player_list) + candidates |= dude +#endif + return poll_candidates(question, role, check_jobban, poll_time, ignore_category, flashwindow, candidates, alert_pic, jump_target, role_name_text, custom_response_messages, start_signed_up, amount_to_pick, chat_text_border_icon, announce_chosen) /datum/controller/subsystem/polling/proc/poll_ghosts_for_target( @@ -271,7 +282,7 @@ SUBSYSTEM_DEF(polling) return FALSE if(check_jobban) - if(is_banned_from(potential_candidate.ckey, list(check_jobban, ROLE_SYNDICATE))) + if(is_banned_from(potential_candidate.ckey, list(ROLE_SYNDICATE) + check_jobban)) return FALSE return TRUE diff --git a/code/controllers/subsystem/processing/ai_idle_behaviors.dm b/code/controllers/subsystem/processing/ai_idle_behaviors.dm new file mode 100644 index 0000000000000..8875d971ad87c --- /dev/null +++ b/code/controllers/subsystem/processing/ai_idle_behaviors.dm @@ -0,0 +1,17 @@ +PROCESSING_SUBSYSTEM_DEF(idle_ai_behaviors) + name = "AI Idle Behaviors" + flags = SS_BACKGROUND + wait = 1.5 SECONDS + priority = FIRE_PRIORITY_IDLE_NPC + init_order = INIT_ORDER_AI_IDLE_CONTROLLERS //must execute only after ai behaviors are initialized + ///List of all the idle ai behaviors + var/list/idle_behaviors = list() + +/datum/controller/subsystem/processing/idle_ai_behaviors/Initialize() + setup_idle_behaviors() + return SS_INIT_SUCCESS + +/datum/controller/subsystem/processing/idle_ai_behaviors/proc/setup_idle_behaviors() + for(var/behavior_type in subtypesof(/datum/idle_behavior)) + var/datum/idle_behavior/behavior = new behavior_type + idle_behaviors[behavior_type] = behavior diff --git a/code/controllers/subsystem/processing/fishing.dm b/code/controllers/subsystem/processing/fishing.dm index da10d3d631aef..0e8c126fe9330 100644 --- a/code/controllers/subsystem/processing/fishing.dm +++ b/code/controllers/subsystem/processing/fishing.dm @@ -1,7 +1,61 @@ -/** - * So far, only used by the fishing minigame. Feel free to rename it to something like veryfastprocess - * if you need one that fires 10 times a second - */ +/// subsystem for the fishing minigame processing. PROCESSING_SUBSYSTEM_DEF(fishing) name = "Fishing" - wait = 0.1 SECONDS + flags = SS_BACKGROUND|SS_POST_FIRE_TIMING + wait = 0.05 SECONDS // If you raise it to 0.1 SECONDS, you better also modify [datum/fish_movement/move_fish()] + ///Cached fish properties so we don't have to initalize fish every time + var/list/fish_properties + ///A cache of fish that can be caught by each type of fishing lure + var/list/lure_catchables + +/datum/controller/subsystem/processing/fishing/Initialize() + ///init the properties + fish_properties = list() + for(var/fish_type in subtypesof(/obj/item/fish)) + var/obj/item/fish/fish = new fish_type(null, FALSE) + var/list/properties = list() + fish_properties[fish_type] = properties + properties[FISH_PROPERTIES_FAV_BAIT] = fish.favorite_bait.Copy() + properties[FISH_PROPERTIES_BAD_BAIT] = fish.disliked_bait.Copy() + properties[FISH_PROPERTIES_TRAITS] = fish.fish_traits.Copy() + + var/list/evo_types = fish.evolution_types?.Copy() + properties[FISH_PROPERTIES_EVOLUTIONS] = evo_types + for(var/type in evo_types) + LAZYADD(GLOB.fishes_by_fish_evolution[type], fish_type) + + var/beauty_score = "???" + switch(fish.beauty) + if(-INFINITY to FISH_BEAUTY_DISGUSTING) + beauty_score = "OH HELL NAW!" + if(FISH_BEAUTY_DISGUSTING to FISH_BEAUTY_UGLY) + beauty_score = "☆☆☆☆☆" + if(FISH_BEAUTY_UGLY to FISH_BEAUTY_BAD) + beauty_score = "★☆☆☆☆" + if(FISH_BEAUTY_BAD to FISH_BEAUTY_NULL) + beauty_score = "★★☆☆☆" + if(FISH_BEAUTY_NULL to FISH_BEAUTY_GENERIC) + beauty_score = "★★★☆☆" + if(FISH_BEAUTY_GENERIC to FISH_BEAUTY_GOOD) + beauty_score = "★★★★☆" + if(FISH_BEAUTY_GOOD to FISH_BEAUTY_GREAT) + beauty_score = "★★★★★" + if(FISH_BEAUTY_GREAT to INFINITY) + beauty_score = "★★★★★★" + + properties[FISH_PROPERTIES_BEAUTY_SCORE] = beauty_score + + qdel(fish) + + ///init the list of things lures can catch + lure_catchables = list() + var/list/fish_types = subtypesof(/obj/item/fish) + for(var/lure_type in typesof(/obj/item/fishing_lure)) + var/obj/item/fishing_lure/lure = new lure_type + lure_catchables[lure_type] = list() + for(var/obj/item/fish/fish_type as anything in fish_types) + if(lure.is_catchable_fish(fish_type, fish_properties[fish_type])) + lure_catchables[lure_type] += fish_type + qdel(lure) + + return SS_INIT_SUCCESS diff --git a/code/controllers/subsystem/processing/manufacturing.dm b/code/controllers/subsystem/processing/manufacturing.dm new file mode 100644 index 0000000000000..8bc9c6af5d57b --- /dev/null +++ b/code/controllers/subsystem/processing/manufacturing.dm @@ -0,0 +1,4 @@ +PROCESSING_SUBSYSTEM_DEF(manufacturing) + name = "Manufacturing Processing" + wait = 1 SECONDS + stat_tag = "MN" diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 45354d4bd6164..0199b7498cc5b 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -4,7 +4,7 @@ // Shifted to glob so they are generated at world start instead of risking players doing preference stuff before the subsystem inits GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( - list(/datum/quirk/item_quirk/blindness, /datum/quirk/item_quirk/nearsighted), + list(/datum/quirk/item_quirk/blindness, /datum/quirk/item_quirk/nearsighted, /datum/quirk/item_quirk/scarred_eye), list(/datum/quirk/item_quirk/blindness, /datum/quirk/touchy), list(/datum/quirk/jolly, /datum/quirk/depression, /datum/quirk/apathetic, /datum/quirk/hypersensitive), list(/datum/quirk/no_taste, /datum/quirk/vegetarian, /datum/quirk/deviant_tastes, /datum/quirk/gamer), @@ -26,6 +26,7 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( list(/datum/quirk/photophobia, /datum/quirk/nyctophobia), list(/datum/quirk/item_quirk/settler, /datum/quirk/freerunning), list(/datum/quirk/numb, /datum/quirk/selfaware), + list(/datum/quirk/empath, /datum/quirk/evil), )) GLOBAL_LIST_INIT(quirk_string_blacklist, generate_quirk_string_blacklist()) diff --git a/code/controllers/subsystem/processing/station.dm b/code/controllers/subsystem/processing/station.dm index 883ab37456d2c..c58840cfa7ad1 100644 --- a/code/controllers/subsystem/processing/station.dm +++ b/code/controllers/subsystem/processing/station.dm @@ -164,6 +164,8 @@ PROCESSING_SUBSYSTEM_DEF(station) ///Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool. /datum/controller/subsystem/processing/station/proc/setup_trait(datum/station_trait/trait_type) + if(locate(trait_type) in station_traits) + return var/datum/station_trait/trait_instance = new trait_type() station_traits += trait_instance log_game("Station Trait: [trait_instance.name] chosen for this round.") @@ -179,5 +181,4 @@ PROCESSING_SUBSYSTEM_DEF(station) var/datum/hud/new_player/observer_hud = player.hud_used if (!istype(observer_hud)) continue - observer_hud.add_station_trait_buttons() - observer_hud.show_hud(observer_hud.hud_version) + observer_hud.show_station_trait_buttons() diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index db3f9aa3a0db5..7bb83fa133d50 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -36,7 +36,7 @@ SUBSYSTEM_DEF(research) var/list/techweb_nodes_experimental = list() ///path = list(point type = value) var/list/techweb_point_items = list( - /obj/item/assembly/signaler/anomaly = list(TECHWEB_POINT_TYPE_GENERIC = 10000) + /obj/item/assembly/signaler/anomaly = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_5_POINTS) ) var/list/errored_datums = list() ///Associated list of all point types that techwebs will have and their respective 'abbreviated' name. @@ -102,6 +102,14 @@ SUBSYSTEM_DEF(research) techweb_list.last_income = world.time + if(length(techweb_list.research_queue_nodes)) + techweb_list.research_node_id(techweb_list.research_queue_nodes[1]) // Attempt to research the first node in queue if possible + + for(var/node_id in techweb_list.research_queue_nodes) + var/datum/techweb_node/node = SSresearch.techweb_node_by_id(node_id) + if(node.is_free(techweb_list)) // Automatically research all free nodes in queue if any + techweb_list.research_node(node) + /datum/controller/subsystem/research/proc/autosort_categories() for(var/i in techweb_nodes) var/datum/techweb_node/I = techweb_nodes[i] diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index ebb1f4bc44f9f..0ad0a78589221 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -140,6 +140,9 @@ SUBSYSTEM_DEF(shuttle) /// Did the supermatter start a cascade event? var/supermatter_cascade = FALSE + /// List of express consoles that are waiting for pack initialization + var/list/obj/machinery/computer/cargo/express/express_consoles = list() + /datum/controller/subsystem/shuttle/Initialize() order_number = rand(1, 9000) @@ -172,6 +175,9 @@ SUBSYSTEM_DEF(shuttle) supply_packs[pack.id] = pack + for (var/obj/machinery/computer/cargo/express/console as anything in express_consoles) + console.packin_up(TRUE) + setup_shuttles(stationary_docking_ports) has_purchase_shuttle_access = init_has_purchase_shuttle_access() @@ -275,7 +281,7 @@ SUBSYSTEM_DEF(shuttle) priority_announce( text = "Emergency shuttle uplink interference detected, shuttle call disabled while the system reinitializes. Estimated restore in [DisplayTimeText(lockout_timer, round_seconds_to = 60)].", title = "Uplink Interference", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "grey", ) @@ -289,7 +295,7 @@ SUBSYSTEM_DEF(shuttle) priority_announce( text= "Emergency shuttle uplink services are now back online.", title = "Uplink Restored", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "green", ) @@ -523,17 +529,17 @@ SUBSYSTEM_DEF(shuttle) priority_announce( text = "Departure has been postponed indefinitely pending conflict resolution.", title = "Hostile Environment Detected", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "grey", ) - if(!emergency_no_escape && (emergency.mode == SHUTTLE_STRANDED)) + if(!emergency_no_escape && (emergency.mode == SHUTTLE_STRANDED || emergency.mode == SHUTTLE_DOCKED)) emergency.mode = SHUTTLE_DOCKED emergency.setTimer(emergency_dock_time) priority_announce( text = "You have [DisplayTimeText(emergency_dock_time)] to board the emergency shuttle.", title = "Hostile Environment Resolved", - sound = 'sound/misc/announce_dig.ogg', + sound = 'sound/announcer/announcement/announce_dig.ogg', sender_override = "Emergency Shuttle Uplink Alert", color_override = "green", ) @@ -1036,7 +1042,7 @@ SUBSYSTEM_DEF(shuttle) return data -/datum/controller/subsystem/shuttle/ui_act(action, params) +/datum/controller/subsystem/shuttle/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/controllers/subsystem/spatial_gridmap.dm b/code/controllers/subsystem/spatial_gridmap.dm index 76aa484bf92ce..65bcb0ec365b0 100644 --- a/code/controllers/subsystem/spatial_gridmap.dm +++ b/code/controllers/subsystem/spatial_gridmap.dm @@ -412,7 +412,7 @@ SUBSYSTEM_DEF(spatial_grid) return intersecting_cell /** - * find the spatial map cell that target used to belong to, then remove the target (and sometimes it's important_recusive_contents) from it. + * find the spatial map cell that target used to belong to, then remove the target (and sometimes its important_recusive_contents) from it. * make sure to provide the turf old_target used to be "in" * * * old_target - the thing we want to remove from the spatial grid cell diff --git a/code/controllers/subsystem/sprite_accessories.dm b/code/controllers/subsystem/sprite_accessories.dm index f381df80df6da..2d121daa7a0a5 100644 --- a/code/controllers/subsystem/sprite_accessories.dm +++ b/code/controllers/subsystem/sprite_accessories.dm @@ -40,13 +40,13 @@ SUBSYSTEM_DEF(accessories) // just 'accessories' for brevity var/list/horns_list var/list/frills_list var/list/spines_list - var/list/legs_list var/list/tail_spines_list //Mutant Human bits - var/list/tails_list_human + var/list/tails_list_felinid var/list/tails_list_lizard var/list/tails_list_monkey + var/list/tails_list_fish var/list/ears_list var/list/wings_list var/list/wings_open_list @@ -87,26 +87,27 @@ SUBSYSTEM_DEF(accessories) // just 'accessories' for brevity socks_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/socks)[DEFAULT_SPRITE_LIST] - lizard_markings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/lizard_markings)[DEFAULT_SPRITE_LIST] - tails_list_human = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, add_blank = TRUE)[DEFAULT_SPRITE_LIST] - tails_list_lizard = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, add_blank = TRUE)[DEFAULT_SPRITE_LIST] - tails_list_monkey = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/monkey, add_blank = TRUE)[DEFAULT_SPRITE_LIST] + lizard_markings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/lizard_markings, add_blank = TRUE)[DEFAULT_SPRITE_LIST] + tails_list_felinid = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/felinid, add_blank = TRUE)[DEFAULT_SPRITE_LIST] + tails_list_lizard = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard)[DEFAULT_SPRITE_LIST] + tails_list_monkey = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/monkey)[DEFAULT_SPRITE_LIST] + //tails fo fish organ infusions, not for prefs. + tails_list_fish = init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/fish)[DEFAULT_SPRITE_LIST] snouts_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts)[DEFAULT_SPRITE_LIST] - horns_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/horns)[DEFAULT_SPRITE_LIST] - ears_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/ears)[DEFAULT_SPRITE_LIST] - wings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/wings)[DEFAULT_SPRITE_LIST] + horns_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, add_blank = TRUE)[DEFAULT_SPRITE_LIST] + ears_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, add_blank = TRUE)[DEFAULT_SPRITE_LIST] + wings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, add_blank = TRUE)[DEFAULT_SPRITE_LIST] wings_open_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open)[DEFAULT_SPRITE_LIST] - frills_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/frills)[DEFAULT_SPRITE_LIST] - spines_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/spines)[DEFAULT_SPRITE_LIST] - tail_spines_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/tail_spines)[DEFAULT_SPRITE_LIST] - legs_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/legs)[DEFAULT_SPRITE_LIST] + frills_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, add_blank = TRUE)[DEFAULT_SPRITE_LIST] + spines_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, add_blank = TRUE)[DEFAULT_SPRITE_LIST] + tail_spines_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/tail_spines, add_blank = TRUE)[DEFAULT_SPRITE_LIST] caps_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/caps)[DEFAULT_SPRITE_LIST] moth_wings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings)[DEFAULT_SPRITE_LIST] moth_antennae_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_antennae)[DEFAULT_SPRITE_LIST] - moth_markings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings)[DEFAULT_SPRITE_LIST] + moth_markings_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, add_blank = TRUE)[DEFAULT_SPRITE_LIST] pod_hair_list = init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_hair)[DEFAULT_SPRITE_LIST] -/// This proc just intializes all /datum/sprite_accessory/hair_gradient into an list indexed by gradient-style name +/// This proc just initializes all /datum/sprite_accessory/hair_gradient into an list indexed by gradient-style name /datum/controller/subsystem/accessories/proc/init_hair_gradients() hair_gradients_list = list() facial_hair_gradients_list = list() diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 020598a573b67..cf158586ce497 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -22,9 +22,9 @@ SUBSYSTEM_DEF(statpanels) /datum/controller/subsystem/statpanels/fire(resumed = FALSE) if (!resumed) num_fires++ - var/datum/map_config/cached = SSmapping.next_map_config + var/datum/map_config/cached = SSmap_vote.next_map_config global_data = list( - "Map: [SSmapping.config?.map_name || "Loading..."]", + "Map: [SSmapping.current_map?.map_name || "Loading..."]", cached ? "Next Map: [cached.map_name]" : null, "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]", diff --git a/code/controllers/subsystem/stock_market.dm b/code/controllers/subsystem/stock_market.dm index e486776a082c9..7d0e0ea9262ee 100644 --- a/code/controllers/subsystem/stock_market.dm +++ b/code/controllers/subsystem/stock_market.dm @@ -9,7 +9,7 @@ SUBSYSTEM_DEF(stock_market) var/list/materials_prices = list() /// Associated list of materials alongside their market trends. 1 is up, 0 is stable, -1 is down. var/list/materials_trends = list() - /// Associated list of materials alongside the life of it's current trend. After it's life is up, it will change to a new trend. + /// Associated list of materials alongside the life of its current trend. After its life is up, it will change to a new trend. var/list/materials_trend_life = list() /// Associated list of materials alongside their available quantity. This is used to determine how much of a material is available to buy, and how much buying and selling affects the price. var/list/materials_quantity = list() diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm index 6990a142e4e2d..da403db9e4559 100644 --- a/code/controllers/subsystem/throwing.dm +++ b/code/controllers/subsystem/throwing.dm @@ -53,7 +53,7 @@ SUBSYSTEM_DEF(throwing) var/target_zone ///The initial direction of the thrower of the thrownthing for building the trajectory of the throw. var/init_dir - ///The maximum number of turfs that the thrownthing will travel to reach it's target. + ///The maximum number of turfs that the thrownthing will travel to reach its target. var/maxrange ///Turfs to travel per tick var/speed @@ -202,6 +202,11 @@ SUBSYSTEM_DEF(throwing) if(!thrownthing) return thrownthing.throwing = null + var/drift_force = speed + if (isitem(thrownthing)) + var/obj/item/thrownitem = thrownthing + drift_force *= WEIGHT_TO_NEWTONS(thrownitem.w_class) + if (!hit) for (var/atom/movable/obstacle as anything in get_turf(thrownthing)) //looking for our target on the turf we land on. if (obstacle == target) @@ -214,9 +219,9 @@ SUBSYSTEM_DEF(throwing) thrownthing.throw_impact(get_turf(thrownthing), src) // we haven't hit something yet and we still must, let's hit the ground. if(QDELETED(thrownthing)) //throw_impact can delete things, such as glasses smashing return //deletion should already be handled by on_thrownthing_qdel() - thrownthing.newtonian_move(init_dir) + thrownthing.newtonian_move(delta_to_angle(dist_x, dist_y), drift_force = drift_force) else - thrownthing.newtonian_move(init_dir) + thrownthing.newtonian_move(delta_to_angle(dist_x, dist_y), drift_force = drift_force) if(target) thrownthing.throw_impact(target, src) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index efca8dd19b5cc..aaca3ef1d574c 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(ticker) var/list/datum/mind/minds = list() //The characters in the game. Used for objective tracking. - var/delay_end = FALSE //if set true, the round will not restart on it's own + var/delay_end = FALSE //if set true, the round will not restart on its own var/admin_delay_notice = "" //a message to display to anyone who tries to restart the world after a delay var/ready_for_reboot = FALSE //all roundend preparation done with, all that's left is reboot @@ -93,12 +93,12 @@ SUBSYSTEM_DEF(ticker) switch(L.len) if(3) //rare+MAP+sound.ogg or MAP+rare.sound.ogg -- Rare Map-specific sounds if(use_rare_music) - if(L[1] == "rare" && L[2] == SSmapping.config.map_name) + if(L[1] == "rare" && L[2] == SSmapping.current_map.map_name) music += S - else if(L[2] == "rare" && L[1] == SSmapping.config.map_name) + else if(L[2] == "rare" && L[1] == SSmapping.current_map.map_name) music += S if(2) //rare+sound.ogg or MAP+sound.ogg -- Rare sounds or Map-specific sounds - if((use_rare_music && L[1] == "rare") || (L[1] == SSmapping.config.map_name)) + if((use_rare_music && L[1] == "rare") || (L[1] == SSmapping.current_map.map_name)) music += S if(1) //sound.ogg -- common sound if(L[1] == "exclude") @@ -157,7 +157,7 @@ SUBSYSTEM_DEF(ticker) for(var/client/C in GLOB.clients) window_flash(C, ignorepref = TRUE) //let them know lobby has opened up. to_chat(world, span_notice("Welcome to [station_name()]!")) - send2chat(new /datum/tgs_message_content("New round starting on [SSmapping.config.map_name]!"), CONFIG_GET(string/channel_announce_new_game)) + send2chat(new /datum/tgs_message_content("New round starting on [SSmapping.current_map.map_name]!"), CONFIG_GET(string/channel_announce_new_game)) current_state = GAME_STATE_PREGAME SEND_SIGNAL(src, COMSIG_TICKER_ENTER_PREGAME) @@ -211,7 +211,6 @@ SUBSYSTEM_DEF(ticker) toggle_ooc(TRUE) // Turn it on toggle_dooc(TRUE) declare_completion(force_ending) - check_maprotate() Master.SetRunLevel(RUNLEVEL_POSTGAME) /// Checks if the round should be ending, called every ticker tick @@ -236,14 +235,14 @@ SUBSYSTEM_DEF(ticker) can_continue = SSdynamic.pre_setup() //Choose antagonists CHECK_TICK SEND_GLOBAL_SIGNAL(COMSIG_GLOB_PRE_JOBS_ASSIGNED, src) - can_continue = can_continue && SSjob.DivideOccupations() //Distribute jobs + can_continue = can_continue && SSjob.divide_occupations() //Distribute jobs CHECK_TICK if(!GLOB.Debug2) if(!can_continue) log_game("Game failed pre_setup") to_chat(world, "Error setting up game. Reverting to pre-game lobby.") - SSjob.ResetOccupations() + SSjob.reset_occupations() return FALSE else message_admins(span_notice("DEBUG: Bypassing prestart checks...")) @@ -416,7 +415,7 @@ SUBSYSTEM_DEF(ticker) continue var/datum/job/player_assigned_role = new_player_living.mind.assigned_role if(player_assigned_role.job_flags & JOB_EQUIP_RANK) - SSjob.EquipRank(new_player_living, player_assigned_role, new_player_mob.client) + SSjob.equip_rank(new_player_living, player_assigned_role, new_player_mob.client) player_assigned_role.after_roundstart_spawn(new_player_living, new_player_mob.client) if(picked_spare_id_candidate == new_player_mob) captainless = FALSE @@ -470,8 +469,8 @@ SUBSYSTEM_DEF(ticker) qdel(player) ADD_TRAIT(living, TRAIT_NO_TRANSFORM, SS_TICKER_TRAIT) if(living.client) - var/atom/movable/screen/splash/S = new(null, living.client, TRUE) - S.Fade(TRUE) + var/atom/movable/screen/splash/fade_out = new(null, living.client, TRUE) + fade_out.Fade(TRUE) living.client.init_verbs() livings += living if(livings.len) @@ -489,7 +488,7 @@ SUBSYSTEM_DEF(ticker) list_clear_nulls(queued_players) for (var/mob/dead/new_player/new_player in queued_players) to_chat(new_player, span_userdanger("The alive players limit has been released!
[html_encode(">>Join Game<<")]")) - SEND_SOUND(new_player, sound('sound/misc/notice1.ogg')) + SEND_SOUND(new_player, sound('sound/announcer/notice/notice1.ogg')) GLOB.latejoin_menu.ui_interact(new_player) queued_players.len = 0 queue_delay = 0 @@ -504,7 +503,7 @@ SUBSYSTEM_DEF(ticker) if(living_player_count() < hard_popcap) if(next_in_line?.client) to_chat(next_in_line, span_userdanger("A slot has opened! You have approximately 20 seconds to join. \>\>Join Game\<\<")) - SEND_SOUND(next_in_line, sound('sound/misc/notice1.ogg')) + SEND_SOUND(next_in_line, sound('sound/announcer/notice/notice1.ogg')) next_in_line.ui_interact(next_in_line) return queued_players -= next_in_line //Client disconnected, remove he @@ -514,13 +513,6 @@ SUBSYSTEM_DEF(ticker) queued_players -= next_in_line queue_delay = 0 -/datum/controller/subsystem/ticker/proc/check_maprotate() - if(!CONFIG_GET(flag/maprotation)) - return - if(world.time - SSticker.round_start_time < 10 MINUTES) //Not forcing map rotation for very short rounds. - return - INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping/, maprotate)) - /datum/controller/subsystem/ticker/proc/HasRoundStarted() return current_state >= GAME_STATE_PLAYING diff --git a/code/controllers/subsystem/time_track.dm b/code/controllers/subsystem/time_track.dm index aaaf5520e0fc3..4c706fdaf6db3 100644 --- a/code/controllers/subsystem/time_track.dm +++ b/code/controllers/subsystem/time_track.dm @@ -42,7 +42,7 @@ SUBSYSTEM_DEF(time_track) ) /datum/controller/subsystem/time_track/Initialize() - GLOB.perf_log = "[GLOB.log_directory]/perf-[GLOB.round_id ? GLOB.round_id : "NULL"]-[SSmapping.config?.map_name].csv" + GLOB.perf_log = "[GLOB.log_directory]/perf-[GLOB.round_id ? GLOB.round_id : "NULL"]-[SSmapping.current_map.map_name].csv" world.Profile(PROFILE_RESTART, type = "sendmaps") //Need to do the sendmaps stuff in its own file, since it works different then everything else var/list/sendmaps_headers = list() @@ -108,7 +108,7 @@ SUBSYSTEM_DEF(time_track) text2file(sendmaps_json,"bad_sendmaps.json") can_fire = FALSE return - var/send_maps_sort = send_maps_data.Copy() //Doing it like this guarentees us a properly sorted list + var/send_maps_sort = send_maps_data.Copy() //Doing it like this guarantees us a properly sorted list for(var/list/packet in send_maps_data) send_maps_sort[packet["name"]] = packet diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index bc894de9beee8..c314fa7d38ba7 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -524,7 +524,7 @@ SUBSYSTEM_DEF(timer) 2 = timeToRun, 3 = wait, 4 = flags, - 5 = callBack, /* Safe to hold this directly becasue it's never del'd */ + 5 = callBack, /* Safe to hold this directly because it's never del'd */ 6 = "[callBack.object]", 7 = text_ref(callBack.object), 8 = getcallingtype(), @@ -539,7 +539,7 @@ SUBSYSTEM_DEF(timer) 2 = timeToRun, 3 = wait, 4 = flags, - 5 = callBack, /* Safe to hold this directly becasue it's never del'd */ + 5 = callBack, /* Safe to hold this directly because it's never del'd */ 6 = "[callBack.object]", 7 = getcallingtype(), 8 = callBack.delegate, @@ -645,7 +645,7 @@ SUBSYSTEM_DEF(timer) hash_timer.hash = null // but keep it from accidentally deleting us else if (flags & TIMER_OVERRIDE) - hash_timer.hash = null // no need having it delete it's hash if we are going to replace it + hash_timer.hash = null // no need having it delete its hash if we are going to replace it qdel(hash_timer) else if (hash_timer.flags & TIMER_STOPPABLE) diff --git a/code/controllers/subsystem/title.dm b/code/controllers/subsystem/title.dm index 1f40dd921dddf..8df9349ff0398 100644 --- a/code/controllers/subsystem/title.dm +++ b/code/controllers/subsystem/title.dm @@ -25,7 +25,7 @@ SUBSYSTEM_DEF(title) for(var/S in provisional_title_screens) var/list/L = splittext(S,"+") - if((L.len == 1 && (L[1] != "exclude" && L[1] != "blank.png")) || (L.len > 1 && ((use_rare_screens && LOWER_TEXT(L[1]) == "rare") || (LOWER_TEXT(L[1]) == LOWER_TEXT(SSmapping.config.map_name))))) + if((L.len == 1 && (L[1] != "exclude" && L[1] != "blank.png")) || (L.len > 1 && ((use_rare_screens && LOWER_TEXT(L[1]) == "rare") || (LOWER_TEXT(L[1]) == LOWER_TEXT(SSmapping.current_map.map_name))))) title_screens += S if(length(title_screens)) @@ -60,7 +60,7 @@ SUBSYSTEM_DEF(title) for(var/thing in GLOB.clients) if(!thing) continue - var/atom/movable/screen/splash/S = new(thing, FALSE) + var/atom/movable/screen/splash/S = new(null, thing, FALSE) S.Fade(FALSE,FALSE) /datum/controller/subsystem/title/Recover() diff --git a/code/controllers/subsystem/transport.dm b/code/controllers/subsystem/transport.dm index 2f870eb674035..928b6a03d58f2 100644 --- a/code/controllers/subsystem/transport.dm +++ b/code/controllers/subsystem/transport.dm @@ -98,7 +98,7 @@ PROCESSING_SUBSYSTEM_DEF(transport) // We've made it this far, tram is physically fine so let's trip plan // This is based on the destination nav beacon, the logical location // If Something Happens and the location the controller thinks it's at - // gets out of sync with it's actual physical location, it can be reset + // gets out of sync with its actual physical location, it can be reset // Since players can set the platform ID themselves, make sure it's a valid platform we're aware of var/network = LAZYACCESS(nav_beacons, transport_id) diff --git a/code/controllers/subsystem/unplanned_ai_idle_controllers.dm b/code/controllers/subsystem/unplanned_ai_idle_controllers.dm new file mode 100644 index 0000000000000..6385239e18c70 --- /dev/null +++ b/code/controllers/subsystem/unplanned_ai_idle_controllers.dm @@ -0,0 +1,4 @@ +UNPLANNED_CONTROLLER_SUBSYSTEM_DEF(idle_unplanned_controllers) + name = "Unplanned AI Idle Controllers" + wait = 2.5 SECONDS + target_status = AI_STATUS_IDLE diff --git a/code/controllers/subsystem/unplanned_controllers.dm b/code/controllers/subsystem/unplanned_controllers.dm new file mode 100644 index 0000000000000..3fb5f46dd069d --- /dev/null +++ b/code/controllers/subsystem/unplanned_controllers.dm @@ -0,0 +1,18 @@ +/// Handles making mobs perform lightweight "idle" behaviors such as wandering around when they have nothing planned +SUBSYSTEM_DEF(unplanned_controllers) + name = "Unplanned AI Controllers" + flags = SS_POST_FIRE_TIMING|SS_BACKGROUND|SS_NO_INIT + priority = FIRE_PRIORITY_UNPLANNED_NPC + init_order = INIT_ORDER_AI_CONTROLLERS + wait = 0.25 SECONDS + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + ///what ai status are we interested in + var/target_status = AI_STATUS_ON + +/datum/controller/subsystem/unplanned_controllers/stat_entry(msg) + msg = "Planning AIs:[length(GLOB.unplanned_controllers[target_status])]" + return ..() + +/datum/controller/subsystem/unplanned_controllers/fire(resumed) + for(var/datum/ai_controller/ai_controller as anything in GLOB.unplanned_controllers[target_status]) + ai_controller.idle_behavior.perform_idle_behavior(wait * 0.1, ai_controller) diff --git a/code/controllers/subsystem/verb_manager.dm b/code/controllers/subsystem/verb_manager.dm index 337386cff8e0b..f09c050964154 100644 --- a/code/controllers/subsystem/verb_manager.dm +++ b/code/controllers/subsystem/verb_manager.dm @@ -8,15 +8,15 @@ * plus TICK_BYOND_RESERVE from the tick and uses up to that amount of time (minus the percentage of the tick used by the time it executes subsystems) * on subsystems running cool things like atmospherics or Life or SSInput or whatever. * - * Without this subsystem, verbs are likely to cause overtime if the MC uses all of the time it has alloted for itself in the tick, and SendMaps + * Without this subsystem, verbs are likely to cause overtime if the MC uses all of the time it has allotted for itself in the tick, and SendMaps * uses as much as its expected to, and an expensive verb ends up executing that tick. This is because the MC is completely blind to the cost of * verbs, it can't account for it at all. The only chance for verbs to not cause overtime in a tick where the MC used as much of the tick - * as it alloted itself and where SendMaps costed as much as it was expected to is if the verb(s) take less than TICK_BYOND_RESERVE percent of - * the tick, which isnt much. Not to mention if SendMaps takes more than 30% of the tick and the MC forces itself to take at least 70% of the + * as it allotted itself and where SendMaps costed as much as it was expected to is if the verb(s) take less than TICK_BYOND_RESERVE percent of + * the tick, which isn't much. Not to mention if SendMaps takes more than 30% of the tick and the MC forces itself to take at least 70% of the * normal tick duration which causes ticks to naturally overrun even in the absence of verbs. * * With this subsystem, the MC can account for the cost of verbs and thus stop major overruns of ticks. This means that the most important subsystems - * like SSinput can start at the same time they were supposed to, leading to a smoother experience for the player since ticks arent riddled with + * like SSinput can start at the same time they were supposed to, leading to a smoother experience for the player since ticks aren't riddled with * minor hangs over and over again. */ SUBSYSTEM_DEF(verb_manager) @@ -36,17 +36,17 @@ SUBSYSTEM_DEF(verb_manager) ///if TRUE we treat usr's with holders just like usr's without holders. otherwise they always execute immediately var/can_queue_admin_verbs = FALSE - ///if this is true all verbs immediately execute and dont queue. in case the mc is fucked or something + ///if this is true all verbs immediately execute and don't queue. in case the mc is fucked or something var/FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs = FALSE ///used for subtypes to determine if they use their own stats for the stat entry var/use_default_stats = TRUE ///if TRUE this will... message admins every time a verb is queued to this subsystem for the next tick with stats. - ///for obvious reasons dont make this be TRUE on the code level this is for admins to turn on + ///for obvious reasons don't make this be TRUE on the code level this is for admins to turn on var/message_admins_on_queue = FALSE - ///always queue if possible. overides can_queue_admin_verbs but not FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs + ///always queue if possible. overrides can_queue_admin_verbs but not FOR_ADMINS_IF_VERBS_FUCKED_immediately_execute_all_verbs var/always_queue = FALSE /** @@ -87,7 +87,7 @@ SUBSYSTEM_DEF(verb_manager) #else if(QDELETED(usr) || isnull(usr.client)) - stack_trace("_queue_verb() returned false because it wasnt called from player input!") + stack_trace("_queue_verb() returned false because it wasn't called from player input!") return FALSE #endif diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index b7c26acf375ee..d0e642bd3aa2d 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -101,24 +101,28 @@ SUBSYSTEM_DEF(vote) // stringify the winners to prevent potential unimplemented serialization errors. // Perhaps this can be removed in the future and we assert that vote choices must implement serialization. - var/final_winner_string = final_winner && "[final_winner]" + var/final_winner_string = (final_winner && "[final_winner]") || "NO WINNER" var/list/winners_string = list() - for(var/winner in winners) - winners_string += "[winner]" + + if(length(winners)) + for(var/winner in winners) + winners_string += "[winner]" + else + winners_string = list("NO WINNER") var/list/vote_log_data = list( + "type" = "[current_vote.type]", "choices" = vote_choice_data, "total" = total_votes, "winners" = winners_string, "final_winner" = final_winner_string, ) - var/log_string = replacetext(to_display, "\n", "\\n") // 'keep' the newlines, but dont actually print them as newlines - log_vote(log_string, vote_log_data) - to_chat(world, span_infoplain(vote_font("\n[to_display]"))) + log_vote("vote finalized", vote_log_data) + if(to_display) + to_chat(world, span_infoplain(vote_font("\n[to_display]"))) // Finally, doing any effects on vote completion - if (final_winner) // if no one voted, or the vote cannot be won, final_winner will be null - current_vote.finalize_vote(final_winner) + current_vote.finalize_vote(final_winner) /** * One selection per person, and the selection with the most votes wins. @@ -274,6 +278,15 @@ SUBSYSTEM_DEF(vote) return FALSE return TRUE + +/datum/controller/subsystem/vote/proc/toggle_dead_voting(mob/toggle_initiator) + var/switch_deadvote_config = !CONFIG_GET(flag/no_dead_vote) + CONFIG_SET(flag/no_dead_vote, switch_deadvote_config) + var/text_verb = !switch_deadvote_config ? "enabled" : "disabled" + log_admin("[key_name(toggle_initiator)] [text_verb] Dead Vote.") + message_admins("[key_name_admin(toggle_initiator)] [text_verb] Dead Vote.") + SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Dead Vote", text_verb)) + /datum/controller/subsystem/vote/ui_state() return GLOB.always_state @@ -293,6 +306,7 @@ SUBSYSTEM_DEF(vote) data["user"] = list( "ckey" = user.client?.ckey, + "isGhost" = CONFIG_GET(flag/no_dead_vote) && user.stat == DEAD && !user.client?.holder, "isLowerAdmin" = is_lower_admin, "isUpperAdmin" = is_upper_admin, // What the current user has selected in any ongoing votes. @@ -346,7 +360,7 @@ SUBSYSTEM_DEF(vote) data["VoteCD"] = CONFIG_GET(number/vote_delay) return data -/datum/controller/subsystem/vote/ui_act(action, params) +/datum/controller/subsystem/vote/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -377,6 +391,15 @@ SUBSYSTEM_DEF(vote) end_vote() return TRUE + if("toggleDeadVote") + if(!check_rights_for(voter.client, R_ADMIN)) + message_admins("[key_name(voter)] tried to toggle vote abillity for ghosts while having improper rights, \ + this is potentially a malicious exploit and worth noting.") + return + + toggle_dead_voting(voter) + return TRUE + if("toggleVote") var/datum/vote/selected = possible_votes[params["voteName"]] if(!istype(selected)) diff --git a/code/datums/achievements/_awards.dm b/code/datums/achievements/_awards.dm index d99659ea780f9..e7d18f98124ac 100644 --- a/code/datums/achievements/_awards.dm +++ b/code/datums/achievements/_awards.dm @@ -67,7 +67,7 @@ /datum/award/proc/parse_value(raw_value) return default_value -///Can be overriden for achievement specific events +///Can be overridden for achievement specific events /datum/award/proc/on_unlock(mob/user) return diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm index 1d7b9da3a015a..4e37400d51d69 100644 --- a/code/datums/achievements/misc_achievements.dm +++ b/code/datums/achievements/misc_achievements.dm @@ -232,3 +232,15 @@ desc = "Successfully carry a boulder from Lavaland all the way to Centcom, without ever dropping it. We must imagine you're happy to unlock this." database_id = MEDAL_SISYPHUS icon_state = "sisyphus" + +/datum/award/achievement/misc/cigarettes + name = "Unhealthy Snacks" + desc = "You were curious to taste it. And then another. You must have more!" + database_id = MEDAL_CIGARETTES + icon_state = "cigarettes" + +/datum/award/achievement/misc/sharkdragon + name = "You're What You Eat" + desc = "Nutritionists often recommend a balanced and varied diet. However that clearly isn't the case for some creatures." + database_id = MEDAL_SHARKDRAGON + icon_state = "dragon_plus_fish" diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm index 39e69ba9fa8fd..2f297f480ae66 100644 --- a/code/datums/actions/action.dm +++ b/code/datums/actions/action.dm @@ -52,6 +52,8 @@ /// Toggles whether this action is usable or not var/action_disabled = FALSE + /// Can this action be shared with our rider? + var/can_be_shared = TRUE /datum/action/New(Target) link_to(Target) @@ -112,7 +114,8 @@ RegisterSignal(owner, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(update_status_on_signal)) if(check_flags & AB_CHECK_PHASED) RegisterSignals(owner, list(SIGNAL_ADDTRAIT(TRAIT_MAGICALLY_PHASED), SIGNAL_REMOVETRAIT(TRAIT_MAGICALLY_PHASED)), PROC_REF(update_status_on_signal)) - + if(check_flags & AB_CHECK_OPEN_TURF) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(update_status_on_signal)) if(owner_has_control) RegisterSignal(grant_to, COMSIG_MOB_KEYDOWN, PROC_REF(keydown), override = TRUE) GiveAction(grant_to) @@ -139,6 +142,7 @@ UnregisterSignal(owner, list( COMSIG_LIVING_SET_BODY_POSITION, COMSIG_MOB_STATCHANGE, + COMSIG_MOVABLE_MOVED, SIGNAL_ADDTRAIT(TRAIT_HANDS_BLOCKED), SIGNAL_ADDTRAIT(TRAIT_IMMOBILIZED), SIGNAL_ADDTRAIT(TRAIT_INCAPACITATED), @@ -198,6 +202,10 @@ if (feedback) owner.balloon_alert(owner, "incorporeal!") return FALSE + if((check_flags & AB_CHECK_OPEN_TURF) && !isopenturf(owner.loc)) + if (feedback) + owner.balloon_alert(owner, "not enough space!") + return FALSE return TRUE /// Builds / updates all buttons we have shared or given out diff --git a/code/datums/actions/items/reload_rebar.dm b/code/datums/actions/items/reload_rebar.dm new file mode 100644 index 0000000000000..a29b02f6b227e --- /dev/null +++ b/code/datums/actions/items/reload_rebar.dm @@ -0,0 +1,5 @@ +/datum/action/item_action/reload_rebar + name = "Reload Rebar" + desc = "Reloads a held crossbow" + button_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "bolts" diff --git a/code/datums/actions/mobs/blood_warp.dm b/code/datums/actions/mobs/blood_warp.dm index 4b070eebfe781..d65c941f5df4a 100644 --- a/code/datums/actions/mobs/blood_warp.dm +++ b/code/datums/actions/mobs/blood_warp.dm @@ -21,14 +21,21 @@ /datum/action/cooldown/mob_cooldown/blood_warp/proc/blood_warp(atom/target) if(owner.Adjacent(target)) return FALSE - var/list/can_jaunt = get_bloodcrawlable_pools(get_turf(owner), 1) + + var/turf/target_turf = get_turf(target) + var/turf/owner_turf = get_turf(owner) + + if (target_turf.z != owner_turf.z) + return FALSE + + var/list/can_jaunt = get_bloodcrawlable_pools(owner_turf, 1) if(!can_jaunt.len) return FALSE var/chosen_pick_range = get_pick_range() - var/list/pools = get_bloodcrawlable_pools(get_turf(target), chosen_pick_range) + var/list/pools = get_bloodcrawlable_pools(target_turf, chosen_pick_range) if(remove_inner_pools) - var/list/pools_to_remove = get_bloodcrawlable_pools(get_turf(target), chosen_pick_range - 1) + var/list/pools_to_remove = get_bloodcrawlable_pools(target_turf, chosen_pick_range - 1) pools -= pools_to_remove if(!pools.len) return FALSE @@ -42,19 +49,19 @@ qdel(DA) var/obj/effect/decal/cleanable/blood/found_bloodpool - pools = get_bloodcrawlable_pools(get_turf(target), chosen_pick_range) + pools = get_bloodcrawlable_pools(target_turf, chosen_pick_range) if(remove_inner_pools) - var/list/pools_to_remove = get_bloodcrawlable_pools(get_turf(target), chosen_pick_range - 1) + var/list/pools_to_remove = get_bloodcrawlable_pools(target_turf, chosen_pick_range - 1) pools -= pools_to_remove if(pools.len) shuffle_inplace(pools) found_bloodpool = pick(pools) if(found_bloodpool) - owner.visible_message("[owner] sinks into the blood...") - playsound(get_turf(owner), 'sound/magic/enter_blood.ogg', 100, TRUE, -1) + owner.visible_message(span_danger("[owner] sinks into the blood...")) + playsound(owner_turf, 'sound/effects/magic/enter_blood.ogg', 100, TRUE, -1) owner.forceMove(get_turf(found_bloodpool)) - playsound(get_turf(owner), 'sound/magic/exit_blood.ogg', 100, TRUE, -1) - owner.visible_message("And springs back out!") + playsound(get_turf(owner), 'sound/effects/magic/exit_blood.ogg', 100, TRUE, -1) + owner.visible_message(span_danger("And springs back out!")) SEND_SIGNAL(owner, COMSIG_BLOOD_WARP) return TRUE return FALSE diff --git a/code/datums/actions/mobs/charge.dm b/code/datums/actions/mobs/charge.dm index 43fcbd57f69ba..43cbb05c939ff 100644 --- a/code/datums/actions/mobs/charge.dm +++ b/code/datums/actions/mobs/charge.dm @@ -227,14 +227,19 @@ id = "tired_post_charge" duration = 1 SECONDS alert_type = null + var/tired_movespeed = /datum/movespeed_modifier/status_effect/tired_post_charge /datum/status_effect/tired_post_charge/on_apply() . = ..() - owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/tired_post_charge) + owner.add_movespeed_modifier(tired_movespeed) /datum/status_effect/tired_post_charge/on_remove() . = ..() - owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/tired_post_charge) + owner.remove_movespeed_modifier(tired_movespeed) + +/datum/status_effect/tired_post_charge/lesser + id = "tired_post_charge_easy" + tired_movespeed = /datum/movespeed_modifier/status_effect/tired_post_charge/lesser /datum/action/cooldown/mob_cooldown/charge/triple_charge name = "Triple Charge" diff --git a/code/datums/actions/mobs/chase_target.dm b/code/datums/actions/mobs/chase_target.dm index c88285dd636be..c64293a863b3e 100644 --- a/code/datums/actions/mobs/chase_target.dm +++ b/code/datums/actions/mobs/chase_target.dm @@ -31,7 +31,7 @@ /// This is the proc that actually does the throwing. Charge only adds a timer for this. /datum/action/cooldown/mob_cooldown/chase_target/proc/throw_thyself() - playsound(owner, 'sound/weapons/sonic_jackhammer.ogg', 50, TRUE) + playsound(owner, 'sound/items/weapons/sonic_jackhammer.ogg', 50, TRUE) owner.throw_at(target, 7, 1.1, owner, FALSE, FALSE, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), owner, 'sound/effects/meteorimpact.ogg', 50 * size, TRUE, 2), INFINITY) /// Resets the charge buffs. diff --git a/code/datums/actions/mobs/create_legion_turrets.dm b/code/datums/actions/mobs/create_legion_turrets.dm index 5fb668ebc36d1..71427893f43da 100644 --- a/code/datums/actions/mobs/create_legion_turrets.dm +++ b/code/datums/actions/mobs/create_legion_turrets.dm @@ -18,7 +18,7 @@ /// Creates new legion turrets around the owner between the minimum and maximum /datum/action/cooldown/mob_cooldown/create_legion_turrets/proc/create(atom/target) - playsound(owner, 'sound/magic/RATTLEMEBONES.ogg', 100, TRUE) + playsound(owner, 'sound/effects/magic/RATTLEMEBONES.ogg', 100, TRUE) var/list/possible_locations = list() for(var/turf/checked_turf in oview(owner, 4)) //Only place the turrets on open turfs if(checked_turf.is_blocked_turf()) @@ -80,7 +80,7 @@ var/angle = get_angle(our_turf, target_turf) var/datum/point/vector/V = new(our_turf.x, our_turf.y, our_turf.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) + playsound(src, 'sound/machines/airlock/airlockopen.ogg', 100, TRUE) addtimer(CALLBACK(src, PROC_REF(fire_beam), angle), shot_delay) /// Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction. @@ -88,13 +88,13 @@ var/obj/projectile/ouchie = new projectile_type(loc) ouchie.firer = src ouchie.fire(angle) - playsound(src, 'sound/effects/bin_close.ogg', 100, TRUE) + playsound(src, 'sound/effects/bin/bin_close.ogg', 100, TRUE) QDEL_IN(src, 0.5 SECONDS) /// Used for the legion turret. /obj/projectile/beam/legion name = "blood pulse" - hitsound = 'sound/magic/magic_missile.ogg' + hitsound = 'sound/effects/magic/magic_missile.ogg' damage = 19 range = 6 light_color = COLOR_SOFT_RED diff --git a/code/datums/actions/mobs/dash.dm b/code/datums/actions/mobs/dash.dm index 81d6f8165d92c..ad87ab93f9a79 100644 --- a/code/datums/actions/mobs/dash.dm +++ b/code/datums/actions/mobs/dash.dm @@ -52,11 +52,11 @@ new /obj/effect/temp_visual/small_smoke/halfsecond(step_forward_turf) var/obj/effect/temp_visual/decoy/fading/halfsecond/D = new (own_turf, owner) owner.forceMove(step_back_turf) - playsound(own_turf, 'sound/weapons/punchmiss.ogg', 40, TRUE, -1) + playsound(own_turf, 'sound/items/weapons/punchmiss.ogg', 40, TRUE, -1) owner.alpha = 0 animate(owner, alpha = 255, time = 5) SLEEP_CHECK_DEATH(0.2 SECONDS, owner) D.forceMove(step_forward_turf) owner.forceMove(target_turf) - playsound(target_turf, 'sound/weapons/punchmiss.ogg', 40, TRUE, -1) + playsound(target_turf, 'sound/items/weapons/punchmiss.ogg', 40, TRUE, -1) SLEEP_CHECK_DEATH(0.1 SECONDS, owner) diff --git a/code/datums/actions/mobs/fire_breath.dm b/code/datums/actions/mobs/fire_breath.dm index e52fa14d0d905..11ad04fa0df20 100644 --- a/code/datums/actions/mobs/fire_breath.dm +++ b/code/datums/actions/mobs/fire_breath.dm @@ -7,7 +7,7 @@ /// The range of the fire var/fire_range = 15 /// The sound played when you use this ability - var/fire_sound = 'sound/magic/fireball.ogg' + var/fire_sound = 'sound/effects/magic/fireball.ogg' /// Time to wait between spawning each fire turf var/fire_delay = 1.5 DECISECONDS /// How hot is our fire diff --git a/code/datums/actions/mobs/ground_slam.dm b/code/datums/actions/mobs/ground_slam.dm index e00799196b589..4adadef04e7c7 100644 --- a/code/datums/actions/mobs/ground_slam.dm +++ b/code/datums/actions/mobs/ground_slam.dm @@ -6,7 +6,7 @@ cooldown_time = 10 SECONDS /// The range of the slam var/range = 5 - /// The delay before the shockwave expands it's range + /// The delay before the shockwave expands its range var/delay = 3 /// How far hit targets are thrown var/throw_range = 8 diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm index 0b0735bc471c0..428c975665676 100644 --- a/code/datums/actions/mobs/lava_swoop.dm +++ b/code/datums/actions/mobs/lava_swoop.dm @@ -39,7 +39,7 @@ return // stop swooped target movement swooping = TRUE - ADD_TRAIT(owner, TRAIT_UNDENSE, SWOOPING_TRAIT) + owner.add_traits(list(TRAIT_GODMODE, TRAIT_UNDENSE), SWOOPING_TRAIT) owner.visible_message(span_boldwarning("[owner] swoops up high!")) var/negative @@ -50,7 +50,7 @@ negative = FALSE else if(target.x == initial_x) //if their x is the same, pick a direction negative = prob(50) - var/obj/effect/temp_visual/dragon_flight/F = new /obj/effect/temp_visual/dragon_flight(owner.loc, negative) + var/obj/effect/temp_visual/dragon_flight/flight_vis = new /obj/effect/temp_visual/dragon_flight(owner.loc, negative) negative = !negative //invert it for the swoop down later @@ -60,21 +60,22 @@ for(var/i in 1 to 3) sleep(0.1 SECONDS) if(QDELETED(owner) || owner.stat == DEAD) //we got hit and died, rip us - qdel(F) + qdel(flight_vis) if(owner.stat == DEAD) swooping = FALSE animate(owner, alpha = 255, transform = oldtransform, time = 0, flags = ANIMATION_END_NOW) //reset immediately return animate(owner, alpha = 100, transform = matrix()*0.7, time = 7) - owner.status_flags |= GODMODE SEND_SIGNAL(owner, COMSIG_SWOOP_INVULNERABILITY_STARTED) owner.mouse_opacity = MOUSE_OPACITY_TRANSPARENT SLEEP_CHECK_DEATH(7, owner) - while(target && owner.loc != get_turf(target)) - owner.forceMove(get_step(owner, get_dir(owner, target))) + var/turf/target_turf = get_turf(target) + while(!QDELETED(target) && owner.loc != target_turf && owner.z == target_turf.z) + owner.forceMove(get_step(owner, get_dir(owner, target_turf))) SLEEP_CHECK_DEATH(0.5, owner) + target_turf = get_turf(target) // Ash drake flies onto its target and rains fire down upon them var/descentTime = 10 @@ -82,7 +83,6 @@ if(lava_arena) lava_success = lava_arena(target) - //ensure swoop direction continuity. if(negative) if(ISINRANGE(owner.x, initial_x + 1, initial_x + SWOOP_DIRECTION_CHANGE_RANGE)) @@ -96,27 +96,26 @@ SLEEP_CHECK_DEATH(descentTime, owner) owner.mouse_opacity = initial(owner.mouse_opacity) playsound(owner.loc, 'sound/effects/meteorimpact.ogg', 200, TRUE) - for(var/mob/living/L in orange(1, owner) - owner) - L.adjustBruteLoss(75) - if(!QDELETED(L)) // Some mobs are deleted on death - var/throw_dir = get_dir(owner, L) - if(L.loc == owner.loc) + for(var/mob/living/victim in orange(1, owner) - owner) + victim.adjustBruteLoss(75) + if(!QDELETED(victim)) // Some mobs are deleted on death + var/throw_dir = get_dir(owner, victim) + if(victim.loc == owner.loc) throw_dir = pick(GLOB.alldirs) var/throwtarget = get_edge_target_turf(owner, throw_dir) - L.throw_at(throwtarget, 3) - owner.visible_message(span_warning("[L] is thrown clear of [owner]!")) - for(var/obj/vehicle/sealed/mecha/M in orange(1, owner)) - M.take_damage(75, BRUTE, MELEE, 1) + victim.throw_at(throwtarget, 3) + owner.visible_message(span_warning("[victim] is thrown clear of [owner]!")) + for(var/obj/vehicle/sealed/mecha/mech in orange(1, owner)) + mech.take_damage(75, BRUTE, MELEE, 1) - for(var/mob/M in range(7, owner)) - shake_camera(M, 15, 1) + for(var/mob/observer in range(7, owner)) + shake_camera(observer, 15, 1) - REMOVE_TRAIT(owner, TRAIT_UNDENSE, SWOOPING_TRAIT) + owner.remove_traits(list(TRAIT_GODMODE, TRAIT_UNDENSE), SWOOPING_TRAIT) SLEEP_CHECK_DEATH(1, owner) swooping = FALSE if(!lava_success) SEND_SIGNAL(owner, COMSIG_LAVA_ARENA_FAILED) - owner.status_flags &= ~GODMODE /datum/action/cooldown/mob_cooldown/lava_swoop/proc/lava_pools(atom/target, amount = 30, delay = 0.8) if(!target) @@ -126,15 +125,16 @@ while(amount > 0) if(QDELETED(target)) break - var/turf/TT = get_turf(target) - var/turf/T = pick(RANGE_TURFS(1,TT)) - var/obj/effect/temp_visual/lava_warning/LW = new /obj/effect/temp_visual/lava_warning(T, 60) // longer reset time for the lava - LW.owner = owner + var/turf/target_turf = get_turf(target) + var/turf/lava_turf = pick(RANGE_TURFS(1, target_turf)) + var/obj/effect/temp_visual/lava_warning/warn_effect = new /obj/effect/temp_visual/lava_warning(lava_turf, 60) // longer reset time for the lava + warn_effect.owner = owner amount-- SLEEP_CHECK_DEATH(delay, owner) /datum/action/cooldown/mob_cooldown/lava_swoop/proc/lava_arena(atom/target) - if(!target || !isliving(target)) + var/turf/target_turf = get_turf(target) + if(QDELETED(target) || !isliving(target) || target_turf.z != owner.z) return target.visible_message(span_boldwarning("[owner] encases you in an arena of fire!")) var/amount = 3 @@ -144,13 +144,17 @@ for(var/turf/T in walled) drakewalls += new /obj/effect/temp_visual/drakewall(T) // no people with lava immunity can just run away from the attack for free var/list/indestructible_turfs = list() - for(var/turf/T in RANGE_TURFS(2, center)) - if(isindestructiblefloor(T)) + + for(var/turf/turf_target as anything in RANGE_TURFS(2, center)) + if(isindestructiblefloor(turf_target)) continue - if(!isindestructiblewall(T)) - T.TerraformTurf(/turf/open/misc/asteroid/basalt/lava_land_surface, flags = CHANGETURF_INHERIT_AIR) - else - indestructible_turfs += T + if(isindestructiblewall(turf_target)) + indestructible_turfs += turf_target + continue + if(ismineralturf(turf_target)) + var/turf/closed/mineral/mineral_turf = turf_target + mineral_turf.gets_drilled(owner) + SLEEP_CHECK_DEATH(1 SECONDS, owner) // give them a bit of time to realize what attack is actually happening var/list/turfs = RANGE_TURFS(2, center) diff --git a/code/datums/actions/mobs/personality_commune.dm b/code/datums/actions/mobs/personality_commune.dm index 26cf483449204..8481d451fb1dd 100644 --- a/code/datums/actions/mobs/personality_commune.dm +++ b/code/datums/actions/mobs/personality_commune.dm @@ -31,7 +31,7 @@ var/mob/living/split_personality/non_controller = usr var/client/non_controller_client = non_controller.client - var/to_send = tgui_input_text(non_controller, "What would you like to tell your other self?", "Commune") + var/to_send = tgui_input_text(non_controller, "What would you like to tell your other self?", "Commune", max_length = MAX_MESSAGE_LEN) if(QDELETED(src) || QDELETED(trauma) || !to_send) return FALSE diff --git a/code/datums/actions/mobs/projectileattack.dm b/code/datums/actions/mobs/projectileattack.dm index d8f8e6bdf6427..933f94d0025f3 100644 --- a/code/datums/actions/mobs/projectileattack.dm +++ b/code/datums/actions/mobs/projectileattack.dm @@ -126,7 +126,7 @@ desc = "Fires projectiles in a spiral pattern." cooldown_time = 3 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' /// Whether or not the attack is the enraged form var/enraged = FALSE @@ -186,7 +186,7 @@ desc = "Fires projectiles in all directions." cooldown_time = 3 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' /datum/action/cooldown/mob_cooldown/projectile_attack/random_aoe/attack_sequence(mob/living/firer, atom/target) var/turf/U = get_turf(firer) @@ -208,7 +208,7 @@ desc = "Fires projectiles in a shotgun pattern." cooldown_time = 2 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' var/list/shot_angles = list(12.5, 7.5, 2.5, -2.5, -7.5, -12.5) /datum/action/cooldown/mob_cooldown/projectile_attack/shotgun_blast/attack_sequence(mob/living/firer, atom/target) @@ -263,7 +263,7 @@ desc = "Fires projectiles in specific directions." cooldown_time = 4 SECONDS projectile_type = /obj/projectile/colossus - projectile_sound = 'sound/magic/clockwork/invoke_general.ogg' + projectile_sound = 'sound/effects/magic/clockwork/invoke_general.ogg' var/list/firing_directions /datum/action/cooldown/mob_cooldown/projectile_attack/dir_shots/New(Target) @@ -308,7 +308,7 @@ desc = "Fires a kinetic accelerator projectile at the target." cooldown_time = 1.5 SECONDS projectile_type = /obj/projectile/kinetic/miner - projectile_sound = 'sound/weapons/kinetic_accel.ogg' + projectile_sound = 'sound/items/weapons/kinetic_accel.ogg' /datum/action/cooldown/mob_cooldown/projectile_attack/kinetic_accelerator/Activate(atom/target_atom) . = ..() diff --git a/code/datums/ai/_ai_behavior.dm b/code/datums/ai/_ai_behavior.dm index eb8f7370dc298..4a277c0e86119 100644 --- a/code/datums/ai/_ai_behavior.dm +++ b/code/datums/ai/_ai_behavior.dm @@ -25,7 +25,7 @@ ///Called when the action is finished. This needs the same args as perform besides the default ones /datum/ai_behavior/proc/finish_action(datum/ai_controller/controller, succeeded, ...) - LAZYREMOVE(controller.current_behaviors, src) + controller.dequeue_behavior(src) controller.behavior_args -= type if(!(behavior_flags & AI_BEHAVIOR_REQUIRE_MOVEMENT)) //If this was a movement task, reset our movement target if necessary return diff --git a/code/datums/ai/_ai_controller.dm b/code/datums/ai/_ai_controller.dm index 33b63f09a01dc..d6230ec8d3534 100644 --- a/code/datums/ai/_ai_controller.dm +++ b/code/datums/ai/_ai_controller.dm @@ -20,9 +20,9 @@ multiple modular subtrees with behaviors ///Bitfield of traits for this AI to handle extra behavior var/ai_traits = NONE ///Current actions planned to be performed by the AI in the upcoming plan - var/list/planned_behaviors + var/list/planned_behaviors = list() ///Current actions being performed by the AI. - var/list/current_behaviors + var/list/current_behaviors = list() ///Current actions and their respective last time ran as an assoc list. var/list/behavior_cooldowns = list() ///Current status of AI (OFF/ON) @@ -39,8 +39,6 @@ multiple modular subtrees with behaviors var/continue_processing_when_client = FALSE ///distance to give up on target var/max_target_distance = 14 - ///Cooldown for new plans, to prevent AI from going nuts if it can't think of new plans and looping on end - COOLDOWN_DECLARE(failed_planning_cooldown) ///All subtrees this AI has available, will run them in order, so make sure they're in the order you want them to run. On initialization of this type, it will start as a typepath(s) and get converted to references of ai_subtrees found in SSai_controllers when init_subtrees() is called var/list/planning_subtrees @@ -62,13 +60,22 @@ multiple modular subtrees with behaviors var/can_idle = TRUE ///What distance should we be checking for interesting things when considering idling/deidling? Defaults to AI_DEFAULT_INTERESTING_DIST var/interesting_dist = AI_DEFAULT_INTERESTING_DIST + /// TRUE if we're able to run, FALSE if we aren't + /// Should not be set manually, override get_able_to_run() instead + /// Make sure you hook update_able_to_run() in setup_able_to_run() to whatever parameters changing that you added + /// Otherwise we will not pay attention to them changing + var/able_to_run = FALSE + /// are we even able to plan? + var/able_to_plan = TRUE + /// are we currently on failed planning timeout? + var/on_failed_planning_timeout = FALSE /datum/ai_controller/New(atom/new_pawn) change_ai_movement_type(ai_movement) init_subtrees() if(idle_behavior) - idle_behavior = new idle_behavior() + idle_behavior = SSidle_ai_behaviors.idle_behaviors[idle_behavior] if(!isnull(new_pawn)) // unit tests need the ai_controller to exist in isolation due to list schenanigans i hate it here PossessPawn(new_pawn) @@ -83,8 +90,17 @@ multiple modular subtrees with behaviors ///Sets the current movement target, with an optional param to override the movement behavior /datum/ai_controller/proc/set_movement_target(source, atom/target, datum/ai_movement/new_movement) + if(current_movement_target) + UnregisterSignal(current_movement_target, list(COMSIG_MOVABLE_MOVED, COMSIG_PREQDELETED)) + if(!isnull(target) && !isatom(target)) + stack_trace("[pawn]'s current movement target is not an atom, rather a [target.type]! Did you accidentally set it to a weakref?") + CancelActions() + return movement_target_source = source current_movement_target = target + if(!isnull(current_movement_target)) + RegisterSignal(current_movement_target, COMSIG_MOVABLE_MOVED, PROC_REF(on_movement_target_move)) + RegisterSignal(current_movement_target, COMSIG_PREQDELETED, PROC_REF(on_movement_target_delete)) if(new_movement) change_ai_movement_type(new_movement) @@ -103,12 +119,13 @@ multiple modular subtrees with behaviors return var/list/temp_subtree_list = list() for(var/subtree in planning_subtrees) - var/subtree_instance = SSai_controllers.ai_subtrees[subtree] + var/subtree_instance = GLOB.ai_subtrees[subtree] temp_subtree_list += subtree_instance planning_subtrees = temp_subtree_list ///Proc to move from one pawn to another, this will destroy the target's existing controller. /datum/ai_controller/proc/PossessPawn(atom/new_pawn) + SHOULD_CALL_PARENT(TRUE) if(pawn) //Reset any old signals UnpossessPawn(FALSE) @@ -124,7 +141,7 @@ multiple modular subtrees with behaviors var/turf/pawn_turf = get_turf(pawn) if(pawn_turf) - SSai_controllers.ai_controllers_by_zlevel[pawn_turf.z] += src + GLOB.ai_controllers_by_zlevel[pawn_turf.z] += src SEND_SIGNAL(src, COMSIG_AI_CONTROLLER_POSSESSED_PAWN) @@ -133,6 +150,8 @@ multiple modular subtrees with behaviors RegisterSignal(pawn, COMSIG_MOB_STATCHANGE, PROC_REF(on_stat_changed)) RegisterSignal(pawn, COMSIG_MOB_LOGIN, PROC_REF(on_sentience_gained)) RegisterSignal(pawn, COMSIG_QDELETING, PROC_REF(on_pawn_qdeleted)) + update_able_to_run() + setup_able_to_run() our_cells = new(interesting_dist, interesting_dist, 1) set_new_cells() @@ -143,6 +162,20 @@ multiple modular subtrees with behaviors SIGNAL_HANDLER set_new_cells() + if(current_movement_target) + check_target_max_distance() + +/datum/ai_controller/proc/on_movement_target_move(atom/source) + SIGNAL_HANDLER + check_target_max_distance() + +/datum/ai_controller/proc/on_movement_target_delete(atom/source) + SIGNAL_HANDLER + set_movement_target(source = type, target = null) + +/datum/ai_controller/proc/check_target_max_distance() + if(get_dist(current_movement_target, pawn) > max_target_distance) + CancelActions() /datum/ai_controller/proc/set_new_cells() if(isnull(our_cells)) @@ -229,7 +262,7 @@ multiple modular subtrees with behaviors if(!pawn_turf) CRASH("AI controller [src] controlling pawn ([pawn]) is not on a turf.") #endif - if(!length(SSmobs.clients_by_zlevel[pawn_turf.z])) + if(!length(SSmobs.clients_by_zlevel[pawn_turf.z]) || on_failed_planning_timeout || !able_to_run) return AI_STATUS_OFF if(should_idle()) return AI_STATUS_IDLE @@ -248,14 +281,11 @@ multiple modular subtrees with behaviors if((mob_pawn?.client && !continue_processing_when_client)) return if(old_turf) - SSai_controllers.ai_controllers_by_zlevel[old_turf.z] -= src - if(new_turf) - SSai_controllers.ai_controllers_by_zlevel[new_turf.z] += src - var/new_level_clients = SSmobs.clients_by_zlevel[new_turf.z].len - if(new_level_clients) - set_ai_status(AI_STATUS_IDLE) - else - set_ai_status(AI_STATUS_OFF) + GLOB.ai_controllers_by_zlevel[old_turf.z] -= src + if(isnull(new_turf)) + return + GLOB.ai_controllers_by_zlevel[new_turf.z] += src + reset_ai_status() ///Abstract proc for initializing the pawn to the new controller /datum/ai_controller/proc/TryPossessPawn(atom/new_pawn) @@ -263,52 +293,76 @@ multiple modular subtrees with behaviors ///Proc for deinitializing the pawn to the old controller /datum/ai_controller/proc/UnpossessPawn(destroy) + SHOULD_CALL_PARENT(TRUE) if(isnull(pawn)) return // instantiated without an applicable pawn, fine set_ai_status(AI_STATUS_OFF) UnregisterSignal(pawn, list(COMSIG_MOVABLE_Z_CHANGED, COMSIG_MOB_LOGIN, COMSIG_MOB_LOGOUT, COMSIG_MOB_STATCHANGE, COMSIG_QDELETING)) + clear_able_to_run() if(ai_movement.moving_controllers[src]) ai_movement.stop_moving_towards(src) var/turf/pawn_turf = get_turf(pawn) if(pawn_turf) - SSai_controllers.ai_controllers_by_zlevel[pawn_turf.z] -= src + GLOB.ai_controllers_by_zlevel[pawn_turf.z] -= src if(ai_status) - SSai_controllers.ai_controllers_by_status[ai_status] -= src + GLOB.ai_controllers_by_status[ai_status] -= src + remove_from_unplanned_controllers() pawn.ai_controller = null pawn = null if(destroy) qdel(src) -///Returns TRUE if the ai controller can actually run at the moment. -/datum/ai_controller/proc/able_to_run() +/datum/ai_controller/proc/setup_able_to_run() + // paused_until is handled by PauseAi() manually + RegisterSignals(pawn, list(SIGNAL_ADDTRAIT(TRAIT_AI_PAUSED), SIGNAL_REMOVETRAIT(TRAIT_AI_PAUSED)), PROC_REF(update_able_to_run)) + +/datum/ai_controller/proc/clear_able_to_run() + UnregisterSignal(pawn, list(SIGNAL_ADDTRAIT(TRAIT_AI_PAUSED), SIGNAL_REMOVETRAIT(TRAIT_AI_PAUSED))) + +/datum/ai_controller/proc/update_able_to_run() + SIGNAL_HANDLER + able_to_run = get_able_to_run() + if(!able_to_run) + GLOB.move_manager.stop_looping(pawn) //stop moving + set_ai_status(get_expected_ai_status()) + +///Returns TRUE if the ai controller can actually run at the moment, FALSE otherwise +/datum/ai_controller/proc/get_able_to_run() if(HAS_TRAIT(pawn, TRAIT_AI_PAUSED)) return FALSE if(world.time < paused_until) return FALSE return TRUE -///Runs any actions that are currently running -/datum/ai_controller/process(seconds_per_tick) +///Can this pawn interact with objects? +/datum/ai_controller/proc/ai_can_interact() + SHOULD_CALL_PARENT(TRUE) + return !QDELETED(pawn) - if(!able_to_run()) - GLOB.move_manager.stop_looping(pawn) //stop moving - return //this should remove them from processing in the future through event-based stuff. - - if(!LAZYLEN(current_behaviors) && idle_behavior) - idle_behavior.perform_idle_behavior(seconds_per_tick, src) //Do some stupid shit while we have nothing to do - return +///Interact with objects +/datum/ai_controller/proc/ai_interact(target, combat_mode, list/modifiers) + if(!ai_can_interact()) + return FALSE - if(current_movement_target) - if(!isatom(current_movement_target)) - stack_trace("[pawn]'s current movement target is not an atom, rather a [current_movement_target.type]! Did you accidentally set it to a weakref?") - CancelActions() - return + var/atom/final_target = isdatum(target) ? target : blackboard[target] //incase we got a blackboard key instead - if(get_dist(pawn, current_movement_target) > max_target_distance) //The distance is out of range - CancelActions() - return + if(QDELETED(final_target)) + return FALSE + var/params = list2params(modifiers) + var/mob/living/living_pawn = pawn + if(isnull(combat_mode)) + living_pawn.ClickOn(final_target, params) + return TRUE + + var/old_combat_mode = living_pawn.combat_mode + living_pawn.set_combat_mode(combat_mode) + living_pawn.ClickOn(final_target, params) + living_pawn.set_combat_mode(old_combat_mode) + return TRUE +///Runs any actions that are currently running +/datum/ai_controller/process(seconds_per_tick) for(var/datum/ai_behavior/current_behavior as anything in current_behaviors) @@ -317,59 +371,44 @@ multiple modular subtrees with behaviors // Action cooldowns cannot happen faster than seconds_per_tick, so seconds_per_tick should be the value used in this scenario. var/action_seconds_per_tick = max(current_behavior.get_cooldown(src) * 0.1, seconds_per_tick) - if(current_behavior.behavior_flags & AI_BEHAVIOR_REQUIRE_MOVEMENT) //Might need to move closer - if(!current_movement_target) - stack_trace("[pawn] wants to perform action type [current_behavior.type] which requires movement, but has no current movement target!") - return //This can cause issues, so don't let these slide. - ///Stops pawns from performing such actions that should require the target to be adjacent. - var/atom/movable/moving_pawn = pawn - var/can_reach = !(current_behavior.behavior_flags & AI_BEHAVIOR_REQUIRE_REACH) || moving_pawn.CanReach(current_movement_target) - if(can_reach && current_behavior.required_distance >= get_dist(moving_pawn, current_movement_target)) ///Are we close enough to engage? - if(ai_movement.moving_controllers[src] == current_movement_target) //We are close enough, if we're moving stop. - ai_movement.stop_moving_towards(src) - - if(behavior_cooldowns[current_behavior] > world.time) //Still on cooldown - continue - ProcessBehavior(action_seconds_per_tick, current_behavior) - return - - else if(ai_movement.moving_controllers[src] != current_movement_target) //We're too far, if we're not already moving start doing it. - ai_movement.start_moving_towards(src, current_movement_target, current_behavior.required_distance) //Then start moving - - if(current_behavior.behavior_flags & AI_BEHAVIOR_MOVE_AND_PERFORM) //If we can move and perform then do so. - if(behavior_cooldowns[current_behavior] > world.time) //Still on cooldown - continue - ProcessBehavior(action_seconds_per_tick, current_behavior) - return - else //No movement required + if(!(current_behavior.behavior_flags & AI_BEHAVIOR_REQUIRE_MOVEMENT)) if(behavior_cooldowns[current_behavior] > world.time) //Still on cooldown continue ProcessBehavior(action_seconds_per_tick, current_behavior) return -///Determines whether the AI can currently make a new plan -/datum/ai_controller/proc/able_to_plan() - . = TRUE - if(QDELETED(pawn)) - return FALSE - for(var/datum/ai_behavior/current_behavior as anything in current_behaviors) - if(!(current_behavior.behavior_flags & AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION)) //We have a behavior that blocks planning - . = FALSE - break + if(isnull(current_movement_target)) + fail_behavior(current_behavior) + return + ///Stops pawns from performing such actions that should require the target to be adjacent. + var/atom/movable/moving_pawn = pawn + var/can_reach = !(current_behavior.behavior_flags & AI_BEHAVIOR_REQUIRE_REACH) || moving_pawn.CanReach(current_movement_target) + if(can_reach && current_behavior.required_distance >= get_dist(moving_pawn, current_movement_target)) ///Are we close enough to engage? + if(ai_movement.moving_controllers[src] == current_movement_target) //We are close enough, if we're moving stop. + ai_movement.stop_moving_towards(src) + + if(behavior_cooldowns[current_behavior] > world.time) //Still on cooldown + continue + ProcessBehavior(action_seconds_per_tick, current_behavior) + return + + if(ai_movement.moving_controllers[src] != current_movement_target) //We're too far, if we're not already moving start doing it. + ai_movement.start_moving_towards(src, current_movement_target, current_behavior.required_distance) //Then start moving + + if(current_behavior.behavior_flags & AI_BEHAVIOR_MOVE_AND_PERFORM) //If we can move and perform then do so. + if(behavior_cooldowns[current_behavior] > world.time) //Still on cooldown + continue + ProcessBehavior(action_seconds_per_tick, current_behavior) + return ///This is where you decide what actions are taken by the AI. /datum/ai_controller/proc/SelectBehaviors(seconds_per_tick) SHOULD_NOT_SLEEP(TRUE) //Fuck you don't sleep in procs like this. - if(!COOLDOWN_FINISHED(src, failed_planning_cooldown)) - return FALSE - - LAZYINITLIST(current_behaviors) - LAZYCLEARLIST(planned_behaviors) + planned_behaviors.Cut() - if(LAZYLEN(planning_subtrees)) - for(var/datum/ai_planning_subtree/subtree as anything in planning_subtrees) - if(subtree.SelectBehaviors(src, seconds_per_tick) == SUBTREE_RETURN_FINISH_PLANNING) - break + for(var/datum/ai_planning_subtree/subtree as anything in planning_subtrees) + if(subtree.SelectBehaviors(src, seconds_per_tick) == SUBTREE_RETURN_FINISH_PLANNING) + break SEND_SIGNAL(src, COMSIG_AI_CONTROLLER_PICKED_BEHAVIORS, current_behaviors, planned_behaviors) for(var/datum/ai_behavior/forgotten_behavior as anything in current_behaviors - planned_behaviors) @@ -386,18 +425,47 @@ multiple modular subtrees with behaviors //remove old status, if we've got one if(ai_status) - SSai_controllers.ai_controllers_by_status[ai_status] -= src + GLOB.ai_controllers_by_status[ai_status] -= src + remove_from_unplanned_controllers() + stop_previous_processing() ai_status = new_ai_status - SSai_controllers.ai_controllers_by_status[new_ai_status] += src + GLOB.ai_controllers_by_status[new_ai_status] += src + if(ai_status == AI_STATUS_OFF) + CancelActions() + return + if(!length(current_behaviors)) + add_to_unplanned_controllers() + return + start_ai_processing() + +/datum/ai_controller/proc/start_ai_processing() switch(ai_status) if(AI_STATUS_ON) START_PROCESSING(SSai_behaviors, src) - if(AI_STATUS_OFF, AI_STATUS_IDLE) + if(AI_STATUS_IDLE) + START_PROCESSING(SSidle_ai_behaviors, src) + +/datum/ai_controller/proc/stop_previous_processing() + switch(ai_status) + if(AI_STATUS_ON) STOP_PROCESSING(SSai_behaviors, src) - CancelActions() + if(AI_STATUS_IDLE) + STOP_PROCESSING(SSidle_ai_behaviors, src) /datum/ai_controller/proc/PauseAi(time) paused_until = world.time + time + update_able_to_run() + addtimer(CALLBACK(src, PROC_REF(update_able_to_run)), time) + +/datum/ai_controller/proc/add_to_unplanned_controllers() + if(isnull(ai_status) || ai_status == AI_STATUS_OFF || isnull(idle_behavior)) + return + GLOB.unplanned_controllers[ai_status][src] = TRUE + +/datum/ai_controller/proc/remove_from_unplanned_controllers() + if(isnull(ai_status) || ai_status == AI_STATUS_OFF) + return + GLOB.unplanned_controllers[ai_status] -= src /datum/ai_controller/proc/modify_cooldown(datum/ai_behavior/behavior, new_cooldown) behavior_cooldowns[behavior] = new_cooldown @@ -410,21 +478,51 @@ multiple modular subtrees with behaviors var/list/arguments = args.Copy() arguments[1] = src - if(LAZYACCESS(current_behaviors, behavior)) ///It's still in the plan, don't add it again to current_behaviors but do keep it in the planned behavior list so its not cancelled - LAZYADDASSOC(planned_behaviors, behavior, TRUE) + if(current_behaviors[behavior]) ///It's still in the plan, don't add it again to current_behaviors but do keep it in the planned behavior list so its not cancelled + planned_behaviors[behavior] = TRUE return if(!behavior.setup(arglist(arguments))) return - LAZYADDASSOC(current_behaviors, behavior, TRUE) - LAZYADDASSOC(planned_behaviors, behavior, TRUE) + + var/should_exit_unplanned = !length(current_behaviors) + planned_behaviors[behavior] = TRUE + current_behaviors[behavior] = TRUE + arguments.Cut(1, 2) if(length(arguments)) behavior_args[behavior_type] = arguments else behavior_args -= behavior_type + + if(!(behavior.behavior_flags & AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION)) //this one blocks planning! + able_to_plan = FALSE + + if(should_exit_unplanned) + exit_unplanned_mode() + SEND_SIGNAL(src, AI_CONTROLLER_BEHAVIOR_QUEUED(behavior_type), arguments) +/datum/ai_controller/proc/check_able_to_plan() + for(var/datum/ai_behavior/current_behavior as anything in current_behaviors) + if(!(current_behavior.behavior_flags & AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION)) //We have a behavior that blocks planning + return FALSE + return TRUE + +/datum/ai_controller/proc/dequeue_behavior(datum/ai_behavior/behavior) + current_behaviors -= behavior + able_to_plan = check_able_to_plan() + if(!length(current_behaviors)) + enter_unplanned_mode() + +/datum/ai_controller/proc/exit_unplanned_mode() + remove_from_unplanned_controllers() + start_ai_processing() + +/datum/ai_controller/proc/enter_unplanned_mode() + add_to_unplanned_controllers() + stop_previous_processing() + /datum/ai_controller/proc/ProcessBehavior(seconds_per_tick, datum/ai_behavior/behavior) var/list/arguments = list(seconds_per_tick, src) var/list/stored_arguments = behavior_args[behavior.type] @@ -444,19 +542,23 @@ multiple modular subtrees with behaviors behavior.finish_action(arglist(arguments)) /datum/ai_controller/proc/CancelActions() - if(!LAZYLEN(current_behaviors)) + if(!length(current_behaviors)) return for(var/datum/ai_behavior/current_behavior as anything in current_behaviors) - var/list/arguments = list(src, FALSE) - var/list/stored_arguments = behavior_args[current_behavior.type] - if(stored_arguments) - arguments += stored_arguments - current_behavior.finish_action(arglist(arguments)) + fail_behavior(current_behavior) + +/datum/ai_controller/proc/fail_behavior(datum/ai_behavior/current_behavior) + var/list/arguments = list(src, FALSE) + var/list/stored_arguments = behavior_args[current_behavior.type] + if(stored_arguments) + arguments += stored_arguments + current_behavior.finish_action(arglist(arguments)) /// Turn the controller on or off based on if you're alive, we only register to this if the flag is present so don't need to check again /datum/ai_controller/proc/on_stat_changed(mob/living/source, new_stat) SIGNAL_HANDLER reset_ai_status() + update_able_to_run() /datum/ai_controller/proc/on_sentience_gained() SIGNAL_HANDLER @@ -497,6 +599,15 @@ multiple modular subtrees with behaviors minimum_distance = iter_behavior.required_distance return minimum_distance +/datum/ai_controller/proc/planning_failed() + on_failed_planning_timeout = TRUE + set_ai_status(get_expected_ai_status()) + addtimer(CALLBACK(src, PROC_REF(resume_planning)), AI_FAILED_PLANNING_COOLDOWN) + +/datum/ai_controller/proc/resume_planning() + on_failed_planning_timeout = FALSE + set_ai_status(get_expected_ai_status()) + /// Returns true if we have a blackboard key with the provided key and it is not qdeleting /datum/ai_controller/proc/blackboard_key_exists(key) var/datum/key_value = blackboard[key] diff --git a/code/datums/ai/babies/babies_behaviors.dm b/code/datums/ai/babies/babies_behaviors.dm index ad57d309a2c72..aa8a15a03e40b 100644 --- a/code/datums/ai/babies/babies_behaviors.dm +++ b/code/datums/ai/babies/babies_behaviors.dm @@ -58,17 +58,9 @@ var/mob/target = controller.blackboard[target_key] if(QDELETED(target) || target.stat != CONSCIOUS) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED - var/mob/living/basic/living_pawn = controller.pawn - living_pawn.set_combat_mode(FALSE) - living_pawn.melee_attack(target) + controller.ai_interact(target = target, combat_mode = FALSE) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED /datum/ai_behavior/make_babies/finish_action(datum/ai_controller/controller, succeeded, target_key) . = ..() controller.clear_blackboard_key(target_key) - if(!succeeded) - return - var/mob/living/living_pawn = controller.pawn - if(QDELETED(living_pawn)) // pawn can be null at this point - return - living_pawn.set_combat_mode(initial(living_pawn.combat_mode)) diff --git a/code/datums/ai/bane/bane_controller.dm b/code/datums/ai/bane/bane_controller.dm index 8d6820a800bdc..64e1dcf31af3a 100644 --- a/code/datums/ai/bane/bane_controller.dm +++ b/code/datums/ai/bane/bane_controller.dm @@ -12,7 +12,19 @@ And the only victory you achieved was a lie. Now you understand Gotham is beyond return AI_CONTROLLER_INCOMPATIBLE return ..() //Run parent at end -/datum/ai_controller/bane/able_to_run() +/datum/ai_controller/bane/on_stat_changed(mob/living/source, new_stat) + . = ..() + update_able_to_run() + +/datum/ai_controller/bane/setup_able_to_run() + . = ..() + RegisterSignal(pawn, COMSIG_MOB_INCAPACITATE_CHANGED, PROC_REF(update_able_to_run)) + +/datum/ai_controller/bane/clear_able_to_run() + UnregisterSignal(pawn, list(COMSIG_MOB_INCAPACITATE_CHANGED, COMSIG_MOB_STATCHANGE)) + return ..() + +/datum/ai_controller/bane/get_able_to_run() var/mob/living/living_pawn = pawn if(IS_DEAD_OR_INCAP(living_pawn)) return FALSE diff --git a/code/datums/ai/basic_mobs/base_basic_controller.dm b/code/datums/ai/basic_mobs/base_basic_controller.dm index cd025b28bcb2b..7ab15437f7d35 100644 --- a/code/datums/ai/basic_mobs/base_basic_controller.dm +++ b/code/datums/ai/basic_mobs/base_basic_controller.dm @@ -9,23 +9,44 @@ update_speed(basic_mob) RegisterSignals(basic_mob, list(POST_BASIC_MOB_UPDATE_VARSPEED, COMSIG_MOB_MOVESPEED_UPDATED), PROC_REF(update_speed)) + RegisterSignal(basic_mob, COMSIG_MOB_ATE, PROC_REF(on_mob_eat)) return ..() //Run parent at end +/datum/ai_controller/basic_controller/on_stat_changed(mob/living/source, new_stat) + . = ..() + update_able_to_run() -/datum/ai_controller/basic_controller/able_to_run() +/datum/ai_controller/basic_controller/setup_able_to_run() . = ..() - if(!isliving(pawn)) - return - var/mob/living/living_pawn = pawn - var/incap_flags = NONE - if (ai_traits & CAN_ACT_IN_STASIS) - incap_flags |= IGNORE_STASIS - if(!(ai_traits & CAN_ACT_WHILE_DEAD) && (living_pawn.incapacitated(incap_flags) || living_pawn.stat)) + RegisterSignal(pawn, COMSIG_MOB_INCAPACITATE_CHANGED, PROC_REF(update_able_to_run)) + if(ai_traits & PAUSE_DURING_DO_AFTER) + RegisterSignals(pawn, list(COMSIG_DO_AFTER_BEGAN, COMSIG_DO_AFTER_ENDED), PROC_REF(update_able_to_run)) + + +/datum/ai_controller/basic_controller/clear_able_to_run() + UnregisterSignal(pawn, list(COMSIG_MOB_INCAPACITATE_CHANGED, COMSIG_MOB_STATCHANGE, COMSIG_DO_AFTER_BEGAN, COMSIG_DO_AFTER_ENDED)) + return ..() + +/datum/ai_controller/basic_controller/get_able_to_run() + . = ..() + if(!.) return FALSE + var/mob/living/living_pawn = pawn + if(!(ai_traits & CAN_ACT_WHILE_DEAD)) + // Unroll for flags here + if (ai_traits & CAN_ACT_IN_STASIS && (living_pawn.stat || INCAPACITATED_IGNORING(living_pawn, INCAPABLE_STASIS))) + return FALSE + else if(IS_DEAD_OR_INCAP(living_pawn)) + return FALSE if(ai_traits & PAUSE_DURING_DO_AFTER && LAZYLEN(living_pawn.do_afters)) return FALSE /datum/ai_controller/basic_controller/proc/update_speed(mob/living/basic/basic_mob) SIGNAL_HANDLER movement_delay = basic_mob.cached_multiplicative_slowdown + +/datum/ai_controller/basic_controller/proc/on_mob_eat() + SIGNAL_HANDLER + var/food_cooldown = blackboard[BB_EAT_FOOD_COOLDOWN] || EAT_FOOD_COOLDOWN + set_blackboard_key(BB_NEXT_FOOD_EAT, world.time + food_cooldown) diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm index 883c157a96ba9..aba62f2dc7b79 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm @@ -8,8 +8,6 @@ . = ..() if(!controller.blackboard[targeting_strategy_key]) CRASH("No targeting strategy was supplied in the blackboard for [controller.pawn]") - if(HAS_TRAIT(controller.pawn, TRAIT_HANDS_BLOCKED)) - return FALSE //Hiding location is priority var/atom/target = controller.blackboard[hiding_location_key] || controller.blackboard[target_key] if(QDELETED(target)) @@ -35,11 +33,8 @@ controller.set_blackboard_key(hiding_location_key, hiding_target) - if(hiding_target) //Slap it! - basic_mob.melee_attack(hiding_target) - else - basic_mob.melee_attack(target) - + var/atom/final_target = hiding_target || target + controller.ai_interact(target = final_target, combat_mode = TRUE) if(terminate_after_action) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED return AI_BEHAVIOR_DELAY diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/emote_with_target.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/emote_with_target.dm new file mode 100644 index 0000000000000..7960301d70440 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/emote_with_target.dm @@ -0,0 +1,28 @@ +/datum/ai_behavior/emote_on_target + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_REQUIRE_REACH + + +/datum/ai_behavior/emote_on_target/setup(datum/ai_controller/controller, target_key) + . = ..() + var/atom/hunt_target = controller.blackboard[target_key] + if (isnull(hunt_target)) + return FALSE + set_movement_target(controller, hunt_target) + + +/datum/ai_behavior/emote_on_target/perform(seconds_per_tick, datum/ai_controller/controller, target_key, list/emote_list) + var/atom/target = controller.blackboard[target_key] + if(!length(emote_list) || isnull(target)) + return AI_BEHAVIOR_FAILED | AI_BEHAVIOR_DELAY + run_emote(controller.pawn, target, emote_list) + return AI_BEHAVIOR_SUCCEEDED | AI_BEHAVIOR_DELAY + + +/datum/ai_behavior/emote_on_target/finish_action(datum/ai_controller/controller, succeeded, target_key) + . = ..() + if(succeeded) + controller.clear_blackboard_key(target_key) + + +/datum/ai_behavior/emote_on_target/proc/run_emote(mob/living/living_pawn, atom/target, list/emote_list) + living_pawn.manual_emote("[pick(emote_list)] [target]") diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm new file mode 100644 index 0000000000000..3b0c4245656e5 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/interact_with_target.dm @@ -0,0 +1,27 @@ +///behavior for general interactions with any targets +/datum/ai_behavior/interact_with_target + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT | AI_BEHAVIOR_REQUIRE_REACH + ///should we be clearing the target after the fact? + var/clear_target = TRUE + +/datum/ai_behavior/interact_with_target/setup(datum/ai_controller/controller, target_key) + . = ..() + var/atom/target = controller.blackboard[target_key] + if(QDELETED(target)) + return FALSE + set_movement_target(controller, target) + +/datum/ai_behavior/interact_with_target/perform(seconds_per_tick, datum/ai_controller/controller, target_key) + var/atom/target = controller.blackboard[target_key] + if(QDELETED(target) || !pre_interact(controller, target)) + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED + controller.ai_interact(target) + return AI_BEHAVIOR_SUCCEEDED | AI_BEHAVIOR_DELAY + +/datum/ai_behavior/interact_with_target/finish_action(datum/ai_controller/controller, succeeded, target_key) + . = ..() + if(clear_target || !succeeded) + controller.clear_blackboard_key(target_key) + +/datum/ai_behavior/interact_with_target/proc/pre_interact(datum/ai_controller/controller, target) + return TRUE diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm index 2d2ad013aa2c6..c2e9fe515c40f 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeted_mob_ability.dm @@ -50,8 +50,8 @@ * Attempts to move into the provided range and then use a mob's cooldown ability on a target */ /datum/ai_behavior/targeted_mob_ability/min_range - required_distance = 6 behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT + required_distance = 6 /datum/ai_behavior/targeted_mob_ability/min_range/setup(datum/ai_controller/controller, ability_key, target_key) . = ..() @@ -59,3 +59,6 @@ if(QDELETED(target)) return FALSE set_movement_target(controller, target) + +/datum/ai_behavior/targeted_mob_ability/min_range/short + required_distance = 3 diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm index 4cf04039e8535..7673551a65319 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm @@ -152,3 +152,15 @@ GLOBAL_LIST_INIT(target_interested_atoms, typecacheof(list(/mob, /obj/machinery/ /// Returns the desired final target from the filtered list of targets /datum/ai_behavior/find_potential_targets/proc/pick_final_target(datum/ai_controller/controller, list/filtered_targets) return pick(filtered_targets) + +/// Targets with the trait specified by the BB_TARGET_PRIORITY_TRAIT blackboard key will be prioritized over the rest. +/datum/ai_behavior/find_potential_targets/prioritize_trait + +/datum/ai_behavior/find_potential_targets/prioritize_trait/pick_final_target(datum/ai_controller/controller, list/filtered_targets) + var/priority_targets = list() + for(var/atom/target as anything in filtered_targets) + if(HAS_TRAIT(target, controller.blackboard[BB_TARGET_PRIORITY_TRAIT])) + priority_targets += target + if(length(priority_targets)) + return pick(priority_targets) + return ..() diff --git a/code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.dm b/code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.dm index 44d7cb4fe480b..f78697b2b8132 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/call_reinforcements.dm @@ -44,6 +44,6 @@ other_mob.ai_controller.set_blackboard_key(BB_BASIC_MOB_REINFORCEMENT_TARGET, pawn_mob) controller.set_blackboard_key(BB_BASIC_MOB_REINFORCEMENTS_COOLDOWN, world.time + REINFORCEMENTS_COOLDOWN) - return AI_BEHAVIOR_DELAY + return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED #undef REINFORCEMENTS_COOLDOWN diff --git a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm index 9e3cd557b6437..f05c357b1a845 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/find_food.dm @@ -4,11 +4,33 @@ var/datum/ai_behavior/finding_behavior = /datum/ai_behavior/find_and_set/in_list ///key of foods list var/food_list_key = BB_BASIC_FOODS + ///key where we store our food + var/found_food_key = BB_TARGET_FOOD + ///key holding any emotes we play after eating food + var/emotes_blackboard_list = BB_EAT_EMOTES /datum/ai_planning_subtree/find_food/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - . = ..() - if(controller.blackboard_key_exists(BB_BASIC_MOB_CURRENT_TARGET)) - // Busy with something + if(controller.blackboard[BB_NEXT_FOOD_EAT] > world.time) + return + if(!controller.blackboard_key_exists(found_food_key)) + controller.queue_behavior(finding_behavior, found_food_key, controller.blackboard[food_list_key]) return + controller.queue_behavior(/datum/ai_behavior/interact_with_target/eat_food, found_food_key, emotes_blackboard_list) + return SUBTREE_RETURN_FINISH_PLANNING + +/datum/ai_behavior/interact_with_target/eat_food + ///default list of actions we take after eating + var/list/food_actions = list( + "eats up happily!", + "chomps with glee!", + ) - controller.queue_behavior(finding_behavior, BB_BASIC_MOB_CURRENT_TARGET, controller.blackboard[food_list_key]) +/datum/ai_behavior/interact_with_target/eat_food/perform(seconds_per_tick, datum/ai_controller/controller, target_key, emotes_blackboard_list) + . = ..() + if(. & AI_BEHAVIOR_FAILED) + return + var/list/emotes_to_pick = controller.blackboard[emotes_blackboard_list] || food_actions + if(!length(emotes_to_pick)) + return + var/mob/living/living_pawn = controller.pawn + living_pawn.manual_emote(pick(emotes_to_pick)) diff --git a/code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.dm b/code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.dm new file mode 100644 index 0000000000000..6c83469960ad3 --- /dev/null +++ b/code/datums/ai/basic_mobs/basic_subtrees/find_targets_prioritize_traits.dm @@ -0,0 +1,6 @@ +/// Find something with a specific trait to run from +/datum/ai_planning_subtree/find_target_prioritize_traits + +/datum/ai_planning_subtree/find_target_prioritize_traits/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) + . = ..() + controller.queue_behavior(/datum/ai_behavior/find_potential_targets/prioritize_trait, BB_BASIC_MOB_CURRENT_TARGET, BB_TARGETING_STRATEGY, BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION, BB_TARGET_PRIORITY_TRAIT) diff --git a/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm b/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm index 4a2f5b476c759..3ed8b2df2b26d 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/flee_target.dm @@ -10,7 +10,7 @@ /datum/ai_planning_subtree/flee_target/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) . = ..() var/atom/flee_from = controller.blackboard[target_key] - if (controller.blackboard[BB_BASIC_MOB_STOP_FLEEING] || QDELETED(flee_from)) + if(!should_flee(controller, flee_from)) return var/flee_distance = controller.blackboard[BB_BASIC_MOB_FLEE_DISTANCE] || DEFAULT_BASIC_FLEE_DISTANCE if (get_dist(controller.pawn, flee_from) >= flee_distance) @@ -19,8 +19,21 @@ controller.queue_behavior(flee_behaviour, target_key, hiding_place_key) return SUBTREE_RETURN_FINISH_PLANNING //we gotta get out of here. +/datum/ai_planning_subtree/flee_target/proc/should_flee(datum/ai_controller/controller, atom/flee_from) + if (controller.blackboard[BB_BASIC_MOB_STOP_FLEEING] || QDELETED(flee_from)) + return FALSE + return TRUE + /// Try to escape from your current target, without performing any other actions. /// Reads from some fleeing-specific targeting keys rather than the current mob target. /datum/ai_planning_subtree/flee_target/from_flee_key target_key = BB_BASIC_MOB_FLEE_TARGET hiding_place_key = BB_BASIC_MOB_FLEE_TARGET_HIDING_LOCATION + +/// A subtype that forces the mob to flee from targets with the scary fisherman trait anyway. +/datum/ai_planning_subtree/flee_target/from_fisherman + +/datum/ai_planning_subtree/flee_target/from_fisherman/should_flee(datum/ai_controller/controller, atom/flee_from) + if (!QDELETED(flee_from) && HAS_TRAIT(flee_from, TRAIT_SCARY_FISHERMAN)) + return TRUE + return ..() diff --git a/code/datums/ai/basic_mobs/basic_subtrees/mine_walls.dm b/code/datums/ai/basic_mobs/basic_subtrees/mine_walls.dm index dc3f6ddcf9015..12875f9a3f345 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/mine_walls.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/mine_walls.dm @@ -24,9 +24,8 @@ var/mob/living/basic/living_pawn = controller.pawn var/turf/closed/mineral/target = controller.blackboard[target_key] var/is_gibtonite_turf = istype(target, /turf/closed/mineral/gibtonite) - if(QDELETED(target)) + if(!controller.ai_interact(target = target)) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED - living_pawn.melee_attack(target) if(is_gibtonite_turf) living_pawn.manual_emote("sighs...") //accept whats about to happen to us diff --git a/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm b/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm index 3640a2052b55e..43a3d400bc58d 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/ranged_skirmish.dm @@ -43,6 +43,5 @@ if (distance > max_range || distance < min_range) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED - var/mob/living/basic/gunman = controller.pawn - gunman.RangedAttack(target) + controller.ai_interact(target = target, combat_mode = TRUE) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED diff --git a/code/datums/ai/basic_mobs/basic_subtrees/simple_attack_target.dm b/code/datums/ai/basic_mobs/basic_subtrees/simple_attack_target.dm index 5b1f5ffbff9ed..f764568d4ba74 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/simple_attack_target.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/simple_attack_target.dm @@ -22,3 +22,12 @@ return controller.queue_behavior(ranged_attack_behavior, BB_BASIC_MOB_CURRENT_TARGET, BB_TARGETING_STRATEGY, BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION) return SUBTREE_RETURN_FINISH_PLANNING //we are going into battle...no distractions. + +/datum/ai_planning_subtree/basic_melee_attack_subtree/no_fisherman + +/datum/ai_planning_subtree/basic_melee_attack_subtree/no_fisherman/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) + var/atom/movable/target = controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET] + if(QDELETED(target)) + return ..() + if(!HAS_TRAIT(target, TRAIT_SCARY_FISHERMAN)) + return ..() diff --git a/code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.dm b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.dm index d9e0d1e7fb9ff..83e514f327020 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_nearest_target_to_flee.dm @@ -21,4 +21,5 @@ controller.queue_behavior(/datum/ai_behavior/target_from_retaliate_list/nearest, BB_BASIC_MOB_RETALIATE_LIST, target_key, targeting_key, BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION) /datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee/from_flee_key + target_key = BB_BASIC_MOB_FLEE_TARGET targeting_key = BB_FLEE_TARGETING_STRATEGY diff --git a/code/datums/ai/basic_mobs/basic_subtrees/simple_find_target.dm b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_target.dm index 1c7d8de9120ba..759355283acd4 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/simple_find_target.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/simple_find_target.dm @@ -1,8 +1,10 @@ /datum/ai_planning_subtree/simple_find_target + /// Variable to store target in + var/target_key = BB_BASIC_MOB_CURRENT_TARGET /datum/ai_planning_subtree/simple_find_target/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) . = ..() - controller.queue_behavior(/datum/ai_behavior/find_potential_targets, BB_BASIC_MOB_CURRENT_TARGET, BB_TARGETING_STRATEGY, BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION) + controller.queue_behavior(/datum/ai_behavior/find_potential_targets, target_key, BB_TARGETING_STRATEGY, BB_BASIC_MOB_CURRENT_TARGET_HIDING_LOCATION) // Prevents finding a target if a human is nearby /datum/ai_planning_subtree/simple_find_target/not_while_observed @@ -13,3 +15,5 @@ return return ..() +/datum/ai_planning_subtree/simple_find_target/to_flee + target_key = BB_BASIC_MOB_FLEE_TARGET diff --git a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm index 5bd0f8404883d..7d877731e2b05 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/speech_subtree.dm @@ -46,7 +46,7 @@ /datum/ai_planning_subtree/random_speech/insect speech_chance = 5 - sound = list('sound/creatures/chitter.ogg') + sound = list('sound/mobs/non-humanoids/insect/chitter.ogg') emote_hear = list("chitters.") /datum/ai_planning_subtree/random_speech/mothroach @@ -56,7 +56,7 @@ /datum/ai_planning_subtree/random_speech/mouse speech_chance = 1 speak = list("Squeak!", "SQUEAK!", "Squeak?") - sound = list('sound/creatures/mousesqueek.ogg') + sound = list('sound/mobs/non-humanoids/mouse/mousesqueek.ogg') emote_hear = list("squeaks.") emote_see = list("runs in a circle.", "shakes.") @@ -72,7 +72,7 @@ /datum/ai_planning_subtree/random_speech/sheep speech_chance = 5 speak = list("baaa","baaaAAAAAH!","baaah") - sound = list('sound/creatures/sheep1.ogg', 'sound/creatures/sheep2.ogg', 'sound/creatures/sheep3.ogg') + sound = list('sound/mobs/non-humanoids/sheep/sheep1.ogg', 'sound/mobs/non-humanoids/sheep/sheep2.ogg', 'sound/mobs/non-humanoids/sheep/sheep3.ogg') emote_hear = list("bleats.") emote_see = list("shakes her head.", "stares into the distance.") @@ -101,21 +101,21 @@ /datum/ai_planning_subtree/random_speech/chicken speech_chance = 15 // really talkative ladies speak = list("Cluck!", "BWAAAAARK BWAK BWAK BWAK!", "Bwaak bwak.") - sound = list('sound/creatures/clucks.ogg', 'sound/creatures/bagawk.ogg') + sound = list('sound/mobs/non-humanoids/chicken/clucks.ogg', 'sound/mobs/non-humanoids/chicken/bagawk.ogg') emote_hear = list("clucks.", "croons.") emote_see = list("pecks at the ground.","flaps her wings viciously.") /datum/ai_planning_subtree/random_speech/chick speech_chance = 4 speak = list("Cherp.", "Cherp?", "Chirrup.", "Cheep!") - sound = list('sound/creatures/chick_peep.ogg') + sound = list('sound/mobs/non-humanoids/chicken/chick_peep.ogg') emote_hear = list("cheeps.") emote_see = list("pecks at the ground.","flaps her tiny wings.") /datum/ai_planning_subtree/random_speech/cow speech_chance = 1 speak = list("moo?","moo","MOOOOOO") - sound = list('sound/creatures/cow.ogg') + sound = list('sound/mobs/non-humanoids/cow/cow.ogg') emote_hear = list("brays.") emote_see = list("shakes her head.") @@ -164,19 +164,19 @@ /datum/ai_planning_subtree/random_speech/pig speech_chance = 3 speak = list("oink?","oink","snurf") - sound = list('sound/creatures/pig1.ogg', 'sound/creatures/pig2.ogg') + sound = list('sound/mobs/non-humanoids/pig/pig1.ogg', 'sound/mobs/non-humanoids/pig/pig2.ogg') emote_hear = list("snorts.") emote_see = list("sniffs around.") /datum/ai_planning_subtree/random_speech/pony speech_chance = 3 - sound = list('sound/creatures/pony/whinny01.ogg', 'sound/creatures/pony/whinny02.ogg', 'sound/creatures/pony/whinny03.ogg') + sound = list('sound/mobs/non-humanoids/pony/whinny01.ogg', 'sound/mobs/non-humanoids/pony/whinny02.ogg', 'sound/mobs/non-humanoids/pony/whinny03.ogg') emote_hear = list("whinnies!") emote_see = list("horses around.") /datum/ai_planning_subtree/random_speech/pony/tamed speech_chance = 3 - sound = list('sound/creatures/pony/snort.ogg') + sound = list('sound/mobs/non-humanoids/pony/snort.ogg') emote_hear = list("snorts.") emote_see = list("snorts.") @@ -188,7 +188,7 @@ /datum/ai_planning_subtree/random_speech/ant speech_chance = 1 speak = list("BZZZZT!", "CHTCHTCHT!", "Bzzz", "ChtChtCht") - sound = list('sound/creatures/chitter.ogg') + sound = list('sound/mobs/non-humanoids/insect/chitter.ogg') emote_hear = list("buzzes.", "clacks.") emote_see = list("shakes their head.", "twitches their antennae.") @@ -200,7 +200,7 @@ /datum/ai_planning_subtree/random_speech/crab speech_chance = 1 - sound = list('sound/creatures/claw_click.ogg') + sound = list('sound/mobs/non-humanoids/crab/claw_click.ogg') emote_hear = list("clicks.") emote_see = list("clacks.") @@ -216,11 +216,9 @@ /datum/ai_planning_subtree/random_speech/cats speech_chance = 10 - speak = list( - "mrawww!", - "meow!", - "maw!", - ) + sound = list(SFX_CAT_MEOW) + emote_hear = list("meows.") + emote_see = list("meows.") /datum/ai_planning_subtree/random_speech/blackboard //literal tower of babel, subtree form speech_chance = 1 diff --git a/code/datums/ai/basic_mobs/pet_commands/fetch.dm b/code/datums/ai/basic_mobs/pet_commands/fetch.dm index 87606fa0c6555..5ff208560d2a1 100644 --- a/code/datums/ai/basic_mobs/pet_commands/fetch.dm +++ b/code/datums/ai/basic_mobs/pet_commands/fetch.dm @@ -109,7 +109,7 @@ if(!basic_pawn.Adjacent(snack)) return AI_BEHAVIOR_DELAY - basic_pawn.melee_attack(snack) // snack attack! + controller.ai_interact(target = snack) if(QDELETED(snack)) // we ate it! return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED diff --git a/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm b/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm index 3c8c06b009962..c90ffa785900f 100644 --- a/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm +++ b/code/datums/ai/basic_mobs/pet_commands/pet_use_targeted_ability.dm @@ -22,3 +22,18 @@ /datum/ai_behavior/pet_use_ability/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) . = ..() controller.clear_blackboard_key(target_key) + +/datum/ai_behavior/pet_use_ability/then_attack + +/datum/ai_behavior/pet_use_ability/then_attack/finish_action(datum/ai_controller/controller, succeeded, ability_key, target_key) + . = ..() + if(succeeded) + controller.queue_behavior(/datum/ai_behavior/basic_melee_attack, target_key, BB_PET_TARGETING_STRATEGY) + +/datum/ai_behavior/pet_use_ability/then_attack/short_ranged + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT + required_distance = 4 + +/datum/ai_behavior/pet_use_ability/then_attack/long_ranged + behavior_flags = AI_BEHAVIOR_REQUIRE_MOVEMENT + required_distance = 8 diff --git a/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm b/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm new file mode 100644 index 0000000000000..dbd2028081b7e --- /dev/null +++ b/code/datums/ai/basic_mobs/targeting_strategies/_targeting_strategy.dm @@ -0,0 +1,20 @@ +///Datum for basic mobs to define what they can attack, +///Global, just like ai_behaviors +/datum/targeting_strategy + +///Returns true or false depending on if the target can be attacked by the mob +/datum/targeting_strategy/proc/can_attack(mob/living/living_mob, atom/target, vision_range) + return + +///Returns something the target might be hiding inside of +/datum/targeting_strategy/proc/find_hidden_mobs(mob/living/living_mob, atom/target) + var/atom/target_hiding_location + if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper)) + target_hiding_location = target.loc + return target_hiding_location + +///A very simple targeting strategy that checks that the target is a valid fishing spot. +/datum/targeting_strategy/fishing + +/datum/targeting_strategy/fishing/can_attack(mob/living/living_mob, atom/target, vision_range) + return HAS_TRAIT(target, TRAIT_FISHING_SPOT) diff --git a/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm index 07b544bc0a296..d552b69c142dc 100644 --- a/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm +++ b/code/datums/ai/basic_mobs/targeting_strategies/basic_targeting_strategy.dm @@ -1,18 +1,3 @@ -///Datum for basic mobs to define what they can attack.GET_TARGETING_STRATEGY\((/[^,]*)\), -///Global, just like ai_behaviors -/datum/targeting_strategy - -///Returns true or false depending on if the target can be attacked by the mob -/datum/targeting_strategy/proc/can_attack(mob/living/living_mob, atom/target, vision_range) - return - -///Returns something the target might be hiding inside of -/datum/targeting_strategy/proc/find_hidden_mobs(mob/living/living_mob, atom/target) - var/atom/target_hiding_location - if(istype(target.loc, /obj/structure/closet) || istype(target.loc, /obj/machinery/disposal) || istype(target.loc, /obj/machinery/sleeper)) - target_hiding_location = target.loc - return target_hiding_location - /datum/targeting_strategy/basic /// When we do our basic faction check, do we look for exact faction matches? var/check_factions_exactly = FALSE @@ -40,10 +25,12 @@ if(ismob(the_target)) //Target is in godmode, ignore it. if(living_mob.loc == the_target) return FALSE // We've either been eaten or are shapeshifted, let's assume the latter because we're still alive - var/mob/M = the_target - if(M.status_flags & GODMODE) + if(HAS_TRAIT(the_target, TRAIT_GODMODE)) return FALSE + if (vision_range && get_dist(living_mob, the_target) > vision_range) + return FALSE + if(!ignore_sight && !can_see(living_mob, the_target, vision_range)) //Target has moved behind cover and we have lost line of sight to it return FALSE @@ -100,6 +87,21 @@ // trust fall exercise return TRUE +/datum/targeting_strategy/basic/require_traits + +/datum/targeting_strategy/basic/require_traits/can_attack(mob/living/living_mob, atom/the_target, vision_range) + . = ..() + if (!.) + return FALSE + var/list/required_traits = living_mob.ai_controller.blackboard[BB_TARGET_ONLY_WITH_TRAITS] + if (!length(required_traits)) + return TRUE + + for (var/trait as anything in required_traits) + if (HAS_TRAIT(the_target, trait)) + return TRUE + return FALSE + /// Subtype which searches for mobs of a size relative to ours /datum/targeting_strategy/basic/of_size /// If true, we will return mobs which are smaller than us. If false, larger. diff --git a/code/datums/ai/cursed/cursed_controller.dm b/code/datums/ai/cursed/cursed_controller.dm index 4d0f6c6f5fdc6..aa32496f35724 100644 --- a/code/datums/ai/cursed/cursed_controller.dm +++ b/code/datums/ai/cursed/cursed_controller.dm @@ -27,9 +27,9 @@ return ..() //Run parent at end ///signal called by the pawn hitting something after a throw -/datum/ai_controller/cursed/proc/on_throw_hit(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) +/datum/ai_controller/cursed/proc/on_throw_hit(datum/source, atom/hit_atom, datum/thrownthing/throwing_datum, caught) SIGNAL_HANDLER - if(!iscarbon(hit_atom)) + if(caught || !iscarbon(hit_atom)) return //equipcode has sleeps all over it. INVOKE_ASYNC(src, PROC_REF(try_equipping_to_target_slot), hit_atom) diff --git a/code/datums/ai/dog/dog_behaviors.dm b/code/datums/ai/dog/dog_behaviors.dm index 00a2f789e12b5..6ae1529d47003 100644 --- a/code/datums/ai/dog/dog_behaviors.dm +++ b/code/datums/ai/dog/dog_behaviors.dm @@ -44,7 +44,7 @@ if(!SPT_PROB(20, seconds_per_tick)) return living_pawn.do_attack_animation(target, ATTACK_EFFECT_DISARM) - playsound(target, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(target, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) target.visible_message(span_danger("[living_pawn] paws ineffectually at [target]!"), span_danger("[living_pawn] paws ineffectually at you!")) /// Let them know we mean business @@ -54,4 +54,4 @@ living_pawn.manual_emote("[pick("barks", "growls", "stares")] menacingly at [target]!") if(!SPT_PROB(40, seconds_per_tick)) return - playsound(living_pawn, pick('sound/creatures/dog/growl1.ogg', 'sound/creatures/dog/growl2.ogg'), 50, TRUE, -1) + playsound(living_pawn, SFX_GROWL, 50, TRUE, -1) diff --git a/code/datums/ai/generic/find_and_set.dm b/code/datums/ai/generic/find_and_set.dm index 41f256c9ba73f..5a424f304f28f 100644 --- a/code/datums/ai/generic/find_and_set.dm +++ b/code/datums/ai/generic/find_and_set.dm @@ -177,3 +177,17 @@ var/mob/living/living_pawn = controller.pawn var/potential_friend = living_pawn.faction.Find(REF(friend)) ? friend : null return potential_friend + + +/datum/ai_behavior/find_and_set/in_list/turf_types + + +/datum/ai_behavior/find_and_set/in_list/turf_types/search_tactic(datum/ai_controller/controller, locate_paths, search_range) + var/list/found = RANGE_TURFS(search_range, controller.pawn) + shuffle_inplace(found) + for(var/turf/possible_turf as anything in found) + if(!is_type_in_typecache(possible_turf, locate_paths)) + continue + if(can_see(controller.pawn, possible_turf, search_range)) + return possible_turf + return null diff --git a/code/datums/ai/generic/generic_behaviors.dm b/code/datums/ai/generic/generic_behaviors.dm index 1c0e1f65adf96..c6fcbcfb57265 100644 --- a/code/datums/ai/generic/generic_behaviors.dm +++ b/code/datums/ai/generic/generic_behaviors.dm @@ -101,11 +101,10 @@ if(QDELETED(target)) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED - pawn.set_combat_mode(FALSE) if(held_item) held_item.melee_attack_chain(pawn, target) else - pawn.UnarmedAttack(target, TRUE) + controller.ai_interact(target = target, combat_mode = FALSE) return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED diff --git a/code/datums/ai/hunting_behavior/hunting_behaviors.dm b/code/datums/ai/hunting_behavior/hunting_behaviors.dm index 609138c113270..c202c4be6a7d8 100644 --- a/code/datums/ai/hunting_behavior/hunting_behaviors.dm +++ b/code/datums/ai/hunting_behavior/hunting_behaviors.dm @@ -117,27 +117,23 @@ if(always_reset_target && hunting_target_key) controller.clear_blackboard_key(hunting_target_key) -/datum/ai_behavior/hunt_target/unarmed_attack_target - ///do we toggle combat mode before interacting with the object? - var/switch_combat_mode = FALSE +/datum/ai_behavior/hunt_target/interact_with_target + ///what combat mode should we use to interact with + var/behavior_combat_mode = TRUE -/datum/ai_behavior/hunt_target/unarmed_attack_target/target_caught(mob/living/hunter, obj/structure/cable/hunted) - if(switch_combat_mode) - hunter.combat_mode = !(hunter.combat_mode) - hunter.UnarmedAttack(hunted, TRUE) +/datum/ai_behavior/hunt_target/interact_with_target/target_caught(mob/living/hunter, obj/structure/cable/hunted) + var/datum/ai_controller/controller = hunter.ai_controller + controller.ai_interact(target = hunted, combat_mode = behavior_combat_mode) -/datum/ai_behavior/hunt_target/unarmed_attack_target/finish_action(datum/ai_controller/controller, succeeded, hunting_target_key, hunting_cooldown_key) - . = ..() - if(!switch_combat_mode) - return - var/mob/living/living_pawn = controller.pawn - living_pawn.combat_mode = initial(living_pawn.combat_mode) +/datum/ai_behavior/hunt_target/interact_with_target/combat_mode_off + behavior_combat_mode = FALSE -/datum/ai_behavior/hunt_target/unarmed_attack_target/switch_combat_mode - switch_combat_mode = TRUE +/datum/ai_behavior/hunt_target/interact_with_target/reset_target + always_reset_target = TRUE -/datum/ai_behavior/hunt_target/unarmed_attack_target/reset_target +/datum/ai_behavior/hunt_target/interact_with_target/reset_target_combat_mode_off always_reset_target = TRUE + behavior_combat_mode = FALSE /datum/ai_behavior/hunt_target/use_ability_on_target always_reset_target = TRUE diff --git a/code/datums/ai/hunting_behavior/hunting_corpses.dm b/code/datums/ai/hunting_behavior/hunting_corpses.dm index e720e4da947af..89d100263fb1a 100644 --- a/code/datums/ai/hunting_behavior/hunting_corpses.dm +++ b/code/datums/ai/hunting_behavior/hunting_corpses.dm @@ -1,7 +1,7 @@ /// Find and attack corpses /datum/ai_planning_subtree/find_and_hunt_target/corpses finding_behavior = /datum/ai_behavior/find_hunt_target/corpses - hunting_behavior = /datum/ai_behavior/hunt_target/unarmed_attack_target + hunting_behavior = /datum/ai_behavior/hunt_target/interact_with_target hunt_targets = list(/mob/living) /// Find nearby dead mobs diff --git a/code/datums/ai/hunting_behavior/hunting_lights.dm b/code/datums/ai/hunting_behavior/hunting_lights.dm index 6b82e87f2693b..5062a8aaf929e 100644 --- a/code/datums/ai/hunting_behavior/hunting_lights.dm +++ b/code/datums/ai/hunting_behavior/hunting_lights.dm @@ -1,11 +1,11 @@ /datum/ai_planning_subtree/find_and_hunt_target/look_for_light_fixtures target_key = BB_LOW_PRIORITY_HUNTING_TARGET finding_behavior = /datum/ai_behavior/find_hunt_target/light_fixtures - hunting_behavior = /datum/ai_behavior/hunt_target/unarmed_attack_target/light_fixtures + hunting_behavior = /datum/ai_behavior/hunt_target/interact_with_target/light_fixtures hunt_targets = list(/obj/machinery/light) hunt_range = 7 -/datum/ai_behavior/hunt_target/unarmed_attack_target/light_fixtures +/datum/ai_behavior/hunt_target/interact_with_target/light_fixtures hunt_cooldown = 10 SECONDS always_reset_target = TRUE diff --git a/code/datums/ai/hunting_behavior/hunting_mouse.dm b/code/datums/ai/hunting_behavior/hunting_mouse.dm index d0e7161fd2de6..f97ebf27ddf6f 100644 --- a/code/datums/ai/hunting_behavior/hunting_mouse.dm +++ b/code/datums/ai/hunting_behavior/hunting_mouse.dm @@ -1,13 +1,13 @@ // Mouse subtree to hunt down delicious cheese. /datum/ai_planning_subtree/find_and_hunt_target/look_for_cheese - hunting_behavior = /datum/ai_behavior/hunt_target/unarmed_attack_target/mouse + hunting_behavior = /datum/ai_behavior/hunt_target/interact_with_target/mouse hunt_targets = list(/obj/item/food/cheese) hunt_range = 1 // Mouse subtree to hunt down ... delicious cabling? /datum/ai_planning_subtree/find_and_hunt_target/look_for_cables target_key = BB_LOW_PRIORITY_HUNTING_TARGET - hunting_behavior = /datum/ai_behavior/hunt_target/unarmed_attack_target/mouse + hunting_behavior = /datum/ai_behavior/hunt_target/interact_with_target/mouse finding_behavior = /datum/ai_behavior/find_hunt_target/mouse_cable hunt_targets = list(/obj/structure/cable) hunt_range = 0 // Only look below us @@ -28,5 +28,5 @@ return below_the_cable.underfloor_accessibility >= UNDERFLOOR_INTERACTABLE // Our hunts have a decent cooldown. -/datum/ai_behavior/hunt_target/unarmed_attack_target/mouse +/datum/ai_behavior/hunt_target/interact_with_target/mouse hunt_cooldown = 20 SECONDS diff --git a/code/datums/ai/idle_behaviors/_idle_behavior.dm b/code/datums/ai/idle_behaviors/_idle_behavior.dm index 315233bb71d57..bacb8e7cdf37b 100644 --- a/code/datums/ai/idle_behaviors/_idle_behavior.dm +++ b/code/datums/ai/idle_behaviors/_idle_behavior.dm @@ -1,4 +1,5 @@ /datum/idle_behavior /datum/idle_behavior/proc/perform_idle_behavior(seconds_per_tick, datum/ai_controller/controller) - return + set waitfor = FALSE + SHOULD_CALL_PARENT(TRUE) diff --git a/code/datums/ai/idle_behaviors/idle_dog.dm b/code/datums/ai/idle_behaviors/idle_dog.dm index 46e0d040c9dae..4d036e9a7a5d9 100644 --- a/code/datums/ai/idle_behaviors/idle_dog.dm +++ b/code/datums/ai/idle_behaviors/idle_dog.dm @@ -1,5 +1,6 @@ ///Dog specific idle behavior. /datum/idle_behavior/idle_dog/perform_idle_behavior(seconds_per_tick, datum/ai_controller/basic_controller/dog/controller) + . = ..() var/mob/living/living_pawn = controller.pawn if(!isturf(living_pawn.loc) || living_pawn.pulledby) return diff --git a/code/datums/ai/idle_behaviors/idle_haunted.dm b/code/datums/ai/idle_behaviors/idle_haunted.dm index a67b5d6cbe04d..5784b5104f6b8 100644 --- a/code/datums/ai/idle_behaviors/idle_haunted.dm +++ b/code/datums/ai/idle_behaviors/idle_haunted.dm @@ -4,6 +4,7 @@ var/teleport_chance = 4 /datum/idle_behavior/idle_ghost_item/perform_idle_behavior(seconds_per_tick, datum/ai_controller/controller) + . = ..() var/obj/item/item_pawn = controller.pawn if(ismob(item_pawn.loc)) //Being held. dont teleport return diff --git a/code/datums/ai/idle_behaviors/idle_monkey.dm b/code/datums/ai/idle_behaviors/idle_monkey.dm index 5b5e189435deb..c32534dce529e 100644 --- a/code/datums/ai/idle_behaviors/idle_monkey.dm +++ b/code/datums/ai/idle_behaviors/idle_monkey.dm @@ -13,6 +13,7 @@ ) /datum/idle_behavior/idle_monkey/perform_idle_behavior(seconds_per_tick, datum/ai_controller/controller) + . = ..() var/mob/living/living_pawn = controller.pawn if(SPT_PROB(25, seconds_per_tick) && (living_pawn.mobility_flags & MOBILITY_MOVE) && isturf(living_pawn.loc) && !living_pawn.pulledby) diff --git a/code/datums/ai/monkey/monkey_behaviors.dm b/code/datums/ai/monkey/monkey_behaviors.dm index a5febe03143f1..126c08daa1e8b 100644 --- a/code/datums/ai/monkey/monkey_behaviors.dm +++ b/code/datums/ai/monkey/monkey_behaviors.dm @@ -186,7 +186,7 @@ if(weapon) weapon.melee_attack_chain(living_pawn, target) else - living_pawn.UnarmedAttack(target, null, disarm ? list("right" = TRUE) : null) //Fake a right click if we're disarmin + controller.ai_interact(target = target, modifiers = disarm ? list(RIGHT_CLICK = TRUE) : null) controller.set_blackboard_key(BB_MONKEY_GUN_WORKED, TRUE) // We reset their memory of the gun being 'broken' if they accomplish some other attack else if(weapon) var/atom/real_target = target @@ -197,7 +197,7 @@ var/can_shoot = gun?.can_shoot() || FALSE if(gun && controller.blackboard[BB_MONKEY_GUN_WORKED] && prob(95)) // We attempt to attack even if we can't shoot so we get the effects of pulling the trigger - gun.melee_attack_chain(living_pawn, real_target) + gun.interact_with_atom(real_target, living_pawn) controller.set_blackboard_key(BB_MONKEY_GUN_WORKED, can_shoot ? TRUE : prob(80)) // Only 20% likely to notice it didn't work if(can_shoot) controller.set_blackboard_key(BB_MONKEY_GUN_NEURONS_ACTIVATED, TRUE) diff --git a/code/datums/ai/monkey/monkey_controller.dm b/code/datums/ai/monkey/monkey_controller.dm index 451d692b65d34..e92ec519b209a 100644 --- a/code/datums/ai/monkey/monkey_controller.dm +++ b/code/datums/ai/monkey/monkey_controller.dm @@ -104,10 +104,22 @@ have ways of interacting with a specific mob and control it. . = ..() set_trip_mode(mode = TRUE) -/datum/ai_controller/monkey/able_to_run() +/datum/ai_controller/monkey/on_stat_changed(mob/living/source, new_stat) + . = ..() + update_able_to_run() + +/datum/ai_controller/monkey/setup_able_to_run() + . = ..() + RegisterSignal(pawn, COMSIG_MOB_INCAPACITATE_CHANGED, PROC_REF(update_able_to_run)) + +/datum/ai_controller/monkey/clear_able_to_run() + UnregisterSignal(pawn, list(COMSIG_MOB_INCAPACITATE_CHANGED, COMSIG_MOB_STATCHANGE)) + return ..() + +/datum/ai_controller/monkey/get_able_to_run() var/mob/living/living_pawn = pawn - if(living_pawn.incapacitated(IGNORE_RESTRAINTS | IGNORE_GRAB | IGNORE_STASIS) || living_pawn.stat > CONSCIOUS) + if(INCAPACITATED_IGNORING(living_pawn, INCAPABLE_RESTRAINTS|INCAPABLE_STASIS|INCAPABLE_GRAB) || living_pawn.stat > CONSCIOUS) return FALSE return ..() @@ -134,7 +146,7 @@ have ways of interacting with a specific mob and control it. for(var/obj/item/item in oview(2, living_pawn)) nearby_items += item - for(var/obj/item/item in living_pawn.held_items) // If we've got some garbage in out hands thats going to stop us from effectivly attacking, we should get rid of it. + for(var/obj/item/item in living_pawn.held_items) // If we've got some garbage in out hands that's going to stop us from effectively attacking, we should get rid of it. if(item.force < 2) living_pawn.dropItemToGround(item) @@ -151,7 +163,7 @@ have ways of interacting with a specific mob and control it. if(!weapon || (weapon in living_pawn.held_items)) return FALSE - if(weapon.force < 2) // our bite does 2 damage on avarage, no point in settling for anything less + if(weapon.force < 2) // our bite does 2 damage on average, no point in settling for anything less return FALSE set_blackboard_key(BB_MONKEY_PICKUPTARGET, weapon) diff --git a/code/datums/ai/movement/_ai_movement.dm b/code/datums/ai/movement/_ai_movement.dm index d48166eeb23ac..33b7e4e214f6b 100644 --- a/code/datums/ai/movement/_ai_movement.dm +++ b/code/datums/ai/movement/_ai_movement.dm @@ -1,4 +1,4 @@ -///This datum is an abstract class that can be overriden for different types of movement +///This datum is an abstract class that can be overridden for different types of movement /datum/ai_movement ///Assoc list ist of controllers that are currently moving as key, and what they are moving to as value var/list/moving_controllers = list() @@ -11,6 +11,7 @@ controller.consecutive_pathing_attempts = 0 controller.set_blackboard_key(BB_CURRENT_MIN_MOVE_DISTANCE, min_distance) moving_controllers[controller] = current_movement_target + SEND_SIGNAL(controller.pawn, COMSIG_MOB_AI_MOVEMENT_STARTED, current_movement_target) /datum/ai_movement/proc/stop_moving_towards(datum/ai_controller/controller) controller.consecutive_pathing_attempts = 0 @@ -59,7 +60,7 @@ var/datum/ai_controller/controller = source.extra_info // Check if this controller can actually run, so we don't chase people with corpses - if(!controller.able_to_run()) + if(!controller.able_to_run) controller.CancelActions() qdel(source) //stop moving return MOVELOOP_SKIP_STEP diff --git a/code/datums/ai/oldhostile/hostile_tameable.dm b/code/datums/ai/oldhostile/hostile_tameable.dm index 1c30cb95487c1..907ab955a8d53 100644 --- a/code/datums/ai/oldhostile/hostile_tameable.dm +++ b/code/datums/ai/oldhostile/hostile_tameable.dm @@ -50,7 +50,19 @@ if(buckler != blackboard[BB_HOSTILE_FRIEND]) return COMPONENT_BLOCK_BUCKLE -/datum/ai_controller/hostile_friend/able_to_run() +/datum/ai_controller/hostile_friend/on_stat_changed(mob/living/source, new_stat) + . = ..() + update_able_to_run() + +/datum/ai_controller/hostile_friend/setup_able_to_run() + . = ..() + RegisterSignal(pawn, COMSIG_MOB_INCAPACITATE_CHANGED, PROC_REF(update_able_to_run)) + +/datum/ai_controller/hostile_friend/clear_able_to_run() + UnregisterSignal(pawn, list(COMSIG_MOB_INCAPACITATE_CHANGED, COMSIG_MOB_STATCHANGE)) + return ..() + +/datum/ai_controller/hostile_friend/get_able_to_run() var/mob/living/living_pawn = pawn if(IS_DEAD_OR_INCAP(living_pawn)) @@ -77,14 +89,14 @@ if(pawn.Adjacent(pawn, new_friend)) new_friend.visible_message("[pawn] looks at [new_friend] in a friendly manner!", span_notice("[pawn] looks at you in a friendly manner!")) set_blackboard_key(BB_HOSTILE_FRIEND, new_friend) - RegisterSignal(new_friend, COMSIG_MOB_POINTED, PROC_REF(check_point)) + RegisterSignal(new_friend, COMSIG_MOVABLE_POINTED, PROC_REF(check_point)) RegisterSignal(new_friend, COMSIG_MOB_SAY, PROC_REF(check_verbal_command)) /// Someone is being mean to us, take them off our friends (add actual enemies behavior later) /datum/ai_controller/hostile_friend/proc/unfriend() var/mob/living/old_friend = blackboard[BB_HOSTILE_FRIEND] if(old_friend) - UnregisterSignal(old_friend, list(COMSIG_MOB_POINTED, COMSIG_MOB_SAY)) + UnregisterSignal(old_friend, list(COMSIG_MOVABLE_POINTED, COMSIG_MOB_SAY)) clear_blackboard_key(BB_HOSTILE_FRIEND) /// Someone is looking at us, if we're currently carrying something then show what it is, and include a message if they're our friend @@ -129,7 +141,7 @@ /datum/ai_controller/hostile_friend/proc/check_menu(mob/user) if(!istype(user)) CRASH("A non-mob is trying to issue an order to [pawn].") - if(user.incapacitated() || !can_see(user, pawn)) + if(user.incapacitated || !can_see(user, pawn)) return FALSE return TRUE @@ -190,7 +202,7 @@ set_blackboard_key(BB_HOSTILE_ORDER_MODE, HOSTILE_COMMAND_ATTACK) /// Someone we like is pointing at something, see if it's something we might want to interact with (like if they might want us to fetch something for them) -/datum/ai_controller/hostile_friend/proc/check_point(mob/pointing_friend, atom/movable/pointed_movable) +/datum/ai_controller/hostile_friend/proc/check_point(mob/pointing_friend, atom/movable/pointed_movable, obj/effect/temp_visual/point/point) SIGNAL_HANDLER var/mob/living/simple_animal/hostile/living_pawn = pawn diff --git a/code/datums/ai/robot_customer/robot_customer_behaviors.dm b/code/datums/ai/robot_customer/robot_customer_behaviors.dm index 7aa0f34f5207d..8712049901383 100644 --- a/code/datums/ai/robot_customer/robot_customer_behaviors.dm +++ b/code/datums/ai/robot_customer/robot_customer_behaviors.dm @@ -63,7 +63,7 @@ return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED controller.add_blackboard_key(BB_CUSTOMER_PATIENCE, seconds_per_tick * -1 SECONDS) // Convert seconds_per_tick to a SECONDS equivalent. - if(controller.blackboard[BB_CUSTOMER_PATIENCE] < 0 || controller.blackboard[BB_CUSTOMER_LEAVING]) // Check if we're leaving because sometthing mightve forced us to + if(controller.blackboard[BB_CUSTOMER_PATIENCE] < 0 || controller.blackboard[BB_CUSTOMER_LEAVING]) // Check if we're leaving because something might've forced us to return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED // SPT_PROB 1.5 is about a 40% chance that the tourist will have vocalised at least once every minute. @@ -78,7 +78,7 @@ if(my_seat) controller.pawn.setDir(my_seat.dir) //Sit in your seat - ///Now check if theres a meal infront of us. + ///Now check if there's a meal infront of us. var/datum/venue/attending_venue = controller.blackboard[BB_CUSTOMER_ATTENDING_VENUE] var/turf/infront_turf = get_step(controller.pawn, controller.pawn.dir) @@ -100,7 +100,7 @@ if(greytider || QDELETED(src) || QDELETED(customer_pawn)) return controller.set_blackboard_key(BB_CUSTOMER_LEAVING, TRUE) - customer_pawn.update_icon() //They might have a special leaving accesoiry (french flag) + customer_pawn.update_icon() //They might have a special leaving accessory (French flag) if(succeeded) customer_pawn.say(pick(customer_data.leave_happy_lines)) else diff --git a/code/datums/ai_laws/ai_laws.dm b/code/datums/ai_laws/ai_laws.dm index 0dbc6839430ba..a0d1d629fc8d3 100644 --- a/code/datums/ai_laws/ai_laws.dm +++ b/code/datums/ai_laws/ai_laws.dm @@ -192,7 +192,7 @@ GLOBAL_VAR(round_default_lawset) var/datum/ai_laws/default_laws = get_round_default_lawset() default_laws = new default_laws() inherent = default_laws.inherent - var/datum/job/human_ai_job = SSjob.GetJob(JOB_HUMAN_AI) + var/datum/job/human_ai_job = SSjob.get_job(JOB_HUMAN_AI) if(human_ai_job && human_ai_job.current_positions && !zeroth) //there is a human AI so we "slave" to that. zeroth = "Follow the orders of Big Brother." protected_zeroth = TRUE diff --git a/code/datums/announcers/default_announcer.dm b/code/datums/announcers/default_announcer.dm index 9db822e02feff..bf24f611af842 100644 --- a/code/datums/announcers/default_announcer.dm +++ b/code/datums/announcers/default_announcer.dm @@ -1,20 +1,20 @@ /datum/centcom_announcer/default - welcome_sounds = list('sound/ai/default/welcome.ogg') - alert_sounds = list('sound/ai/default/attention.ogg') - command_report_sounds = list('sound/ai/default/commandreport.ogg') - event_sounds = list(ANNOUNCER_AIMALF = 'sound/ai/default/aimalf.ogg', - ANNOUNCER_ALIENS = 'sound/ai/default/aliens.ogg', - ANNOUNCER_ANIMES = 'sound/ai/default/animes.ogg', - ANNOUNCER_GRANOMALIES = 'sound/ai/default/granomalies.ogg', - ANNOUNCER_INTERCEPT = 'sound/ai/default/intercept.ogg', - ANNOUNCER_IONSTORM = 'sound/ai/default/ionstorm.ogg', - ANNOUNCER_METEORS = 'sound/ai/default/meteors.ogg', - ANNOUNCER_OUTBREAK5 = 'sound/ai/default/outbreak5.ogg', - ANNOUNCER_OUTBREAK7 = 'sound/ai/default/outbreak7.ogg', - ANNOUNCER_POWEROFF = 'sound/ai/default/poweroff.ogg', - ANNOUNCER_POWERON = 'sound/ai/default/poweron.ogg', - ANNOUNCER_RADIATION = 'sound/ai/default/radiation.ogg', - ANNOUNCER_SHUTTLECALLED = 'sound/ai/default/shuttlecalled.ogg', - ANNOUNCER_SHUTTLEDOCK = 'sound/ai/default/shuttledock.ogg', - ANNOUNCER_SHUTTLERECALLED = 'sound/ai/default/shuttlerecalled.ogg', - ANNOUNCER_SPANOMALIES = 'sound/ai/default/spanomalies.ogg') + welcome_sounds = list('sound/announcer/default/welcome.ogg') + alert_sounds = list('sound/announcer/default/attention.ogg') + command_report_sounds = list('sound/announcer/default/commandreport.ogg') + event_sounds = list(ANNOUNCER_AIMALF = 'sound/announcer/default/aimalf.ogg', + ANNOUNCER_ALIENS = 'sound/announcer/default/aliens.ogg', + ANNOUNCER_ANIMES = 'sound/announcer/default/animes.ogg', + ANNOUNCER_GRANOMALIES = 'sound/announcer/default/granomalies.ogg', + ANNOUNCER_INTERCEPT = 'sound/announcer/default/intercept.ogg', + ANNOUNCER_IONSTORM = 'sound/announcer/default/ionstorm.ogg', + ANNOUNCER_METEORS = 'sound/announcer/default/meteors.ogg', + ANNOUNCER_OUTBREAK5 = 'sound/announcer/default/outbreak5.ogg', + ANNOUNCER_OUTBREAK7 = 'sound/announcer/default/outbreak7.ogg', + ANNOUNCER_POWEROFF = 'sound/announcer/default/poweroff.ogg', + ANNOUNCER_POWERON = 'sound/announcer/default/poweron.ogg', + ANNOUNCER_RADIATION = 'sound/announcer/default/radiation.ogg', + ANNOUNCER_SHUTTLECALLED = 'sound/announcer/default/shuttlecalled.ogg', + ANNOUNCER_SHUTTLEDOCK = 'sound/announcer/default/shuttledock.ogg', + ANNOUNCER_SHUTTLERECALLED = 'sound/announcer/default/shuttlerecalled.ogg', + ANNOUNCER_SPANOMALIES = 'sound/announcer/default/spanomalies.ogg') diff --git a/code/datums/announcers/intern_announcer.dm b/code/datums/announcers/intern_announcer.dm index 5e8544c18710f..635508256b781 100644 --- a/code/datums/announcers/intern_announcer.dm +++ b/code/datums/announcers/intern_announcer.dm @@ -1,46 +1,46 @@ /datum/centcom_announcer/intern - welcome_sounds = list('sound/ai/intern/welcome/1.ogg', - 'sound/ai/intern/welcome/2.ogg', - 'sound/ai/intern/welcome/3.ogg', - 'sound/ai/intern/welcome/4.ogg', - 'sound/ai/intern/welcome/5.ogg', - 'sound/ai/intern/welcome/6.ogg') + welcome_sounds = list('sound/announcer/intern/welcome/1.ogg', + 'sound/announcer/intern/welcome/2.ogg', + 'sound/announcer/intern/welcome/3.ogg', + 'sound/announcer/intern/welcome/4.ogg', + 'sound/announcer/intern/welcome/5.ogg', + 'sound/announcer/intern/welcome/6.ogg') - alert_sounds = list('sound/ai/intern/alerts/1.ogg', - 'sound/ai/intern/alerts/2.ogg', - 'sound/ai/intern/alerts/3.ogg', - 'sound/ai/intern/alerts/4.ogg', - 'sound/ai/intern/alerts/5.ogg', - 'sound/ai/intern/alerts/6.ogg', - 'sound/ai/intern/alerts/7.ogg', - 'sound/ai/intern/alerts/8.ogg', - 'sound/ai/intern/alerts/9.ogg', - 'sound/ai/intern/alerts/10.ogg', - 'sound/ai/intern/alerts/11.ogg', - 'sound/ai/intern/alerts/12.ogg', - 'sound/ai/intern/alerts/13.ogg', - 'sound/ai/intern/alerts/14.ogg') + alert_sounds = list('sound/announcer/intern/alerts/1.ogg', + 'sound/announcer/intern/alerts/2.ogg', + 'sound/announcer/intern/alerts/3.ogg', + 'sound/announcer/intern/alerts/4.ogg', + 'sound/announcer/intern/alerts/5.ogg', + 'sound/announcer/intern/alerts/6.ogg', + 'sound/announcer/intern/alerts/7.ogg', + 'sound/announcer/intern/alerts/8.ogg', + 'sound/announcer/intern/alerts/9.ogg', + 'sound/announcer/intern/alerts/10.ogg', + 'sound/announcer/intern/alerts/11.ogg', + 'sound/announcer/intern/alerts/12.ogg', + 'sound/announcer/intern/alerts/13.ogg', + 'sound/announcer/intern/alerts/14.ogg') - command_report_sounds = list('sound/ai/intern/commandreport/1.ogg', - 'sound/ai/intern/commandreport/2.ogg', - 'sound/ai/intern/commandreport/3.ogg') + command_report_sounds = list('sound/announcer/intern/commandreport/1.ogg', + 'sound/announcer/intern/commandreport/2.ogg', + 'sound/announcer/intern/commandreport/3.ogg') - event_sounds = list(ANNOUNCER_AIMALF = 'sound/ai/default/aimalf.ogg', - ANNOUNCER_ALIENS = 'sound/ai/intern/aliens.ogg', - ANNOUNCER_ANIMES = 'sound/ai/intern/animes.ogg', - ANNOUNCER_GRANOMALIES = 'sound/ai/intern/granomalies.ogg', - ANNOUNCER_INTERCEPT = 'sound/ai/intern/intercept.ogg', - ANNOUNCER_IONSTORM = 'sound/ai/intern/ionstorm.ogg', - ANNOUNCER_METEORS = 'sound/ai/intern/meteors.ogg', - ANNOUNCER_OUTBREAK5 = 'sound/ai/intern/outbreak5.ogg', - ANNOUNCER_OUTBREAK7 = 'sound/ai/intern/outbreak7.ogg', - ANNOUNCER_POWEROFF = 'sound/ai/intern/poweroff.ogg', - ANNOUNCER_POWERON = 'sound/ai/intern/poweron.ogg', - ANNOUNCER_RADIATION = 'sound/ai/intern/radiation.ogg', - ANNOUNCER_SHUTTLECALLED = 'sound/ai/intern/shuttlecalled.ogg', - ANNOUNCER_SHUTTLEDOCK = 'sound/ai/intern/shuttledock.ogg', - ANNOUNCER_SHUTTLERECALLED = 'sound/ai/intern/shuttlerecalled.ogg', - ANNOUNCER_SPANOMALIES = 'sound/ai/intern/spanomalies.ogg') + event_sounds = list(ANNOUNCER_AIMALF = 'sound/announcer/default/aimalf.ogg', + ANNOUNCER_ALIENS = 'sound/announcer/intern/aliens.ogg', + ANNOUNCER_ANIMES = 'sound/announcer/intern/animes.ogg', + ANNOUNCER_GRANOMALIES = 'sound/announcer/intern/granomalies.ogg', + ANNOUNCER_INTERCEPT = 'sound/announcer/intern/intercept.ogg', + ANNOUNCER_IONSTORM = 'sound/announcer/intern/ionstorm.ogg', + ANNOUNCER_METEORS = 'sound/announcer/intern/meteors.ogg', + ANNOUNCER_OUTBREAK5 = 'sound/announcer/intern/outbreak5.ogg', + ANNOUNCER_OUTBREAK7 = 'sound/announcer/intern/outbreak7.ogg', + ANNOUNCER_POWEROFF = 'sound/announcer/intern/poweroff.ogg', + ANNOUNCER_POWERON = 'sound/announcer/intern/poweron.ogg', + ANNOUNCER_RADIATION = 'sound/announcer/intern/radiation.ogg', + ANNOUNCER_SHUTTLECALLED = 'sound/announcer/intern/shuttlecalled.ogg', + ANNOUNCER_SHUTTLEDOCK = 'sound/announcer/intern/shuttledock.ogg', + ANNOUNCER_SHUTTLERECALLED = 'sound/announcer/intern/shuttlerecalled.ogg', + ANNOUNCER_SPANOMALIES = 'sound/announcer/intern/spanomalies.ogg') - custom_alert_message = "Please stand by for an important message from our new intern.
" + custom_alert_message = span_alert("Please stand by for an important message from our new intern.
") diff --git a/code/datums/announcers/medbot_announcer.dm b/code/datums/announcers/medbot_announcer.dm index 17e8555221320..7269fe85c5703 100644 --- a/code/datums/announcers/medbot_announcer.dm +++ b/code/datums/announcers/medbot_announcer.dm @@ -1,21 +1,21 @@ /datum/centcom_announcer/medbot - welcome_sounds = list('sound/ai/medbot/welcome.ogg', - 'sound/ai/medbot/newAI.ogg') - alert_sounds = list('sound/ai/medbot/attention.ogg') - command_report_sounds = list('sound/ai/medbot/commandreport.ogg') - event_sounds = list(ANNOUNCER_AIMALF = 'sound/ai/default/aimalf.ogg', - ANNOUNCER_ALIENS = 'sound/ai/medbot/aliens.ogg', - ANNOUNCER_ANIMES = 'sound/ai/medbot/animes.ogg', - ANNOUNCER_GRANOMALIES = 'sound/ai/medbot/granomalies.ogg', - ANNOUNCER_INTERCEPT = 'sound/ai/medbot/intercept.ogg', - ANNOUNCER_IONSTORM = 'sound/ai/medbot/ionstorm.ogg', - ANNOUNCER_METEORS = 'sound/ai/medbot/meteors.ogg', - ANNOUNCER_OUTBREAK5 = 'sound/ai/medbot/outbreak5.ogg', - ANNOUNCER_OUTBREAK7 = 'sound/ai/medbot/outbreak7.ogg', - ANNOUNCER_POWEROFF = 'sound/ai/medbot/poweroff.ogg', - ANNOUNCER_POWERON = 'sound/ai/medbot/poweron.ogg', - ANNOUNCER_RADIATION = 'sound/ai/medbot/radiation.ogg', - ANNOUNCER_SHUTTLECALLED = 'sound/ai/medbot/shuttlecalled.ogg', - ANNOUNCER_SHUTTLEDOCK = 'sound/ai/medbot/shuttledock.ogg', - ANNOUNCER_SHUTTLERECALLED = 'sound/ai/medbot/shuttlerecalled.ogg', - ANNOUNCER_SPANOMALIES = 'sound/ai/medbot/spanomalies.ogg') + welcome_sounds = list('sound/announcer/medbot/welcome.ogg', + 'sound/announcer/medbot/newAI.ogg') + alert_sounds = list('sound/announcer/medbot/attention.ogg') + command_report_sounds = list('sound/announcer/medbot/commandreport.ogg') + event_sounds = list(ANNOUNCER_AIMALF = 'sound/announcer/default/aimalf.ogg', + ANNOUNCER_ALIENS = 'sound/announcer/medbot/aliens.ogg', + ANNOUNCER_ANIMES = 'sound/announcer/medbot/animes.ogg', + ANNOUNCER_GRANOMALIES = 'sound/announcer/medbot/granomalies.ogg', + ANNOUNCER_INTERCEPT = 'sound/announcer/medbot/intercept.ogg', + ANNOUNCER_IONSTORM = 'sound/announcer/medbot/ionstorm.ogg', + ANNOUNCER_METEORS = 'sound/announcer/medbot/meteors.ogg', + ANNOUNCER_OUTBREAK5 = 'sound/announcer/medbot/outbreak5.ogg', + ANNOUNCER_OUTBREAK7 = 'sound/announcer/medbot/outbreak7.ogg', + ANNOUNCER_POWEROFF = 'sound/announcer/medbot/poweroff.ogg', + ANNOUNCER_POWERON = 'sound/announcer/medbot/poweron.ogg', + ANNOUNCER_RADIATION = 'sound/announcer/medbot/radiation.ogg', + ANNOUNCER_SHUTTLECALLED = 'sound/announcer/medbot/shuttlecalled.ogg', + ANNOUNCER_SHUTTLEDOCK = 'sound/announcer/medbot/shuttledock.ogg', + ANNOUNCER_SHUTTLERECALLED = 'sound/announcer/medbot/shuttlerecalled.ogg', + ANNOUNCER_SPANOMALIES = 'sound/announcer/medbot/spanomalies.ogg') diff --git a/code/datums/armor/_armor.dm b/code/datums/armor/_armor.dm index 616ad00c324ad..961c7827b1de4 100644 --- a/code/datums/armor/_armor.dm +++ b/code/datums/armor/_armor.dm @@ -139,15 +139,15 @@ GLOBAL_LIST_INIT(armor_by_type, generate_armor_type_cache()) /// Gets the rating of armor for the specified rating /datum/armor/proc/get_rating(rating) - // its not that I dont trust coders, its just that I don't trust coders + // its not that I don't trust coders, its just that I don't trust coders if(!(rating in ARMOR_LIST_ALL())) - CRASH("Attempted to get a rating '[rating]' that doesnt exist") + CRASH("Attempted to get a rating '[rating]' that doesn't exist") return vars[rating] /datum/armor/immune/get_rating(rating) return 100 -/// Converts all the ratings of the armor into a list, optionally inversed +/// Converts all the ratings of the armor into a list, optionally inverted /datum/armor/proc/get_rating_list(inverse = FALSE) var/ratings = list() for(var/rating in ARMOR_LIST_ALL()) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index fe34b0c7eddee..ad27ee5ee3edf 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -122,10 +122,10 @@ /datum/beam/proc/Draw() if(SEND_SIGNAL(src, COMSIG_BEAM_BEFORE_DRAW) & BEAM_CANCEL_DRAW) return - var/origin_px = isnull(override_origin_pixel_x) ? origin.pixel_x : override_origin_pixel_x - var/origin_py = isnull(override_origin_pixel_y) ? origin.pixel_y : override_origin_pixel_y - var/target_px = isnull(override_target_pixel_x) ? target.pixel_x : override_target_pixel_x - var/target_py = isnull(override_target_pixel_y) ? target.pixel_y : override_target_pixel_y + var/origin_px = (isnull(override_origin_pixel_x) ? origin.pixel_x : override_origin_pixel_x) + origin.pixel_w + var/origin_py = (isnull(override_origin_pixel_y) ? origin.pixel_y : override_origin_pixel_y) + origin.pixel_z + var/target_px = (isnull(override_target_pixel_x) ? target.pixel_x : override_target_pixel_x) + target.pixel_w + var/target_py = (isnull(override_target_pixel_y) ? target.pixel_y : override_target_pixel_y) + target.pixel_z var/Angle = get_angle_raw(origin.x, origin.y, origin_px, origin_py, target.x , target.y, target_px, target_py) ///var/Angle = round(get_angle(origin,target)) var/matrix/rot_matrix = matrix() @@ -212,6 +212,9 @@ /obj/effect/ebeam/singularity_act() return +/obj/effect/ebeam/Process_Spacemove(movement_dir, continuous_move) + return TRUE + /// A beam subtype used for advanced beams, to react to atoms entering the beam /obj/effect/ebeam/reacting /// If TRUE, atoms that exist in the beam's loc when inited count as "entering" the beam diff --git a/code/datums/bodypart_overlays/bodypart_overlay.dm b/code/datums/bodypart_overlays/bodypart_overlay.dm index 22f2b15f2ccd0..4059e7968d481 100644 --- a/code/datums/bodypart_overlays/bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/bodypart_overlay.dm @@ -9,13 +9,24 @@ ///Key of the icon states of all the sprite_datums for easy caching var/cache_key = "" + /// Whether the overlay blocks emissive light + var/blocks_emissive = EMISSIVE_BLOCK_UNIQUE + ///Wrapper for getting the proper image, colored and everything /datum/bodypart_overlay/proc/get_overlay(layer, obj/item/bodypart/limb) layer = bitflag_to_layer(layer) - . = get_image(layer, limb) - color_image(., layer, limb) + var/image/main_image = get_image(layer, limb) + color_image(main_image, layer, limb) + if(blocks_emissive == EMISSIVE_BLOCK_NONE || !limb) + return main_image + + var/list/all_images = list( + main_image, + emissive_blocker(main_image.icon, main_image.icon_state, limb, layer = main_image.layer, alpha = main_image.alpha) + ) + return all_images -///Generate the image. Needs to be overriden +///Generate the image. Needs to be overridden /datum/bodypart_overlay/proc/get_image(layer, obj/item/bodypart/limb) CRASH("Get image needs to be overridden") @@ -31,7 +42,7 @@ /datum/bodypart_overlay/proc/removed_from_limb(obj/item/bodypart/limb) return -///Use this to change the appearance (and yes you must overwrite hahahahahah) (or dont use this, I just dont want people directly changing the image) +///Use this to change the appearance (and yes you must overwrite hahahahahah) (or don't use this, I just don't want people directly changing the image) /datum/bodypart_overlay/proc/set_appearance() CRASH("Update appearance needs to be overridden") @@ -68,3 +79,7 @@ ///Generate a unique identifier to cache with. If you change something about the image, but the icon cache stays the same, it'll simply pull the unchanged image out of the cache /datum/bodypart_overlay/proc/generate_icon_cache() return list() + +/// Additionally color or texture the limb +/datum/bodypart_overlay/proc/modify_bodypart_appearance(datum/appearance) + return diff --git a/code/datums/bodypart_overlays/emote_bodypart_overlay.dm b/code/datums/bodypart_overlays/emote_bodypart_overlay.dm index 524dd1760561e..344efc0ead064 100644 --- a/code/datums/bodypart_overlays/emote_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/emote_bodypart_overlay.dm @@ -29,10 +29,6 @@ if(!referenced_bodypart) return ..() referenced_bodypart.remove_bodypart_overlay(src) - if(referenced_bodypart.owner) //Keep in mind that the bodypart could have been severed from the owner by now - referenced_bodypart.owner.update_body_parts() - else - referenced_bodypart.update_icon_dropped() return ..() /** @@ -49,7 +45,6 @@ if(!bodypart) return null bodypart.add_bodypart_overlay(overlay) - src.update_body_parts() return overlay /datum/bodypart_overlay/simple/emote/blush diff --git a/code/datums/bodypart_overlays/markings_bodypart_overlay.dm b/code/datums/bodypart_overlays/markings_bodypart_overlay.dm index c2c6f54d861d3..5c11fe9f70334 100644 --- a/code/datums/bodypart_overlays/markings_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/markings_bodypart_overlay.dm @@ -15,7 +15,7 @@ /datum/bodypart_overlay/simple/body_marking/get_image(layer, obj/item/bodypart/limb) var/gender_string = (use_gender && limb.is_dimorphic) ? (limb.gender == MALE ? MALE : FEMALE + "_") : "" //we only got male and female sprites - return image(icon, gender_string + icon_state + "_" + limb.body_zone, layer = layer) + return mutable_appearance(icon, gender_string + icon_state + "_" + limb.body_zone, layer = layer) /datum/bodypart_overlay/simple/body_marking/moth dna_feature_key = "moth_markings" diff --git a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm index 57c11814c022d..5b9101273bcbc 100644 --- a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm @@ -8,11 +8,29 @@ ///The color this organ draws with. Updated by bodypart/inherit_color() var/draw_color - ///Where does this organ inherit it's color from? + ///Where does this organ inherit its color from? var/color_source = ORGAN_COLOR_INHERIT ///Take on the dna/preference from whoever we're gonna be inserted in var/imprint_on_next_insertion = TRUE +/datum/bodypart_overlay/mutant/New(obj/item/organ/attached_organ) + . = ..() + + RegisterSignal(attached_organ, COMSIG_ORGAN_IMPLANTED, PROC_REF(on_mob_insert)) + +/datum/bodypart_overlay/mutant/proc/on_mob_insert(obj/item/organ/parent, mob/living/carbon/receiver) + SIGNAL_HANDLER + + if(!should_visual_organ_apply_to(parent.type, receiver)) + stack_trace("adding a [parent.type] to a [receiver.type] when it shouldn't be!") + + if(imprint_on_next_insertion) //We only want this set *once* + var/feature_name = receiver.dna.features[feature_key] + if (isnull(feature_name)) + feature_name = receiver.dna.species.mutant_organs[parent.type] + set_appearance_from_name(feature_name) + imprint_on_next_insertion = FALSE + /datum/bodypart_overlay/mutant/get_overlay(layer, obj/item/bodypart/limb) inherit_color(limb) // If draw_color is not set yet, go ahead and do that return ..() @@ -28,13 +46,16 @@ sprite_datum = get_random_appearance() ///Grab a random appearance datum (thats not locked) -/datum/bodypart_overlay/mutant/proc/get_random_appearance() +/datum/bodypart_overlay/mutant/proc/get_random_appearance() as /datum/sprite_accessory + RETURN_TYPE(/datum/sprite_accessory) var/list/valid_restyles = list() var/list/feature_list = get_global_feature_list() for(var/accessory in feature_list) var/datum/sprite_accessory/accessory_datum = feature_list[accessory] if(initial(accessory_datum.locked)) //locked is for stuff that shouldn't appear here continue + if(!initial(accessory_datum.natural_spawn)) + continue valid_restyles += accessory_datum return pick(valid_restyles) @@ -64,7 +85,6 @@ return appearance /datum/bodypart_overlay/mutant/color_image(image/overlay, layer, obj/item/bodypart/limb) - overlay.color = sprite_datum.color_src ? draw_color : null /datum/bodypart_overlay/mutant/added_to_limb(obj/item/bodypart/limb) @@ -107,15 +127,21 @@ if(ORGAN_COLOR_INHERIT) draw_color = bodypart_owner.draw_color if(ORGAN_COLOR_HAIR) + var/datum/species/species = bodypart_owner.owner?.dna?.species + var/fixed_color = species?.get_fixed_hair_color(bodypart_owner) if(!ishuman(bodypart_owner.owner)) + draw_color = fixed_color return var/mob/living/carbon/human/human_owner = bodypart_owner.owner var/obj/item/bodypart/head/my_head = human_owner.get_bodypart(BODY_ZONE_HEAD) //not always the same as bodypart_owner //head hair color takes priority, owner hair color is a backup if we lack a head or something - if(my_head) - draw_color = my_head.hair_color - else - draw_color = human_owner.hair_color + if(!my_head) + draw_color = fixed_color || human_owner.hair_color + return + if(my_head.head_flags & (HEAD_HAIR|HEAD_FACIAL_HAIR)) + draw_color = my_head.fixed_hair_color || my_head.hair_color + else //inherit mutant color of the bodypart if the owner doesn't have hair. + draw_color = bodypart_owner.draw_color return TRUE @@ -136,3 +162,4 @@ CRASH("External organ [type] couldn't find sprite accessory [accessory_name]!") else CRASH("External organ [type] had fetch_sprite_datum called with a null accessory name!") + diff --git a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm index 7f52d21de5398..20467eede042b 100644 --- a/code/datums/bodypart_overlays/simple_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/simple_bodypart_overlay.dm @@ -9,7 +9,7 @@ var/draw_color /datum/bodypart_overlay/simple/get_image(layer, obj/item/bodypart/limb) - return image(icon, icon_state, layer = layer) + return mutable_appearance(icon, icon_state, layer = layer) /datum/bodypart_overlay/simple/color_image(image/overlay, layer, obj/item/bodypart/limb) @@ -25,11 +25,6 @@ icon_state = "sixpack" layers = EXTERNAL_ADJACENT -///A creampie drawn on the head -/datum/bodypart_overlay/simple/creampie - icon_state = "creampie_human" - layers = EXTERNAL_FRONT - ///bags drawn beneath the eyes /datum/bodypart_overlay/simple/bags icon_state = "bags" diff --git a/code/datums/bodypart_overlays/texture_bodypart_overlay.dm b/code/datums/bodypart_overlays/texture_bodypart_overlay.dm new file mode 100644 index 0000000000000..623a61b8912f0 --- /dev/null +++ b/code/datums/bodypart_overlays/texture_bodypart_overlay.dm @@ -0,0 +1,28 @@ +/// Bodypart overlays focused on texturing limbs +/datum/bodypart_overlay/texture + /// icon file for the texture + var/texture_icon + /// icon state for the texture + var/texture_icon_state + /// Cache the icon so we dont have to make a new one each time + var/cached_texture_icon + +/datum/bodypart_overlay/texture/New() + . = ..() + + cached_texture_icon = icon(texture_icon, texture_icon_state) + +/datum/bodypart_overlay/texture/modify_bodypart_appearance(datum/appearance) + appearance.add_filter("bodypart_texture_[texture_icon_state]", 1, layering_filter(icon = cached_texture_icon,blend_mode = BLEND_INSET_OVERLAY)) + +/datum/bodypart_overlay/texture/generate_icon_cache() + return "[type]" + +/datum/bodypart_overlay/texture/spacey + blocks_emissive = EMISSIVE_BLOCK_NONE + texture_icon_state = "spacey" + texture_icon = 'icons/mob/human/textures.dmi' + +/datum/bodypart_overlay/texture/carpskin + texture_icon_state = "carpskin" + texture_icon = 'icons/mob/human/textures.dmi' diff --git a/code/datums/brain_damage/creepy_trauma.dm b/code/datums/brain_damage/creepy_trauma.dm index 742f1fe57e9db..d908dfc0e613c 100644 --- a/code/datums/brain_damage/creepy_trauma.dm +++ b/code/datums/brain_damage/creepy_trauma.dm @@ -66,7 +66,8 @@ /datum/brain_trauma/special/obsessed/on_lose() ..() - owner.mind.remove_antag_datum(/datum/antagonist/obsessed) + if (owner.mind.remove_antag_datum(/datum/antagonist/obsessed)) + owner.mind.add_antag_datum(/datum/antagonist/former_obsessed) owner.clear_mood_event("creeping") if(obsession) log_game("[key_name(owner)] is no longer obsessed with [key_name(obsession)].") diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index f4c78bc9007e6..ad60f6cd9a6a5 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -1,3 +1,8 @@ + +#define IMAGINARY_FRIEND_RANGE 9 +#define IMAGINARY_FRIEND_SPEECH_RANGE IMAGINARY_FRIEND_RANGE +#define IMAGINARY_FRIEND_EXTENDED_SPEECH_RANGE 999 + /datum/brain_trauma/special/imaginary_friend name = "Imaginary Friend" desc = "Patient can see and hear an imaginary person." @@ -88,11 +93,15 @@ var/mob/living/owner var/bubble_icon = "default" + /// Whether our host and other imaginary friends can hear us only when nearby or practically anywhere. + var/extended_message_range = TRUE + /mob/camera/imaginary_friend/Login() . = ..() if(!. || !client) return FALSE - greet() + if(owner) + greet() Show() /mob/camera/imaginary_friend/proc/greet() @@ -119,6 +128,7 @@ if(!owner.imaginary_group) owner.imaginary_group = list(owner) owner.imaginary_group += src + greet() /// Copies appearance from passed player prefs, or randomises them if none are provided /mob/camera/imaginary_friend/proc/setup_appearance(datum/preferences/appearance_from_prefs = null) @@ -156,11 +166,11 @@ for(var/job in appearance_from_prefs.job_preferences) var/this_pref = appearance_from_prefs.job_preferences[job] if(this_pref > highest_pref) - appearance_job = SSjob.GetJob(job) + appearance_job = SSjob.get_job(job) highest_pref = this_pref if(!appearance_job) - appearance_job = SSjob.GetJob(JOB_ASSISTANT) + appearance_job = SSjob.get_job(JOB_ASSISTANT) if(istype(appearance_job, /datum/job/ai)) human_image = icon('icons/mob/silicon/ai.dmi', icon_state = resolve_ai_icon(appearance_from_prefs.read_preference(/datum/preference/choiced/ai_core_display)), dir = SOUTH) @@ -212,7 +222,7 @@ create_chat_message(speaker, message_language, raw_message, spans) to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mods)) -/mob/camera/imaginary_friend/send_speech(message, range = 7, obj/source = src, bubble_type = bubble_icon, list/spans = list(), datum/language/message_language = null, list/message_mods = list(), forced = null) +/mob/camera/imaginary_friend/send_speech(message, range = IMAGINARY_FRIEND_SPEECH_RANGE, obj/source = src, bubble_type = bubble_icon, list/spans = list(), datum/language/message_language = null, list/message_mods = list(), forced = null) message = get_message_mods(message, message_mods) message = capitalize(message) @@ -232,6 +242,9 @@ message = "[randomnote] [capitalize(message)] [randomnote]" spans |= SPAN_SINGING + if(extended_message_range) + range = IMAGINARY_FRIEND_EXTENDED_SPEECH_RANGE + var/eavesdrop_range = 0 if (message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) @@ -383,7 +396,7 @@ var/obj/visual = image('icons/hud/screen_gen.dmi', our_tile, "arrow", FLY_LAYER) INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(flick_overlay_global), visual, group_clients(), 2.5 SECONDS) - animate(visual, pixel_x = (tile.x - our_tile.x) * world.icon_size + pointed_atom.pixel_x, pixel_y = (tile.y - our_tile.y) * world.icon_size + pointed_atom.pixel_y, time = 1.7, easing = EASE_OUT) + animate(visual, pixel_x = (tile.x - our_tile.x) * ICON_SIZE_X + pointed_atom.pixel_x, pixel_y = (tile.y - our_tile.y) * ICON_SIZE_Y + pointed_atom.pixel_y, time = 1.7, easing = EASE_OUT) /mob/camera/imaginary_friend/create_thinking_indicator() if(active_thinking_indicator || active_typing_indicator || !HAS_TRAIT(src, TRAIT_THINKING_IN_CHARACTER)) @@ -528,3 +541,7 @@ real_name = "[owner.real_name]?" name = real_name human_image = icon('icons/mob/simple/lavaland/lavaland_monsters.dmi', icon_state = "curseblob") + +#undef IMAGINARY_FRIEND_RANGE +#undef IMAGINARY_FRIEND_SPEECH_RANGE +#undef IMAGINARY_FRIEND_EXTENDED_SPEECH_RANGE diff --git a/code/datums/brain_damage/magic.dm b/code/datums/brain_damage/magic.dm index 441d220a5ded3..fde1e5d2421f1 100644 --- a/code/datums/brain_damage/magic.dm +++ b/code/datums/brain_damage/magic.dm @@ -104,14 +104,14 @@ create_stalker() if(get_dist(owner, stalker) <= 1) - playsound(owner, 'sound/magic/demon_attack1.ogg', 50) + playsound(owner, 'sound/effects/magic/demon_attack1.ogg', 50) owner.visible_message(span_warning("[owner] is torn apart by invisible claws!"), span_userdanger("Ghostly claws tear your body apart!")) owner.take_bodypart_damage(rand(20, 45), wound_bonus=CANT_WOUND) else if(SPT_PROB(30, seconds_per_tick)) stalker.forceMove(get_step_towards(stalker, owner)) if(get_dist(owner, stalker) <= 8) if(!close_stalker) - var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) + var/sound/slowbeat = sound('sound/effects/health/slowbeat.ogg', repeat = TRUE) owner.playsound_local(owner, slowbeat, 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) close_stalker = TRUE else diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index d5f0a0e91240a..cd45ae1abf468 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -407,7 +407,7 @@ var/obj/item/bodypart/bodypart = owner.get_bodypart(owner.get_random_valid_zone(even_weights = TRUE)) if(!(bodypart && IS_ORGANIC_LIMB(bodypart)) && bodypart.bodypart_flags & BODYPART_PSEUDOPART) return - if(owner.incapacitated()) + if(owner.incapacitated) return bodypart.receive_damage(scratch_damage) if(SPT_PROB(33, seconds_per_tick)) diff --git a/code/datums/brain_damage/special.dm b/code/datums/brain_damage/special.dm index 1bf011e0fab49..f49a6d0c0bc52 100644 --- a/code/datums/brain_damage/special.dm +++ b/code/datums/brain_damage/special.dm @@ -45,7 +45,7 @@ else message = pick_list_replacements(BRAIN_DAMAGE_FILE, "god_neutral") - playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 200, TRUE, 5) + playsound(get_turf(owner), 'sound/effects/magic/clockwork/invoke_general.ogg', 200, TRUE, 5) voice_of_god(message, owner, list("colossus","yell"), 2.5, include_owner, name, TRUE) /datum/brain_trauma/special/bluespace_prophet @@ -218,7 +218,7 @@ linked = FALSE return to_chat(owner, span_warning("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) + owner.playsound_local(owner, 'sound/effects/magic/lightning_chargeup.ogg', 75, FALSE) returning = TRUE addtimer(CALLBACK(src, PROC_REF(snapback)), 10 SECONDS) @@ -231,7 +231,7 @@ return to_chat(owner, span_warning("You're pulled through spacetime!")) do_teleport(owner, get_turf(linked_target), null, channel = TELEPORT_CHANNEL_QUANTUM) - owner.playsound_local(owner, 'sound/magic/repulse.ogg', 100, FALSE) + owner.playsound_local(owner, 'sound/effects/magic/repulse.ogg', 100, FALSE) linked_target = null linked = FALSE @@ -388,17 +388,17 @@ if(owner.stat != CONSCIOUS) if(prob(20)) - owner.playsound_local(beepsky, 'sound/voice/beepsky/iamthelaw.ogg', 50) + owner.playsound_local(beepsky, 'sound/mobs/non-humanoids/beepsky/iamthelaw.ogg', 50) return if(get_dist(owner, beepsky) <= 1) - owner.playsound_local(owner, 'sound/weapons/egloves.ogg', 50) + owner.playsound_local(owner, 'sound/items/weapons/egloves.ogg', 50) owner.visible_message(span_warning("[owner]'s body jerks as if it was shocked."), span_userdanger("You feel the fist of the LAW.")) owner.adjustStaminaLoss(rand(40, 70)) QDEL_NULL(beepsky) if(prob(20) && get_dist(owner, beepsky) <= 8) - owner.playsound_local(beepsky, 'sound/voice/beepsky/criminal.ogg', 40) + owner.playsound_local(beepsky, 'sound/mobs/non-humanoids/beepsky/criminal.ogg', 40) /obj/effect/client_image_holder/securitron name = "Securitron" diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 325203dbb350a..198b674631750 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -305,7 +305,7 @@ addtimer(TRAIT_CALLBACK_REMOVE(owner, TRAIT_DISCOORDINATED_TOOL_USER, TRAUMA_TRAIT), 10 SECONDS) addtimer(CALLBACK(owner, TYPE_PROC_REF(/atom, balloon_alert), owner, "dexterity regained!"), 10 SECONDS) if(prob(15)) - playsound(owner,'sound/effects/sf_hiccup_male_01.ogg', 50) + playsound(owner,'sound/mobs/humanoids/human/hiccup/sf_hiccup_male_01.ogg', 50) owner.emote("hiccup") //too drunk to feel anything //if they're to this point, they're likely dying of liver damage @@ -322,7 +322,7 @@ if(!. || !client) return FALSE to_chat(src, span_notice("You're the incredibly inebriated leftovers of your host's consciousness! Make sure to act the part and leave a trail of confusion and chaos in your wake.")) - to_chat(src, span_boldwarning("Do not commit suicide or put the body in danger, you have a minor liscense to grief just like a clown, do not kill anyone or create a situation leading to the body being in danger or in harm ways. While you're drunk, you're not suicidal.")) + to_chat(src, span_boldwarning("While you're drunk, you're not suicidal. Do not commit suicide or put the body in danger. You have a minor license to grief just like a clown, but do not kill anyone or create a situation leading to the body being put in danger or at risk of being harmed.")) #undef OWNER #undef STRANGER diff --git a/code/datums/browser.dm b/code/datums/browser.dm index f74ecf6c5a343..b9d859552389d 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -99,7 +99,7 @@ /datum/browser/proc/open(use_onclose = TRUE) if(isnull(window_id)) //null check because this can potentially nuke goonchat WARNING("Browser [title] tried to open with a null ID") - to_chat(user, span_userdanger("The [title] browser you tried to open failed a sanity check! Please report this on github!")) + to_chat(user, span_userdanger("The [title] browser you tried to open failed a sanity check! Please report this on GitHub!")) return var/window_size = "" if (width && height) diff --git a/code/datums/callback.dm b/code/datums/callback.dm index cf90582115dd6..c2941c9202986 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -26,7 +26,7 @@ * ## PROC TYPEPATH SHORTCUTS * (these operate on paths, not types, so to these shortcuts, datum is NOT a parent of atom, etc...) * - * ### proc defined on current(src) object OR overridden at src or any of it's parents: + * ### proc defined on current(src) object OR overridden at src or any of its parents: * PROC_REF(procname) * * `CALLBACK(src, PROC_REF(some_proc_here))` @@ -111,7 +111,7 @@ else calling_arguments = args if(datum_flags & DF_VAR_EDITED) - if(usr != GLOB.AdminProcCallHandler && !usr?.client?.ckey) //This happens when a timer or the MC invokes a callback + if(usr != GLOB.AdminProcCallHandler && !(usr && usr?.client?.ckey)) //This happens when a timer or the MC invokes a callback return HandleUserlessProcCall(usr, object, delegate, calling_arguments) return WrapAdminProcCall(object, delegate, calling_arguments) if (object == GLOBAL_PROC) @@ -148,7 +148,7 @@ else calling_arguments = args if(datum_flags & DF_VAR_EDITED) - if(usr != GLOB.AdminProcCallHandler && !usr?.client?.ckey) //This happens when a timer or the MC invokes a callback + if(usr != GLOB.AdminProcCallHandler && !(usr && usr?.client?.ckey)) //This happens when a timer or the MC invokes a callback return HandleUserlessProcCall(usr, object, delegate, calling_arguments) return WrapAdminProcCall(object, delegate, calling_arguments) if (object == GLOBAL_PROC) diff --git a/code/datums/candidate_poll.dm b/code/datums/candidate_poll.dm index f1fa9812014ed..9afec6f371bb6 100644 --- a/code/datums/candidate_poll.dm +++ b/code/datums/candidate_poll.dm @@ -74,7 +74,7 @@ if(time_left() <= 0) if(!silent) to_chat(candidate, span_danger("Sorry, you were too late for the consideration!")) - SEND_SOUND(candidate, 'sound/machines/buzz-sigh.ogg') + SEND_SOUND(candidate, 'sound/machines/buzz/buzz-sigh.ogg') return FALSE signed_up += candidate diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index d300fcc371349..ee278cdae6212 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -314,7 +314,7 @@ speaker = v.source spans |= "virtual-speaker" - // Ignore virtual speaker (most often radio messages) from ourself + // Ignore virtual speaker (most often radio messages) from ourselves if (originalSpeaker != src && speaker == src) return @@ -324,59 +324,6 @@ else new /datum/chatmessage(raw_message, speaker, src, message_language, spans) -// Tweak these defines to change the available color ranges -#define CM_COLOR_SAT_MIN 0.6 -#define CM_COLOR_SAT_MAX 0.7 -#define CM_COLOR_LUM_MIN 0.65 -#define CM_COLOR_LUM_MAX 0.75 - -/** - * Gets a color for a name, will return the same color for a given string consistently within a round.atom - * - * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. - * - * Arguments: - * * name - The name to generate a color for - * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation - * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence - */ -/datum/chatmessage/proc/colorize_string(name, sat_shift = 1, lum_shift = 1) - // seed to help randomness - var/static/rseed = rand(1,26) - - // get hsl using the selected 6 characters of the md5 hash - var/hash = copytext(md5(name + GLOB.round_id), rseed, rseed + 6) - var/h = hex2num(copytext(hash, 1, 3)) * (360 / 255) - var/s = (hex2num(copytext(hash, 3, 5)) >> 2) * ((CM_COLOR_SAT_MAX - CM_COLOR_SAT_MIN) / 63) + CM_COLOR_SAT_MIN - var/l = (hex2num(copytext(hash, 5, 7)) >> 2) * ((CM_COLOR_LUM_MAX - CM_COLOR_LUM_MIN) / 63) + CM_COLOR_LUM_MIN - - // adjust for shifts - s *= clamp(sat_shift, 0, 1) - l *= clamp(lum_shift, 0, 1) - - // convert to rgb - var/h_int = round(h/60) // mapping each section of H to 60 degree sections - var/c = (1 - abs(2 * l - 1)) * s - var/x = c * (1 - abs((h / 60) % 2 - 1)) - var/m = l - c * 0.5 - x = (x + m) * 255 - c = (c + m) * 255 - m *= 255 - switch(h_int) - if(0) - return "#[num2hex(c, 2)][num2hex(x, 2)][num2hex(m, 2)]" - if(1) - return "#[num2hex(x, 2)][num2hex(c, 2)][num2hex(m, 2)]" - if(2) - return "#[num2hex(m, 2)][num2hex(c, 2)][num2hex(x, 2)]" - if(3) - return "#[num2hex(m, 2)][num2hex(x, 2)][num2hex(c, 2)]" - if(4) - return "#[num2hex(x, 2)][num2hex(m, 2)][num2hex(c, 2)]" - if(5) - return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]" - - #undef CHAT_LAYER_MAX_Z #undef CHAT_LAYER_Z_STEP #undef CHAT_MESSAGE_APPROX_LHEIGHT @@ -388,7 +335,3 @@ #undef CHAT_MESSAGE_LIFESPAN #undef CHAT_MESSAGE_SPAWN_TIME #undef CHAT_MESSAGE_WIDTH -#undef CM_COLOR_LUM_MAX -#undef CM_COLOR_LUM_MIN -#undef CM_COLOR_SAT_MAX -#undef CM_COLOR_SAT_MIN diff --git a/code/datums/cinematics/malf_doomsday.dm b/code/datums/cinematics/malf_doomsday.dm index 2eb330d9a484f..02297065afc45 100644 --- a/code/datums/cinematics/malf_doomsday.dm +++ b/code/datums/cinematics/malf_doomsday.dm @@ -5,6 +5,6 @@ flick("intro_malf", screen) stoplag(7.6 SECONDS) flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) special_callback?.Invoke() screen.icon_state = "summary_malf" diff --git a/code/datums/cinematics/narsie_summon.dm b/code/datums/cinematics/narsie_summon.dm index 2fecac2c63a80..1e0a5d1d48f94 100644 --- a/code/datums/cinematics/narsie_summon.dm +++ b/code/datums/cinematics/narsie_summon.dm @@ -5,9 +5,9 @@ screen.icon_state = null flick("intro_cult", screen) stoplag(2.5 SECONDS) - play_cinematic_sound(sound('sound/magic/enter_blood.ogg')) + play_cinematic_sound(sound('sound/effects/magic/enter_blood.ogg')) stoplag(2.8 SECONDS) - play_cinematic_sound(sound('sound/machines/terminal_off.ogg')) + play_cinematic_sound(sound('sound/machines/terminal/terminal_off.ogg')) stoplag(2 SECONDS) flick("station_corrupted", screen) play_cinematic_sound(sound('sound/effects/ghost.ogg')) @@ -20,10 +20,10 @@ /datum/cinematic/cult_fail/play_cinematic() screen.icon_state = "station_intact" stoplag(2 SECONDS) - play_cinematic_sound(sound('sound/creatures/narsie_rises.ogg')) + play_cinematic_sound(sound('sound/music/antag/bloodcult/narsie_rises.ogg')) stoplag(6 SECONDS) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) stoplag(1 SECONDS) - play_cinematic_sound(sound('sound/magic/demon_dies.ogg')) + play_cinematic_sound(sound('sound/effects/magic/demon_dies.ogg')) stoplag(3 SECONDS) special_callback?.Invoke() diff --git a/code/datums/cinematics/nuke_cinematics.dm b/code/datums/cinematics/nuke_cinematics.dm index dd827f7c0b9fd..858d95c7e5102 100644 --- a/code/datums/cinematics/nuke_cinematics.dm +++ b/code/datums/cinematics/nuke_cinematics.dm @@ -22,7 +22,7 @@ /datum/cinematic/nuke/ops_victory/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// The syndicate nuclear bomb was activated, but just barely missed the station! /datum/cinematic/nuke/ops_miss @@ -30,7 +30,7 @@ /datum/cinematic/nuke/ops_miss/play_nuke_effect() flick("station_intact_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// The self destruct, or another station-destroying entity like a blob, destroyed the station! /datum/cinematic/nuke/self_destruct @@ -38,14 +38,14 @@ /datum/cinematic/nuke/self_destruct/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// The self destruct was activated, yet somehow avoided destroying the station! /datum/cinematic/nuke/self_destruct_miss after_nuke_summary_state = "station_intact" /datum/cinematic/nuke/self_destruct_miss/play_nuke_effect() - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) special_callback?.Invoke() /// The syndicate nuclear bomb was activated, and the nuclear operatives failed to extract on their shuttle before it detonated on the station! @@ -54,7 +54,7 @@ /datum/cinematic/nuke/mutual_destruction/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// A blood cult summoned Nar'sie, but central command deployed a nuclear package to stop them. /datum/cinematic/nuke/cult @@ -62,7 +62,7 @@ /datum/cinematic/nuke/cult/play_nuke_effect() flick("station_explode_fade_red", screen) - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) /// A fake version of the nuclear detonation, where it winds up, but doesn't explode. /datum/cinematic/nuke/fake @@ -77,7 +77,7 @@ cleanup_time = 10 SECONDS /datum/cinematic/nuke/clown/play_nuke_effect() - play_cinematic_sound(sound('sound/items/airhorn.ogg')) + play_cinematic_sound(sound('sound/items/airhorn/airhorn.ogg')) flick("summary_selfdes", screen) //??? /// A fake version of the nuclear detonation, where it winds up, but doesn't explode as the nuke core within was missing. @@ -86,7 +86,7 @@ /datum/cinematic/nuke/no_core/play_nuke_effect() flick("station_intact", screen) - play_cinematic_sound(sound('sound/ambience/signal.ogg')) + play_cinematic_sound(sound('sound/ambience/misc/signal.ogg')) stoplag(10 SECONDS) /// The syndicate nuclear bomb was activated, but just missed the station by a whole z-level! @@ -96,5 +96,5 @@ /datum/cinematic/nuke/far_explosion/play_cinematic() // This one has no intro sequence. // It's actually just a global sound, which makes you wonder why it's a cinematic. - play_cinematic_sound(sound('sound/effects/explosion_distant.ogg')) + play_cinematic_sound(sound('sound/effects/explosion/explosion_distant.ogg')) special_callback?.Invoke() diff --git a/code/datums/cogbar.dm b/code/datums/cogbar.dm index 0b5ead1e51e8f..6505158b58d88 100644 --- a/code/datums/cogbar.dm +++ b/code/datums/cogbar.dm @@ -44,7 +44,7 @@ /// Adds the cog to the user, visible by other players /datum/cogbar/proc/add_cog_to_user() - cog = SSvis_overlays.add_vis_overlay(user, + cog = SSvis_overlays.add_vis_overlay(user, icon = 'icons/effects/progressbar.dmi', iconstate = "cog", plane = HIGH_GAME_PLANE, @@ -52,7 +52,7 @@ unique = TRUE, alpha = 0, ) - cog.pixel_y = world.icon_size + offset_y + cog.pixel_y = ICON_SIZE_Y + offset_y animate(cog, alpha = 255, time = COGBAR_ANIMATION_TIME) if(isnull(user_client)) @@ -61,7 +61,7 @@ blank = image('icons/blanks/32x32.dmi', cog, "nothing") SET_PLANE_EXPLICIT(blank, HIGH_GAME_PLANE, user) blank.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA - blank.override = TRUE + blank.override = TRUE user_client.images += blank @@ -74,7 +74,7 @@ animate(cog, alpha = 0, time = COGBAR_ANIMATION_TIME) - QDEL_IN(src, COGBAR_ANIMATION_TIME) + QDEL_IN(src, COGBAR_ANIMATION_TIME) /// When the user is deleted, remove the cog @@ -82,6 +82,6 @@ SIGNAL_HANDLER qdel(src) - + #undef COGBAR_ANIMATION_TIME diff --git a/code/datums/communications.dm b/code/datums/communications.dm index 92e5fdcfd74ac..6df6b1e07bb34 100644 --- a/code/datums/communications.dm +++ b/code/datums/communications.dm @@ -37,9 +37,9 @@ GLOBAL_DATUM_INIT(communications_controller, /datum/communciations_controller, n else var/list/message_data = user.treat_message(input) if(syndicate) - priority_announce(html_decode(message_data["message"]), null, 'sound/misc/announce_syndi.ogg', ANNOUNCEMENT_TYPE_SYNDICATE, has_important_message = TRUE, players = players, color_override = "red") + priority_announce(html_decode(message_data["message"]), null, 'sound/announcer/announcement/announce_syndi.ogg', ANNOUNCEMENT_TYPE_SYNDICATE, has_important_message = TRUE, players = players, color_override = "red") else - priority_announce(html_decode(message_data["message"]), null, 'sound/misc/announce.ogg', ANNOUNCEMENT_TYPE_CAPTAIN, has_important_message = TRUE, players = players) + priority_announce(html_decode(message_data["message"]), null, 'sound/announcer/announcement/announce.ogg', ANNOUNCEMENT_TYPE_CAPTAIN, has_important_message = TRUE, players = players) COOLDOWN_START(src, nonsilicon_message_cooldown, COMMUNICATION_COOLDOWN) user.log_talk(input, LOG_SAY, tag="priority announcement") message_admins("[ADMIN_LOOKUPFLW(user)] has made a priority announcement.") diff --git a/code/datums/components/README.md b/code/datums/components/README.md index db8bf10a327f6..34aea1176e430 100644 --- a/code/datums/components/README.md +++ b/code/datums/components/README.md @@ -2,8 +2,8 @@ ## Concept -Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward it's arguments with a `SendSignal()` call. Now every component that want's to can also know about this happening. +Loosely adapted from /vg/. This is an entity component system for adding behaviours to datums when inheritance doesn't quite cut it. By using signals and events instead of direct inheritance, you can inject behaviours without hacky overloads. It requires a different method of thinking, but is not hard to use correctly. If a behaviour can have application across more than one thing. Make it generic, make it a component. Atom/mob/obj event? Give it a signal, and forward its arguments with a `SendSignal()` call. Now every component that want's to can also know about this happening. -### [HackMD page for an introduction to the system as a whole.](https://hackmd.io/@tgstation/SignalsComponentsElements) +### [HackMD page for an introduction to the system as a whole.](https://hackmd.io/@tgstation/SignalsComponentsElements) ### See/Define signals and their arguments in [__DEFINES\components.dm](../../__DEFINES/components.dm) diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index b258abed65dda..f78e2af6be17d 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -4,7 +4,7 @@ * The component datum * * A component should be a single standalone unit - * of functionality, that works by receiving signals from it's parent + * of functionality, that works by receiving signals from its parent * object to provide some single functionality (i.e a slippery component) * that makes the object it's attached to cause people to slip over. * Useful when you want shared behaviour independent of type inheritance diff --git a/code/datums/components/acid.dm b/code/datums/components/acid.dm index fc60e0312fd72..74fa1b1ae7f88 100644 --- a/code/datums/components/acid.dm +++ b/code/datums/components/acid.dm @@ -148,7 +148,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e var/acid_used = min(acid_volume * 0.05, 20) * seconds_per_tick var/applied_targets = 0 for(var/atom/movable/target_movable as anything in target_turf) - // Dont apply acid to things under the turf + // Don't apply acid to things under the turf if(target_turf.underfloor_accessibility < UNDERFLOOR_INTERACTABLE && HAS_TRAIT(target_movable, TRAIT_T_RAY_VISIBLE)) continue // Ignore mobs if turf_acid_ignores_mobs is TRUE diff --git a/code/datums/components/adjust_fishing_difficulty.dm b/code/datums/components/adjust_fishing_difficulty.dm new file mode 100644 index 0000000000000..4e329b039409c --- /dev/null +++ b/code/datums/components/adjust_fishing_difficulty.dm @@ -0,0 +1,110 @@ +///Influences the difficulty of the minigame when worn or if buckled to. +/datum/component/adjust_fishing_difficulty + ///The additive numerical modifier to the difficulty of the minigame + var/modifier + ///For items, in which slot it has to be worn to influence the difficulty of the minigame + var/slots + +/datum/component/adjust_fishing_difficulty/Initialize(modifier, slots = NONE) + if(!ismovable(parent) || !modifier) + return COMPONENT_INCOMPATIBLE + + if(!isitem(parent)) + var/atom/movable/movable_parent = parent + if(!movable_parent.can_buckle) + return COMPONENT_INCOMPATIBLE + + src.modifier = modifier + src.slots = slots + +/datum/component/adjust_fishing_difficulty/RegisterWithParent() + if(isitem(parent)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_dropped)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_item_examine)) + else + RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, PROC_REF(on_buckle)) + RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(on_unbuckle)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_buckle_examine)) + + update_check() + +/datum/component/adjust_fishing_difficulty/UnregisterFromParent() + UnregisterSignal(parent, list( + COMSIG_ATOM_EXAMINE, + COMSIG_MOVABLE_BUCKLE, + COMSIG_MOVABLE_UNBUCKLE, + COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + )) + + update_check(TRUE) + +/datum/component/adjust_fishing_difficulty/proc/update_check(removing = FALSE) + var/atom/movable/movable_parent = parent + for(var/mob/living/buckled_mob as anything in movable_parent.buckled_mobs) + update_user(buckled_mob, removing) + if(!isitem(movable_parent) || !isliving(movable_parent.loc)) + return + var/mob/living/holder = movable_parent.loc + var/obj/item/item = parent + if(holder.get_slot_by_item(movable_parent) & (slots || item.slot_flags)) + update_user(holder, removing) + +/datum/component/adjust_fishing_difficulty/proc/on_item_examine(obj/item/item, mob/user, list/examine_text) + SIGNAL_HANDLER + if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISH)) + return + var/method = "[(slots || item.slot_flags) & ITEM_SLOT_HANDS ? "Holding" : "Wearing"] [item.p_them()]" + add_examine_line(user, examine_text, method) + +/datum/component/adjust_fishing_difficulty/proc/on_buckle_examine(atom/movable/source, mob/user, list/examine_text) + SIGNAL_HANDLER + if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISH)) + return + add_examine_line(user, examine_text, "Buckling to [source.p_them()]") + +/datum/component/adjust_fishing_difficulty/proc/add_examine_line(mob/user, list/examine_text, method) + var/percent = HAS_MIND_TRAIT(user, TRAIT_EXAMINE_DEEPER_FISH) ? "[abs(modifier)]% " : "" + var/text = "[method] will make fishing [percent][modifier < 0 ? "easier" : "harder"]." + if(modifier < 0) + examine_text += span_nicegreen(text) + else + examine_text += span_danger(text) + +/datum/component/adjust_fishing_difficulty/proc/on_buckle(atom/movable/source, mob/living/buckled_mob, forced) + SIGNAL_HANDLER + update_user(buckled_mob) + +/datum/component/adjust_fishing_difficulty/proc/on_unbuckle(atom/movable/source, mob/living/buckled_mob, forced) + SIGNAL_HANDLER + update_user(buckled_mob, TRUE) + +/datum/component/adjust_fishing_difficulty/proc/on_equipped(obj/item/source, mob/living/wearer, slot) + SIGNAL_HANDLER + if(slot & (slots || source.slot_flags)) + update_user(wearer) + +/datum/component/adjust_fishing_difficulty/proc/on_dropped(obj/item/source, mob/living/dropper) + SIGNAL_HANDLER + update_user(dropper, TRUE) + +/datum/component/adjust_fishing_difficulty/proc/update_user(mob/living/user, removing = FALSE) + var/datum/fishing_challenge/challenge = GLOB.fishing_challenges_by_user[user] + if(removing) + UnregisterSignal(user, COMSIG_MOB_BEGIN_FISHING) + if(challenge) + UnregisterSignal(challenge, COMSIG_FISHING_CHALLENGE_GET_DIFFICULTY) + else + RegisterSignal(user, COMSIG_MOB_BEGIN_FISHING, PROC_REF(on_minigame_started)) + if(challenge) + RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_GET_DIFFICULTY, PROC_REF(adjust_difficulty)) + challenge?.update_difficulty() + +/datum/component/adjust_fishing_difficulty/proc/on_minigame_started(mob/living/source, datum/fishing_challenge/challenge) + SIGNAL_HANDLER + RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_GET_DIFFICULTY, PROC_REF(adjust_difficulty), TRUE) + +/datum/component/adjust_fishing_difficulty/proc/adjust_difficulty(datum/fishing_challenge/challenge, reward_path, obj/item/fishing_rod/rod, mob/living/user, list/holder) + SIGNAL_HANDLER + holder[1] += modifier diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index 48e5b10b25f19..e7d18f8208173 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -41,13 +41,27 @@ datum/callback/expiration, ) - if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) - RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) - RegisterSignals(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_ATOM), PROC_REF(on_attack)) - else if(ismob(parent)) - register_antimagic_signals(parent) - else + + var/atom/movable/movable = parent + if(!istype(movable)) + return COMPONENT_INCOMPATIBLE + + var/compatible = FALSE + if(isitem(movable)) + RegisterSignal(movable, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(movable, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignals(movable, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_ATOM), PROC_REF(on_attack)) + compatible = TRUE + else if(ismob(movable)) + register_antimagic_signals(movable) + compatible = TRUE + + if(movable.can_buckle) + RegisterSignal(movable, COMSIG_MOVABLE_BUCKLE, PROC_REF(on_buckle)) + RegisterSignal(movable, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(on_unbuckle)) + compatible = TRUE + + if(!compatible) return COMPONENT_INCOMPATIBLE src.antimagic_flags = antimagic_flags @@ -68,6 +82,14 @@ /datum/component/anti_magic/proc/unregister_antimagic_signals(datum/on_what) UnregisterSignal(on_what, list(COMSIG_MOB_RECEIVE_MAGIC, COMSIG_MOB_RESTRICT_MAGIC)) +/datum/component/anti_magic/proc/on_buckle(atom/movable/source, mob/living/bucklee) + SIGNAL_HANDLER + register_antimagic_signals(bucklee) + +/datum/component/anti_magic/proc/on_unbuckle(atom/movable/source, mob/living/bucklee) + SIGNAL_HANDLER + unregister_antimagic_signals(bucklee) + /datum/component/anti_magic/proc/on_equip(atom/movable/source, mob/equipper, slot) SIGNAL_HANDLER diff --git a/code/datums/components/appearance_on_aggro.dm b/code/datums/components/appearance_on_aggro.dm index 8c0df88e6fdbc..143c0b260cdbd 100644 --- a/code/datums/components/appearance_on_aggro.dm +++ b/code/datums/components/appearance_on_aggro.dm @@ -13,8 +13,6 @@ var/alpha_on_aggro /// visibility of our icon when deaggroed var/alpha_on_deaggro - /// do we currently have a target - var/atom/current_target /datum/component/appearance_on_aggro/Initialize(aggro_state, overlay_icon, overlay_state, alpha_on_aggro, alpha_on_deaggro) if (!isliving(parent)) @@ -27,7 +25,7 @@ /datum/component/appearance_on_aggro/RegisterWithParent() RegisterSignal(parent, COMSIG_AI_BLACKBOARD_KEY_SET(target_key), PROC_REF(on_set_target)) - RegisterSignal(parent, COMSIG_AI_BLACKBOARD_KEY_CLEARED(target_key), PROC_REF(on_clear_target)) + RegisterSignals(parent, list(COMSIG_AI_BLACKBOARD_KEY_CLEARED(target_key), COMSIG_LIVING_DEATH, COMSIG_MOB_LOGIN), PROC_REF(revert_appearance)) if (!isnull(aggro_state)) RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(on_icon_state_updated)) if (!isnull(aggro_overlay)) @@ -35,32 +33,31 @@ /datum/component/appearance_on_aggro/UnregisterFromParent() . = ..() - UnregisterSignal(parent, list(COMSIG_AI_BLACKBOARD_KEY_SET(target_key), COMSIG_AI_BLACKBOARD_KEY_CLEARED(target_key))) + UnregisterSignal(parent, list( + COMSIG_AI_BLACKBOARD_KEY_SET(target_key), + COMSIG_AI_BLACKBOARD_KEY_CLEARED(target_key), + COMSIG_LIVING_DEATH, + COMSIG_MOB_LOGIN, + )) /datum/component/appearance_on_aggro/proc/on_set_target(mob/living/source) SIGNAL_HANDLER - var/atom/target = source.ai_controller.blackboard[target_key] + var/atom/target = source.ai_controller?.blackboard[target_key] if (QDELETED(target)) return - current_target = target if (!isnull(aggro_overlay) || !isnull(aggro_state)) source.update_appearance(UPDATE_ICON) if (!isnull(alpha_on_aggro)) animate(source, alpha = alpha_on_aggro, time = 2 SECONDS) /datum/component/appearance_on_aggro/Destroy() - if (!isnull(current_target)) - revert_appearance(parent) - return ..() - -/datum/component/appearance_on_aggro/proc/on_clear_target(atom/source) - SIGNAL_HANDLER revert_appearance(parent) + return ..() /datum/component/appearance_on_aggro/proc/revert_appearance(mob/living/source) - current_target = null + SIGNAL_HANDLER if (!isnull(aggro_overlay) || !isnull(aggro_state)) source.update_appearance(UPDATE_ICON) if (!isnull(alpha_on_deaggro)) @@ -70,11 +67,11 @@ SIGNAL_HANDLER if (source.stat == DEAD) return - source.icon_state = isnull(current_target) ? initial(source.icon_state) : aggro_state + source.icon_state = source.ai_controller?.blackboard_key_exists(target_key) ? aggro_state : initial(source.icon_state) -/datum/component/appearance_on_aggro/proc/on_overlays_updated(atom/source, list/overlays) +/datum/component/appearance_on_aggro/proc/on_overlays_updated(mob/living/basic/source, list/overlays) SIGNAL_HANDLER - if (isnull(current_target)) + if(!(source.ai_controller?.blackboard_key_exists(target_key))) return overlays += aggro_overlay diff --git a/code/datums/components/aquarium_content.dm b/code/datums/components/aquarium_content.dm index 21c6c75ca169a..d956b39928a47 100644 --- a/code/datums/components/aquarium_content.dm +++ b/code/datums/components/aquarium_content.dm @@ -15,59 +15,23 @@ var/obj/structure/aquarium/current_aquarium //This is visual effect holder that will end up in aquarium's vis_contents - var/obj/effect/vc_obj - - /// Base px offset of the visual object in current aquarium aka current base position - var/base_px = 0 - /// Base px offset of the visual object in current aquarium aka current base position - var/base_py = 0 - //Current layer for the visual object - var/base_layer - + var/obj/effect/aquarium/vc_obj /** - * Fish sprite how to: - * Need to be centered on 16,16 in the dmi and facing left by default. - * sprite_height/sprite_width is the size it will have in aquarium and used to control animation boundaries. - * source_height/source_width is the size of the original icon (ideally only the non-empty parts) + * Fish sprite how to: + * The aquarium icon state needs to be centered on 16,16 in the dmi and facing left by default. + * sprite_width/sprite_height are the sizes it will have in aquarium and used to control animation boundaries. + * Ideally these two vars represent the size of the aquarium icon state, but they can be one or two units shorter + * to give more room for the visual to float around inside the aquarium, since the aquarium tank frame overlay will likely + * cover the extra pixels anyway. */ - - /// Icon used for in aquarium sprite - var/icon = 'icons/obj/aquarium/fish.dmi' - /// If this is set this icon state will be used for the holder while icon_state will only be used for item/catalog. Transformation from source_width/height WON'T be applied. - var/icon_state - /// Applied to vc object only for use with greyscaled icons. - var/aquarium_vc_color - /// Transformation applied to the visual holder - used when scaled down sprites are used as in aquarium visual - var/matrix/base_transform - - /// How the thing will be layered - var/layer_mode = AQUARIUM_LAYER_MODE_AUTO - - /// If the starting position is randomised within bounds when inserted into aquarium. - var/randomize_position = FALSE - - //Target sprite size for path/position calculations. - var/sprite_height = 3 - var/sprite_width = 3 - - //This is the size of the source sprite. This will be used to calculate scale down factor. - var/source_width = 32 - var/source_height = 32 - /// Currently playing animation var/current_animation /// Does this behviour need additional processing in aquarium, will be added to SSobj processing on insertion var/processing = FALSE - /// TODO: Change this into trait checked on aquarium insertion - var/unique = FALSE - - /// Proc used to retrieve current animation state from the parent, optional - var/animation_getter - /// Signals of the parent that will trigger animation update var/animation_update_signals @@ -77,58 +41,27 @@ /// The original value of the beauty this component had when initialized var/original_beauty -/datum/component/aquarium_content/Initialize(icon, animation_getter, animation_update_signals, beauty) +/datum/component/aquarium_content/Initialize(animation_update_signals, beauty) if(!ismovable(parent)) return COMPONENT_INCOMPATIBLE - src.animation_getter = animation_getter src.animation_update_signals = animation_update_signals src.beauty = original_beauty = beauty if(animation_update_signals) RegisterSignals(parent, animation_update_signals, PROC_REF(generate_animation)) - if(istype(parent,/obj/item/fish)) - InitializeFromFish() - else if(istype(parent,/obj/item/aquarium_prop)) - InitializeFromProp() - else - InitializeOther() - ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src)) RegisterSignal(parent, COMSIG_TRY_INSERTING_IN_AQUARIUM, PROC_REF(is_ready_to_insert)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(enter_aquarium)) + if(isfish(parent)) + RegisterSignal(parent, COMSIG_FISH_STATUS_CHANGED, PROC_REF(on_fish_status_changed)) + //If component is added to something already in aquarium at the time initialize it properly. var/atom/movable/movable_parent = parent if(istype(movable_parent.loc, /obj/structure/aquarium)) on_inserted(movable_parent.loc) -/// Sets visuals properties for fish -/datum/component/aquarium_content/proc/InitializeFromFish() - var/obj/item/fish/fish = parent - - icon = fish.icon - sprite_height = fish.sprite_height - sprite_width = fish.sprite_width - aquarium_vc_color = fish.aquarium_vc_color - - if(fish.dedicated_in_aquarium_icon_state) - if(fish.dedicated_in_aquarium_icon) - icon = fish.dedicated_in_aquarium_icon - icon_state = fish.dedicated_in_aquarium_icon_state - base_transform = matrix() - else - icon_state = fish.icon_state - var/matrix/matrix = matrix() - var/x_scale = fish.sprite_width / fish.source_width - var/y_scale = fish.sprite_height / fish.source_height - matrix.Scale(x_scale, y_scale) - base_transform = matrix - - randomize_position = TRUE - - RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(on_fish_status_changed)) - /datum/component/aquarium_content/proc/on_fish_status_changed(obj/item/fish/source) SIGNAL_HANDLER var/old_beauty = beauty @@ -139,31 +72,6 @@ change_aquarium_beauty(beauty - old_beauty) generate_animation() -/// Sets visuals properties for fish -/datum/component/aquarium_content/proc/InitializeFromProp() - var/obj/item/aquarium_prop/prop = parent - - icon = prop.icon - icon_state = prop.icon_state - layer_mode = prop.layer_mode - sprite_height = 32 - sprite_width = 32 - base_transform = matrix() - - unique = TRUE - -/// Mostly for admin abuse -/datum/component/aquarium_content/proc/InitializeOther() - sprite_width = 8 - sprite_height = 8 - - var/matrix/matrix = matrix() - var/x_scale = sprite_width / 32 - var/y_scale = sprite_height / 32 - matrix.Scale(x_scale, y_scale) - base_transform = matrix - - /datum/component/aquarium_content/PreTransfer() . = ..() REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src)) @@ -182,12 +90,11 @@ /datum/component/aquarium_content/proc/is_ready_to_insert(datum/source, obj/structure/aquarium/aquarium) SIGNAL_HANDLER - //This is kinda awful but we're unaware of other fish - if(unique) - for(var/atom/movable/fish_or_prop in aquarium) - if(fish_or_prop == parent) + if(HAS_TRAIT(parent, TRAIT_UNIQUE_AQUARIUM_CONTENT)) + for(var/atom/movable/content as anything in aquarium) + if(content == parent) continue - if(fish_or_prop.type == parent.type) + if(content.type == parent.type) return COMSIG_CANNOT_INSERT_IN_AQUARIUM return COMSIG_CAN_INSERT_IN_AQUARIUM @@ -202,7 +109,7 @@ //If we don't have vc object yet build it if(!vc_obj) - vc_obj = generate_base_vc() + generate_base_vc() //Set default position and layer set_vc_base_position() @@ -237,108 +144,28 @@ SIGNAL_HANDLER generate_animation() +///Sends a signal to the parent to get them to update the aquarium animation of the visual object +/datum/component/aquarium_content/proc/generate_animation(reset=FALSE) + if(!current_aquarium) + return + SEND_SIGNAL(parent, COMSIG_AQUARIUM_CONTENT_DO_ANIMATION, reset ? null : current_animation, current_aquarium, vc_obj) + /datum/component/aquarium_content/proc/remove_visual_from_aquarium() current_aquarium.vis_contents -= vc_obj - if(base_layer) - current_aquarium.free_layer(base_layer) + if(vc_obj.layer) + current_aquarium.free_layer(vc_obj.layer) /// Generates common visual object, propeties that don't depend on aquarium surface /datum/component/aquarium_content/proc/generate_base_vc() - var/obj/effect/visual = new - apply_appearance(visual) - visual.vis_flags |= VIS_INHERIT_ID | VIS_INHERIT_PLANE //plane so it shows properly in containers on inventory ui for handheld cases - return visual - -/// Applies icon,color and base scaling to our visual holder -/datum/component/aquarium_content/proc/apply_appearance(obj/effect/holder) - holder.icon = icon - holder.icon_state = icon_state - holder.transform = matrix(base_transform) - if(aquarium_vc_color) - holder.color = aquarium_vc_color - - -/// Actually animates the vc holder -/datum/component/aquarium_content/proc/generate_animation(reset=FALSE) - if(!current_aquarium) - return - var/next_animation = animation_getter ? call(parent,animation_getter)() : null - if(current_animation == next_animation && !reset) - return - current_animation = next_animation - switch(current_animation) - if(AQUARIUM_ANIMATION_FISH_SWIM) - swim_animation() - return - if(AQUARIUM_ANIMATION_FISH_DEAD) - dead_animation() - return - - -/// Create looping random path animation, pixel offsets parameters include offsets already -/datum/component/aquarium_content/proc/swim_animation() - var/avg_width = round(sprite_width / 2) - var/avg_height = round(sprite_height / 2) - - var/list/aq_properties = current_aquarium.get_surface_properties() - var/px_min = aq_properties[AQUARIUM_PROPERTIES_PX_MIN] + avg_width - 16 - var/px_max = aq_properties[AQUARIUM_PROPERTIES_PX_MAX] - avg_width - 16 - var/py_min = aq_properties[AQUARIUM_PROPERTIES_PY_MIN] + avg_height - 16 - var/py_max = aq_properties[AQUARIUM_PROPERTIES_PY_MAX] - avg_width - 16 - - var/origin_x = base_px - var/origin_y = base_py - var/prev_x = origin_x - var/prev_y = origin_y - animate(vc_obj, pixel_x = origin_x, time = 0, loop = -1) //Just to start the animation - var/move_number = rand(3, 5) //maybe unhardcode this - for(var/i in 1 to move_number) - //If it's last movement, move back to start otherwise move to some random point - var/target_x = i == move_number ? origin_x : rand(px_min,px_max) //could do with enforcing minimal delta for prettier zigzags - var/target_y = i == move_number ? origin_y : rand(py_min,py_max) - var/dx = prev_x - target_x - var/dy = prev_y - target_y - prev_x = target_x - prev_y = target_y - var/dist = abs(dx) + abs(dy) - var/eyeballed_time = dist * 2 //2ds per px - //Face the direction we're going - var/matrix/dir_mx = matrix(base_transform) - if(dx <= 0) //assuming default sprite is facing left here - dir_mx.Scale(-1, 1) - animate(transform = dir_mx, time = 0, loop = -1) - animate(pixel_x = target_x, pixel_y = target_y, time = eyeballed_time, loop = -1) - -/datum/component/aquarium_content/proc/dead_animation() - //Set base_py to lowest possible value - var/avg_height = round(sprite_height / 2) - var/list/aq_properties = current_aquarium.get_surface_properties() - var/py_min = aq_properties[AQUARIUM_PROPERTIES_PY_MIN] + avg_height - 16 - base_py = py_min - animate(vc_obj, pixel_y = py_min, time = 1) //flop to bottom and end current animation. + vc_obj = new + vc_obj.vis_flags |= VIS_INHERIT_ID | VIS_INHERIT_PLANE //plane so it shows properly in containers on inventory ui for handheld cases + SEND_SIGNAL(parent, COMSIG_AQUARIUM_CONTENT_GENERATE_APPEARANCE, vc_obj) /datum/component/aquarium_content/proc/set_vc_base_position() - if(randomize_position) - randomize_base_position() - if(base_layer) - current_aquarium.free_layer(base_layer) - base_layer = current_aquarium.request_layer(layer_mode) - vc_obj.layer = base_layer - -/datum/component/aquarium_content/proc/randomize_base_position() - var/list/aq_properties = current_aquarium.get_surface_properties() - var/avg_width = round(sprite_width / 2) - var/avg_height = round(sprite_height / 2) - var/px_min = aq_properties[AQUARIUM_PROPERTIES_PX_MIN] + avg_width - 16 - var/px_max = aq_properties[AQUARIUM_PROPERTIES_PX_MAX] - avg_width - 16 - var/py_min = aq_properties[AQUARIUM_PROPERTIES_PY_MIN] + avg_height - 16 - var/py_max = aq_properties[AQUARIUM_PROPERTIES_PY_MAX] - avg_width - 16 - - base_px = rand(px_min,px_max) - base_py = rand(py_min,py_max) - - vc_obj.pixel_x = base_px - vc_obj.pixel_y = base_py + SEND_SIGNAL(parent, AQUARIUM_CONTENT_RANDOMIZE_POSITION, current_aquarium, vc_obj) + if(vc_obj.layer) + current_aquarium.free_layer(vc_obj.layer) + vc_obj.layer = current_aquarium.request_layer(vc_obj.layer_mode) /datum/component/aquarium_content/proc/on_removed(obj/structure/aquarium/source, atom/movable/gone, direction) SIGNAL_HANDLER @@ -352,6 +179,16 @@ remove_visual_from_aquarium() current_aquarium = null +///The visual overlay of the aquarium content. It holds a few vars that we can modity them during signals. +/obj/effect/aquarium + layer = 0 //set on set_vc_base_position + /// Base px offset of the visual object in current aquarium aka current base position + var/base_px = 0 + /// Base px offset of the visual object in current aquarium aka current base position + var/base_py = 0 + /// How the visual will be layered + var/layer_mode = AQUARIUM_LAYER_MODE_AUTO + #undef DEAD_FISH_BEAUTY #undef MIN_DEAD_FISH_BEAUTY #undef MAX_DEAD_FISH_BEAUTY diff --git a/code/datums/components/area_based_godmode.dm b/code/datums/components/area_based_godmode.dm index 4f03ae57794c8..b9447efbafbf8 100644 --- a/code/datums/components/area_based_godmode.dm +++ b/code/datums/components/area_based_godmode.dm @@ -34,8 +34,6 @@ var/mob/mob_target = parent if(!istype(mob_target)) return COMPONENT_INCOMPATIBLE - if(initial(mob_target.status_flags) & GODMODE) - return COMPONENT_INCOMPATIBLE sources_to_area_type = list() src.gain_message = gain_message @@ -102,11 +100,11 @@ /datum/component/area_based_godmode/proc/check_area(mob/source) SIGNAL_HANDLER - var/has_godmode = source.status_flags & GODMODE + var/has_godmode = HAS_TRAIT(source, TRAIT_GODMODE) if(!check_in_valid_area(source)) if(has_godmode) to_chat(source, lose_message) - source.status_flags ^= GODMODE + REMOVE_TRAIT(source, TRAIT_GODMODE, REF(src)) check_area_cached_state = FALSE return @@ -115,7 +113,7 @@ return to_chat(source, gain_message) - source.status_flags ^= GODMODE + ADD_TRAIT(source, TRAIT_GODMODE, REF(src)) #undef MAP_AREA_TYPE #undef MAP_ALLOW_AREA_SUBTYPES diff --git a/code/datums/components/bakeable.dm b/code/datums/components/bakeable.dm index afc71936f1b92..93e96f65d58fc 100644 --- a/code/datums/components/bakeable.dm +++ b/code/datums/components/bakeable.dm @@ -93,11 +93,11 @@ var/list/asomnia_hadders = list() for(var/mob/smeller in get_hearers_in_view(DEFAULT_MESSAGE_RANGE, used_oven)) if(HAS_TRAIT(smeller, TRAIT_ANOSMIA)) - asomnia_hadders += smeller + asomnia_hadders += smeller if(positive_result) used_oven.visible_message( - span_notice("You smell something great coming from [used_oven]."), + span_notice("You smell something great coming from [used_oven]."), blind_message = span_notice("You smell something great..."), ignored_mobs = asomnia_hadders, ) diff --git a/code/datums/components/banned_from_space.dm b/code/datums/components/banned_from_space.dm new file mode 100644 index 0000000000000..ae1d6701dd701 --- /dev/null +++ b/code/datums/components/banned_from_space.dm @@ -0,0 +1,37 @@ +/// Following recent tomfoolery, we've decided to ban you from space. +/datum/component/banned_from_space + /// List of recent tiles we walked on that aren't space + var/list/tiles = list() + /// The max amount of tiles we store + var/max_tile_list_size = 4 + +/datum/component/banned_from_space/Initialize(...) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(check_if_space)) + +/datum/component/banned_from_space/proc/check_if_space(atom/source, atom/new_location) + SIGNAL_HANDLER + + if(!isturf(new_location)) + return + + if(isspaceturf(new_location)) + send_back(parent) + + else + tiles.Add(new_location) + if(tiles.len > max_tile_list_size) + tiles.Cut(1, 2) + +/datum/component/banned_from_space/proc/send_back(atom/movable/parent) + var/new_turf + + if(tiles.len) + new_turf = tiles[1] + new /obj/effect/temp_visual/portal_animation(parent.loc, new_turf, parent) + else + new_turf = get_random_station_turf() + + parent.forceMove(new_turf) diff --git a/code/datums/components/bloodysoles.dm b/code/datums/components/bloodysoles.dm index d9032967e263c..461cfcff3aae4 100644 --- a/code/datums/components/bloodysoles.dm +++ b/code/datums/components/bloodysoles.dm @@ -242,6 +242,7 @@ // If our feet are bloody enough, add an entered dir pool_FP.entered_dirs |= wielder.dir pool_FP.update_appearance() + return share_blood(pool) diff --git a/code/datums/components/boomerang.dm b/code/datums/components/boomerang.dm index eec7b4112aa69..954e752da1ea1 100644 --- a/code/datums/components/boomerang.dm +++ b/code/datums/components/boomerang.dm @@ -1,7 +1,7 @@ -///The cooldown period between last_boomerang_throw and it's methods of implementing a rebound proc. +///The cooldown period between last_boomerang_throw and its methods of implementing a rebound proc. #define BOOMERANG_REBOUND_INTERVAL (1 SECONDS) /** - * If an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting it's target, or landing on the thrown tile. + * If an ojvect is given the boomerang component, it should be thrown back to the thrower after either hitting its target, or landing on the thrown tile. * Thrown objects should be thrown back to the original thrower with this component, a number of tiles defined by boomerang_throw_range. */ /datum/component/boomerang @@ -60,12 +60,11 @@ * * hit_atom: The atom that has been hit by the boomerang component. * * init_throwing_datum: The thrownthing datum that originally impacted the object, that we use to build the new throwing datum for the rebound. */ -/datum/component/boomerang/proc/return_hit_throw(datum/source, atom/hit_atom, datum/thrownthing/init_throwing_datum) +/datum/component/boomerang/proc/return_hit_throw(datum/source, atom/hit_atom, datum/thrownthing/init_throwing_datum, caught) SIGNAL_HANDLER - if (!COOLDOWN_FINISHED(src, last_boomerang_throw)) + if (!COOLDOWN_FINISHED(src, last_boomerang_throw) || caught) return - var/obj/item/true_parent = parent - aerodynamic_swing(init_throwing_datum, true_parent) + aerodynamic_swing(init_throwing_datum, parent) /** * Proc that triggers when the thrown boomerang does not hit a target. diff --git a/code/datums/components/bubble_icon_override.dm b/code/datums/components/bubble_icon_override.dm new file mode 100644 index 0000000000000..da070b8f5dc82 --- /dev/null +++ b/code/datums/components/bubble_icon_override.dm @@ -0,0 +1,99 @@ +/** + * A component that overrides the bubble_icon variable when equipped or implanted + * while having a simple priority system, so accessories have higher priority than + * organs, for example. + */ +/datum/component/bubble_icon_override + dupe_mode = COMPONENT_DUPE_ALLOWED + can_transfer = TRUE //sure why not + ///The override to the default bubble icon for the atom + var/bubble_icon + ///The priority of this bubble icon compared to others + var/priority + +/datum/component/bubble_icon_override/Initialize(bubble_icon, priority) + if(!isclothing(parent) && !isorgan(parent)) + return COMPONENT_INCOMPATIBLE + src.bubble_icon = bubble_icon + src.priority = priority + +/datum/component/bubble_icon_override/RegisterWithParent() + if(isclothing(parent)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_dropped)) + else if(isorgan(parent)) + RegisterSignal(parent, COMSIG_ORGAN_IMPLANTED, PROC_REF(on_organ_implanted)) + RegisterSignal(parent, COMSIG_ORGAN_REMOVED, PROC_REF(on_organ_removed)) + var/mob/living/target = get_bubble_icon_target() + if(target) + register_owner(target) + +/datum/component/bubble_icon_override/proc/register_owner(mob/living/owner) + RegisterSignal(owner, COMSIG_GET_BUBBLE_ICON, PROC_REF(return_bubble_icon)) + get_bubble_icon(owner) + +/datum/component/bubble_icon_override/UnregisterFromParent() + UnregisterSignal(parent, list( + COMSIG_ITEM_EQUIPPED, + COMSIG_ITEM_DROPPED, + COMSIG_ORGAN_IMPLANTED, + COMSIG_ORGAN_REMOVED, + )) + var/mob/living/target = get_bubble_icon_target() + if(target) + unregister_owner(target) + +/datum/component/bubble_icon_override/proc/unregister_owner(mob/living/owner) + UnregisterSignal(owner, list(COMSIG_GET_BUBBLE_ICON)) + get_bubble_icon(owner) + +///Returns the potential wearer/owner of the object when the component is un/registered to/from it +/datum/component/bubble_icon_override/proc/get_bubble_icon_target() + if(isclothing(parent)) + var/obj/item/clothing/clothing = parent + if(istype(clothing, /obj/item/clothing/accessory)) + clothing = clothing.loc + if(!istype(clothing)) + return null + var/mob/living/wearer = clothing.loc + if(istype(wearer) && (wearer.get_slot_by_item(clothing) & clothing.slot_flags)) + return parent + else if(isorgan(parent)) + var/obj/item/organ/organ = parent + return organ.owner + +/datum/component/bubble_icon_override/proc/on_equipped(obj/item/source, mob/equipper, slot) + SIGNAL_HANDLER + if(slot & source.slot_flags) + register_owner(equipper) + +/datum/component/bubble_icon_override/proc/on_dropped(obj/item/source, mob/dropper) + SIGNAL_HANDLER + unregister_owner(dropper) + +/datum/component/bubble_icon_override/proc/on_organ_implanted(obj/item/organ/source, mob/owner) + SIGNAL_HANDLER + register_owner(owner) + +/datum/component/bubble_icon_override/proc/on_organ_removed(obj/item/organ/source, mob/owner) + SIGNAL_HANDLER + unregister_owner(owner) + +/** + * Get the bubble icon with the highest priority from all instances of bubble_icon_override + * currently registered with the target. + */ +/datum/component/bubble_icon_override/proc/get_bubble_icon(mob/living/target) + if(QDELETED(parent)) + return + var/list/holder = list(null) + SEND_SIGNAL(target, COMSIG_GET_BUBBLE_ICON, holder) + var/bubble_icon = holder[1] + target.bubble_icon = bubble_icon || initial(target.bubble_icon) + +/datum/component/bubble_icon_override/proc/return_bubble_icon(datum/source, list/holder) + SIGNAL_HANDLER + var/enemy_priority = holder[holder[1]] + if(enemy_priority < priority) + holder[1] = bubble_icon + holder[bubble_icon] = priority diff --git a/code/datums/components/callouts.dm b/code/datums/components/callouts.dm new file mode 100644 index 0000000000000..52a3e007905c3 --- /dev/null +++ b/code/datums/components/callouts.dm @@ -0,0 +1,177 @@ +#define CALLOUT_TIME (5 SECONDS) +#define CALLOUT_COOLDOWN 3 SECONDS + +/// Component that allows its owner/owner's wearer to use callouts system - their pointing is replaced with a fancy radial which allows them to summon glowing markers +/datum/component/callouts + /// If parent is clothing, slot on which this component activates + var/item_slot + /// If we are currently active + var/active = TRUE + /// Current user of this component + var/mob/cur_user + /// Whenever the user should shout the voiceline + var/voiceline = FALSE + /// If voiceline is true, what prefix the user should use + var/radio_prefix = null + /// List of all callout options + var/static/list/callout_options = typecacheof(subtypesof(/datum/callout_option)) + /// Text displayed when parent is examined + var/examine_text = null + /// Cooldown for callouts + COOLDOWN_DECLARE(callout_cooldown) + +/datum/component/callouts/Initialize(item_slot = null, voiceline = FALSE, radio_prefix = null, examine_text = null) + if (!isitem(parent) && !ismob(parent)) + return COMPONENT_INCOMPATIBLE + src.item_slot = item_slot + src.voiceline = voiceline + src.radio_prefix = radio_prefix + src.examine_text = examine_text + + if (ismob(parent)) + cur_user = parent + return + + var/atom/atom_parent = parent + + if (!ismob(atom_parent.loc)) + return + + var/mob/user = atom_parent.loc + if (!isnull(item_slot) && user.get_item_by_slot(item_slot) != parent) + return + + RegisterSignal(atom_parent.loc, COMSIG_MOB_CLICKON, PROC_REF(on_click)) + cur_user = atom_parent.loc + +/datum/component/callouts/Destroy(force) + cur_user = null + . = ..() + +/datum/component/callouts/RegisterWithParent() + RegisterSignal(parent, COMSIG_MOB_CLICKON, PROC_REF(on_click)) + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_dropped)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examines)) + RegisterSignal(parent, COMSIG_CLICK_CTRL, PROC_REF(on_ctrl_click)) + +/datum/component/callouts/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOB_CLICKON, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ATOM_EXAMINE, COMSIG_CLICK_CTRL)) + +/datum/component/callouts/proc/on_ctrl_click(datum/source, mob/living/user) + SIGNAL_HANDLER + + if(!isitem(parent)) + return + + var/obj/item/item_parent = parent + active = !active + item_parent.balloon_alert(user, active ? "callouts enabled" : "callouts disabled") + +/datum/component/callouts/proc/on_equipped(datum/source, mob/equipper, slot) + SIGNAL_HANDLER + + if (item_slot & slot) + RegisterSignal(equipper, COMSIG_MOB_CLICKON, PROC_REF(on_click)) + cur_user = equipper + else if (cur_user == equipper) + UnregisterSignal(cur_user, COMSIG_MOB_CLICKON, PROC_REF(on_click)) + cur_user = null + +/datum/component/callouts/proc/on_dropped(datum/source, mob/user) + SIGNAL_HANDLER + + if (cur_user == user) + UnregisterSignal(cur_user, COMSIG_MOB_CLICKON, PROC_REF(on_click)) + cur_user = null + +/datum/component/callouts/proc/on_examines(mob/source, mob/user, list/examine_list) + SIGNAL_HANDLER + if (!isnull(examine_text)) + examine_list += examine_text + +/datum/component/callouts/proc/on_click(mob/user, atom/clicked_atom, list/modifiers) + SIGNAL_HANDLER + + if (!LAZYACCESS(modifiers, SHIFT_CLICK) || !LAZYACCESS(modifiers, MIDDLE_CLICK)) + return + + if (!active) + return + + if (!COOLDOWN_FINISHED(src, callout_cooldown)) + clicked_atom.balloon_alert(user, "callout is on cooldown!") + return COMSIG_MOB_CANCEL_CLICKON + + INVOKE_ASYNC(src, PROC_REF(callout_picker), user, clicked_atom) + return COMSIG_MOB_CANCEL_CLICKON + +/datum/component/callouts/proc/callout_picker(mob/user, atom/clicked_atom) + var/list/callout_items = list() + for(var/datum/callout_option/callout_option as anything in callout_options) + callout_items[callout_option] = image(icon = 'icons/hud/radial.dmi', icon_state = callout_option::icon_state) + + var/datum/callout_option/selection = show_radial_menu(user, get_turf(clicked_atom), callout_items, entry_animation = FALSE, click_on_hover = TRUE, user_space = TRUE) + if (!selection) + return + + COOLDOWN_START(src, callout_cooldown, CALLOUT_COOLDOWN) + new /obj/effect/temp_visual/callout(get_turf(user), user, selection, clicked_atom) + SEND_SIGNAL(user, COMSIG_MOB_CREATED_CALLOUT, selection, clicked_atom) + if (voiceline) + user.say((!isnull(radio_prefix) ? radio_prefix : "") + selection::voiceline, forced = src) + +/obj/effect/temp_visual/callout + name = "callout" + icon = 'icons/effects/callouts.dmi' + icon_state = "point" + plane = ABOVE_LIGHTING_PLANE + duration = CALLOUT_TIME + +/obj/effect/temp_visual/callout/Initialize(mapload, mob/creator, datum/callout_option/callout, atom/target) + . = ..() + if (isnull(creator)) + return + icon_state = callout::icon_state + color = colorize_string(creator.GetVoice(), 2, 0.9) + update_appearance() + var/turf/target_loc = get_turf(target) + animate(src, pixel_x = (target_loc.x - loc.x) * ICON_SIZE_X + target.pixel_x, pixel_y = (target_loc.y - loc.y) * ICON_SIZE_Y + target.pixel_y, time = 0.2 SECONDS, easing = EASE_OUT) + +/datum/callout_option + var/name = "ERROR" + var/icon_state = "point" + var/voiceline = "Something has gone wrong!" + +/datum/callout_option/point + name = "Point" + icon_state = "point" + voiceline = "Here!" + +/datum/callout_option/danger + name = "Danger" + icon_state = "danger" + voiceline = "Danger there!" + +/datum/callout_option/guard + name = "Guard" + icon_state = "guard" + voiceline = "Hold this position!" + +/datum/callout_option/attack + name = "Attack" + icon_state = "attack" + voiceline = "Attack there!" + +/datum/callout_option/mine + name = "Mine" + icon_state = "mine" + voiceline = "Dig here!" + +/datum/callout_option/move + name = "Move" + icon_state = "move" + voiceline = "Reposition there!" + +#undef CALLOUT_TIME +#undef CALLOUT_COOLDOWN diff --git a/code/datums/components/caltrop.dm b/code/datums/components/caltrop.dm index 3f6bba15541b1..cd06bdb2a00d7 100644 --- a/code/datums/components/caltrop.dm +++ b/code/datums/components/caltrop.dm @@ -30,7 +30,7 @@ ///So we can update ant damage dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS -/datum/component/caltrop/Initialize(min_damage = 0, max_damage = 0, probability = 100, paralyze_duration = 6 SECONDS, flags = NONE, soundfile = null) +/datum/component/caltrop/Initialize(min_damage = 0, max_damage = 0, probability = 100, paralyze_duration = 2 SECONDS, flags = NONE, soundfile = null) . = ..() if(!isatom(parent)) return COMPONENT_INCOMPATIBLE diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index b4406857ac1e3..0d65d2840f3c8 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -14,7 +14,7 @@ /obj/effect/constructing_effect, /obj/effect/dummy/phased_mob, /obj/effect/ebeam, - /obj/effect/fishing_lure, + /obj/effect/fishing_float, /obj/effect/hotspot, /obj/effect/landmark, /obj/effect/light_emitter/tendril, @@ -212,6 +212,10 @@ REMOVE_TRAIT(fallen_mob, TRAIT_NO_TRANSFORM, REF(src)) if (fallen_mob.stat != DEAD) fallen_mob.investigate_log("has died from falling into a chasm.", INVESTIGATE_DEATHS) + if(issilicon(fallen_mob)) + //Silicons are held together by hopes and dreams, unfortunately, I'm having a nightmare + var/mob/living/silicon/robot/fallen_borg = fallen_mob + fallen_borg.mmi = null fallen_mob.death(TRUE) fallen_mob.apply_damage(300) @@ -247,14 +251,51 @@ GLOBAL_LIST_EMPTY(chasm_fallen_mobs) /obj/effect/abstract/chasm_storage/Entered(atom/movable/arrived) . = ..() if(isliving(arrived)) + //Mobs that have fallen in reserved area should be deleted to avoid fishing stuff from the deathmatch or VR. + if(is_reserved_level(loc.z) && !istype(get_area(loc), /area/shuttle)) + qdel(arrived) + return RegisterSignal(arrived, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) - GLOB.chasm_fallen_mobs += arrived + LAZYADD(GLOB.chasm_fallen_mobs[get_chasm_category(loc)], arrived) /obj/effect/abstract/chasm_storage/Exited(atom/movable/gone) . = ..() if(isliving(gone)) UnregisterSignal(gone, COMSIG_LIVING_REVIVE) - GLOB.chasm_fallen_mobs -= gone + LAZYREMOVE(GLOB.chasm_fallen_mobs[get_chasm_category(loc)], gone) + +/obj/effect/abstract/chasm_storage/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) + . = ..() + var/old_cat = get_chasm_category(old_turf) + var/new_cat = get_chasm_category(new_turf) + var/list/mobs = list() + for(var/mob/fallen in src) + mobs += fallen + LAZYREMOVE(GLOB.chasm_fallen_mobs[old_cat], mobs) + LAZYADD(GLOB.chasm_fallen_mobs[new_cat], mobs) + +/** + * Returns a key to store, remove and access fallen mobs depending on the z-level. + * This stops rescuing people from places that are waaaaaaaay too far-fetched. + */ +/proc/get_chasm_category(turf/turf) + var/z_level = turf?.z + var/area/area = get_area(turf) + if(istype(area, /area/shuttle)) //shuttle move between z-levels, so they're a special case. + return area + + if(is_away_level(z_level)) + return ZTRAIT_AWAY + if(is_mining_level(z_level)) + return ZTRAIT_MINING + if(is_station_level(z_level)) + return ZTRAIT_STATION + if(is_centcom_level(z_level)) + return ZTRAIT_CENTCOM + if(is_reserved_level(z_level)) + return ZTRAIT_RESERVED + + return ZTRAIT_SPACE_RUINS #define CHASM_TRAIT "chasm trait" /** diff --git a/code/datums/components/chuunibyou.dm b/code/datums/components/chuunibyou.dm index 57428bc422358..5373b3f798754 100644 --- a/code/datums/components/chuunibyou.dm +++ b/code/datums/components/chuunibyou.dm @@ -47,6 +47,7 @@ RegisterSignal(parent, COMSIG_MOB_PRE_INVOCATION, PROC_REF(on_pre_invocation)) RegisterSignal(parent, COMSIG_MOB_TRY_SPEECH, PROC_REF(on_try_speech)) RegisterSignal(parent, COMSIG_MOB_AFTER_SPELL_CAST, PROC_REF(on_after_spell_cast)) + ADD_TRAIT(parent, TRAIT_CHUUNIBYOU, REF(src)) /datum/component/chuunibyou/UnregisterFromParent() . = ..() @@ -56,20 +57,21 @@ COMSIG_MOB_TRY_SPEECH, COMSIG_MOB_AFTER_SPELL_CAST, )) + REMOVE_TRAIT(parent, TRAIT_CHUUNIBYOU, REF(src)) /// signal sent when the parent tries to speak. we let speech pass if we are casting a spell so mimes still chuuni their spellcasts /// (this may end in the mime dying) /datum/component/chuunibyou/proc/on_try_speech(datum/source, message, ignore_spam, forced) SIGNAL_HANDLER - if(casting_spell) + if(casting_spell && !HAS_TRAIT(src, TRAIT_MUTE)) return COMPONENT_IGNORE_CAN_SPEAK ///signal sent when the parent casts a spell that has a projectile /datum/component/chuunibyou/proc/on_spell_projectile(mob/living/source, datum/action/cooldown/spell/spell, atom/cast_on, obj/projectile/to_fire) SIGNAL_HANDLER - playsound(to_fire,'sound/magic/staff_change.ogg', 75, TRUE) + playsound(to_fire,'sound/effects/magic/staff_change.ogg', 75, TRUE) to_fire.color = "#f825f8" to_fire.name = "chuuni-[to_fire.name]" to_fire.set_light(2, 2, LIGHT_COLOR_PINK, l_on = TRUE) @@ -99,7 +101,7 @@ COOLDOWN_START(src, heal_cooldown, CHUUNIBYOU_COOLDOWN_TIME) source.heal_overall_damage(heal_amount) - playsound(source, 'sound/magic/staff_healing.ogg', 30) + playsound(source, 'sound/effects/magic/staff_healing.ogg', 30) to_chat(source, span_danger("You feel slightly healed by your chuuni powers.")) /datum/component/chuunibyou/no_healing diff --git a/code/datums/components/cleaner.dm b/code/datums/components/cleaner.dm index 3001fde9837fb..7072f271c7a6a 100644 --- a/code/datums/components/cleaner.dm +++ b/code/datums/components/cleaner.dm @@ -62,6 +62,9 @@ /datum/component/cleaner/proc/on_interaction(datum/source, mob/living/user, atom/target, list/modifiers) SIGNAL_HANDLER + if(isitem(source) && SHOULD_SKIP_INTERACTION(target, source, user)) + return NONE + // By default, give XP var/give_xp = TRUE if(pre_clean_callback) @@ -93,8 +96,8 @@ ADD_TRAIT(target, TRAIT_CURRENTLY_CLEANING, REF(src)) // We need to update our planes on overlay changes RegisterSignal(target, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(cleaning_target_moved)) - var/mutable_appearance/low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, target, GAME_PLANE) - var/mutable_appearance/high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, target, ABOVE_GAME_PLANE) + var/mutable_appearance/low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, target, GAME_PLANE) + var/mutable_appearance/high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, target, ABOVE_GAME_PLANE) var/list/icon_offsets = target.get_oversized_icon_offsets() low_bubble.pixel_x = icon_offsets["x"] low_bubble.pixel_y = icon_offsets["y"] @@ -137,13 +140,13 @@ if(same_z_layer) return // First, get rid of the old overlay - var/mutable_appearance/old_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, old_turf, GAME_PLANE) - var/mutable_appearance/old_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, old_turf, ABOVE_GAME_PLANE) + var/mutable_appearance/old_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, old_turf, GAME_PLANE) + var/mutable_appearance/old_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, old_turf, ABOVE_GAME_PLANE) source.cut_overlay(old_low_bubble) source.cut_overlay(old_high_bubble) // Now, add the new one - var/mutable_appearance/new_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, new_turf, GAME_PLANE) - var/mutable_appearance/new_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", FLOOR_CLEAN_LAYER, new_turf, ABOVE_GAME_PLANE) + var/mutable_appearance/new_low_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, new_turf, GAME_PLANE) + var/mutable_appearance/new_high_bubble = mutable_appearance('icons/effects/effects.dmi', "bubbles", GAME_CLEAN_LAYER, new_turf, ABOVE_GAME_PLANE) source.add_overlay(new_low_bubble) source.add_overlay(new_high_bubble) diff --git a/code/datums/components/clothing_dirt.dm b/code/datums/components/clothing_dirt.dm new file mode 100644 index 0000000000000..40f0ddb07e249 --- /dev/null +++ b/code/datums/components/clothing_dirt.dm @@ -0,0 +1,88 @@ +/// This component applies tint to clothing when its exposed to pepperspray, used in /obj/item/clothing/mask/gas. + +/datum/component/clothing_dirt + /// Amount of dirt stacks on the clothing + var/dirtiness = 0 + +/datum/component/clothing_dirt/Initialize() + if(!isclothing(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/clothing_dirt/RegisterWithParent() + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + 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_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/UnregisterFromParent() + var/obj/item/clothing/clothing = parent + clothing.tint -= dirtiness + if(iscarbon(clothing.loc)) + var/mob/living/carbon/wearer = clothing.loc + wearer.update_tint() + UnregisterSignal(wearer, COMSIG_ATOM_EXPOSE_REAGENTS) + else + UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) + UnregisterSignal(parent, list( + COMSIG_ATOM_EXAMINE, + COMSIG_ITEM_EQUIPPED, + COMSIG_MOB_UNEQUIPPED_ITEM, + COMSIG_COMPONENT_CLEAN_ACT, + )) + return ..() + +/datum/component/clothing_dirt/proc/on_equip(datum/source, mob/user, slot) + SIGNAL_HANDLER + var/obj/item/clothing/clothing = parent + if (!(slot & clothing.slot_flags)) + return + UnregisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS) + RegisterSignal(user, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/proc/on_drop(datum/source, mob/holder) + SIGNAL_HANDLER + UnregisterSignal(holder, COMSIG_ATOM_EXPOSE_REAGENTS) + RegisterSignal(parent, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose), TRUE) + +/datum/component/clothing_dirt/proc/on_examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + if (dirtiness > 0) + examine_list += span_warning("It appears to be covered in some oily substance. Won't see much while wearing it until you wash it off.") + +/datum/component/clothing_dirt/proc/on_expose(atom/target, list/reagents, datum/reagents/source, methods) + SIGNAL_HANDLER + + var/mob/living/carbon/wearer + if(iscarbon(target)) + wearer = target + if(is_protected(wearer)) + return + + var/datum/reagent/consumable/condensedcapsaicin/pepper = locate() in reagents + if(isnull(pepper)) + return + + var/obj/item/clothing/clothing = parent + if (methods & (TOUCH | VAPOR)) + clothing.tint -= dirtiness + dirtiness = min(dirtiness + round(reagents[pepper] / 5), 3) + clothing.tint += dirtiness + if(!isnull(wearer)) + wearer.update_tint() + +/datum/component/clothing_dirt/proc/is_protected(mob/living/carbon/wearer) + return wearer.head && (wearer.head.flags_cover & PEPPERPROOF) + +/datum/component/clothing_dirt/proc/on_clean(datum/target, clean_types) + SIGNAL_HANDLER + var/obj/item/clothing/clothing = parent + var/mob/living/carbon/wearer + if(iscarbon(clothing.loc)) + wearer = clothing.loc + + if (clean_types & (CLEAN_WASH|CLEAN_SCRUB)) + clothing.tint -= dirtiness + dirtiness = 0 + if(!isnull(wearer)) + wearer.update_tint() diff --git a/code/datums/components/connect_mob_behalf.dm b/code/datums/components/connect_mob_behalf.dm index b8aa014f81010..18ab0eebed8c8 100644 --- a/code/datums/components/connect_mob_behalf.dm +++ b/code/datums/components/connect_mob_behalf.dm @@ -1,6 +1,6 @@ /// This component behaves similar to connect_loc_behalf, but working off clients and mobs instead of loc /// To be clear, we hook into a signal on a tracked client's mob -/// We retain the ability to react to that signal on a seperate listener, which makes this quite powerful +/// We retain the ability to react to that signal on a separate listener, which makes this quite powerful /datum/component/connect_mob_behalf dupe_mode = COMPONENT_DUPE_UNIQUE diff --git a/code/datums/components/connect_range.dm b/code/datums/components/connect_range.dm index d3407f4671456..af8ec247eb262 100644 --- a/code/datums/components/connect_range.dm +++ b/code/datums/components/connect_range.dm @@ -1,6 +1,6 @@ /** * This component behaves similar to connect_loc_behalf but for all turfs in range, hooking into a signal on each of them. - * Just like connect_loc_behalf, It can react to that signal on behalf of a seperate listener. + * Just like connect_loc_behalf, It can react to that signal on behalf of a separate listener. * Good for components, though it carries some overhead. Can't be an element as that may lead to bugs. */ /datum/component/connect_range diff --git a/code/datums/components/crafting/atmospheric.dm b/code/datums/components/crafting/atmospheric.dm index b2993012e82b0..6674ee1059a9f 100644 --- a/code/datums/components/crafting/atmospheric.dm +++ b/code/datums/components/crafting/atmospheric.dm @@ -359,3 +359,26 @@ /obj/item/stack/sheet/iron = 30, ) category = CAT_STRUCTURE + +/datum/crafting_recipe/airlock_pump + name = "External Airlock Pump" + tool_behaviors = list(TOOL_WRENCH, TOOL_WELDER) + result = /obj/item/pipe/directional/airlock_pump + reqs = list( + /obj/item/pipe = 1, + /obj/item/stack/sheet/iron = 5, + /obj/item/stack/cable_coil = 5, + /obj/item/analyzer = 1, + ) + time = 2 SECONDS + category = CAT_ATMOSPHERIC + +/datum/crafting_recipe/airlock_pump/check_requirements(mob/user, list/collected_requirements) + return atmos_pipe_check(user, collected_requirements) + +/datum/crafting_recipe/airlock_pump/on_craft_completion(mob/user, atom/result) + var/obj/item/pipe/crafted_pipe = result + crafted_pipe.pipe_type = /obj/machinery/atmospherics/components/unary/airlock_pump + crafted_pipe.pipe_color = COLOR_VERY_LIGHT_GRAY + crafted_pipe.setDir(user.dir) + crafted_pipe.update() diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index a2e710b762ec6..bf13b7cd5bae4 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -21,6 +21,8 @@ var/display_craftable_only = FALSE var/display_compact = FALSE var/forced_mode = FALSE + /// crafting flags we ignore when considering a recipe + var/ignored_flags = NONE /* This is what procs do: get_environment - gets a list of things accessable for crafting by user @@ -205,16 +207,16 @@ if(!check_tools(crafter, recipe, contents)) return ", missing tool." + var/considered_flags = recipe.crafting_flags & ~(ignored_flags) - - if((recipe.crafting_flags & CRAFT_ONE_PER_TURF) && (locate(recipe.result) in dest_turf)) + if((considered_flags & CRAFT_ONE_PER_TURF) && (locate(recipe.result) in dest_turf)) return ", already one here!" - if(recipe.crafting_flags & CRAFT_CHECK_DIRECTION) - if(!valid_build_direction(dest_turf, crafter.dir, is_fulltile = (recipe.crafting_flags & CRAFT_IS_FULLTILE))) + if(considered_flags & CRAFT_CHECK_DIRECTION) + if(!valid_build_direction(dest_turf, crafter.dir, is_fulltile = (considered_flags & CRAFT_IS_FULLTILE))) return ", won't fit here!" - if(recipe.crafting_flags & CRAFT_ON_SOLID_GROUND) + if(considered_flags & CRAFT_ON_SOLID_GROUND) if(isclosedturf(dest_turf)) return ", cannot be made on a wall!" @@ -222,7 +224,7 @@ if(!locate(/obj/structure/thermoplastic) in dest_turf) // for tram construction return ", must be made on solid ground!" - if(recipe.crafting_flags & CRAFT_CHECK_DENSITY) + if(considered_flags & CRAFT_CHECK_DENSITY) for(var/obj/object in dest_turf) if(object.density && !(object.obj_flags & IGNORE_DENSITY) || object.obj_flags & BLOCKS_CONSTRUCTION) return ", something is in the way!" @@ -268,9 +270,11 @@ qdel(thing) var/datum/reagents/holder = locate() in parts if(holder) //transfer reagents from ingredients to result - if(!ispath(recipe.result, /obj/item/reagent_containers) && result.reagents) - result.reagents.clear_reagents() - holder.trans_to(result.reagents, holder.total_volume, no_react = TRUE) + if(!ispath(recipe.result, /obj/item/reagent_containers) && result.reagents) + if(recipe.crafting_flags & CRAFT_CLEARS_REAGENTS) + result.reagents.clear_reagents() + if(recipe.crafting_flags & CRAFT_TRANSFERS_REAGENTS) + holder.trans_to(result.reagents, holder.total_volume, no_react = TRUE) parts -= holder qdel(holder) result.CheckParts(parts, recipe) @@ -308,7 +312,6 @@ var/datum/reagents/holder var/list/surroundings var/list/Deletion = list() - var/data var/amt var/list/requirements = list() if(R.reqs) @@ -345,7 +348,6 @@ RC.reagents.trans_to(holder, reagent_volume, target_id = path_key, no_react = TRUE) surroundings -= RC amt -= reagent_volume - SEND_SIGNAL(RC.reagents, COMSIG_REAGENTS_CRAFTING_PING) // - [] TODO: Make this entire thing less spaghetti else surroundings -= RC RC.update_appearance(UPDATE_ICON) @@ -359,7 +361,7 @@ SD = new S.type() Deletion += SD S.use(amt) - SD = locate(S.type) in Deletion + SD = SD || locate(S.type) in Deletion // SD might be already set here, no sense in searching for it again SD.amount += amt continue main_loop else @@ -367,9 +369,9 @@ if(!locate(S.type) in Deletion) Deletion += S else - data = S.amount - S = locate(S.type) in Deletion - S.add(data) + SD = SD || locate(S.type) in Deletion + SD.add(S.amount) // add the amount to our tally stack, SD + qdel(S) // We can just delete it straight away as it's going to be fully consumed anyway, saving some overhead from calling use() surroundings -= S else var/atom/movable/I @@ -490,12 +492,26 @@ var/list/atoms = mode ? GLOB.cooking_recipes_atoms : GLOB.crafting_recipes_atoms // Prepare atom data + + //load sprite sheets and select the correct one based on the mode + var/static/list/sprite_sheets + if(isnull(sprite_sheets)) + sprite_sheets = ui_assets() + var/datum/asset/spritesheet/sheet = sprite_sheets[mode ? 2 : 1] + + data["icon_data"] = list() for(var/atom/atom as anything in atoms) + var/atom_id = atoms.Find(atom) + data["atom_data"] += list(list( "name" = initial(atom.name), - "is_reagent" = ispath(atom, /datum/reagent/) + "is_reagent" = ispath(atom, /datum/reagent/), )) + var/icon_size = sheet.icon_size_id("a[atom_id]") + if(!endswith(icon_size, "32x32")) + data["icon_data"]["[atom_id]"] = "[icon_size] a[atom_id]" + // Prepare materials data for(var/atom/atom as anything in material_occurences) if(material_occurences[atom] == 1) @@ -523,7 +539,7 @@ return TRUE -/datum/component/personal_crafting/ui_act(action, params) +/datum/component/personal_crafting/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -569,16 +585,7 @@ data["ref"] = "[REF(recipe)]" var/atom/atom = recipe.result - //load sprite sheets and select the correct one based on the mode - var/static/list/sprite_sheets - if(isnull(sprite_sheets)) - sprite_sheets = ui_assets() - var/datum/asset/spritesheet/sheet = sprite_sheets[mode ? 2 : 1] - - //infer icon size of this atom - var/atom_id = atoms.Find(atom) - var/icon_size = sheet.icon_size_id("a[atom_id]") - data["icon"] = "[icon_size] a[atom_id]" + data["id"] = atoms.Find(atom) var/recipe_data = recipe.crafting_ui_data() for(var/new_data in recipe_data) @@ -606,6 +613,9 @@ data["name"] = "[data["name"]] [recipe.result_amount]x" data["desc"] = recipe.desc || initial(atom.desc) + if(ispath(recipe.result, /obj/item/food)) + var/obj/item/food/food = recipe.result + data["has_food_effect"] = !!food.crafted_food_buff // Crafting if(recipe.non_craftable) @@ -695,3 +705,20 @@ if(recipe == potential_recipe) return TRUE return FALSE + +/datum/component/personal_crafting/machine + ignored_flags = CRAFT_CHECK_DENSITY + +/datum/component/personal_crafting/machine/get_environment(atom/crafter, list/blacklist = null, radius_range = 1) + . = list() + for(var/atom/movable/content in crafter.contents) + if((content.flags_1 & HOLOGRAM_1) || (blacklist && (content.type in blacklist))) + continue + if(isitem(content)) + var/obj/item/item = content + if(item.item_flags & ABSTRACT) //let's not tempt fate, shall we? + continue + . += content + +/datum/component/personal_crafting/machine/check_tools(atom/source, datum/crafting_recipe/recipe, list/surroundings) + return TRUE diff --git a/code/datums/components/crafting/equipment.dm b/code/datums/components/crafting/equipment.dm index eeea4205a4d29..2546106d40327 100644 --- a/code/datums/components/crafting/equipment.dm +++ b/code/datums/components/crafting/equipment.dm @@ -23,6 +23,17 @@ time = 4 SECONDS category = CAT_EQUIPMENT +/datum/crafting_recipe/moonflowershield + name = "Moonflower Shield" + result = /obj/item/shield/buckler/moonflower + reqs = list( + /obj/item/seeds/sunflower/moonflower = 3, + /obj/item/grown/log/steel = 3, + ) + time = 4 SECONDS + category = CAT_EQUIPMENT + + /datum/crafting_recipe/radiogloves name = "Radio Gloves" result = /obj/item/clothing/gloves/radio @@ -271,3 +282,15 @@ ) category = CAT_EQUIPMENT tool_behaviors = list(TOOL_WELDER, TOOL_WIRECUTTER) + +/datum/crafting_recipe/tether_anchor + name = "Tether Anchor" + result = /obj/item/tether_anchor + reqs = list( + /obj/item/stack/sheet/iron = 5, + /obj/item/stack/rods = 2, + /obj/item/stack/cable_coil = 15 + ) + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WRENCH) + time = 5 SECONDS + category = CAT_EQUIPMENT diff --git a/code/datums/components/crafting/melee_weapon.dm b/code/datums/components/crafting/melee_weapon.dm index 594ff7aefd387..018d99d870352 100644 --- a/code/datums/components/crafting/melee_weapon.dm +++ b/code/datums/components/crafting/melee_weapon.dm @@ -191,3 +191,13 @@ ) time = 10 SECONDS category = CAT_WEAPON_MELEE + +/datum/crafting_recipe/bambostaff + name = "Bamboo Bo Staff" + result = /obj/item/bambostaff + reqs = list( + /obj/item/stack/sheet/mineral/bamboo = 4, + /obj/item/grown/log/steel = 2, + ) + time = 8 SECONDS + category = CAT_WEAPON_MELEE diff --git a/code/datums/components/crafting/misc.dm b/code/datums/components/crafting/misc.dm index 606cf1fc29262..52c66253e824b 100644 --- a/code/datums/components/crafting/misc.dm +++ b/code/datums/components/crafting/misc.dm @@ -35,6 +35,17 @@ tool_paths = list(/obj/item/stamp/head/captain) category = CAT_MISC +/datum/crafting_recipe/clipboard + name = "Clipboard" + result = /obj/item/clipboard + time = 3 SECONDS + reqs = list( + /obj/item/stack/sheet/mineral/wood = 1, + /obj/item/stack/rods = 1, + ) + tool_behaviors = list(TOOL_WIRECUTTER) + category = CAT_MISC + /datum/crafting_recipe/cardboard_id name = "Cardboard ID Card" tool_behaviors = list(TOOL_WIRECUTTER) diff --git a/code/datums/components/crafting/ranged_weapon.dm b/code/datums/components/crafting/ranged_weapon.dm index 0e3c7b119169b..e69d535a58b30 100644 --- a/code/datums/components/crafting/ranged_weapon.dm +++ b/code/datums/components/crafting/ranged_weapon.dm @@ -77,7 +77,7 @@ reqs = list( /obj/item/assembly/signaler/anomaly/flux = 2, /obj/item/assembly/signaler/anomaly/grav = 1, - /obj/item/assembly/signaler/anomaly/vortex = MAX_CORES_VORTEX, + /obj/item/assembly/signaler/anomaly/vortex = (MAX_CORES_VORTEX - 1), /obj/item/assembly/signaler/anomaly/bluespace = 1, /obj/item/weaponcrafting/gunkit/beam_rifle = 1, ) @@ -300,6 +300,22 @@ category = CAT_WEAPON_RANGED crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED +/datum/crafting_recipe/pipe_organ_gun + name = "Pipe Organ Gun" + tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER) + result = /obj/structure/mounted_gun/pipe + reqs = list( + /obj/item/pipe = 8, + /obj/item/stack/sheet/mineral/wood = 15, + /obj/item/stack/sheet/iron = 10, + /obj/item/storage/toolbox = 1, + /obj/item/stack/rods = 10, + /obj/item/assembly/igniter = 2, + ) + time = 15 SECONDS + category = CAT_WEAPON_RANGED + crafting_flags = CRAFT_CHECK_DENSITY + /datum/crafting_recipe/trash_cannon name = "Trash Cannon" tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER) @@ -323,8 +339,7 @@ /obj/item/stack/rods = 4, /obj/item/stock_parts/micro_laser = 1, /obj/item/stock_parts/capacitor = 1, - /obj/item/clothing/glasses/regular = 1, - /obj/item/reagent_containers/cup/glass/drinkingglass = 1, + /obj/item/reagent_containers/cup/glass/drinkingglass = 2, ) tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER) time = 10 SECONDS diff --git a/code/datums/components/crafting/structures.dm b/code/datums/components/crafting/structures.dm index c4a9b48ec36b6..090ec31ce226f 100644 --- a/code/datums/components/crafting/structures.dm +++ b/code/datums/components/crafting/structures.dm @@ -74,3 +74,14 @@ ) category = CAT_STRUCTURE crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED + +/datum/crafting_recipe/manucrate + name = "Manufacturing Storage Unit" + result = /obj/machinery/power/manufacturing/storagebox + tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WELDER) + time = 6 SECONDS + reqs = list( + /obj/item/stack/sheet/iron = 10, + ) + category = CAT_STRUCTURE + crafting_flags = CRAFT_CHECK_DENSITY diff --git a/code/datums/components/crafting/tailoring.dm b/code/datums/components/crafting/tailoring.dm index 2bcec49aeb504..2196a88325ac2 100644 --- a/code/datums/components/crafting/tailoring.dm +++ b/code/datums/components/crafting/tailoring.dm @@ -6,6 +6,61 @@ time = 5 SECONDS category = CAT_CLOTHING +/datum/crafting_recipe/durathread_robe + name = "Durathread Robe" + result = /obj/item/clothing/suit/wizrobe/durathread + reqs = list( + /obj/item/stack/sheet/durathread = 3, + /obj/item/stack/sheet/leather = 6, + ) + time = 5 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_robe_fire + name = "Durathread Pyromancer Robe" + result = /obj/item/clothing/suit/wizrobe/durathread/fire + reqs = list(/obj/item/clothing/suit/wizrobe/durathread = 1, + /obj/item/grown/novaflower = 1, + /obj/item/seeds/chili = 3) + time = 2 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_robe_ice + name = "Durathread Ice-o-mancer Robe" + result = /obj/item/clothing/suit/wizrobe/durathread/ice + reqs = list(/obj/item/clothing/suit/wizrobe/durathread = 1, + /obj/item/seeds/chili/ice = 1, + /obj/item/food/grown/herbs = 3) + time = 2 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_robe_electric + name = "Durathread Electromancer Robe" + result = /obj/item/clothing/suit/wizrobe/durathread/electric + reqs = list(/obj/item/clothing/suit/wizrobe/durathread = 1, + /obj/item/food/grown/mushroom/jupitercup = 1, + /obj/item/food/grown/sunflower = 3) + time = 2 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_robe_earth + name = "Durathread Geomancer Robe" + result = /obj/item/clothing/suit/wizrobe/durathread/earth + reqs = list(/obj/item/clothing/suit/wizrobe/durathread = 1, + /obj/item/food/grown/cahnroot = 1, + /obj/item/food/grown/potato = 3) + time = 2 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_robe_necro + name = "Durathread Necromancer Robe" + result = /obj/item/clothing/suit/wizrobe/durathread/necro + reqs = list(/obj/item/clothing/suit/wizrobe/durathread = 1, + /obj/item/food/grown/cannabis/death = 2, + /obj/item/food/grown/mushroom/angel = 2) + time = 2 SECONDS + category = CAT_CLOTHING + /datum/crafting_recipe/durathread_helmet name = "Durathread Helmet" result = /obj/item/clothing/head/helmet/durathread @@ -14,6 +69,62 @@ time = 4 SECONDS category = CAT_CLOTHING +/datum/crafting_recipe/watermelon_armour + name = "Watermelon Armour" + result = /obj/item/clothing/suit/armor/durability/watermelon + reqs = list(/obj/item/clothing/head/helmet/durability/watermelon = 3, + /obj/item/stack/sheet/durathread = 1) + time = 4 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/watermelon_armour_fr + name = "Watermelon Armour" + result = /obj/item/clothing/suit/armor/durability/watermelon/fire_resist + reqs = list(/obj/item/clothing/head/helmet/durability/watermelon/fire_resist = 3, + /obj/item/stack/sheet/durathread = 1) + time = 4 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/holymelon_armour + name = "Holymelon Armour" + result = /obj/item/clothing/suit/armor/durability/holymelon + reqs = list(/obj/item/clothing/head/helmet/durability/holymelon = 3, + /obj/item/stack/sheet/durathread = 1) + time = 4 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/holymelonmelon_armour_fr + name = "Holymelon Armour" + result = /obj/item/clothing/suit/armor/durability/holymelon/fire_resist + reqs = list(/obj/item/clothing/head/helmet/durability/holymelon/fire_resist = 3, + /obj/item/stack/sheet/durathread = 1) + time = 4 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/barrelmelon_armour + name = "Barrelmelon Armour" + result = /obj/item/clothing/suit/armor/durability/barrelmelon + reqs = list(/obj/item/clothing/head/helmet/durability/barrelmelon = 3, + /obj/item/stack/sheet/durathread = 1) + time = 4 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/barrelmelon_armour_fr + name = "Barrelmelon Armour" + result = /obj/item/clothing/suit/armor/durability/barrelmelon/fire_resist + reqs = list(/obj/item/clothing/head/helmet/durability/barrelmelon/fire_resist = 3, + /obj/item/stack/sheet/durathread = 1) + time = 4 SECONDS + category = CAT_CLOTHING + +/datum/crafting_recipe/grass_sheath + name = "Grass Sabre Sheath" + result = /obj/item/storage/belt/grass_sabre + reqs = list(/obj/item/food/grown/grass = 4, + /obj/item/food/grown/grass/fairy = 2) + time = 4 SECONDS + category = CAT_CONTAINERS + /datum/crafting_recipe/fannypack name = "Fannypack" result = /obj/item/storage/belt/fannypack @@ -492,3 +603,53 @@ . = ..() if(HAS_TRAIT(user, TRAIT_BALLOON_SUTRA)) return TRUE + +/datum/crafting_recipe/press_armor + name = "press armor vest" + result = /obj/item/clothing/suit/armor/vest/press + time = 2 SECONDS + tool_paths = list(/obj/item/clothing/accessory/press_badge) + reqs = list( + /obj/item/clothing/suit/armor/vest = 1, + ) + category = CAT_CLOTHING + +/datum/crafting_recipe/press_helmet + name = "press helmet vest" + result = /obj/item/clothing/head/helmet/press + time = 2 SECONDS + tool_paths = list(/obj/item/clothing/accessory/press_badge) + reqs = list( + /obj/item/clothing/head/helmet/sec = 1, + ) + category = CAT_CLOTHING + +/datum/crafting_recipe/press_vest + name = "press vest" + result = /obj/item/clothing/suit/hazardvest/press + time = 2 SECONDS + tool_paths = list(/obj/item/clothing/accessory/press_badge) + reqs = list( + /obj/item/clothing/suit/hazardvest = 1, + ) + category = CAT_CLOTHING + +/datum/crafting_recipe/press_fedora + name = "press fedora" + result = /obj/item/clothing/head/fedora/beige/press + time = 2 SECONDS + tool_paths = list(/obj/item/clothing/accessory/press_badge) + reqs = list( + /obj/item/clothing/head/fedora/beige = 1, + ) + category = CAT_CLOTHING + +/datum/crafting_recipe/jonkler + name = "gamer's wig and mask" + result = /obj/item/clothing/mask/gas/jonkler + time = 10 SECONDS + tool_paths = list(/obj/item/toy/crayon/green) + reqs = list( + /obj/item/clothing/mask/gas/clown_hat = 1, + ) + category = CAT_CLOTHING diff --git a/code/datums/components/crafting/weapon_ammo.dm b/code/datums/components/crafting/weapon_ammo.dm index 2ba01802e7cdd..9a3448bc803a3 100644 --- a/code/datums/components/crafting/weapon_ammo.dm +++ b/code/datums/components/crafting/weapon_ammo.dm @@ -127,6 +127,28 @@ category = CAT_WEAPON_AMMO crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED +/datum/crafting_recipe/sticky_arrow + name = "Sticky arrow" + result = /obj/item/ammo_casing/arrow/sticky + reqs = list( + /obj/item/ammo_casing/arrow = 1, + /obj/item/food/honeycomb = 3, + ) + time = 5 SECONDS + category = CAT_WEAPON_AMMO + crafting_flags = CRAFT_CHECK_DENSITY + +/datum/crafting_recipe/poison_arrow + name = "Poison arrow" + result = /obj/item/ammo_casing/arrow/poison + reqs = list( + /obj/item/ammo_casing/arrow = 1, + /obj/item/food/grown/berries/poison = 5, + ) + time = 5 SECONDS + category = CAT_WEAPON_AMMO + crafting_flags = CRAFT_CHECK_DENSITY + /datum/crafting_recipe/plastic_arrow name = "Plastic Arrow" result = /obj/item/ammo_casing/arrow/plastic diff --git a/code/datums/components/crank_recharge.dm b/code/datums/components/crank_recharge.dm index 1f2272a8debc2..4940a02b0553e 100644 --- a/code/datums/components/crank_recharge.dm +++ b/code/datums/components/crank_recharge.dm @@ -14,9 +14,11 @@ var/charge_sound_cooldown_time /// Are we currently charging var/is_charging = FALSE + /// Should you be able to move while charging, use IGNORE_USER_LOC_CHANGE if you want to move and crank + var/charge_move = NONE COOLDOWN_DECLARE(charge_sound_cooldown) -/datum/component/crank_recharge/Initialize(charging_cell, spin_to_win = FALSE, charge_amount = 500, cooldown_time = 2 SECONDS, charge_sound = 'sound/weapons/laser_crank.ogg', charge_sound_cooldown_time = 1.8 SECONDS) +/datum/component/crank_recharge/Initialize(charging_cell, spin_to_win = FALSE, charge_amount = 500, cooldown_time = 2 SECONDS, charge_sound = 'sound/items/weapons/laser_crank.ogg', charge_sound_cooldown_time = 1.8 SECONDS, charge_move = NONE) . = ..() if(!isitem(parent)) return COMPONENT_INCOMPATIBLE @@ -28,7 +30,7 @@ src.cooldown_time = cooldown_time src.charge_sound = charge_sound src.charge_sound_cooldown_time = charge_sound_cooldown_time - + src.charge_move = charge_move /datum/component/crank_recharge/RegisterWithParent() . = ..() RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) @@ -57,7 +59,7 @@ COOLDOWN_START(src, charge_sound_cooldown, charge_sound_cooldown_time) playsound(source, charge_sound, 40) source.balloon_alert(user, "charging...") - if(!do_after(user, cooldown_time, source, interaction_key = DOAFTER_SOURCE_CHARGE_CRANKRECHARGE)) + if(!do_after(user, cooldown_time, source, interaction_key = DOAFTER_SOURCE_CHARGE_CRANKRECHARGE, timed_action_flags = charge_move)) is_charging = FALSE return charging_cell.give(charge_amount) diff --git a/code/datums/components/creamed.dm b/code/datums/components/creamed.dm deleted file mode 100644 index d1ff1b792e17a..0000000000000 --- a/code/datums/components/creamed.dm +++ /dev/null @@ -1,110 +0,0 @@ -GLOBAL_LIST_INIT(creamable, typecacheof(list( - /mob/living/carbon/human, - /mob/living/basic/pet/dog/corgi, - /mob/living/silicon/ai))) - -/** - * Creamed component - * - * For when you have pie on your face - */ -/datum/component/creamed - dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS - /// Creampie overlay we use for non-carbon mobs - var/mutable_appearance/normal_overlay - /// Creampie bodypart overlay we use for carbon mobs - var/datum/bodypart_overlay/simple/creampie/bodypart_overlay - /// Cached head for carbons, to ensure proper removal of the creampie overlay - var/obj/item/bodypart/my_head - -/datum/component/creamed/Initialize() - if(!is_type_in_typecache(parent, GLOB.creamable)) - return COMPONENT_INCOMPATIBLE - - SEND_SIGNAL(parent, COMSIG_MOB_CREAMED, src) - - add_memory_in_range(parent, 7, /datum/memory/witnessed_creampie, protagonist = parent) - -/datum/component/creamed/Destroy(force) - . = ..() - normal_overlay = null - my_head = null - QDEL_NULL(bodypart_overlay) - -/datum/component/creamed/RegisterWithParent() - if(iscarbon(parent)) - var/mob/living/carbon/human/carbon_parent = parent - my_head = carbon_parent.get_bodypart(BODY_ZONE_HEAD) - if(!my_head) //just to be sure - qdel(src) - return - bodypart_overlay = new() - if(carbon_parent.bodyshape & BODYSHAPE_SNOUTED) //stupid, but external organ bodytypes are not stored on the limb - bodypart_overlay.icon_state = "creampie_lizard" - else if(my_head.bodyshape & BODYSHAPE_MONKEY) - bodypart_overlay.icon_state = "creampie_monkey" - else - bodypart_overlay.icon_state = "creampie_human" - my_head.add_bodypart_overlay(bodypart_overlay) - RegisterSignals(my_head, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING), PROC_REF(lost_head)) - carbon_parent.add_mood_event("creampie", /datum/mood_event/creampie) - carbon_parent.update_body_parts() - else if(iscorgi(parent)) - normal_overlay = mutable_appearance('icons/mob/effects/creampie.dmi', "creampie_corgi") - else if(isAI(parent)) - normal_overlay = mutable_appearance('icons/mob/effects/creampie.dmi', "creampie_ai") - - RegisterSignals(parent, list( - COMSIG_COMPONENT_CLEAN_ACT, - COMSIG_COMPONENT_CLEAN_FACE_ACT), - PROC_REF(clean_up) - ) - if(normal_overlay) - var/atom/atom_parent = parent - RegisterSignal(atom_parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(update_overlays)) - atom_parent.update_appearance() - -/datum/component/creamed/UnregisterFromParent() - UnregisterSignal(parent, list( - COMSIG_COMPONENT_CLEAN_ACT, - COMSIG_COMPONENT_CLEAN_FACE_ACT)) - if(my_head) - if(bodypart_overlay) - my_head.remove_bodypart_overlay(bodypart_overlay) - if(!my_head.owner) - my_head.update_icon_dropped() - QDEL_NULL(bodypart_overlay) - UnregisterSignal(my_head, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING)) - my_head = null - if(iscarbon(parent)) - var/mob/living/carbon/carbon_parent = parent - carbon_parent.clear_mood_event("creampie") - carbon_parent.update_body_parts() - if(normal_overlay) - var/atom/atom_parent = parent - UnregisterSignal(atom_parent, COMSIG_ATOM_UPDATE_OVERLAYS) - atom_parent.update_appearance() - normal_overlay = null - -///Callback to remove pieface -/datum/component/creamed/proc/clean_up(datum/source, clean_types) - SIGNAL_HANDLER - - if(!(clean_types & CLEAN_TYPE_BLOOD)) - return NONE - - qdel(src) - return COMPONENT_CLEANED - -/// Ensures normal_overlay overlay in case the mob is not a carbon -/datum/component/creamed/proc/update_overlays(atom/parent_atom, list/overlays) - SIGNAL_HANDLER - - if(normal_overlay) - overlays += normal_overlay - -/// Removes creampie when the head gets dismembered -/datum/component/creamed/proc/lost_head(obj/item/bodypart/source, mob/living/carbon/owner, dismembered) - SIGNAL_HANDLER - - qdel(src) diff --git a/code/datums/components/cuff_n_stun.dm b/code/datums/components/cuff_n_stun.dm index d238a81f06a24..fda9618e93c14 100644 --- a/code/datums/components/cuff_n_stun.dm +++ b/code/datums/components/cuff_n_stun.dm @@ -22,7 +22,7 @@ COOLDOWN_DECLARE(stun_cooldown) /datum/component/stun_n_cuff/Initialize(list/blacklist_mobs = list(), - stun_sound = 'sound/weapons/egloves.ogg', + stun_sound = 'sound/items/weapons/egloves.ogg', stun_timer = 8 SECONDS, handcuff_timer = 4 SECONDS, stun_cooldown_timer = 10 SECONDS, @@ -75,7 +75,7 @@ living_parent.balloon_alert(human_target, "already cuffed!") return - playsound(parent, 'sound/weapons/cablecuff.ogg', 30, TRUE) + playsound(parent, 'sound/items/weapons/cablecuff.ogg', 30, TRUE) human_target.visible_message(span_danger("[parent] is trying to put zipties on [human_target]!"),\ span_danger("[parent] is trying to put zipties on you!")) diff --git a/code/datums/components/cult_ritual_item.dm b/code/datums/components/cult_ritual_item.dm index dedd30bda0ef5..554e3d611ba2d 100644 --- a/code/datums/components/cult_ritual_item.dm +++ b/code/datums/components/cult_ritual_item.dm @@ -176,7 +176,7 @@ * cultist - the mob doing the destroying */ /datum/component/cult_ritual_item/proc/do_destroy_girder(obj/structure/girder/cult/cult_girder, mob/living/cultist) - playsound(cult_girder, 'sound/weapons/resonator_blast.ogg', 40, TRUE, ignore_walls = FALSE) + playsound(cult_girder, 'sound/items/weapons/resonator_blast.ogg', 40, TRUE, ignore_walls = FALSE) cultist.visible_message( span_warning("[cultist] strikes [cult_girder] with [parent]!"), span_notice("You demolish [cult_girder].") @@ -320,7 +320,7 @@ if(scribe_failed) failed = CALLBACK(GLOBAL_PROC, scribe_failed) - SEND_SOUND(cultist, sound('sound/weapons/slice.ogg', 0, 1, 10)) + SEND_SOUND(cultist, sound('sound/items/weapons/slice.ogg', 0, 1, 10)) if(!do_after(cultist, scribe_mod, target = get_turf(cultist), timed_action_flags = IGNORE_SLOWDOWNS)) cleanup_shields() failed?.Invoke() @@ -371,7 +371,7 @@ var/area/summon_location = get_area(cultist) priority_announce( text = "Figments from an eldritch god are being summoned by [cultist.real_name] into [summon_location.get_original_area_name()] from an unknown dimension. Disrupt the ritual at all costs!", - sound = 'sound/ambience/antag/bloodcult/bloodcult_scribe.ogg', + sound = 'sound/music/antag/bloodcult/bloodcult_scribe.ogg', sender_override = "[command_name()] Higher Dimensional Affairs", has_important_message = TRUE, ) @@ -404,7 +404,7 @@ if(!rune.Adjacent(cultist)) return FALSE - if(cultist.incapacitated()) + if(cultist.incapacitated) return FALSE if(cultist.stat == DEAD) @@ -427,7 +427,7 @@ if(QDELETED(tool) || !cultist.is_holding(tool)) return FALSE - if(cultist.incapacitated() || cultist.stat == DEAD) + if(cultist.incapacitated || cultist.stat == DEAD) to_chat(cultist, span_warning("You can't draw a rune right now.")) return FALSE diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm index c7b3e3f2ff55b..fefa9d7e6bee8 100644 --- a/code/datums/components/dejavu.dm +++ b/code/datums/components/dejavu.dm @@ -2,6 +2,7 @@ * A component to reset the parent to its previous state after some time passes */ /datum/component/dejavu + dupe_mode = COMPONENT_DUPE_ALLOWED ///message sent when dejavu rewinds var/rewind_message = "You remember a time not so long ago..." @@ -16,6 +17,8 @@ var/rewinds_remaining /// How long to wait between each rewind var/rewind_interval + /// Do we add a new component before teleporting the target to they teleport to the place where *we* teleported them from? + var/repeating_component /// The starting value of toxin loss at the beginning of the effect var/tox_loss = 0 @@ -34,13 +37,14 @@ /// A list of body parts saved at the beginning of the effect var/list/datum/saved_bodypart/saved_bodyparts -/datum/component/dejavu/Initialize(rewinds = 1, interval = 10 SECONDS) +/datum/component/dejavu/Initialize(rewinds = 1, interval = 10 SECONDS, add_component = FALSE) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE starting_turf = get_turf(parent) rewinds_remaining = rewinds rewind_interval = interval + repeating_component = add_component if(isliving(parent)) var/mob/living/L = parent @@ -85,13 +89,16 @@ master.forceMove(starting_turf) rewinds_remaining -- - if(rewinds_remaining) + if(rewinds_remaining || rewinds_remaining < 0) addtimer(CALLBACK(src, rewind_type), rewind_interval) else to_chat(parent, span_notice(no_rewinds_message)) qdel(src) /datum/component/dejavu/proc/rewind_living() + if (rewinds_remaining == 1 && repeating_component && !iscarbon(parent) && !isanimal_or_basicmob(parent)) + parent.AddComponent(type, 1, rewind_interval, TRUE) + var/mob/living/master = parent master.setToxLoss(tox_loss) master.setOxyLoss(oxy_loss) @@ -100,18 +107,27 @@ rewind() /datum/component/dejavu/proc/rewind_carbon() + if (rewinds_remaining == 1 && repeating_component) + parent.AddComponent(type, 1, rewind_interval, TRUE) + if(saved_bodyparts) var/mob/living/carbon/master = parent master.apply_saved_bodyparts(saved_bodyparts) rewind_living() /datum/component/dejavu/proc/rewind_animal() + if (rewinds_remaining == 1 && repeating_component) + parent.AddComponent(type, 1, rewind_interval, TRUE) + var/mob/living/master = parent master.bruteloss = brute_loss master.updatehealth() rewind_living() /datum/component/dejavu/proc/rewind_obj() + if (rewinds_remaining == 1 && repeating_component) + parent.AddComponent(type, 1, rewind_interval, TRUE) + var/obj/master = parent master.update_integrity(integrity) rewind() @@ -124,3 +140,10 @@ /datum/component/dejavu/timeline/rewind() playsound(get_turf(parent), 'sound/items/modsuit/rewinder.ogg') . = ..() + +/datum/component/dejavu/wizard + rewind_message = "Your temporal ward activated, pulling you through spacetime!" + +/datum/component/dejavu/wizard/rewind() + playsound(get_turf(parent), 'sound/items/modsuit/rewinder.ogg') + . = ..() diff --git a/code/datums/components/deployable.dm b/code/datums/components/deployable.dm index f45a5b226c39d..ac0f006fb6cde 100644 --- a/code/datums/components/deployable.dm +++ b/code/datums/components/deployable.dm @@ -68,7 +68,7 @@ return new_direction = user.dir //Gets the direction for thing_to_be_deployed if there is a user source.balloon_alert(user, "deploying...") - playsound(source, 'sound/items/ratchet.ogg', 50, TRUE) + playsound(source, 'sound/items/tools/ratchet.ogg', 50, TRUE) if(!do_after(user, deploy_time)) return else // If there is for some reason no user, then the location and direction are set here diff --git a/code/datums/components/direct_explosive_trap.dm b/code/datums/components/direct_explosive_trap.dm index e3a125eb928ed..1372c569bbade 100644 --- a/code/datums/components/direct_explosive_trap.dm +++ b/code/datums/components/direct_explosive_trap.dm @@ -74,7 +74,7 @@ to_chat(victim, span_bolddanger("[source] was boobytrapped!")) if (!isnull(saboteur)) to_chat(saboteur, span_bolddanger("Success! Your trap on [source] caught [victim.name]!")) - playsound(source, 'sound/effects/explosion2.ogg', 200, TRUE) + playsound(source, 'sound/effects/explosion/explosion2.ogg', 200, TRUE) new /obj/effect/temp_visual/explosion(get_turf(source)) EX_ACT(victim, explosive_force) qdel(src) diff --git a/code/datums/components/drift.dm b/code/datums/components/drift.dm deleted file mode 100644 index 7fba50d315178..0000000000000 --- a/code/datums/components/drift.dm +++ /dev/null @@ -1,194 +0,0 @@ -///Component that handles drifting -///Manages a movement loop that actually does the legwork of moving someone -///Alongside dealing with the post movement input blocking required to make things look nice -/datum/component/drift - var/atom/inertia_last_loc - var/old_dir - var/datum/move_loop/move/drifting_loop - ///Should we ignore the next glide rate input we get? - ///This is to some extent a hack around the order of operations - ///Around COMSIG_MOVELOOP_POSTPROCESS. I'm sorry lad - var/ignore_next_glide = FALSE - ///Have we been delayed? IE: active, but not working right this second? - var/delayed = FALSE - var/block_inputs_until - -/// Accepts three args. The direction to drift in, if the drift is instant or not, and if it's not instant, the delay on the start -/datum/component/drift/Initialize(direction, instant = FALSE, start_delay = 0) - if(!ismovable(parent)) - return COMPONENT_INCOMPATIBLE - . = ..() - - var/flags = MOVEMENT_LOOP_OUTSIDE_CONTROL - if(instant) - flags |= MOVEMENT_LOOP_START_FAST - var/atom/movable/movable_parent = parent - drifting_loop = GLOB.move_manager.move(moving = parent, direction = direction, delay = movable_parent.inertia_move_delay, subsystem = SSspacedrift, priority = MOVEMENT_SPACE_PRIORITY, flags = flags) - - if(!drifting_loop) //Really want to qdel here but can't - return COMPONENT_INCOMPATIBLE - - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_START, PROC_REF(drifting_start)) - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_STOP, PROC_REF(drifting_stop)) - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_PREPROCESS_CHECK, PROC_REF(before_move)) - RegisterSignal(drifting_loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(after_move)) - RegisterSignal(drifting_loop, COMSIG_QDELETING, PROC_REF(loop_death)) - RegisterSignal(movable_parent, COMSIG_MOVABLE_NEWTONIAN_MOVE, PROC_REF(newtonian_impulse)) - if(drifting_loop.status & MOVELOOP_STATUS_RUNNING) - drifting_start(drifting_loop) // There's a good chance it'll autostart, gotta catch that - - var/visual_delay = movable_parent.inertia_move_delay - - // Start delay is essentially a more granular version of instant - // Isn't used in the standard case, just for things that have odd wants - if(!instant && start_delay) - drifting_loop.pause_for(start_delay) - visual_delay = start_delay - - apply_initial_visuals(visual_delay) - -/datum/component/drift/Destroy() - inertia_last_loc = null - if(!QDELETED(drifting_loop)) - qdel(drifting_loop) - drifting_loop = null - var/atom/movable/movable_parent = parent - movable_parent.inertia_moving = FALSE - return ..() - -/datum/component/drift/proc/apply_initial_visuals(visual_delay) - // If something "somewhere" doesn't want us to apply our glidesize delays, don't - if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) & DRIFT_VISUAL_FAILED) - return - - // Ignore the next glide because it's literally just us - ignore_next_glide = TRUE - var/atom/movable/movable_parent = parent - movable_parent.set_glide_size(MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSspacedrift.visual_delay)) - if(ismob(parent)) - var/mob/mob_parent = parent - //Ok this is slightly weird, but basically, we need to force the client to glide at our rate - //Make sure moving into a space move looks like a space move essentially - //There is an inbuilt assumption that gliding will be added as a part of a move call, but eh - //It's ok if it's not, it's just important if it is. - mob_parent.client?.visual_delay = MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSspacedrift.visual_delay) - -/datum/component/drift/proc/newtonian_impulse(datum/source, inertia_direction) - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - inertia_last_loc = movable_parent.loc - if(drifting_loop) - drifting_loop.direction = inertia_direction - if(!inertia_direction) - qdel(src) - return COMPONENT_MOVABLE_NEWTONIAN_BLOCK - -/datum/component/drift/proc/drifting_start() - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - inertia_last_loc = movable_parent.loc - RegisterSignal(movable_parent, COMSIG_MOVABLE_MOVED, PROC_REF(handle_move)) - // We will use glide size to intuit how long to delay our loop's next move for - // This way you can't ride two movements at once while drifting, since that'd be dumb as fuck - RegisterSignal(movable_parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(handle_glidesize_update)) - // If you stop pulling something mid drift, I want it to retain that momentum - RegisterSignal(movable_parent, COMSIG_ATOM_NO_LONGER_PULLING, PROC_REF(stopped_pulling)) - -/datum/component/drift/proc/drifting_stop() - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - movable_parent.inertia_moving = FALSE - ignore_next_glide = FALSE - UnregisterSignal(movable_parent, list(COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, COMSIG_ATOM_NO_LONGER_PULLING)) - -/datum/component/drift/proc/before_move(datum/source) - SIGNAL_HANDLER - var/atom/movable/movable_parent = parent - movable_parent.inertia_moving = TRUE - old_dir = movable_parent.dir - delayed = FALSE - -/datum/component/drift/proc/after_move(datum/source, result, visual_delay) - SIGNAL_HANDLER - if(result == MOVELOOP_FAILURE) - qdel(src) - return - - var/atom/movable/movable_parent = parent - movable_parent.setDir(old_dir) - movable_parent.inertia_moving = FALSE - if(movable_parent.Process_Spacemove(drifting_loop.direction, continuous_move = TRUE)) - glide_to_halt(visual_delay) - return - - inertia_last_loc = movable_parent.loc - ignore_next_glide = TRUE - -/datum/component/drift/proc/loop_death(datum/source) - SIGNAL_HANDLER - drifting_loop = null - UnregisterSignal(parent, COMSIG_MOVABLE_NEWTONIAN_MOVE) // We won't block a component from replacing us anymore - -/datum/component/drift/proc/handle_move(datum/source, old_loc) - SIGNAL_HANDLER - // This can happen, because signals once sent cannot be stopped - if(QDELETED(src)) - return - var/atom/movable/movable_parent = parent - if(!isturf(movable_parent.loc)) - qdel(src) - return - if(movable_parent.inertia_moving) - return - if(!movable_parent.Process_Spacemove(drifting_loop.direction, continuous_move = TRUE)) - return - qdel(src) - -/// We're going to take the passed in glide size -/// and use it to manually delay our loop for that period -/// to allow the other movement to complete -/datum/component/drift/proc/handle_glidesize_update(datum/source, glide_size) - SIGNAL_HANDLER - // If we aren't drifting, or this is us, fuck off - var/atom/movable/movable_parent = parent - if(!drifting_loop || movable_parent.inertia_moving) - return - // If we are drifting, but this set came from the moveloop itself, drop the input - // I'm sorry man - if(ignore_next_glide) - ignore_next_glide = FALSE - return - var/glide_delay = round(world.icon_size / glide_size, 1) * world.tick_lag - drifting_loop.pause_for(glide_delay) - delayed = TRUE - -/// If we're pulling something and stop, we want it to continue at our rate and such -/datum/component/drift/proc/stopped_pulling(datum/source, atom/movable/was_pulling) - SIGNAL_HANDLER - // This does mean it falls very slightly behind, but otherwise they'll potentially run into us - var/next_move_in = drifting_loop.timer - world.time + world.tick_lag - was_pulling.newtonian_move(drifting_loop.direction, start_delay = next_move_in) - -/datum/component/drift/proc/glide_to_halt(glide_for) - if(!ismob(parent)) - qdel(src) - return - - var/mob/mob_parent = parent - var/client/our_client = mob_parent.client - // If we're not active, don't do the glide because it'll look dumb as fuck - if(!our_client || delayed) - qdel(src) - return - - block_inputs_until = world.time + glide_for - QDEL_IN(src, glide_for + 1) - qdel(drifting_loop) - RegisterSignal(parent, COMSIG_MOB_CLIENT_PRE_MOVE, PROC_REF(allow_final_movement)) - -/datum/component/drift/proc/allow_final_movement(datum/source) - // Some things want to allow movement out of spacedrift, we should let them - if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) & DRIFT_ALLOW_INPUT) - return - if(world.time < block_inputs_until) - return COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE diff --git a/code/datums/components/echolocation.dm b/code/datums/components/echolocation.dm index 020c47ad875e1..4fda54ac0f50e 100644 --- a/code/datums/components/echolocation.dm +++ b/code/datums/components/echolocation.dm @@ -32,7 +32,7 @@ /// Cooldown for the echolocation. COOLDOWN_DECLARE(cooldown_last) -/datum/component/echolocation/Initialize(echo_range, cooldown_time, image_expiry_time, fade_in_time, fade_out_time, images_are_static, blocking_trait, echo_group, echo_icon = "echo", color_path) +/datum/component/echolocation/Initialize(echo_range, cooldown_time, image_expiry_time, fade_in_time, fade_out_time, images_are_static, blocking_trait, echo_group, echo_icon, color_path) . = ..() var/mob/living/echolocator = parent if(!istype(echolocator)) @@ -156,7 +156,7 @@ copied_appearance.pixel_x = 0 copied_appearance.pixel_y = 0 copied_appearance.transform = matrix() - if(!iscarbon(input)) //wacky overlay people get generated everytime + if(input.icon && input.icon_state) saved_appearances["[input.icon]-[input.icon_state]"] = copied_appearance return copied_appearance diff --git a/code/datums/components/effect_remover.dm b/code/datums/components/effect_remover.dm index a67962250dbe1..c8490d760f1f8 100644 --- a/code/datums/components/effect_remover.dm +++ b/code/datums/components/effect_remover.dm @@ -66,6 +66,10 @@ if(!isliving(user)) return NONE + if(HAS_TRAIT(target, TRAIT_ILLUSORY_EFFECT)) + to_chat(user, span_notice("You pass [parent] through the [target], but nothing seems to happen. Is it really even there?")) + return NONE + if(is_type_in_typecache(target, effects_we_clear)) // Make sure we get all subtypes and everything INVOKE_ASYNC(src, PROC_REF(do_remove_effect), target, user) return ITEM_INTERACT_SUCCESS diff --git a/code/datums/components/electrified_buckle.dm b/code/datums/components/electrified_buckle.dm index ba6fc7858bd6f..d641cf320e190 100644 --- a/code/datums/components/electrified_buckle.dm +++ b/code/datums/components/electrified_buckle.dm @@ -71,6 +71,8 @@ RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(delete_self)) RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, PROC_REF(on_buckle)) + RegisterSignal(parent, COMSIG_MOVABLE_UNBUCKLE, PROC_REF(on_unbuckle)) + RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_update_overlays)) ADD_TRAIT(parent_as_movable, TRAIT_ELECTRIFIED_BUCKLE, INNATE_TRAIT) @@ -104,7 +106,7 @@ if(parent) REMOVE_TRAIT(parent_as_movable, TRAIT_ELECTRIFIED_BUCKLE, INNATE_TRAIT) - UnregisterSignal(parent, list(COMSIG_MOVABLE_BUCKLE, COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER))) + UnregisterSignal(parent, list(COMSIG_MOVABLE_BUCKLE, COMSIG_MOVABLE_UNBUCKLE, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER))) if(requested_signal_parent_emits) UnregisterSignal(parent, requested_signal_parent_emits) @@ -128,16 +130,33 @@ required_object.Move(parent_as_movable.loc) qdel(src) -/datum/component/electrified_buckle/proc/on_buckle(datum/source, mob/living/mob_to_buckle, _force) +/datum/component/electrified_buckle/proc/on_buckle(atom/source, mob/living/mob_to_buckle, _force) SIGNAL_HANDLER if(!istype(mob_to_buckle)) return FALSE + if (requested_overlays) + source.update_appearance() COOLDOWN_START(src, electric_buckle_cooldown, shock_loop_time) if(!(usage_flags & SHOCK_REQUIREMENT_ON_SIGNAL_RECEIVED) && shock_on_loop) START_PROCESSING(SSprocessing, src) return TRUE +/datum/component/electrified_buckle/proc/on_unbuckle(atom/source, mob/living/unbuckled_mob, _force) + SIGNAL_HANDLER + if(!istype(unbuckled_mob)) + return FALSE + + if (requested_overlays) + source.update_appearance() + +/datum/component/electrified_buckle/proc/on_update_overlays(atom/movable/source, list/overlays) + SIGNAL_HANDLER + var/overlay_layer = length(source.buckled_mobs) ? ABOVE_MOB_LAYER : OBJ_LAYER + for (var/image/overlay_image in requested_overlays) + overlay_image.layer = overlay_layer + overlays += overlay_image + ///where the guinea pig is actually shocked if possible /datum/component/electrified_buckle/process(seconds_per_tick) var/atom/movable/parent_as_movable = parent diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index 84bfa8dfad0f0..6fc61db5e76a6 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -57,7 +57,7 @@ var/damage = weapon.throwforce if(harmful) victim.throw_alert(ALERT_EMBEDDED_OBJECT, /atom/movable/screen/alert/embeddedobject) - playsound(victim,'sound/weapons/bladeslice.ogg', 40) + playsound(victim,'sound/items/weapons/bladeslice.ogg', 40) if (limb.can_bleed()) weapon.add_mob_blood(victim)//it embedded itself in you, of course it's bloody! damage += weapon.w_class * embed_data.impact_pain_mult diff --git a/code/datums/components/engraved.dm b/code/datums/components/engraved.dm index 60bfa5f617729..5db43b8076cd2 100644 --- a/code/datums/components/engraved.dm +++ b/code/datums/components/engraved.dm @@ -67,13 +67,13 @@ RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) //supporting component transfer means putting these here instead of initialize SSpersistence.wall_engravings += src - ADD_TRAIT(parent, TRAIT_NOT_ENGRAVABLE, TRAIT_GENERIC) + ADD_TRAIT(parent, TRAIT_NOT_ENGRAVABLE, ENGRAVED_TRAIT) /datum/component/engraved/UnregisterFromParent() UnregisterSignal(parent, COMSIG_ATOM_EXAMINE) //supporting component transfer means putting these here instead of destroy SSpersistence.wall_engravings -= src - REMOVE_TRAIT(parent, TRAIT_NOT_ENGRAVABLE, TRAIT_GENERIC) + REMOVE_TRAIT(parent, TRAIT_NOT_ENGRAVABLE, ENGRAVED_TRAIT) /// Used to maintain the acid overlay on the parent [/atom]. /datum/component/engraved/proc/on_update_overlays(atom/parent_atom, list/overlays) diff --git a/code/datums/components/explodable.dm b/code/datums/components/explodable.dm index 439b156352104..9dc8db3bbc4f1 100644 --- a/code/datums/components/explodable.dm +++ b/code/datums/components/explodable.dm @@ -60,10 +60,11 @@ return check_if_detonate(I) -/datum/component/explodable/proc/explodable_impact(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) +/datum/component/explodable/proc/explodable_impact(datum/source, atom/hit_atom, datum/thrownthing/throwing_datum, caught) SIGNAL_HANDLER - check_if_detonate(hit_atom) + if(!caught) + check_if_detonate(hit_atom) /datum/component/explodable/proc/explodable_bump(datum/source, atom/A) SIGNAL_HANDLER diff --git a/code/datums/components/face_decal.dm b/code/datums/components/face_decal.dm new file mode 100644 index 0000000000000..6ba57aa2f01f4 --- /dev/null +++ b/code/datums/components/face_decal.dm @@ -0,0 +1,147 @@ + +/** + * Face decal component + * + * For when you have some dirt on your face + */ + +/datum/component/face_decal + dupe_mode = COMPONENT_DUPE_HIGHLANDER + /// Overlay we use for non-carbon mobs + var/mutable_appearance/normal_overlay + /// Bodypart overlay we use for carbon mobs + var/datum/bodypart_overlay/simple/bodypart_overlay + /// Cached head for carbons, to ensure proper removal of our overlay + var/obj/item/bodypart/my_head + /// Base icon state we use for the effect + var/icon_state + /// Layers for the bodypart_overlay to draw on + var/layers + /// Color that the overlay is modified by + var/color + +/datum/component/face_decal/Initialize(icon_state, layers, color) + src.icon_state = icon_state + src.layers = layers + src.color = color + +/datum/component/face_decal/Destroy(force) + . = ..() + normal_overlay = null + my_head = null + QDEL_NULL(bodypart_overlay) + +/datum/component/face_decal/RegisterWithParent() + if(iscarbon(parent)) + var/mob/living/carbon/human/carbon_parent = parent + my_head = carbon_parent.get_bodypart(BODY_ZONE_HEAD) + if(!my_head) //just to be sure + qdel(src) + return + bodypart_overlay = new() + bodypart_overlay.layers = layers + if(carbon_parent.bodyshape & BODYSHAPE_SNOUTED) //stupid, but external organ bodytypes are not stored on the limb + bodypart_overlay.icon_state = "[icon_state]_lizard" + else if(my_head.bodyshape & BODYSHAPE_MONKEY) + bodypart_overlay.icon_state = "[icon_state]_monkey" + else + bodypart_overlay.icon_state = "[icon_state]_human" + if (!isnull(color)) + bodypart_overlay.draw_color = color + my_head.add_bodypart_overlay(bodypart_overlay) + RegisterSignals(my_head, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING), PROC_REF(lost_head)) + else + normal_overlay = get_normal_overlay() + normal_overlay.color = color + + + RegisterSignals(parent, list( + COMSIG_COMPONENT_CLEAN_ACT, + COMSIG_COMPONENT_CLEAN_FACE_ACT), + PROC_REF(clean_up) + ) + + if (!isnull(normal_overlay)) + if (!isnull(color)) + normal_overlay.color = color + var/atom/atom_parent = parent + RegisterSignal(atom_parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(update_overlays)) + atom_parent.update_appearance() + +/datum/component/face_decal/proc/get_normal_overlay() + return + +/datum/component/face_decal/UnregisterFromParent() + UnregisterSignal(parent, list( + COMSIG_COMPONENT_CLEAN_ACT, + COMSIG_COMPONENT_CLEAN_FACE_ACT)) + if(my_head) + if(bodypart_overlay) + my_head.remove_bodypart_overlay(bodypart_overlay) + QDEL_NULL(bodypart_overlay) + UnregisterSignal(my_head, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING)) + my_head = null + if(normal_overlay) + var/atom/atom_parent = parent + UnregisterSignal(atom_parent, COMSIG_ATOM_UPDATE_OVERLAYS) + atom_parent.update_appearance() + normal_overlay = null + +///Callback to remove our decal +/datum/component/face_decal/proc/clean_up(datum/source, clean_types) + SIGNAL_HANDLER + + if(!(clean_types & CLEAN_TYPE_BLOOD)) + return NONE + + qdel(src) + return COMPONENT_CLEANED + +/// Ensures normal_overlay overlay in case the mob is not a carbon +/datum/component/face_decal/proc/update_overlays(atom/parent_atom, list/overlays) + SIGNAL_HANDLER + + if(normal_overlay) + overlays += normal_overlay + +/// Removes the decal when the head gets dismembered +/datum/component/face_decal/proc/lost_head(obj/item/bodypart/source, mob/living/carbon/owner, dismembered) + SIGNAL_HANDLER + qdel(src) + +/// splat subtype, handling signals and mood logic + +GLOBAL_LIST_INIT(splattable, zebra_typecacheof(list( + /mob/living/carbon/human = "human", + /mob/living/basic/pet/dog/corgi = "corgi", + /mob/living/silicon/ai = "ai", +))) + +/datum/component/face_decal/splat + ///The mood_event that we add + var/mood_event_type + +/datum/component/face_decal/splat/Initialize(icon_state, layers, color, memory_type = /datum/memory/witnessed_creampie, mood_event_type = /datum/mood_event/creampie) + if(!is_type_in_typecache(parent, GLOB.splattable)) + return COMPONENT_INCOMPATIBLE + + . = ..() + + SEND_SIGNAL(parent, COMSIG_MOB_HIT_BY_SPLAT, src) + add_memory_in_range(parent, 7, memory_type, protagonist = parent) + src.mood_event_type = mood_event_type + +/datum/component/face_decal/splat/get_normal_overlay() + return mutable_appearance('icons/mob/effects/face_decal.dmi', "[icon_state]_[GLOB.splattable[type]]") + +/datum/component/face_decal/splat/RegisterWithParent() + . = ..() + if(iscarbon(parent)) + var/mob/living/carbon/human/carbon_parent = parent + carbon_parent.add_mood_event("splat", mood_event_type) + +/datum/component/face_decal/splat/UnregisterFromParent() + . = ..() + if(iscarbon(parent)) + var/mob/living/carbon/carbon_parent = parent + carbon_parent.clear_mood_event("splat") diff --git a/code/datums/components/fish_growth.dm b/code/datums/components/fish_growth.dm new file mode 100644 index 0000000000000..7f1e411ed3a3a --- /dev/null +++ b/code/datums/components/fish_growth.dm @@ -0,0 +1,105 @@ +///A simple component that manages raising things from aquarium fish. +/datum/component/fish_growth + dupe_mode = COMPONENT_DUPE_SELECTIVE + ///the type of the movable that's spawned when the fish grows up. + var/result_type + ///The progress, from 0 to 100 + var/maturation + ///How much maturation is gained per tick + var/growth_rate + ///Is the result moved on the nearest drop location? + var/use_drop_loc + ///Is the parent deleted once the result is spawned? + var/del_on_grow + ///Will the result inherit the name of the fish if that was changed from the initial name. + var/inherit_name + +/datum/component/fish_growth/Initialize(result_type, growth_time, use_drop_loc = TRUE, del_on_grow = TRUE, inherit_name = TRUE) + . = ..() + if(!isfish(parent)) + return COMPONENT_INCOMPATIBLE + src.result_type = result_type + growth_rate = 100 / growth_time + src.use_drop_loc = use_drop_loc + src.del_on_grow = del_on_grow + src.inherit_name = inherit_name + +/datum/component/fish_growth/CheckDupeComponent( + datum/component/fish_growth/new_growth, // will be null + result_type, + growth_time, + use_drop_loc = TRUE, + del_on_grow = TRUE, + inherit_name = TRUE, +) + if(result_type == src.result_type) + growth_rate = 100 / growth_time + return TRUE //copy the growth rate and kill the new component + return FALSE + +/datum/component/fish_growth/RegisterWithParent() + var/evo_growth = ispath(result_type, /datum/fish_evolution) + RegisterSignal(parent, COMSIG_FISH_LIFE, PROC_REF(on_fish_life)) + if(!evo_growth) + return + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[result_type] + evolution.RegisterSignal(parent, COMSIG_FISH_BEFORE_GROWING, TYPE_PROC_REF(/datum/fish_evolution, growth_checks)) + +/datum/component/fish_growth/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_FISH_LIFE, COMSIG_FISH_BEFORE_GROWING)) + +/datum/component/fish_growth/proc/on_fish_life(obj/item/fish/source, seconds_per_tick) + SIGNAL_HANDLER + if(source.status == FISH_DEAD) //It died just now. + return + var/deciseconds_elapsed = seconds_per_tick * 10 + var/growth = growth_rate * deciseconds_elapsed + if(HAS_TRAIT(source, TRAIT_FISH_QUICK_GROWTH)) + growth *= 2 + if(SEND_SIGNAL(source, COMSIG_FISH_BEFORE_GROWING, seconds_per_tick, growth) & COMPONENT_DONT_GROW) + return + maturation += growth + if(maturation >= 100) + finish_growing(source) + +/datum/component/fish_growth/proc/finish_growing(obj/item/fish/source) + var/atom/location = use_drop_loc ? source.drop_location() : source.loc + var/is_evo = ispath(result_type, /datum/fish_evolution) + var/atom/movable/result + if(is_evo) + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[result_type] + result = source.create_offspring(evolution.new_fish_type, evolution = evolution) + var/obj/item/fish/fishie = result + fishie.breeding_wait = source.breeding_wait + fishie.last_feeding = source.last_feeding + var/health_percent = source.health / initial(source.health) + fishie.adjust_health(fishie.health * health_percent) + else + result = new result_type (location) + if(location != source.loc) + result.visible_message(span_boldnotice("\A [result] jumps out of [source.loc]!")) + playsound(result, 'sound/effects/fish_splash.ogg', 60) + if(isbasicmob(result)) + for(var/trait_type in source.fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + trait.apply_to_mob(result) + + addtimer(CALLBACK(result, TYPE_PROC_REF(/mob/living/basic, hop_on_nearby_turf)), 0.1 SECONDS) + + if(is_evo || location == source.loc) + var/message_verb = del_on_grow ? "grows into" : "generates" + location.visible_message(span_notice("[source] [message_verb] \a [result]."), vision_distance = 3) + + if(inherit_name && HAS_TRAIT(source, TRAIT_WAS_RENAMED)) + if(ismob(result)) + var/mob/mob = result + mob.fully_replace_character_name(mob.name, source.name) + else + result.AddComponent(/datum/component/rename, source.name, result.desc) + + SEND_SIGNAL(source, COMSIG_FISH_FINISH_GROWING, result) + + if(del_on_grow) + qdel(parent) + else + maturation = 0 diff --git a/code/datums/components/fishing_spot.dm b/code/datums/components/fishing_spot.dm index 481f965059f52..982b0da2df71a 100644 --- a/code/datums/components/fishing_spot.dm +++ b/code/datums/components/fishing_spot.dm @@ -12,15 +12,22 @@ fish_source = configuration else return COMPONENT_INCOMPATIBLE - fish_source.on_fishing_spot_init() + fish_source.on_fishing_spot_init(src) RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(handle_attackby)) RegisterSignal(parent, COMSIG_FISHING_ROD_CAST, PROC_REF(handle_cast)) RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examined)) RegisterSignal(parent, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(on_examined_more)) + RegisterSignal(parent, COMSIG_NPC_FISHING, PROC_REF(return_fishing_spot)) + RegisterSignal(parent, COMSIG_ATOM_EX_ACT, PROC_REF(explosive_fishing)) + RegisterSignal(parent, COMSIG_FISH_RELEASED_INTO, PROC_REF(fish_released)) + RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(link_to_fish_porter)) ADD_TRAIT(parent, TRAIT_FISHING_SPOT, REF(src)) /datum/component/fishing_spot/Destroy() + REMOVE_TRAIT(parent, TRAIT_FISHING_SPOT, REF(src)) + fish_source.on_fishing_spot_del(src) fish_source = null + REMOVE_TRAIT(parent, TRAIT_FISHING_SPOT, REF(src)) return ..() /datum/component/fishing_spot/proc/handle_cast(datum/source, obj/item/fishing_rod/rod, mob/user) @@ -41,15 +48,7 @@ if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT)) return - var/has_known_fishes = FALSE - for(var/reward in fish_source.fish_table) - if(!ispath(reward, /obj/item/fish)) - continue - var/obj/item/fish/prototype = reward - if(initial(prototype.show_in_catalog)) - has_known_fishes = TRUE - break - if(!has_known_fishes) + if(!fish_source.has_known_fishes()) return examine_text += span_tinynoticeital("This is a fishing spot. You can look again to list its fishes...") @@ -59,25 +58,14 @@ if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT)) return - var/list/known_fishes = list() - for(var/reward in fish_source.fish_table) - if(!ispath(reward, /obj/item/fish)) - continue - var/obj/item/fish/prototype = reward - if(initial(prototype.show_in_catalog)) - known_fishes += initial(prototype.name) - - if(!length(known_fishes)) - return - - examine_text += span_info("You can catch the following fish here: [english_list(known_fishes)].") + fish_source.get_catchable_fish_names(user, parent, examine_text) /datum/component/fishing_spot/proc/try_start_fishing(obj/item/possibly_rod, mob/user) SIGNAL_HANDLER var/obj/item/fishing_rod/rod = possibly_rod if(!istype(rod)) return - if(HAS_TRAIT(user,TRAIT_GONE_FISHING) || rod.fishing_line) + if(GLOB.fishing_challenges_by_user[user] || rod.fishing_line) user.balloon_alert(user, "already fishing") return COMPONENT_NO_AFTERATTACK var/denial_reason = fish_source.reason_we_cant_fish(rod, user, parent) @@ -86,12 +74,24 @@ return COMPONENT_NO_AFTERATTACK // In case the fishing source has anything else to do before beginning to fish. fish_source.on_start_fishing(rod, user, parent) - start_fishing_challenge(rod, user) - return COMPONENT_NO_AFTERATTACK - -/datum/component/fishing_spot/proc/start_fishing_challenge(obj/item/fishing_rod/rod, mob/user) - /// Roll what we caught based on modified table - var/result = fish_source.roll_reward(rod, user) - var/datum/fishing_challenge/challenge = new(src, result, rod, user) + var/datum/fishing_challenge/challenge = new(src, rod, user) fish_source.pre_challenge_started(rod, user, challenge) challenge.start(user) + return COMPONENT_NO_AFTERATTACK + +/datum/component/fishing_spot/proc/return_fishing_spot(datum/source, list/fish_spot_container) + fish_spot_container[NPC_FISHING_SPOT] = fish_source + +/datum/component/fishing_spot/proc/explosive_fishing(atom/location, severity) + SIGNAL_HANDLER + fish_source.spawn_reward_from_explosion(location, severity) + +/datum/component/fishing_spot/proc/link_to_fish_porter(atom/source, mob/user, obj/item/multitool/tool) + SIGNAL_HANDLER + if(istype(tool.buffer, /obj/machinery/fishing_portal_generator)) + var/obj/machinery/fishing_portal_generator/portal = tool.buffer + return portal.link_fishing_spot(fish_source, source, user) + +/datum/component/fishing_spot/proc/fish_released(datum/source, obj/item/fish/fish, mob/living/releaser) + SIGNAL_HANDLER + fish_source.readd_fish(fish, releaser) diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index d4b80ea1dd8ab..22592a039aa04 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -75,11 +75,11 @@ Behavior that's still missing from this component that original food items had t /datum/component/edible/RegisterWithParent() RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) - RegisterSignals(parent, COMSIG_ATOM_ATTACK_ANIMAL, PROC_REF(UseByAnimal)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_ANIMAL, PROC_REF(UseByAnimal)) RegisterSignal(parent, COMSIG_ATOM_CHECKPARTS, PROC_REF(OnCraft)) - RegisterSignal(parent, COMSIG_ATOM_CREATEDBY_PROCESSING, PROC_REF(OnProcessed)) - RegisterSignal(parent, COMSIG_FOOD_INGREDIENT_ADDED, PROC_REF(edible_ingredient_added)) RegisterSignal(parent, COMSIG_OOZE_EAT_ATOM, PROC_REF(on_ooze_eat)) + RegisterSignal(parent, COMSIG_FOOD_INGREDIENT_ADDED, PROC_REF(edible_ingredient_added)) + RegisterSignal(parent, COMSIG_ATOM_CREATEDBY_PROCESSING, PROC_REF(OnProcessed)) if(isturf(parent)) RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(on_entered)) @@ -98,6 +98,9 @@ Behavior that's still missing from this component that original food items had t else if(isturf(parent) || isstructure(parent)) RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND, PROC_REF(TryToEatIt)) + if(foodtypes & GORE) + ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + /datum/component/edible/UnregisterFromParent() UnregisterSignal(parent, list( COMSIG_ATOM_ATTACK_ANIMAL, @@ -114,6 +117,9 @@ Behavior that's still missing from this component that original food items had t qdel(GetComponent(/datum/component/connect_loc_behalf)) + if(foodtypes & GORE) + REMOVE_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + /datum/component/edible/InheritComponent( datum/component/edible/old_comp, i_am_original, @@ -138,6 +144,9 @@ Behavior that's still missing from this component that original food items had t tastes = old_comp.tastes eatverbs = old_comp.eatverbs + if(foodtypes & GORE) + ADD_TRAIT(parent, TRAIT_VALID_DNA_INFUSION, REF(src)) + // only edit if we're OG if(!i_am_original) return @@ -212,7 +221,8 @@ Behavior that's still missing from this component that original food items had t SIGNAL_HANDLER var/atom/owner = parent - + if(food_flags & FOOD_NO_EXAMINE) + return if(foodtypes) var/list/types = bitfield_to_list(foodtypes, FOOD_FLAGS) examine_list += span_notice("It is [LOWER_TEXT(english_list(types))].") @@ -311,7 +321,6 @@ Behavior that's still missing from this component that original food items had t SIGNAL_HANDLER var/atom/this_food = parent - for(var/obj/item/food/crafted_part in parts_list) if(!crafted_part.reagents) continue @@ -320,7 +329,7 @@ Behavior that's still missing from this component that original food items had t this_food.reagents.maximum_volume = ROUND_UP(this_food.reagents.maximum_volume) // Just because I like whole numbers for this. - BLACKBOX_LOG_FOOD_MADE(this_food.type) + BLACKBOX_LOG_FOOD_MADE(parent.type) ///Makes sure the thing hasn't been destroyed or fully eaten to prevent eating phantom edibles /datum/component/edible/proc/IsFoodGone(atom/owner, mob/living/feeder) @@ -457,7 +466,7 @@ Behavior that's still missing from this component that original food items had t var/atom/owner = parent - if(!owner?.reagents) + if(!owner.reagents) stack_trace("[eater] failed to bite [owner], because [owner] had no reagents.") return FALSE if(eater.satiety > -200) @@ -474,7 +483,8 @@ Behavior that's still missing from this component that original food items had t if(bitecount == 0) apply_buff(eater) - var/fraction = min(bite_consumption / owner.reagents.total_volume, 1) + var/fraction = 0.3 + fraction = min(bite_consumption / owner.reagents.total_volume, 1) owner.reagents.trans_to(eater, bite_consumption, transferred_by = feeder, methods = INGEST) bitecount++ @@ -484,8 +494,7 @@ Behavior that's still missing from this component that original food items had t On_Consume(eater, feeder) //Invoke our after eat callback if it is valid - if(after_eat) - after_eat.Invoke(eater, feeder, bitecount) + after_eat?.Invoke(eater, feeder, bitecount) //Invoke the eater's stomach's after_eat callback if valid if(iscarbon(eater)) @@ -523,13 +532,13 @@ Behavior that's still missing from this component that original food items had t /datum/component/edible/proc/apply_buff(mob/eater) var/buff var/recipe_complexity = get_recipe_complexity() - if(recipe_complexity == 0) + if(recipe_complexity <= 0) return var/obj/item/food/food = parent - if(!isnull(food.crafted_food_buff)) + if(istype(food) && !isnull(food.crafted_food_buff)) buff = food.crafted_food_buff else - buff = pick_weight(GLOB.food_buffs[recipe_complexity]) + buff = pick_weight(GLOB.food_buffs[min(recipe_complexity, FOOD_COMPLEXITY_5)]) if(!isnull(buff)) var/mob/living/living_eater = eater var/atom/owner = parent @@ -590,14 +599,21 @@ Behavior that's still missing from this component that original food items had t /// Get the complexity of the crafted food /datum/component/edible/proc/get_recipe_complexity() + var/list/extra_complexity = list(0) + SEND_SIGNAL(parent, COMSIG_FOOD_GET_EXTRA_COMPLEXITY, extra_complexity) + var/complexity_to_add = extra_complexity[1] if(!HAS_TRAIT(parent, TRAIT_FOOD_CHEF_MADE) || !istype(parent, /obj/item/food)) - return 0 // It is factory made. Soulless. + return complexity_to_add // It is factory made. Soulless. var/obj/item/food/food = parent - return food.crafting_complexity + return food.crafting_complexity + complexity_to_add /// Get food quality adjusted according to eater's preferences -/datum/component/edible/proc/get_perceived_food_quality(mob/living/carbon/human/eater) +/datum/component/edible/proc/get_perceived_food_quality(mob/living/eater) var/food_quality = get_recipe_complexity() + var/list/extra_quality = list() + SEND_SIGNAL(eater, COMSIG_LIVING_GET_PERCEIVED_FOOD_QUALITY, src, extra_quality) + for(var/quality in extra_quality) + food_quality += quality if(HAS_TRAIT(parent, TRAIT_FOOD_SILVER)) // it's not real food if(!isjellyperson(eater)) //if you aren't a jellyperson, it makes you sick no matter how nice it looks @@ -641,6 +657,7 @@ Behavior that's still missing from this component that original food items had t ///Delete the item when it is fully eaten /datum/component/edible/proc/On_Consume(mob/living/eater, mob/living/feeder) SEND_SIGNAL(parent, COMSIG_FOOD_CONSUMED, eater, feeder) + SEND_SIGNAL(eater, COMSIG_LIVING_FINISH_EAT, parent, feeder) on_consume?.Invoke(eater, feeder) if (QDELETED(parent)) // might be destroyed by the callback @@ -657,7 +674,7 @@ Behavior that's still missing from this component that original food items had t /datum/component/edible/proc/UseByAnimal(datum/source, mob/living/basic/pet/dog/doggy) SIGNAL_HANDLER - if(!isdog(doggy)) + if(!isdog(doggy) || (food_flags & FOOD_NO_BITECOUNT)) //this entirely relies on bitecounts alas return var/atom/food = parent diff --git a/code/datums/components/food/germ_sensitive.dm b/code/datums/components/food/germ_sensitive.dm index d0acc49714ab5..3e47c3fe1ecd8 100644 --- a/code/datums/components/food/germ_sensitive.dm +++ b/code/datums/components/food/germ_sensitive.dm @@ -25,7 +25,7 @@ GLOBAL_LIST_INIT(floor_diseases, list( RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(handle_movement)) - RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(wash)) //Wash germs off dirty things + RegisterSignals(parent, list(COMSIG_COMPONENT_CLEAN_ACT, COMSIG_ITEM_FRIED, COMSIG_ITEM_BARBEQUE_GRILLED, COMSIG_ATOM_FIRE_ACT), PROC_REF(delete_germs)) RegisterSignals(parent, list( COMSIG_ITEM_DROPPED, //Dropped into the world @@ -50,6 +50,9 @@ GLOBAL_LIST_INIT(floor_diseases, list( COMSIG_ATOM_EXAMINE, COMSIG_ATOM_EXITED, COMSIG_COMPONENT_CLEAN_ACT, + COMSIG_ITEM_FRIED, + COMSIG_ITEM_BARBEQUE_GRILLED, + COMSIG_ATOM_FIRE_ACT, COMSIG_ITEM_DROPPED, COMSIG_ITEM_PICKUP, COMSIG_MOVABLE_MOVED, @@ -116,7 +119,7 @@ GLOBAL_LIST_INIT(floor_diseases, list( var/random_disease = pick_weight(GLOB.floor_diseases) parent.AddComponent(/datum/component/infective, new random_disease, weak = TRUE) -/datum/component/germ_sensitive/proc/wash() +/datum/component/germ_sensitive/proc/delete_germs() SIGNAL_HANDLER if(infective) infective = FALSE diff --git a/code/datums/components/food_storage.dm b/code/datums/components/food_storage.dm index 873c1646adbe1..843f611e5ff3e 100644 --- a/code/datums/components/food_storage.dm +++ b/code/datums/components/food_storage.dm @@ -18,7 +18,7 @@ /datum/component/food_storage/Initialize(_minimum_weight_class = WEIGHT_CLASS_SMALL, _bad_chance = 0, _good_chance = 100) - RegisterSignal(parent, COMSIG_ATOM_ATTACKBY_SECONDARY, PROC_REF(try_inserting_item)) + RegisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION_SECONDARY, PROC_REF(try_inserting_item)) RegisterSignal(parent, COMSIG_CLICK_CTRL, PROC_REF(try_removing_item)) RegisterSignal(parent, COMSIG_FOOD_EATEN, PROC_REF(consume_food_storage)) RegisterSignal(parent, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, PROC_REF(on_requesting_context_from_item)) @@ -48,34 +48,34 @@ * inserted_item - the item being placed into the food * user - the person inserting the item */ -/datum/component/food_storage/proc/try_inserting_item(datum/source, obj/item/inserted_item, mob/living/user, params) +/datum/component/food_storage/proc/try_inserting_item(datum/source, mob/living/user, obj/item/inserted_item, list/modifiers) SIGNAL_HANDLER // No matryoshka-ing food storage if(istype(inserted_item, /obj/item/storage) || IS_EDIBLE(inserted_item)) - return + return NONE //Harm intent will bypass inserting for injecting food with syringes and such if(user.combat_mode) - return + return NONE if(inserted_item.w_class > minimum_weight_class) to_chat(user, span_warning("\The [inserted_item.name] won't fit in \the [parent].")) - return + return ITEM_INTERACT_BLOCKING if(!QDELETED(stored_item)) to_chat(user, span_warning("There's something in \the [parent].")) - return + return ITEM_INTERACT_BLOCKING if(HAS_TRAIT(inserted_item, TRAIT_NODROP)) to_chat(user, span_warning("\the [inserted_item] is stuck to your hand, you can't put into \the [parent]!")) - return + return ITEM_INTERACT_BLOCKING user.visible_message(span_notice("[user.name] begins inserting [inserted_item.name] into \the [parent]."), \ span_notice("You start to insert the [inserted_item.name] into \the [parent].")) INVOKE_ASYNC(src, PROC_REF(insert_item), inserted_item, user) - return COMPONENT_CANCEL_ATTACK_CHAIN + return ITEM_INTERACT_SUCCESS /** Begins the process of attempting to remove the stored item. * @@ -108,15 +108,17 @@ * user - the person inserting the item. */ /datum/component/food_storage/proc/insert_item(obj/item/inserted_item, mob/user) - if(do_after(user, 1.5 SECONDS, target = parent)) - var/atom/food = parent - to_chat(user, span_notice("You slip [inserted_item.name] inside \the [parent].")) - inserted_item.forceMove(food) - user.log_message("inserted [inserted_item] into [parent].", LOG_ATTACK) - food.add_fingerprint(user) - inserted_item.add_fingerprint(user) - - stored_item = inserted_item + if(!do_after(user, 1.5 SECONDS, target = parent)) + return + + var/atom/food = parent + to_chat(user, span_notice("You slip [inserted_item.name] inside \the [parent].")) + inserted_item.forceMove(food) + user.log_message("inserted [inserted_item] into [parent].", LOG_ATTACK) + food.add_fingerprint(user) + inserted_item.add_fingerprint(user) + + stored_item = inserted_item /** Removes the item from the food, after a do_after. * diff --git a/code/datums/components/fullauto.dm b/code/datums/components/fullauto.dm index 1faa04ceacc75..a3f2009b3b506 100644 --- a/code/datums/components/fullauto.dm +++ b/code/datums/components/fullauto.dm @@ -275,7 +275,7 @@ // Gun procs. /obj/item/gun/proc/on_autofire_start(mob/living/shooter) - if(semicd || shooter.incapacitated() || !can_trigger_gun(shooter)) + if(semicd || shooter.incapacitated || !can_trigger_gun(shooter)) return FALSE if(!can_shoot()) shoot_with_empty_chamber(shooter) @@ -295,7 +295,7 @@ /obj/item/gun/proc/do_autofire(datum/source, atom/target, mob/living/shooter, allow_akimbo, params) SIGNAL_HANDLER - if(semicd || shooter.incapacitated()) + if(semicd || shooter.incapacitated) return NONE if(!can_shoot()) shoot_with_empty_chamber(shooter) diff --git a/code/datums/components/glass_passer.dm b/code/datums/components/glass_passer.dm new file mode 100644 index 0000000000000..f96300341b0c4 --- /dev/null +++ b/code/datums/components/glass_passer.dm @@ -0,0 +1,50 @@ +/// Allows us to move through glass but not electrified glass. Can also do a little slowdown before passing through +/datum/component/glass_passer + /// How long does it take us to move into glass? + var/pass_time = 0 SECONDS + +/datum/component/glass_passer/Initialize(pass_time) + if(!ismob(parent)) //if its not a mob then just directly use passwindow + return COMPONENT_INCOMPATIBLE + + src.pass_time = pass_time + + if(!pass_time) + passwindow_on(parent, type) + else + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(bumped)) + + var/mob/mobbers = parent + mobbers.generic_canpass = FALSE + RegisterSignal(parent, COMSIG_MOVABLE_CROSS_OVER, PROC_REF(cross_over)) + +/datum/component/glass_passer/Destroy() + . = ..() + if(parent) + passwindow_off(parent, type) + +/datum/component/glass_passer/proc/cross_over(mob/passer, atom/crosser) + SIGNAL_HANDLER + + if(istype(crosser, /obj/structure/grille)) + var/obj/structure/grille/grillefriend = crosser + if(grillefriend.is_shocked()) //prevent passage of shocked + crosser.balloon_alert(passer, "is shocked!") + return COMPONENT_BLOCK_CROSS + + return null + +/datum/component/glass_passer/proc/bumped(mob/living/owner, atom/bumpee) + SIGNAL_HANDLER + + if(!istype(bumpee, /obj/structure/window)) + return + + INVOKE_ASYNC(src, PROC_REF(phase_through_glass), owner, bumpee) + +/datum/component/glass_passer/proc/phase_through_glass(mob/living/owner, atom/bumpee) + if(!do_after(owner, pass_time, bumpee)) + return + passwindow_on(owner, type) + try_move_adjacent(owner, get_dir(owner, bumpee)) + passwindow_off(owner, type) diff --git a/code/datums/components/gps.dm b/code/datums/components/gps.dm index 7e52f00def752..0b3751856b8a2 100644 --- a/code/datums/components/gps.dm +++ b/code/datums/components/gps.dm @@ -162,7 +162,7 @@ GLOBAL_LIST_EMPTY(GPS_list) switch(action) if("rename") var/atom/parentasatom = parent - var/a = tgui_input_text(usr, "Enter the desired tag", "GPS Tag", gpstag, 20) + var/a = tgui_input_text(usr, "Enter the desired tag", "GPS Tag", gpstag, max_length = 20) if (QDELETED(ui) || ui.status != UI_INTERACTIVE) return if (!a) diff --git a/code/datums/components/growth_and_differentiation.dm b/code/datums/components/growth_and_differentiation.dm index bcf6722492251..182fd9b28ef48 100644 --- a/code/datums/components/growth_and_differentiation.dm +++ b/code/datums/components/growth_and_differentiation.dm @@ -11,6 +11,8 @@ var/growth_time /// Integer - Probability we grow per SPT_PROB var/growth_probability + /// Stores the growth_probability the component had when it was Initialized + var/initial_growth_probability /// Integer - The lower bound for the percentage we have to grow before we can differentiate. var/lower_growth_value /// Integer - The upper bound for the percentage we have to grow before we can differentiate. @@ -47,7 +49,7 @@ src.growth_path = growth_path src.growth_time = growth_time - src.growth_probability = growth_probability + initial_growth_probability = src.growth_probability = growth_probability src.lower_growth_value = lower_growth_value src.upper_growth_value = upper_growth_value src.optional_checks = optional_checks @@ -56,10 +58,9 @@ if(islist(signals_to_kill_on)) src.signals_to_kill_on = signals_to_kill_on RegisterSignals(parent, src.signals_to_kill_on, PROC_REF(stop_component_processing_entirely)) - + if(scale_with_happiness) - if(!HAS_TRAIT(parent, TRAIT_MOB_RELAY_HAPPINESS)) - AddComponent(/datum/component/happiness) + parent.AddComponent(/datum/component/happiness) RegisterSignal(parent, COMSIG_MOB_HAPPINESS_CHANGE, PROC_REF(on_happiness_change)) // If we haven't started the round, we can't do timer stuff. Let's wait in case we're mapped in or something. @@ -117,13 +118,16 @@ return if(SPT_PROB(growth_probability, seconds_per_tick)) - percent_grown += rand(lower_growth_value, upper_growth_value) + if(lower_growth_value == upper_growth_value) + percent_grown += upper_growth_value + else + percent_grown += rand(lower_growth_value, upper_growth_value) /datum/component/growth_and_differentiation/proc/on_happiness_change(datum/source, happiness_percentage) SIGNAL_HANDLER - var/probability_to_add = initial(growth_probability) * happiness_percentage - growth_probability = min(initial(growth_probability) + probability_to_add, 100) + var/probability_to_add = initial_growth_probability * happiness_percentage + growth_probability = min(initial_growth_probability + probability_to_add, 100) /// Grows the mob into its new form. /datum/component/growth_and_differentiation/proc/grow(silent) diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm index ed4142f41ceba..edde591c0c386 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -48,7 +48,7 @@ RegisterSignals(targ, list(COMSIG_LIVING_DISARM_HIT, COMSIG_LIVING_GET_PULLED), PROC_REF(cancel)) RegisterSignals(weapon, list(COMSIG_ITEM_DROPPED, COMSIG_ITEM_EQUIPPED), PROC_REF(cancel)) - var/distance = min(get_dist(shooter, target), 1) // treat 0 distance as adjacent + var/distance = max(get_dist(shooter, target), 1) // treat 0 distance as adjacent var/distance_description = (distance <= 1 ? "point blank " : "") shooter.visible_message(span_danger("[shooter] aims [weapon] [distance_description]at [target]!"), diff --git a/code/datums/components/happiness.dm b/code/datums/components/happiness.dm index 0a6274611923b..a131e86960eb3 100644 --- a/code/datums/components/happiness.dm +++ b/code/datums/components/happiness.dm @@ -6,6 +6,7 @@ * A component that allows mobs to have happiness levels */ /datum/component/happiness + dupe_mode = COMPONENT_DUPE_UNIQUE //Prioritize the old comp over, which may have callbacks and stuff specific to the mob. ///our current happiness level var/happiness_level ///our maximum happiness level @@ -53,11 +54,9 @@ if(on_eat_change) RegisterSignal(parent, COMSIG_MOB_ATE, PROC_REF(on_eat)) RegisterSignal(parent, COMSIG_SHIFT_CLICKED_ON, PROC_REF(view_happiness)) - ADD_TRAIT(parent, TRAIT_MOB_RELAY_HAPPINESS, REF(src)) /datum/component/happiness/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_HOSTILE_PRE_ATTACKINGTARGET, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_MOB_ATE)) - REMOVE_TRAIT(parent, TRAIT_MOB_RELAY_HAPPINESS, REF(src)) happiness_callback = null /datum/component/happiness/proc/on_eat(datum/source) @@ -69,6 +68,11 @@ SIGNAL_HANDLER if(!COOLDOWN_FINISHED(src, groom_cooldown)) return + + var/mob/living/living_parent = parent + if (living_parent.stat != CONSCIOUS) + return + COOLDOWN_START(src, groom_cooldown, GROOM_COOLDOWN) increase_happiness_level(on_groom_change) @@ -76,15 +80,12 @@ SIGNAL_HANDLER if(!LAZYACCESS(modifiers, LEFT_CLICK) || petter.combat_mode) return - pet_animal() -/datum/component/happiness/proc/on_animal_petted(datum/source, mob/living/petter) - SIGNAL_HANDLER - - if(petter.combat_mode) + var/mob/living/living_parent = parent + if (living_parent.stat != CONSCIOUS) return + pet_animal() - return COMSIG_BASIC_ATTACK_CANCEL_CHAIN /datum/component/happiness/proc/pet_animal() if(!COOLDOWN_FINISHED(src, pet_cooldown)) @@ -95,13 +96,14 @@ /datum/component/happiness/proc/increase_happiness_level(amount) happiness_level = min(happiness_level + amount, maximum_happiness) - var/mob/living/living_parent = parent - new /obj/effect/temp_visual/heart(living_parent.loc) - living_parent.spin(spintime = 2 SECONDS, speed = 1) + if(!HAS_TRAIT(parent, TRAIT_MOB_HIDE_HAPPINESS)) + var/mob/living/living_parent = parent + new /obj/effect/temp_visual/heart(living_parent.loc) + living_parent.spin(spintime = 2 SECONDS, speed = 1) START_PROCESSING(SSprocessing, src) /datum/component/happiness/proc/view_happiness(mob/living/source, mob/living/clicker) - if(!istype(clicker) || !COOLDOWN_FINISHED(src, happiness_inspect) || !clicker.CanReach(source)) + if(HAS_TRAIT(source, TRAIT_MOB_HIDE_HAPPINESS) || !istype(clicker) || !COOLDOWN_FINISHED(src, happiness_inspect) || !clicker.CanReach(source)) return var/list/offset_to_add = get_icon_dimensions(source.icon) var/y_position = offset_to_add["height"] + 1 diff --git a/code/datums/components/heart_eater.dm b/code/datums/components/heart_eater.dm new file mode 100644 index 0000000000000..722c4b1636d79 --- /dev/null +++ b/code/datums/components/heart_eater.dm @@ -0,0 +1,121 @@ +/datum/component/heart_eater + /// Check if we fully ate whole heart and reset when we start eat new one. + var/bites_taken = 0 + /// Remember the number of species damage_modifier. + var/remember_modifier = 0 + /// Remember last heart we ate and reset bites_taken counter if we start eat new one + var/datum/weakref/last_heart_we_ate + /// List of all mutations allowed to get. + var/static/list/datum/mutation/human/mutations_list = list( + /datum/mutation/human/adaptation/cold, + /datum/mutation/human/adaptation/heat, + /datum/mutation/human/adaptation/pressure, + /datum/mutation/human/adaptation/thermal, + /datum/mutation/human/chameleon, + /datum/mutation/human/cryokinesis, + /datum/mutation/human/pyrokinesis, + /datum/mutation/human/dwarfism, + /datum/mutation/human/cindikinesis, + /datum/mutation/human/insulated, + /datum/mutation/human/telekinesis, + /datum/mutation/human/telepathy, + /datum/mutation/human/thermal, + /datum/mutation/human/tongue_spike, + /datum/mutation/human/webbing, + /datum/mutation/human/xray, + ) + +/datum/component/heart_eater/Initialize(...) + . = ..() + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + prepare_species(parent) + +/datum/component/heart_eater/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_SPECIES_GAIN, PROC_REF(on_species_change)) + RegisterSignal(parent, COMSIG_LIVING_FINISH_EAT, PROC_REF(eat_eat_eat)) + +/datum/component/heart_eater/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, COMSIG_LIVING_FINISH_EAT) + UnregisterSignal(parent, COMSIG_SPECIES_GAIN) + +/datum/component/heart_eater/proc/prepare_species(mob/living/carbon/human/eater) + if(eater.get_liked_foodtypes() & GORE) + return + var/obj/item/organ/internal/tongue/eater_tongue = eater.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!eater_tongue) + return + eater_tongue.disliked_foodtypes &= ~GORE + eater_tongue.liked_foodtypes |= GORE + +/datum/component/heart_eater/proc/on_species_change(mob/living/carbon/human/eater, datum/species/new_species, datum/species/old_species) + SIGNAL_HANDLER + + eater.dna?.species?.damage_modifier += remember_modifier + prepare_species(eater) + +/// Proc called when we finish eat somthing. +/datum/component/heart_eater/proc/eat_eat_eat(mob/living/carbon/human/eater, datum/what_we_ate) + SIGNAL_HANDLER + + if(get_area(eater) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + if(!istype(what_we_ate, /obj/item/organ/internal/heart)) + return + var/obj/item/organ/internal/heart/we_ate_heart = what_we_ate + var/obj/item/organ/internal/heart/previous_heart = last_heart_we_ate?.resolve() + if(we_ate_heart == previous_heart) + return + if (!HAS_TRAIT(we_ate_heart, TRAIT_USED_ORGAN)) + to_chat(eater, span_warning("This heart is utterly lifeless, you won't receive any boons from consuming it!")) + return + bites_taken = 0 + + last_heart_we_ate = WEAKREF(we_ate_heart) + bites_taken++ + if(bites_taken < (we_ate_heart.reagents.total_volume/2)) + return + if(prob(50)) + perfect_heart(eater) + return + not_perfect_heart(eater) + +///Perfect heart give our +10 damage modifier(Max. 80). +/datum/component/heart_eater/proc/perfect_heart(mob/living/carbon/human/eater) + if(eater.dna?.species?.damage_modifier >= 80) + healing_heart(eater) + return + eater.dna?.species?.damage_modifier += 10 + remember_modifier += 10 + healing_heart(eater) + to_chat(eater, span_warning("This heart is perfect. You feel a surge of vital energy.")) + +///Not Perfect heart give random mutation. +/datum/component/heart_eater/proc/not_perfect_heart(mob/living/carbon/human/eater) + var/datum/mutation/human/new_mutation + var/list/datum/mutation/human/shuffle_mutation_list = shuffle(mutations_list) + for(var/mutation_in_list in shuffle_mutation_list) + if(is_type_in_list(mutation_in_list, eater.dna.mutations)) + continue + new_mutation = mutation_in_list + break + if(isnull(new_mutation)) + healing_heart(eater) + return + eater.dna.add_mutation(new_mutation) + healing_heart(eater) + to_chat(eater, span_warning("This heart is not right for you. You now have [new_mutation.name] mutation.")) + +///Heart eater give also strong healing from hearts. +/datum/component/heart_eater/proc/healing_heart(mob/living/carbon/human/eater) + for(var/heal_organ in eater.organs) + eater.adjustOrganLoss(heal_organ, -50) + for(var/datum/wound/heal_wound in eater.all_wounds) + heal_wound.remove_wound() + eater.adjustBruteLoss(-50) + eater.adjustFireLoss(-50) + eater.adjustToxLoss(-50) + eater.adjustOxyLoss(-50) + eater.adjustStaminaLoss(-50) diff --git a/code/datums/components/hide_weather_planes.dm b/code/datums/components/hide_weather_planes.dm new file mode 100644 index 0000000000000..97f34f57d313e --- /dev/null +++ b/code/datums/components/hide_weather_planes.dm @@ -0,0 +1,136 @@ +/** + * Component that manages a list of plane masters that are dependent on weather + * Force hides/shows them depending on the weather activity of their z stack + * Transparency is achieved by manipulating the alpha of the planes that are visible + * Applied to the plane master group that owns them + */ +/datum/component/hide_weather_planes + dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + var/list/datum/weather/active_weather = list() + var/list/atom/movable/screen/plane_master/plane_masters = list() + +/datum/component/hide_weather_planes/Initialize(atom/movable/screen/plane_master/care_about) + if(!istype(parent, /datum/plane_master_group)) + return COMPONENT_INCOMPATIBLE + var/datum/plane_master_group/home = parent + plane_masters += care_about + RegisterSignal(care_about, COMSIG_QDELETING, PROC_REF(plane_master_deleted)) + + var/list/starting_signals = list() + var/list/ending_signals = list() + for(var/datum/weather/weather_type as anything in typesof(/datum/weather)) + starting_signals += COMSIG_WEATHER_TELEGRAPH(weather_type) + ending_signals += COMSIG_WEATHER_END(weather_type) + + RegisterSignals(SSdcs, starting_signals, PROC_REF(weather_started)) + RegisterSignals(SSdcs, ending_signals, PROC_REF(weather_finished)) + + if(home.our_hud) + attach_hud(home.our_hud) + else + RegisterSignal(home, COMSIG_GROUP_HUD_CHANGED, PROC_REF(new_hud_attached)) + +/datum/component/hide_weather_planes/Destroy(force) + hide_planes() + active_weather = null + plane_masters = null + return ..() + +/datum/component/hide_weather_planes/InheritComponent(datum/component/new_comp, i_am_original, atom/movable/screen/plane_master/care_about) + if(!i_am_original) + return + var/datum/plane_master_group/home = parent + var/mob/our_lad = home.our_hud?.mymob + var/our_offset = GET_TURF_PLANE_OFFSET(our_lad) + plane_masters += care_about + RegisterSignal(care_about, COMSIG_QDELETING, PROC_REF(plane_master_deleted)) + if(length(active_weather)) + //If there's weather to care about we unhide our new plane and adjust its alpha + care_about.unhide_plane(our_lad) + + if(care_about.offset >= our_offset) + care_about.enable_alpha() + else + care_about.disable_alpha() + else + care_about.hide_plane(our_lad) + +/datum/component/hide_weather_planes/proc/new_hud_attached(datum/source, datum/hud/new_hud) + SIGNAL_HANDLER + attach_hud(new_hud) + +/datum/component/hide_weather_planes/proc/attach_hud(datum/hud/new_hud) + RegisterSignal(new_hud, COMSIG_HUD_Z_CHANGED, PROC_REF(z_changed)) + var/mob/eye = new_hud?.mymob?.client?.eye + var/turf/eye_location = get_turf(eye) + z_changed(new_hud, eye_location?.z) + +/datum/component/hide_weather_planes/proc/plane_master_deleted(atom/movable/screen/plane_master/source) + SIGNAL_HANDLER + plane_masters -= source + +/** + * Unhides the relevant planes for the weather to be visible and manipulated. + * Also updates the alpha of the planes so enabled planes are either fully opaque or fully transparent + */ +/datum/component/hide_weather_planes/proc/display_planes() + var/datum/plane_master_group/home = parent + var/mob/our_lad = home.our_hud?.mymob + var/our_offset = GET_TURF_PLANE_OFFSET(our_lad) + for(var/atom/movable/screen/plane_master/weather_concious as anything in plane_masters) + //If the plane is hidden, unhide it + if(weather_concious.force_hidden) + weather_concious.unhide_plane(our_lad) + + //Now we update the alpha of the plane based on our offset. Weather above us (lower offset) are transparent, weather at or below us (higher offset) are opaque. + if(weather_concious.offset >= our_offset) + weather_concious.enable_alpha() + else + weather_concious.disable_alpha() + +///Hides the planes from the mob when no weather is occuring +/datum/component/hide_weather_planes/proc/hide_planes() + var/datum/plane_master_group/home = parent + var/mob/our_lad = home.our_hud?.mymob + for(var/atom/movable/screen/plane_master/weather_concious as anything in plane_masters) + weather_concious.hide_plane(our_lad) + +/datum/component/hide_weather_planes/proc/z_changed(datum/source, new_z) + SIGNAL_HANDLER + active_weather = list() + if(!SSmapping.initialized) + return + + var/list/connected_levels = SSmapping.get_connected_levels(new_z) + for(var/datum/weather/active as anything in SSweather.processing) + if(length(connected_levels & active.impacted_z_levels)) + active_weather += WEAKREF(active) + + if(length(active_weather)) + display_planes() + else + hide_planes() + +/datum/component/hide_weather_planes/proc/weather_started(datum/source, datum/weather/starting) + SIGNAL_HANDLER + var/datum/plane_master_group/home = parent + var/mob/eye = home.our_hud?.mymob?.client?.eye + var/turf/viewing_from = get_turf(eye) + if(!viewing_from) + return + + var/list/connected_levels = SSmapping.get_connected_levels(viewing_from) + if(length(connected_levels & starting.impacted_z_levels)) + active_weather += WEAKREF(starting) + + if(!length(active_weather)) + return + display_planes() + +/datum/component/hide_weather_planes/proc/weather_finished(datum/source, datum/weather/stopping) + SIGNAL_HANDLER + active_weather -= WEAKREF(stopping) + + if(length(active_weather)) + return + hide_planes() diff --git a/code/datums/components/holderloving.dm b/code/datums/components/holderloving.dm index 0670fa6086e2c..e41d986600df6 100644 --- a/code/datums/components/holderloving.dm +++ b/code/datums/components/holderloving.dm @@ -39,6 +39,7 @@ COMSIG_ATOM_EXITED, COMSIG_ITEM_STORED, ), PROC_REF(check_my_loc)) + RegisterSignal(parent, COMSIG_ITEM_PRE_UNEQUIP, PROC_REF(no_unequip)) /datum/component/holderloving/UnregisterFromParent() UnregisterSignal(holder, list(COMSIG_MOVABLE_MOVED, COMSIG_QDELETING)) @@ -48,6 +49,7 @@ COMSIG_ATOM_ENTERED, COMSIG_ATOM_EXITED, COMSIG_ITEM_STORED, + COMSIG_ITEM_PRE_UNEQUIP, )) /datum/component/holderloving/PostTransfer() @@ -63,6 +65,7 @@ /datum/component/holderloving/proc/holder_deleting(datum/source, force) SIGNAL_HANDLER + if(del_parent_with_holder) qdel(parent) else @@ -70,6 +73,20 @@ /datum/component/holderloving/proc/check_my_loc(datum/source) SIGNAL_HANDLER + var/obj/item/item_parent = parent if(!check_valid_loc(item_parent.loc)) item_parent.forceMove(holder) + +/datum/component/holderloving/proc/no_unequip(obj/item/I, force, atom/newloc, no_move, invdrop, silent) + SIGNAL_HANDLER + + // just allow it + if(force) + return NONE + // dropping onto a turf just forcemoves it back to the holder. let it happen, it's intuitive + // no_move says it's just going to be moved a second time. so let it happen, it'll just be moved back if it's invalid anyway + if(isturf(newloc) || no_move) + return NONE + // the item is being unequipped to somewhere invalid. stop it + return COMPONENT_ITEM_BLOCK_UNEQUIP diff --git a/code/datums/components/infective.dm b/code/datums/components/infective.dm index bc7cc2e6af3c4..ecd2f1ff836fd 100644 --- a/code/datums/components/infective.dm +++ b/code/datums/components/infective.dm @@ -8,43 +8,78 @@ var/weak_infection_chance = 10 -/datum/component/infective/Initialize(list/datum/disease/_diseases, expire_in, weak = FALSE) - if(islist(_diseases)) - diseases = _diseases - else - diseases = list(_diseases) +/datum/component/infective/Initialize(list/datum/disease/diseases, expire_in, weak = FALSE, weak_infection_chance = 10) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + if(!islist(diseases)) + diseases = islist(diseases) + + ///Make sure the diseases list is populated with instances of diseases so that it doesn't have to be for each AddComponent call. + for(var/datum/disease/disease as anything in diseases) + if(!disease) //empty entry, remove. + diseases -= disease + if(ispath(disease, /datum/disease)) + var/datum/disease/instance = new disease + diseases -= disease + diseases += instance + else if(!istype(disease)) + stack_trace("found [isdatum(disease) ? "an instance of [disease.type]" : disease] inside the diseases list argument for [type]") + diseases -= disease + + src.diseases = diseases + if(expire_in) expire_time = world.time + expire_in QDEL_IN(src, expire_in) - if(!ismovable(parent)) - return COMPONENT_INCOMPATIBLE - is_weak = weak + src.weak_infection_chance = weak_infection_chance + +/datum/component/infective/Destroy() + QDEL_LIST(diseases) + return ..() +/datum/component/infective/RegisterWithParent() if(is_weak && isitem(parent)) RegisterSignal(parent, COMSIG_FOOD_EATEN, PROC_REF(try_infect_eat)) RegisterSignal(parent, COMSIG_PILL_CONSUMED, PROC_REF(try_infect_eat)) - else - var/static/list/disease_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(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)) - 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_FOOD_EATEN, PROC_REF(try_infect_eat)) - RegisterSignal(parent, COMSIG_PILL_CONSUMED, PROC_REF(try_infect_eat)) - if(istype(parent, /obj/item/reagent_containers/cup)) - RegisterSignal(parent, COMSIG_GLASS_DRANK, PROC_REF(try_infect_drink)) - if(isorgan(parent)) - RegisterSignal(parent, COMSIG_ORGAN_IMPLANTED, PROC_REF(on_organ_insertion)) + return + var/static/list/disease_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(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)) + 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_FOOD_EATEN, PROC_REF(try_infect_eat)) + RegisterSignal(parent, COMSIG_PILL_CONSUMED, PROC_REF(try_infect_eat)) + if(istype(parent, /obj/item/reagent_containers/cup)) + RegisterSignal(parent, COMSIG_GLASS_DRANK, PROC_REF(try_infect_drink)) + if(isorgan(parent)) + RegisterSignal(parent, COMSIG_ORGAN_IMPLANTED, PROC_REF(on_organ_insertion)) + +/datum/component/infective/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, list( + COMSIG_FOOD_EATEN, + COMSIG_PILL_CONSUMED, + COMSIG_COMPONENT_CLEAN_ACT, + COMSIG_MOVABLE_BUMP, + COMSIG_MOVABLE_IMPACT_ZONE, + COMSIG_ITEM_ATTACK_ZONE, + COMSIG_ITEM_ATTACK, + COMSIG_ITEM_EQUIPPED, + COMSIG_GLASS_DRANK, + COMSIG_ORGAN_IMPLANTED, + )) + qdel(GetComponent(/datum/component/connect_loc_behalf)) /datum/component/infective/proc/on_organ_insertion(obj/item/organ/target, mob/living/carbon/receiver) SIGNAL_HANDLER @@ -62,16 +97,16 @@ eater.add_mood_event("disgust", /datum/mood_event/disgust/dirty_food) - if(is_weak && !prob(weak_infection_chance)) - return - - for(var/datum/disease/disease in diseases) + for(var/datum/disease/disease as anything in diseases) + if(is_weak && !prob(weak_infection_chance)) + continue if(!disease.has_required_infectious_organ(eater, ORGAN_SLOT_STOMACH)) continue eater.ForceContractDisease(disease) - try_infect(feeder, BODY_ZONE_L_ARM) + if(!is_weak) + try_infect(feeder, BODY_ZONE_L_ARM) /datum/component/infective/proc/try_infect_drink(datum/source, mob/living/drinker, mob/living/feeder) SIGNAL_HANDLER @@ -79,11 +114,14 @@ if(HAS_TRAIT(drinker, TRAIT_STRONG_STOMACH)) return - var/appendage_zone = feeder.held_items.Find(source) - appendage_zone = appendage_zone == 0 ? BODY_ZONE_CHEST : appendage_zone % 2 ? BODY_ZONE_R_ARM : BODY_ZONE_L_ARM - try_infect(feeder, appendage_zone) + if(!is_weak) + var/appendage_zone = feeder.held_items.Find(source) + appendage_zone = appendage_zone == 0 ? BODY_ZONE_CHEST : (appendage_zone % 2 ? BODY_ZONE_R_ARM : BODY_ZONE_L_ARM) + try_infect(feeder, appendage_zone) - for(var/datum/disease/disease in diseases) + for(var/datum/disease/disease as anything in diseases) + if(is_weak && !prob(weak_infection_chance)) + continue if(!disease.has_required_infectious_organ(drinker, ORGAN_SLOT_STOMACH)) continue @@ -163,19 +201,3 @@ /datum/component/infective/proc/try_infect(mob/living/L, target_zone) for(var/V in diseases) L.ContactContractDisease(V, target_zone) - -/datum/component/infective/UnregisterFromParent() - . = ..() - UnregisterSignal(parent, list( - COMSIG_FOOD_EATEN, - COMSIG_PILL_CONSUMED, - COMSIG_COMPONENT_CLEAN_ACT, - COMSIG_MOVABLE_BUMP, - COMSIG_MOVABLE_IMPACT_ZONE, - COMSIG_ITEM_ATTACK_ZONE, - COMSIG_ITEM_ATTACK, - COMSIG_ITEM_EQUIPPED, - COMSIG_GLASS_DRANK, - COMSIG_ORGAN_IMPLANTED, - )) - qdel(GetComponent(/datum/component/connect_loc_behalf)) diff --git a/code/datums/components/interaction_booby_trap.dm b/code/datums/components/interaction_booby_trap.dm index 2ae22ffbb5ae5..ef8d3c78cfcb4 100644 --- a/code/datums/components/interaction_booby_trap.dm +++ b/code/datums/components/interaction_booby_trap.dm @@ -26,7 +26,7 @@ /datum/component/interaction_booby_trap/Initialize( explosion_light_range = 3, explosion_heavy_range = 1, // So we destroy some machine components - triggered_sound = 'sound/machines/triple_beep.ogg', + triggered_sound = 'sound/machines/beep/triple_beep.ogg', trigger_delay = 0.5 SECONDS, sound_loop_type = /datum/looping_sound/trapped_machine_beep, defuse_tool = TOOL_SCREWDRIVER, diff --git a/code/datums/components/irradiated.dm b/code/datums/components/irradiated.dm index 077539f49db8e..a798124528c06 100644 --- a/code/datums/components/irradiated.dm +++ b/code/datums/components/irradiated.dm @@ -51,11 +51,13 @@ /datum/component/irradiated/RegisterWithParent() RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) RegisterSignal(parent, COMSIG_GEIGER_COUNTER_SCAN, PROC_REF(on_geiger_counter_scan)) + RegisterSignal(parent, COMSIG_LIVING_HEALTHSCAN, PROC_REF(on_healthscan)) /datum/component/irradiated/UnregisterFromParent() UnregisterSignal(parent, list( COMSIG_COMPONENT_CLEAN_ACT, COMSIG_GEIGER_COUNTER_SCAN, + COMSIG_LIVING_HEALTHSCAN, )) /datum/component/irradiated/Destroy(force) @@ -138,10 +140,10 @@ if(human_parent.is_blind()) to_chat(human_parent, span_boldwarning("Your [affected_limb.plaintext_zone] feels like it's bubbling, then burns like hell!")) - human_parent.apply_damage(RADIATION_BURN_SPLOTCH_DAMAGE, BURN, affected_limb) + human_parent.apply_damage(RADIATION_BURN_SPLOTCH_DAMAGE, BURN, affected_limb, wound_clothing = FALSE) playsound( human_parent, - pick('sound/effects/wounds/sizzle1.ogg', 'sound/effects/wounds/sizzle2.ogg'), + SFX_SIZZLE, 50, vary = TRUE, ) @@ -186,6 +188,12 @@ return COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL +/datum/component/irradiated/proc/on_healthscan(datum/source, list/render_list, advanced, mob/user, mode, tochat) + SIGNAL_HANDLER + + render_list += conditional_tooltip("Subject is irradiated.", "Supply antiradiation or antitoxin, such as [/datum/reagent/medicine/potass_iodide::name] or [/datum/reagent/medicine/pen_acid::name].", tochat) + render_list += "
" + /atom/movable/screen/alert/irradiated name = "Irradiated" desc = "You're irradiated! Heal your toxins quick, and stand under a shower to halt the incoming damage." diff --git a/code/datums/components/item_equipped_movement_rustle.dm b/code/datums/components/item_equipped_movement_rustle.dm new file mode 100644 index 0000000000000..435914dada785 --- /dev/null +++ b/code/datums/components/item_equipped_movement_rustle.dm @@ -0,0 +1,67 @@ +/datum/component/item_equipped_movement_rustle + + ///sound that plays, use an SFX define if there is multiple. + var/rustle_sounds = SFX_SUIT_STEP + ///human that has the item equipped. + var/mob/holder + + ///what move are we on. + var/move_counter = 0 + ///how many moves to take before playing the sound. + var/move_delay = 4 + + ///volume at which the sound plays. + var/volume = 20 + ///does the sound vary? + var/sound_vary = TRUE + ///extra-range for this component's sound. + var/sound_extra_range = -1 + ///sound exponent for the rustle. + var/sound_falloff_exponent = 5 + ///when sounds start falling off for the rustle rustle. + var/sound_falloff_distance = SOUND_DEFAULT_FALLOFF_DISTANCE + +/datum/component/item_equipped_movement_rustle/Initialize(custom_sounds, move_delay_override, volume_override, extrarange, falloff_exponent, falloff_distance) + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_unequip)) + + if(custom_sounds) + rustle_sounds = custom_sounds + if(isnum(volume_override)) + volume = volume_override + if(isnum(move_delay_override)) + move_delay = move_delay_override + if(isnum(extrarange)) + sound_extra_range = extrarange + if(isnum(falloff_exponent)) + sound_falloff_exponent = falloff_exponent + if(isnum(falloff_distance)) + sound_falloff_distance = falloff_distance + +/datum/component/item_equipped_movement_rustle/proc/on_equip(datum/source, mob/equipper, slot) + var/obj/item/our_item = parent + if(!(slot & our_item.slot_flags)) + return + SIGNAL_HANDLER + holder = equipper + RegisterSignal(holder, COMSIG_MOVABLE_MOVED, PROC_REF(try_step), override = TRUE) + +/datum/component/item_equipped_movement_rustle/proc/on_unequip(datum/source, mob/equipper, slot) + SIGNAL_HANDLER + move_counter = 0 + UnregisterSignal(equipper, COMSIG_MOVABLE_MOVED) + holder = null + +/datum/component/item_equipped_movement_rustle/proc/try_step(obj/item/clothing/source) + SIGNAL_HANDLER + + move_counter++ + if(move_counter >= move_delay) + play_rustle_sound() + move_counter = 0 + +/datum/component/item_equipped_movement_rustle/proc/play_rustle_sound() + playsound(parent, rustle_sounds, volume, sound_vary, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance) diff --git a/code/datums/components/itempicky.dm b/code/datums/components/itempicky.dm index 74fbdff1caa91..bda8b1ae13881 100644 --- a/code/datums/components/itempicky.dm +++ b/code/datums/components/itempicky.dm @@ -5,13 +5,21 @@ var/whitelist /// Message shown if you try to pick up an item not in the whitelist var/message = "You don't like %TARGET, why would you hold it?" + /// An optional callback we check for overriding our whitelist + var/datum/callback/tertiary_condition = null -/datum/component/itempicky/Initialize(whitelist, message) +/datum/component/itempicky/Initialize(whitelist, message, tertiary_condition) if(!ismob(parent)) return COMPONENT_INCOMPATIBLE src.whitelist = whitelist if(message) src.message = message + if(tertiary_condition) + src.tertiary_condition = tertiary_condition + +/datum/component/itempicky/Destroy(force) + tertiary_condition = null + return ..() /datum/component/itempicky/RegisterWithParent() RegisterSignal(parent, COMSIG_LIVING_TRY_PUT_IN_HAND, PROC_REF(particularly)) @@ -30,6 +38,7 @@ /datum/component/itempicky/proc/particularly(datum/source, obj/item/pickingup) SIGNAL_HANDLER - if(!is_type_in_typecache(pickingup, whitelist)) + // if we were passed the output of a callback, check against that + if(!tertiary_condition?.Invoke() && !is_type_in_typecache(pickingup, whitelist)) to_chat(source, span_warning("[replacetext(message, "%TARGET", pickingup)]")) return COMPONENT_LIVING_CANT_PUT_IN_HAND diff --git a/code/datums/components/jetpack.dm b/code/datums/components/jetpack.dm index 437660abc82e0..ccbe2b3fd4dac 100644 --- a/code/datums/components/jetpack.dm +++ b/code/datums/components/jetpack.dm @@ -17,17 +17,25 @@ var/datum/effect_system/trail_follow/trail /// The typepath to instansiate our trail as, when we need it var/effect_type + /// Drift force applied each movement tick + var/drift_force + /// Force that applied when stabiliziation is active and the player isn't moving in the same direction as the jetpack + var/stabilization_force + /// Our current user + var/mob/user /** * Arguments: * * stabilize - If we should drift when we finish moving, or sit stable in space] + * * drift_force - How much force is applied whenever the user tries to move + * * stabilization_force - How much force is applied per tick when we try to stabilize the user * * activation_signal - Signal we activate on * * deactivation_signal - Signal we deactivate on * * return_flag - Flag to return if activation fails * * check_on_move - Callback we call each time we attempt a move, we expect it to retun true if the move is ok, false otherwise. It expects an arg, TRUE if fuel should be consumed, FALSE othewise * * effect_type - Type of trail_follow to spawn */ -/datum/component/jetpack/Initialize(stabilize, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) +/datum/component/jetpack/Initialize(stabilize, drift_force = 1 NEWTONS, stabilization_force = 1 NEWTONS, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) . = ..() if(!isatom(parent)) return COMPONENT_INCOMPATIBLE @@ -44,8 +52,10 @@ src.deactivation_signal = deactivation_signal src.return_flag = return_flag src.effect_type = effect_type + src.drift_force = drift_force + src.stabilization_force = stabilization_force -/datum/component/jetpack/InheritComponent(datum/component/component, original, stabilize, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) +/datum/component/jetpack/InheritComponent(datum/component/component, original, stabilize, drift_force = 1 NEWTONS, stabilization_force = 1 NEWTONS, activation_signal, deactivation_signal, return_flag, datum/callback/check_on_move, datum/effect_system/trail_follow/effect_type) UnregisterSignal(parent, src.activation_signal) if(src.deactivation_signal) UnregisterSignal(parent, src.deactivation_signal) @@ -59,6 +69,8 @@ src.deactivation_signal = deactivation_signal src.return_flag = return_flag src.effect_type = effect_type + src.drift_force = drift_force + src.stabilization_force = stabilization_force if(trail && trail.effect_type != effect_type) setup_trail(trail.holder) @@ -66,87 +78,93 @@ /datum/component/jetpack/Destroy(force) if(trail) QDEL_NULL(trail) + user = null check_on_move = null return ..() /datum/component/jetpack/proc/setup_trail(mob/user) if(trail) QDEL_NULL(trail) - trail = new effect_type trail.auto_process = FALSE trail.set_up(user) trail.start() -/datum/component/jetpack/proc/activate(datum/source, mob/user) +/datum/component/jetpack/proc/activate(datum/source, mob/new_user) SIGNAL_HANDLER if(!check_on_move.Invoke(TRUE)) return return_flag + user = new_user RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(move_react)) RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react)) - RegisterSignal(user, COMSIG_MOVABLE_SPACEMOVE, PROC_REF(spacemove_react)) - RegisterSignal(user, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT, PROC_REF(block_starting_visuals)) - RegisterSignal(user, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT, PROC_REF(ignore_ending_block)) - + RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE_NOGRAV, PROC_REF(on_client_move)) + RegisterSignal(user, COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE, PROC_REF(on_pushoff)) + START_PROCESSING(SSnewtonian_movement, src) setup_trail(user) -/datum/component/jetpack/proc/deactivate(datum/source, mob/user) +/datum/component/jetpack/proc/deactivate(datum/source, mob/old_user) SIGNAL_HANDLER - UnregisterSignal(user, COMSIG_MOVABLE_MOVED) - UnregisterSignal(user, COMSIG_MOVABLE_PRE_MOVE) - UnregisterSignal(user, COMSIG_MOVABLE_SPACEMOVE) - UnregisterSignal(user, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) - UnregisterSignal(user, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) + UnregisterSignal(old_user, list(COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED, COMSIG_MOB_CLIENT_MOVE_NOGRAV, COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE)) + STOP_PROCESSING(SSnewtonian_movement, src) + user = null if(trail) QDEL_NULL(trail) -/datum/component/jetpack/proc/move_react(mob/user) +/datum/component/jetpack/proc/move_react(mob/source) SIGNAL_HANDLER - if(!user || !user.client)//Don't allow jet self using - return - if(!isturf(user.loc))//You can't use jet in nowhere or from mecha/closet - return - if(!(user.movement_type & FLOATING) || user.buckled)//You don't want use jet in gravity or while buckled. + if (!should_trigger(source)) return - if(user.pulledby)//You don't must use jet if someone pull you - return - if(user.throwing)//You don't must use jet if you thrown - return - if(user.client.intended_direction)//You use jet when press keys. yes. - thrust() -/datum/component/jetpack/proc/pre_move_react(mob/user) - SIGNAL_HANDLER - if(!trail) + if(source.client.intended_direction && check_on_move.Invoke(FALSE))//You use jet when press keys. yes. + trail.generate_effect() + +/datum/component/jetpack/proc/should_trigger(mob/source) + if(!source || !source.client)//Don't allow jet self using + return FALSE + if(!isturf(source.loc))//You can't use jet in nowhere or from mecha/closet + return FALSE + if(!(source.movement_type & FLOATING) || source.buckled)//You don't want use jet in gravity or while buckled. return FALSE - trail.oldposition = get_turf(user) + if(source.pulledby)//You don't must use jet if someone pull you + return FALSE + if(source.throwing)//You don't must use jet if you thrown + return FALSE + return TRUE -/datum/component/jetpack/proc/spacemove_react(mob/user, movement_dir, continuous_move) +/datum/component/jetpack/proc/pre_move_react(mob/source) SIGNAL_HANDLER - if(!continuous_move && movement_dir) - return COMSIG_MOVABLE_STOP_SPACEMOVE - // Check if we have the fuel to stop this. Do NOT cosume any fuel, just check - // This is done because things other then us can use our fuel - if(stabilize && check_on_move.Invoke(FALSE)) - return COMSIG_MOVABLE_STOP_SPACEMOVE - -/// Returns true if the thrust went well, false otherwise -/datum/component/jetpack/proc/thrust() - if(!check_on_move.Invoke(TRUE)) + if(!trail) return FALSE - trail.generate_effect() - return TRUE + trail.oldposition = get_turf(source) -/// Basically, tell the drift component not to do its starting visuals, because they look dumb for us -/datum/component/jetpack/proc/block_starting_visuals(datum/source) +/datum/component/jetpack/process(seconds_per_tick) + if (!should_trigger(user) || !stabilize || isnull(user.drift_handler)) + return + + var/max_drift_force = (DEFAULT_INERTIA_SPEED / user.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + user.drift_handler.stabilize_drift(user.client.intended_direction ? dir2angle(user.client.intended_direction) : null, user.client.intended_direction ? max_drift_force : 0, stabilization_force * (seconds_per_tick * 1 SECONDS)) + +/datum/component/jetpack/proc/on_client_move(mob/source, list/move_args) SIGNAL_HANDLER - return DRIFT_VISUAL_FAILED -/// If we're on, don't let the drift component block movements at the end since we can speed -/datum/component/jetpack/proc/ignore_ending_block(datum/source) + if (!should_trigger(source)) + return + + if (!check_on_move.Invoke(TRUE)) + return + + var/max_drift_force = (DEFAULT_INERTIA_SPEED / source.cached_multiplicative_slowdown - 1) / INERTIA_SPEED_COEF + 1 + source.newtonian_move(dir2angle(source.client.intended_direction), instant = TRUE, drift_force = drift_force, controlled_cap = max_drift_force) + source.setDir(source.client.intended_direction) + +/datum/component/jetpack/proc/on_pushoff(mob/source, movement_dir, continuous_move, atom/backup) SIGNAL_HANDLER - return DRIFT_ALLOW_INPUT + + if (!should_trigger(source) || !check_on_move.Invoke(FALSE)) + return + + return COMPONENT_PREVENT_SPACEMOVE_HALT diff --git a/code/datums/components/jukebox.dm b/code/datums/components/jukebox.dm index 545b9daab0b1e..071e284756f95 100644 --- a/code/datums/components/jukebox.dm +++ b/code/datums/components/jukebox.dm @@ -400,7 +400,7 @@ // Default track supplied for testing and also because it's a banger /datum/track/default - song_path = 'sound/ambience/title3.ogg' + song_path = 'sound/music/lobby_music/title3.ogg' song_name = "Tintin on the Moon" song_length = 3 MINUTES + 52 SECONDS song_beat = 1 SECONDS diff --git a/code/datums/components/life_link.dm b/code/datums/components/life_link.dm index 628aceabc955a..314a3d7931bde 100644 --- a/code/datums/components/life_link.dm +++ b/code/datums/components/life_link.dm @@ -128,7 +128,7 @@ return holder.icon_state = "hud[RoundHealth(host)]" var/icon/size_check = icon(mob_parent.icon, mob_parent.icon_state, mob_parent.dir) - holder.pixel_y = size_check.Height() - world.icon_size + holder.pixel_y = size_check.Height() - ICON_SIZE_Y /// Update our vital status on the medical hud /datum/component/life_link/proc/update_med_hud_status(mob/living/mob_parent) @@ -136,7 +136,7 @@ if(isnull(holder)) return var/icon/size_check = icon(mob_parent.icon, mob_parent.icon_state, mob_parent.dir) - holder.pixel_y = size_check.Height() - world.icon_size + holder.pixel_y = size_check.Height() - ICON_SIZE_Y if(host.stat == DEAD || HAS_TRAIT(host, TRAIT_FAKEDEATH)) holder.icon_state = "huddead" else diff --git a/code/datums/components/lockable_storage.dm b/code/datums/components/lockable_storage.dm index 482cb134159e0..ca058cb3fbfab 100644 --- a/code/datums/components/lockable_storage.dm +++ b/code/datums/components/lockable_storage.dm @@ -62,7 +62,6 @@ UnregisterSignal(parent, list( COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER), COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), - COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT, )) UnregisterSignal(parent, list( COMSIG_ATOM_EXAMINE, diff --git a/code/datums/components/material/material_container.dm b/code/datums/components/material/material_container.dm index 6ee50f5d78c94..912ae33411677 100644 --- a/code/datums/components/material/material_container.dm +++ b/code/datums/components/material/material_container.dm @@ -124,10 +124,10 @@ * Material Validation : Checks how much materials are available, Extracts materials from items if the container can hold them * Material Removal : Removes material from the container * - * Each Proc furthur belongs to a specific category + * Each Proc further belongs to a specific category * LOW LEVEL: Procs that are used internally & should not be used anywhere else unless you know what your doing * MID LEVEL: Procs that can be used by machines(like recycler, stacking machines) to bypass majority of checks - * HIGH LEVEL: Procs that can be used by anyone publically and guarentees safty checks & limits + * HIGH LEVEL: Procs that can be used by anyone publicly and guarantees safety checks & limits */ //================================Material Insertion procs============================== @@ -236,7 +236,7 @@ //do the insert var/last_inserted_id = insert_item_materials(target, multiplier, context) if(!isnull(last_inserted_id)) - if(delete_item || target != weapon) //we could have split the stack ourself + if(delete_item || target != weapon) //we could have split the stack ourselves qdel(target) //item gone return material_amount else if(!isnull(item_stack) && item_stack != target) //insertion failed, merge the split stack back into the original @@ -250,7 +250,7 @@ //===================================HIGH LEVEL=================================================== /** - * inserts an item from the players hand into the container. Loops through all the contents inside reccursively + * inserts an item from the players hand into the container. Loops through all the contents inside recursively * Does all explicit checking for mat flags & callbacks to check if insertion is valid * This proc is what you should be using for almost all cases * @@ -259,7 +259,7 @@ * * user - the mob inserting this item * * context - the atom performing the operation, this is the last argument sent in COMSIG_MATCONTAINER_ITEM_CONSUMED and is used mostly for silo logging */ -/datum/component/material_container/proc/user_insert(obj/item/held_item, mob/living/user, atom/context = parent) +/datum/component/material_container/proc/user_insert(obj/item/held_item, mob/living/user, atom/context = parent, forced_type = FALSE) set waitfor = FALSE . = 0 @@ -297,7 +297,7 @@ if(SEND_SIGNAL(src, COMSIG_MATCONTAINER_PRE_USER_INSERT, target_item, user) & MATCONTAINER_BLOCK_INSERT) continue //item is either indestructible, not allowed for redemption or not in the allowed types - if((target_item.resistance_flags & INDESTRUCTIBLE) || (target_item.item_flags & NO_MAT_REDEMPTION) || (allowed_item_typecache && !is_type_in_typecache(target_item, allowed_item_typecache))) + if((target_item.resistance_flags & INDESTRUCTIBLE) || (target_item.item_flags & NO_MAT_REDEMPTION) || (allowed_item_typecache && !is_type_in_typecache(target_item, allowed_item_typecache) && !forced_type)) if(!(mat_container_flags & MATCONTAINER_SILENT)) var/list/status_data = chat_msgs["[MATERIAL_INSERT_ITEM_FAILURE]"] || list() var/list/item_data = status_data[target_item.name] || list() @@ -455,9 +455,9 @@ if(MATERIAL_INSERT_ITEM_SUCCESS) //no problems full item was consumed if(chat_data["stack"]) var/sheets = min(count, amount) //minimum between sheets inserted vs sheets consumed(values differ for alloys) - to_chat(user, span_notice("[sheets > 1 ? sheets : ""] [item_name][sheets > 1 ? "s were" : " was"] added to [parent].")) + to_chat(user, span_notice("[sheets > 1 ? "[sheets] " : ""][item_name][sheets > 1 ? "s were" : " was"] added to [parent].")) else - to_chat(user, span_notice("[count > 1 ? count : ""] [item_name][count > 1 ? "s" : ""], worth [amount] sheets, [count > 1 ? "were" : "was"] added to [parent].")) + to_chat(user, span_notice("[count > 1 ? "[count] " : ""][item_name][count > 1 ? "s" : ""], worth [amount] sheets, [count > 1 ? "were" : "was"] added to [parent].")) if(MATERIAL_INSERT_ITEM_NO_SPACE) //no space to_chat(user, span_warning("[parent] has no space to accept [item_name]!")) if(MATERIAL_INSERT_ITEM_NO_MATS) //no materials inside these items @@ -584,7 +584,7 @@ for(var/x in mats) //Loop through all required materials var/wanted = OPTIMAL_COST(mats[x] * coefficient) * multiplier if(!has_enough_of_material(x, wanted))//Not a category, so just check the normal way - testing("didnt have: [x] wanted: [wanted]") + testing("didn't have: [x] wanted: [wanted]") return FALSE return TRUE @@ -605,7 +605,7 @@ //round amount amt = OPTIMAL_COST(amt) - //get ref if nessassary + //get ref if necessary if(!istype(mat)) mat = GET_MATERIAL_REF(mat) @@ -725,7 +725,7 @@ "name" = material.name, "ref" = REF(material), "amount" = amount, - "color" = material.greyscale_colors + "color" = material.greyscale_color || material.color )) return data diff --git a/code/datums/components/material/remote_materials.dm b/code/datums/components/material/remote_materials.dm index d2804f97df120..8ae52069c1bcb 100644 --- a/code/datums/components/material/remote_materials.dm +++ b/code/datums/components/material/remote_materials.dm @@ -23,13 +23,16 @@ handles linking back and forth. var/mat_container_flags = NONE ///List of signals to hook onto the local container var/list/mat_container_signals + ///Typecache for items that the silo will accept through this remote no matter what + var/list/whitelist_typecache /datum/component/remote_materials/Initialize( mapload, allow_standalone = TRUE, force_connect = FALSE, mat_container_flags = NONE, - list/mat_container_signals = null + list/mat_container_signals = null, + list/whitelist_typecache = null ) if (!isatom(parent)) return COMPONENT_INCOMPATIBLE @@ -37,6 +40,7 @@ handles linking back and forth. src.allow_standalone = allow_standalone src.mat_container_flags = mat_container_flags src.mat_container_signals = mat_container_signals + src.whitelist_typecache = whitelist_typecache RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(OnMultitool)) @@ -93,6 +97,9 @@ handles linking back and forth. allowed_items = /obj/item/stack \ ) + if (whitelist_typecache) + mat_container.allowed_item_typecache |= whitelist_typecache + /datum/component/remote_materials/proc/toggle_holding(force_hold = FALSE) if(isnull(silo)) return @@ -140,14 +147,14 @@ handles linking back and forth. return if(silo) - mat_container.user_insert(target, user, parent) + mat_container.user_insert(target, user, parent, (whitelist_typecache && is_type_in_typecache(target, whitelist_typecache))) return COMPONENT_NO_AFTERATTACK /datum/component/remote_materials/proc/OnMultitool(datum/source, mob/user, obj/item/multitool/M) SIGNAL_HANDLER - . = ITEM_INTERACT_BLOCKING + . = NONE if (!QDELETED(M.buffer) && istype(M.buffer, /obj/machinery/ore_silo)) if (silo == M.buffer) to_chat(user, span_warning("[parent] is already connected to [silo]!")) diff --git a/code/datums/components/mind_linker.dm b/code/datums/components/mind_linker.dm index ba3f0a6841bee..f6b2af5329716 100644 --- a/code/datums/components/mind_linker.dm +++ b/code/datums/components/mind_linker.dm @@ -184,7 +184,7 @@ return ..() /datum/component/mind_linker/active_linking/link_mob(mob/living/to_link) - if(HAS_TRAIT(to_link, TRAIT_MINDSHIELD)) // Mindshield implant - no dice + if(HAS_MIND_TRAIT(to_link, TRAIT_UNCONVERTABLE)) // Protected mind, so they can't be added to the mindlink return FALSE if(to_link.can_block_magic(MAGIC_RESISTANCE_MIND, charge_cost = 0)) return FALSE @@ -242,7 +242,7 @@ var/datum/component/mind_linker/linker = target var/mob/living/linker_parent = linker.parent - var/message = tgui_input_text(owner, "Enter a message to transmit.", "[linker.network_name] Telepathy") + var/message = tgui_input_text(owner, "Enter a message to transmit.", "[linker.network_name] Telepathy", max_length = MAX_MESSAGE_LEN) if(!message || QDELETED(src) || QDELETED(owner) || owner.stat == DEAD) return diff --git a/code/datums/components/mob_chain.dm b/code/datums/components/mob_chain.dm index a258fe3f5be60..e2f90eed16ee8 100644 --- a/code/datums/components/mob_chain.dm +++ b/code/datums/components/mob_chain.dm @@ -88,7 +88,7 @@ var/mob/living/body = parent body.update_appearance(UPDATE_ICON_STATE) -/// Called when something sets us as IT'S front +/// Called when something sets us as ITS front /datum/component/mob_chain/proc/on_gained_tail(mob/living/body, mob/living/tail) SIGNAL_HANDLER back = tail diff --git a/code/datums/components/mob_harvest.dm b/code/datums/components/mob_harvest.dm index b9f9f86350be5..242161027b069 100644 --- a/code/datums/components/mob_harvest.dm +++ b/code/datums/components/mob_harvest.dm @@ -25,7 +25,7 @@ ///how long it takes to harvest from the mob var/item_harvest_time = 5 SECONDS ///typepath of harvest sound - var/item_harvest_sound = 'sound/items/welder2.ogg' + var/item_harvest_sound = 'sound/items/tools/welder2.ogg' //harvest_type, produced_item_typepath and speedup_type are typepaths, not reference /datum/component/mob_harvest/Initialize(harvest_tool, fed_item, produced_item_typepath, produced_item_desc, max_ready, item_generation_wait, item_reduction_time, item_harvest_time, item_harvest_sound) diff --git a/code/datums/components/multiple_lives.dm b/code/datums/components/multiple_lives.dm index 13c3282605b6e..ce2c4a5053f1e 100644 --- a/code/datums/components/multiple_lives.dm +++ b/code/datums/components/multiple_lives.dm @@ -46,7 +46,7 @@ /datum/component/multiple_lives/proc/on_examine(mob/living/source, mob/user, list/examine_list) SIGNAL_HANDLER if(isobserver(user) || source == user) - examine_list += "[source.p_Theyve()] [lives_left] extra lives left." + examine_list += "[source.p_They()] [source.p_have()] [lives_left] extra lives left." /datum/component/multiple_lives/InheritComponent(datum/component/multiple_lives/new_comp , lives_left) src.lives_left += new_comp ? new_comp.lives_left : lives_left diff --git a/code/datums/components/object_possession.dm b/code/datums/components/object_possession.dm index c62f0905068b1..2a423e0016c79 100644 --- a/code/datums/components/object_possession.dm +++ b/code/datums/components/object_possession.dm @@ -8,7 +8,7 @@ /** * back up of the real name during user possession * - * When a user possesses an object it's real name is set to the user name and this + * When a user possesses an object its real name is set to the user name and this * stores whatever the real name was previously. When possession ends, the real name * is reset to this value */ diff --git a/code/datums/components/omen.dm b/code/datums/components/omen.dm index e4094ba679a7e..bb72654f978ae 100644 --- a/code/datums/components/omen.dm +++ b/code/datums/components/omen.dm @@ -143,12 +143,12 @@ return for(var/obj/machinery/light/evil_light in the_turf) - if((evil_light.status == LIGHT_BURNED || evil_light.status == LIGHT_BROKEN) || (HAS_TRAIT(living_guy, TRAIT_SHOCKIMMUNE))) // we cant do anything :( // Why in the world is there no get_siemens_coeff proc??? + if((evil_light.status == LIGHT_BURNED || evil_light.status == LIGHT_BROKEN) || (HAS_TRAIT(living_guy, TRAIT_SHOCKIMMUNE))) // we can't do anything :( // Why in the world is there no get_siemens_coeff proc??? to_chat(living_guy, span_warning("[evil_light] sparks weakly for a second.")) do_sparks(2, FALSE, evil_light) // hey maybe it'll ignite them return - to_chat(living_guy, span_warning("[evil_light] glows ominously...")) // omenously + to_chat(living_guy, span_warning("[evil_light] glows ominously...")) // ominously evil_light.visible_message(span_boldwarning("[evil_light] suddenly flares brightly and sparks!")) evil_light.break_light_tube(skip_sound_and_sparks = FALSE) do_sparks(number = 4, cardinal_only = FALSE, source = evil_light) diff --git a/code/datums/components/on_hit_effect.dm b/code/datums/components/on_hit_effect.dm deleted file mode 100644 index 9d1d047429069..0000000000000 --- a/code/datums/components/on_hit_effect.dm +++ /dev/null @@ -1,93 +0,0 @@ -/** - * ## On Hit Effect Component! - * - * Component for other elements/components to rely on for on-hit effects without duplicating the on-hit code. - * See Lifesteal, or bane for examples. - * - * THIS COULD EASILY SUPPORT COMPONENT_DUPE_ALLOWED but the getcomponent makes it throw errors. if you can figure that out feel free to readd the dupe types - */ -/datum/component/on_hit_effect - ///callback used by other components to apply effects - var/datum/callback/on_hit_callback - ///callback optionally used for more checks - var/datum/callback/extra_check_callback - ///optionally should we also apply the effect if thrown at something? - var/thrown_effect - -/datum/component/on_hit_effect/Initialize(on_hit_callback, extra_check_callback, thrown_effect = FALSE) - src.on_hit_callback = on_hit_callback - src.extra_check_callback = extra_check_callback - if(!(ismachinery(parent) || isstructure(parent) || isgun(parent) || isprojectilespell(parent) || isitem(parent) || isanimal_or_basicmob(parent) || isprojectile(parent))) - return ELEMENT_INCOMPATIBLE - src.thrown_effect = thrown_effect - -/datum/component/on_hit_effect/Destroy(force) - on_hit_callback = null - extra_check_callback = null - return ..() - -/datum/component/on_hit_effect/RegisterWithParent() - if(ismachinery(parent) || isstructure(parent) || isgun(parent) || isprojectilespell(parent)) - RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, PROC_REF(on_projectile_hit)) - else if(isitem(parent)) - RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) - else if(isanimal_or_basicmob(parent)) - RegisterSignal(parent, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) - else if(isprojectile(parent)) - RegisterSignal(parent, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(on_projectile_self_hit)) - - if(thrown_effect) - RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(on_thrown_hit)) - -/datum/component/on_hit_effect/UnregisterFromParent() - UnregisterSignal(parent, list( - COMSIG_PROJECTILE_ON_HIT, - COMSIG_ITEM_AFTERATTACK, - COMSIG_HOSTILE_POST_ATTACKINGTARGET, - COMSIG_PROJECTILE_SELF_ON_HIT, - COMSIG_MOVABLE_IMPACT, - )) - -/datum/component/on_hit_effect/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters) - SIGNAL_HANDLER - - if(!proximity_flag) - return - - if(extra_check_callback) - if(!extra_check_callback.Invoke(user, target, source)) - return - on_hit_callback.Invoke(source, user, target, user.zone_selected) - -/datum/component/on_hit_effect/proc/hostile_attackingtarget(mob/living/attacker, atom/target, success) - SIGNAL_HANDLER - - if(!success) - return - - if(extra_check_callback) - if(!extra_check_callback.Invoke(attacker, target)) - return - on_hit_callback.Invoke(attacker, attacker, target, attacker.zone_selected) - -/datum/component/on_hit_effect/proc/on_projectile_hit(datum/fired_from, atom/movable/firer, atom/target, angle, body_zone) - SIGNAL_HANDLER - - if(extra_check_callback) - if(!extra_check_callback.Invoke(firer, target)) - return - on_hit_callback.Invoke(fired_from, firer, target, body_zone) - -/datum/component/on_hit_effect/proc/on_projectile_self_hit(datum/source, mob/firer, atom/target, angle, body_zone) - SIGNAL_HANDLER - - if(extra_check_callback) - if(!extra_check_callback.Invoke(firer, target)) - return - on_hit_callback.Invoke(source, firer, target, body_zone) - -/datum/component/on_hit_effect/proc/on_thrown_hit(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) - SIGNAL_HANDLER - if(extra_check_callback && !extra_check_callback.Invoke(source, hit_atom)) - return - on_hit_callback.Invoke(source, source, hit_atom, null) diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm index 19c7528db8bf3..642feee3ac0e8 100644 --- a/code/datums/components/overlay_lighting.dm +++ b/code/datums/components/overlay_lighting.dm @@ -62,13 +62,13 @@ var/directional = FALSE ///Whether we're a beam light var/beam = FALSE - ///A cone overlay for directional light, it's alpha and color are dependant on the light + ///A cone overlay for directional light, its alpha and color are dependent on the light var/image/cone ///Current tracked direction for the directional cast behaviour var/current_direction - ///Tracks current directional x offset so we dont update unecessarily + ///Tracks current directional x offset so we don't update unnecessarily var/directional_offset_x - ///Tracks current directional y offset so we dont update unecessarily + ///Tracks current directional y offset so we don't update unnecessarily var/directional_offset_y ///Cast range for the directional cast (how far away the atom is moved) var/cast_range = 2 diff --git a/code/datums/components/parry.dm b/code/datums/components/parry.dm index fedfcb77d15ea..a2cfe789cba4f 100644 --- a/code/datums/components/parry.dm +++ b/code/datums/components/parry.dm @@ -1,38 +1,121 @@ -/// Add to a living mob to allow them to "parry" projectiles by clicking on their tile, sending them back at the firer. -/datum/component/projectile_parry - /// typecache of valid projectiles to be able to parry - var/list/parryable_projectiles +/// Add to a projectile to allow it to be parried by mobs with a certain trait (TRAIT_MINING_PARRYING by default) +/datum/component/parriable_projectile + /// List of all turfs the projectile passed on its last loop and we assigned comsigs to + var/list/turf/parry_turfs = list() + /// List of all mobs who have clicked on a parry turf in last moveloop + var/list/mob/parriers = list() + /// When the projectile was created + var/fire_time = 0 + /// If this projectile has been parried + var/parried = FALSE + /// How much this projectile is sped up when parried + var/parry_speed_mult + /// How much this projectile's damage is increased when parried + var/parry_damage_mult + /// How much this projectile is sped up when boosted (parried by owner) + var/boost_speed_mult + /// How much this projectile's damage is increased when boosted (parried by owner) + var/boost_damage_mult + /// Trait required to be able to parry this projectile + var/parry_trait + /// For how long do valid tiles persist? Acts as clientside lag compensation + var/grace_period + /// Callback for special effects upon parrying + var/datum/callback/parry_callback - -/datum/component/projectile_parry/Initialize(list/projectiles_to_parry) - if(!isliving(parent)) +/datum/component/parriable_projectile/Initialize(parry_speed_mult = 0.8, parry_damage_mult = 1.15, boost_speed_mult = 0.6, boost_damage_mult = 1.5, parry_trait = TRAIT_MINING_PARRYING, grace_period = 0.25 SECONDS, datum/callback/parry_callback = null) + if(!isprojectile(parent)) return COMPONENT_INCOMPATIBLE + src.parry_speed_mult = parry_speed_mult + src.parry_damage_mult = parry_damage_mult + src.boost_speed_mult = boost_speed_mult + src.boost_damage_mult = boost_damage_mult + src.parry_trait = parry_trait + src.grace_period = grace_period + src.parry_callback = parry_callback + fire_time = world.time + +/datum/component/parriable_projectile/Destroy(force) + for (var/turf/parry_turf as anything in parry_turfs) + UnregisterSignal(parry_turf, COMSIG_CLICK) + . = ..() - parryable_projectiles = typecacheof(projectiles_to_parry) +/datum/component/parriable_projectile/RegisterWithParent() + RegisterSignal(parent, COMSIG_PROJECTILE_PIXEL_STEP, PROC_REF(on_moved)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(before_move)) + RegisterSignal(parent, COMSIG_PROJECTILE_BEFORE_MOVE, PROC_REF(before_move)) + RegisterSignal(parent, COMSIG_PROJECTILE_SELF_PREHIT, PROC_REF(before_hit)) +/datum/component/parriable_projectile/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_PROJECTILE_PIXEL_STEP, COMSIG_MOVABLE_MOVED, COMSIG_PROJECTILE_BEFORE_MOVE, COMSIG_PROJECTILE_SELF_PREHIT)) -/datum/component/projectile_parry/RegisterWithParent() - RegisterSignal(parent, COMSIG_LIVING_PROJECTILE_PARRYING, PROC_REF(parrying_projectile)) - RegisterSignal(parent, COMSIG_LIVING_PROJECTILE_PARRIED, PROC_REF(parried_projectile)) +/datum/component/parriable_projectile/proc/before_move(obj/projectile/source) + SIGNAL_HANDLER + var/list/turfs_to_remove = list() + for (var/turf/parry_turf as anything in parry_turfs) + if (parry_turfs[parry_turf] < world.time) + turfs_to_remove += parry_turf -/datum/component/projectile_parry/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_LIVING_PROJECTILE_PARRYING, COMSIG_LIVING_PROJECTILE_PARRIED)) + for (var/turf/parry_turf as anything in turfs_to_remove) + parry_turfs -= parry_turf + UnregisterSignal(parry_turf, COMSIG_CLICK) + var/list/parriers_to_remove = list() + for (var/mob/parrier as anything in parriers) + if (parriers[parrier] < world.time) + parriers_to_remove += parrier -/datum/component/projectile_parry/proc/parrying_projectile(datum/source, obj/projectile/parried_projectile) - SIGNAL_HANDLER + for (var/mob/parrier as anything in parriers_to_remove) + parriers_to_remove -= parrier - if(is_type_in_typecache(parried_projectile, parryable_projectiles)) - return ALLOW_PARRY +/datum/component/parriable_projectile/proc/on_moved(obj/projectile/source) + SIGNAL_HANDLER + if (!isturf(source.loc)) + return + parry_turfs[source.loc] = world.time + grace_period + RegisterSignal(source.loc, COMSIG_CLICK, PROC_REF(on_turf_click)) +/datum/component/parriable_projectile/proc/on_turf_click(turf/source, atom/location, control, list/params, mob/user) + SIGNAL_HANDLER + if (!HAS_TRAIT(user, parry_trait)) + return + var/obj/projectile/proj_parent = parent + if (proj_parent.firer == user && (fire_time + grace_period > world.time) && !parried) + attempt_parry(proj_parent, user) + return + parriers[user] = world.time + grace_period -/datum/component/projectile_parry/proc/parried_projectile(datum/source, obj/projectile/parried_projectile) +/datum/component/parriable_projectile/proc/before_hit(obj/projectile/source, list/bullet_args) SIGNAL_HANDLER - var/mob/living/living_parent = parent + var/mob/user = bullet_args[2] + if (!istype(user) || !parriers[user] || parried) + return + parriers -= user + attempt_parry(source, user) + +/datum/component/parriable_projectile/proc/attempt_parry(obj/projectile/source, mob/user) + if (SEND_SIGNAL(user, COMSIG_LIVING_PROJECTILE_PARRIED, source) & INTERCEPT_PARRY_EFFECTS) + return + + parried = TRUE + if (source.firer != user) + if (abs(source.Angle - dir2angle(user)) < 15) + source.set_angle((source.Angle + 180) % 360 + rand(-3, 3)) + else + source.set_angle(dir2angle(user) + rand(-3, 3)) + user.visible_message(span_warning("[user] expertly parries [source] with [user.p_their()] bare hand!"), span_warning("You parry [source] with your hand!")) + else + user.visible_message(span_warning("[user] boosts [source] with [user.p_their()] bare hand!"), span_warning("You boost [source] with your hand!")) + source.firer = user + source.speed *= (source.firer == user) ? boost_speed_mult : parry_speed_mult + source.damage *= (source.firer == user) ? boost_damage_mult : parry_damage_mult + source.add_atom_colour(COLOR_RED_LIGHT, TEMPORARY_COLOUR_PRIORITY) + if (!isnull(parry_callback)) + parry_callback.Invoke(user) - living_parent.playsound_local(get_turf(parried_projectile), 'sound/effects/parry.ogg', 50, TRUE) - living_parent.overlay_fullscreen("projectile_parry", /atom/movable/screen/fullscreen/crit/projectile_parry, 2) - addtimer(CALLBACK(living_parent, TYPE_PROC_REF(/mob, clear_fullscreen), "projectile_parry"), 0.25 SECONDS) - living_parent.visible_message(span_warning("[living_parent] expertly parries [parried_projectile] with [living_parent.p_their()] bare hand!"), span_warning("You parry [parried_projectile] with your hand!")) + user.playsound_local(source.loc, 'sound/effects/parry.ogg', 50, TRUE) + user.overlay_fullscreen("projectile_parry", /atom/movable/screen/fullscreen/crit/projectile_parry, 2) + addtimer(CALLBACK(user, TYPE_PROC_REF(/mob, clear_fullscreen), "projectile_parry"), 0.25 SECONDS) + return PROJECTILE_INTERRUPT_HIT diff --git a/code/datums/components/pet_commands/pet_command.dm b/code/datums/components/pet_commands/pet_command.dm index cf376b21001e8..52b4cc8834920 100644 --- a/code/datums/components/pet_commands/pet_command.dm +++ b/code/datums/components/pet_commands/pet_command.dm @@ -18,6 +18,8 @@ var/radial_icon_state /// Speech strings to listen out for var/list/speech_commands = list() + /// Callout that triggers this command + var/callout_type /// Shown above the mob's head when it hears you var/command_feedback /// How close a mob needs to be to a target to respond to a command @@ -31,10 +33,11 @@ /datum/pet_command/proc/add_new_friend(mob/living/tamer) RegisterSignal(tamer, COMSIG_MOB_SAY, PROC_REF(respond_to_command)) RegisterSignal(tamer, COMSIG_MOB_AUTOMUTE_CHECK, PROC_REF(waive_automute)) + RegisterSignal(tamer, COMSIG_MOB_CREATED_CALLOUT, PROC_REF(respond_to_callout)) /// Stop listening to a guy /datum/pet_command/proc/remove_friend(mob/living/unfriended) - UnregisterSignal(unfriended, list(COMSIG_MOB_SAY, COMSIG_MOB_AUTOMUTE_CHECK)) + UnregisterSignal(unfriended, list(COMSIG_MOB_SAY, COMSIG_MOB_AUTOMUTE_CHECK, COMSIG_MOB_CREATED_CALLOUT)) /// Stop the automute from triggering for commands (unless the spoken text is suspiciously longer than the command) /datum/pet_command/proc/waive_automute(mob/living/speaker, client/client, last_message, mute_type) @@ -59,6 +62,34 @@ try_activate_command(speaker) +/// Respond to a callout +/datum/pet_command/proc/respond_to_callout(mob/living/caller, datum/callout_option/callout, atom/target) + SIGNAL_HANDLER + + if (isnull(callout_type) || !ispath(callout, callout_type)) + return + + var/mob/living/parent = weak_parent.resolve() + if (!parent) + return + + if (!valid_callout_target(caller, callout, target)) + var/found_new_target = FALSE + for (var/atom/new_target in range(2, target)) + if (valid_callout_target(caller, callout, new_target)) + target = new_target + found_new_target = TRUE + + if (!found_new_target) + return + + if (try_activate_command(caller)) + look_for_target(parent, target) + +/// Does this callout with this target trigger this command? +/datum/pet_command/proc/valid_callout_target(mob/living/caller, datum/callout_option/callout, atom/target) + return TRUE + /** * Returns true if we find any of our spoken commands in the text. * if check_verbosity is true, skip the match if there spoken_text is way longer than the match @@ -76,14 +107,35 @@ /datum/pet_command/proc/try_activate_command(mob/living/commander) var/mob/living/parent = weak_parent.resolve() if (!parent) - return + return FALSE if (!parent.ai_controller) // We stopped having a brain at some point - return + return FALSE if (IS_DEAD_OR_INCAP(parent)) // Probably can't hear them if we're dead - return + return FALSE if (parent.ai_controller.blackboard[BB_ACTIVE_PET_COMMAND] == src) // We're already doing it - return + return FALSE set_command_active(parent, commander) + return TRUE + +/// Target the pointed atom for actions +/datum/pet_command/proc/look_for_target(mob/living/friend, atom/pointed_atom) + var/mob/living/parent = weak_parent.resolve() + if (!parent) + return FALSE + if (!parent.ai_controller) + return FALSE + if (IS_DEAD_OR_INCAP(parent)) + return FALSE + if (parent.ai_controller.blackboard[BB_ACTIVE_PET_COMMAND] != src) // We're not listening right now + return FALSE + if (parent.ai_controller.blackboard[BB_CURRENT_PET_TARGET] == pointed_atom) // That's already our target + return FALSE + if (!can_see(parent, pointed_atom, sense_radius)) + return FALSE + + parent.ai_controller.CancelActions() + set_command_target(parent, pointed_atom) + return TRUE /// Activate the command, extend to add visible messages and the like /datum/pet_command/proc/set_command_active(mob/living/parent, mob/living/commander) @@ -97,6 +149,7 @@ /// Store the target for the AI blackboard /datum/pet_command/proc/set_command_target(mob/living/parent, atom/target) parent.ai_controller.set_blackboard_key(BB_CURRENT_PET_TARGET, target) + return TRUE /// Provide information about how to display this command in a radial menu /datum/pet_command/proc/provide_radial_data() @@ -133,33 +186,22 @@ /datum/pet_command/point_targeting/add_new_friend(mob/living/tamer) . = ..() - RegisterSignal(tamer, COMSIG_MOB_POINTED, PROC_REF(look_for_target)) + RegisterSignal(tamer, COMSIG_MOVABLE_POINTED, PROC_REF(on_point)) /datum/pet_command/point_targeting/remove_friend(mob/living/unfriended) . = ..() - UnregisterSignal(unfriended, COMSIG_MOB_POINTED) + UnregisterSignal(unfriended, COMSIG_MOVABLE_POINTED) /// Target the pointed atom for actions -/datum/pet_command/point_targeting/proc/look_for_target(mob/living/friend, atom/pointed_atom) +/datum/pet_command/point_targeting/proc/on_point(mob/living/friend, atom/pointed_atom, obj/effect/temp_visual/point/point) SIGNAL_HANDLER var/mob/living/parent = weak_parent.resolve() if (!parent) return FALSE - if (!parent.ai_controller) - return FALSE - if (IS_DEAD_OR_INCAP(parent)) - return FALSE - if (parent.ai_controller.blackboard[BB_ACTIVE_PET_COMMAND] != src) // We're not listening right now - return FALSE - if (parent.ai_controller.blackboard[BB_CURRENT_PET_TARGET] == pointed_atom) // That's already our target - return FALSE - if (!can_see(parent, pointed_atom, sense_radius)) - return FALSE parent.ai_controller.CancelActions() - // Deciding if they can actually do anything with this target is the behaviour's job - set_command_target(parent, pointed_atom) - // These are usually hostile actions so should have a record in chat - parent.visible_message(span_warning("[parent] follows [friend]'s gesture towards [pointed_atom] [pointed_reaction]!")) - return TRUE + if (look_for_target(friend, pointed_atom) && set_command_target(parent, pointed_atom)) + parent.visible_message(span_warning("[parent] follows [friend]'s gesture towards [pointed_atom] [pointed_reaction]!")) + return TRUE + return FALSE diff --git a/code/datums/components/pet_commands/pet_commands_basic.dm b/code/datums/components/pet_commands/pet_commands_basic.dm index d9ce0ccb56a46..fd4e1f922c8b4 100644 --- a/code/datums/components/pet_commands/pet_commands_basic.dm +++ b/code/datums/components/pet_commands/pet_commands_basic.dm @@ -41,6 +41,7 @@ radial_icon = 'icons/testing/turf_analysis.dmi' radial_icon_state = "red_arrow" speech_commands = list("heel", "follow") + callout_type = /datum/callout_option/move ///the behavior we use to follow var/follow_behavior = /datum/ai_behavior/pet_follow_friend @@ -124,6 +125,7 @@ radial_icon = 'icons/effects/effects.dmi' radial_icon_state = "bite" + callout_type = /datum/callout_option/attack speech_commands = list("attack", "sic", "kill") command_feedback = "growl" pointed_reaction = "and growls" @@ -202,6 +204,8 @@ pointed_reaction = "and growls" /// Blackboard key where a reference to some kind of mob ability is stored var/pet_ability_key + /// The AI behavior to use for the ability + var/ability_behavior = /datum/ai_behavior/pet_use_ability /datum/pet_command/point_targeting/use_ability/execute_action(datum/ai_controller/controller) if (!pet_ability_key) @@ -211,13 +215,14 @@ return // We don't check if the target exists because we want to 'sit attentively' if we've been instructed to attack but not given one yet // We also don't check if the cooldown is over because there's no way a pet owner can know that, the behaviour will handle it - controller.queue_behavior(/datum/ai_behavior/pet_use_ability, pet_ability_key, BB_CURRENT_PET_TARGET) + controller.queue_behavior(ability_behavior, pet_ability_key, BB_CURRENT_PET_TARGET) return SUBTREE_RETURN_FINISH_PLANNING /datum/pet_command/protect_owner command_name = "Protect owner" command_desc = "Your pet will run to your aid." hidden = TRUE + callout_type = /datum/callout_option/guard ///the range our owner needs to be in for us to protect him var/protect_range = 9 ///the behavior we will use when he is attacked @@ -248,6 +253,9 @@ . = ..() set_command_target(parent, victim) +/datum/pet_command/protect_owner/valid_callout_target(mob/living/caller, datum/callout_option/callout, atom/target) + return target == caller || get_dist(caller, target) <= 1 + /datum/pet_command/protect_owner/proc/set_attacking_target(atom/source, mob/living/attacker) SIGNAL_HANDLER @@ -266,3 +274,29 @@ return if(isliving(attacker) && can_see(owner, attacker, protect_range)) set_command_active(owner, attacker) + +/** + * # Fish command: command the mob to fish at the next fishing spot you point at. Requires the profound fisher component + */ +/datum/pet_command/point_targeting/fish + command_name = "Fish" + command_desc = "Command your pet to try fishing at a nearby fishing spot." + radial_icon = 'icons/obj/aquarium/fish.dmi' + radial_icon_state = "goldfish" + speech_commands = list("fish") + +// Refuse to target things we can't target, chiefly other friends +/datum/pet_command/point_targeting/fish/set_command_target(mob/living/parent, atom/target) + if (!target) + return + if(!parent.ai_controller || !HAS_TRAIT(parent, TRAIT_PROFOUND_FISHER)) + return + var/datum/targeting_strategy/targeter = GET_TARGETING_STRATEGY(/datum/targeting_strategy/fishing) + if (!targeter?.can_attack(parent, target)) + parent.balloon_alert_to_viewers("shakes head!") + return + return ..() + +/datum/pet_command/point_targeting/fish/execute_action(datum/ai_controller/controller) + controller.queue_behavior(/datum/ai_behavior/hunt_target/interact_with_target/reset_target_combat_mode_off, BB_CURRENT_PET_TARGET) + return SUBTREE_RETURN_FINISH_PLANNING diff --git a/code/datums/components/phylactery.dm b/code/datums/components/phylactery.dm index 4a58660992a8d..572f816b5ad22 100644 --- a/code/datums/components/phylactery.dm +++ b/code/datums/components/phylactery.dm @@ -18,7 +18,7 @@ var/phylactery_color = COLOR_VERY_DARK_LIME_GREEN // Internal vars. - /// The number of ressurections that have occured from this phylactery. + /// The number of resurrections that have occurred from this phylactery. var/num_resurrections = 0 /// A timerid to the current revival timer. var/revive_timer @@ -150,7 +150,7 @@ UnregisterSignal(source, COMSIG_LIVING_REVIVE) /** - * Actually undergo the process of reviving the lich at the site of the phylacery. + * Actually undergo the process of reviving the lich at the site of the phylactery. * * Arguments * * corpse - optional, the old body of the lich. Can be QDELETED or null. diff --git a/code/datums/components/pinata.dm b/code/datums/components/pinata.dm index 064bc2de26b26..62e1a8e55527f 100644 --- a/code/datums/components/pinata.dm +++ b/code/datums/components/pinata.dm @@ -1,8 +1,8 @@ -///Objects or mobs with this componenet will drop items when taking damage. +///Objects or mobs with this component will drop items when taking damage. /datum/component/pinata ///How much damage does an attack need to do to have a chance to drop "candy" var/minimum_damage - ///What is the likelyhood some "candy" should drop when attacked. + ///What is the likelihood some "candy" should drop when attacked. var/drop_chance ///A list of "candy" items that can be dropped when taking damage var/candy diff --git a/code/datums/components/plumbing/_plumbing.dm b/code/datums/components/plumbing/_plumbing.dm index e2f7b2880c4bd..a1be66654a2c0 100644 --- a/code/datums/components/plumbing/_plumbing.dm +++ b/code/datums/components/plumbing/_plumbing.dm @@ -94,7 +94,7 @@ process_request(dir = dir) ///check who can give us what we want, and how many each of them will give us -/datum/component/plumbing/proc/process_request(amount = MACHINE_REAGENT_TRANSFER, reagent, dir) +/datum/component/plumbing/proc/process_request(amount = MACHINE_REAGENT_TRANSFER, reagent, dir, round_robin = TRUE) //find the duct to take from var/datum/ductnet/net if(!ducts.Find(num2text(dir))) @@ -115,7 +115,7 @@ var/target_volume = reagents.total_volume + amount for(var/datum/component/plumbing/give as anything in valid_suppliers) currentRequest = (target_volume - reagents.total_volume) / suppliersLeft - give.transfer_to(src, currentRequest, reagent, net) + give.transfer_to(src, currentRequest, reagent, net, round_robin) suppliersLeft-- return TRUE @@ -134,11 +134,11 @@ return FALSE ///this is where the reagent is actually transferred and is thus the finish point of our process() -/datum/component/plumbing/proc/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net) +/datum/component/plumbing/proc/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net, round_robin = TRUE) if(!reagents || !target || !target.reagents) return FALSE - reagents.trans_to(target.recipient_reagents_holder, amount, target_id = reagent) + reagents.trans_to(target.recipient_reagents_holder, amount, target_id = reagent, methods = round_robin ? LINEAR : NONE) ///We create our luxurious piping overlays/underlays, to indicate where we do what. only called once if use_overlays = TRUE in Initialize() /datum/component/plumbing/proc/create_overlays(atom/movable/parent_movable, list/overlays) @@ -302,7 +302,7 @@ demand_connects = new_demand_connects supply_connects = new_supply_connects -///Give the direction of a pipe, and it'll return wich direction it originally was when it's object pointed SOUTH +///Give the direction of a pipe, and it'll return wich direction it originally was when its object pointed SOUTH /datum/component/plumbing/proc/get_original_direction(dir) var/atom/movable/parent_movable = parent return turn(dir, dir2angle(parent_movable.dir) - 180) @@ -343,7 +343,7 @@ parent_movable.update_appearance() if(changer) - playsound(changer, 'sound/items/ratchet.ogg', 10, TRUE) //sound + playsound(changer, 'sound/items/tools/ratchet.ogg', 10, TRUE) //sound //quickly disconnect and reconnect the network. if(active) @@ -376,46 +376,3 @@ // Defer to later frame because pixel_* is actually updated after all callbacks addtimer(CALLBACK(parent_obj, TYPE_PROC_REF(/atom/, update_appearance)), 0.1 SECONDS) - -///has one pipe input that only takes, example is manual output pipe -/datum/component/plumbing/simple_demand - demand_connects = SOUTH - -///has one pipe output that only supplies. example is liquid pump and manual input pipe -/datum/component/plumbing/simple_supply - supply_connects = SOUTH - -///input and output, like a holding tank -/datum/component/plumbing/tank - demand_connects = WEST - supply_connects = EAST - -/datum/component/plumbing/manifold - demand_connects = NORTH - supply_connects = SOUTH - -/datum/component/plumbing/manifold/change_ducting_layer(obj/caller, obj/changer, new_layer) - return - -#define READY 2 -///Baby component for the buffer plumbing machine -/datum/component/plumbing/buffer - demand_connects = WEST - supply_connects = EAST - -/datum/component/plumbing/buffer/Initialize(start=TRUE, _turn_connects=TRUE, _ducting_layer, datum/reagents/custom_receiver) - if(!istype(parent, /obj/machinery/plumbing/buffer)) - return COMPONENT_INCOMPATIBLE - - return ..() - -/datum/component/plumbing/buffer/can_give(amount, reagent, datum/ductnet/net) - var/obj/machinery/plumbing/buffer/buffer = parent - return (buffer.mode == READY) ? ..() : FALSE - -#undef READY - -///Lazily demand from any direction. Overlays won't look good, and the aquarium sprite occupies about the entire 32x32 area anyway. -/datum/component/plumbing/aquarium - demand_connects = SOUTH|NORTH|EAST|WEST - use_overlays = FALSE diff --git a/code/datums/components/plumbing/buffer.dm b/code/datums/components/plumbing/buffer.dm new file mode 100644 index 0000000000000..608d8df9fbc4b --- /dev/null +++ b/code/datums/components/plumbing/buffer.dm @@ -0,0 +1,17 @@ +#define READY 2 + +/datum/component/plumbing/buffer + demand_connects = WEST + supply_connects = EAST + +/datum/component/plumbing/buffer/Initialize(start = TRUE, _turn_connects = TRUE, _ducting_layer, datum/reagents/custom_receiver) + if(!istype(parent, /obj/machinery/plumbing/buffer)) + return COMPONENT_INCOMPATIBLE + + return ..() + +/datum/component/plumbing/buffer/can_give(amount, reagent, datum/ductnet/net) + var/obj/machinery/plumbing/buffer/buffer = parent + return (buffer.mode == READY) ? ..() : FALSE + +#undef READY diff --git a/code/datums/components/plumbing/filter.dm b/code/datums/components/plumbing/filter.dm index 30e36c057886e..76f3a7e13274e 100644 --- a/code/datums/components/plumbing/filter.dm +++ b/code/datums/components/plumbing/filter.dm @@ -22,7 +22,7 @@ if(!can_give_in_direction(direction, reagent)) return FALSE -/datum/component/plumbing/filter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net) +/datum/component/plumbing/filter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net, round_robin = TRUE) if(!reagents || !target || !target.reagents) return FALSE var/direction @@ -31,7 +31,7 @@ direction = get_original_direction(text2num(A)) break if(reagent) - reagents.trans_to(target.parent, amount, target_id = reagent) + reagents.trans_to(target.parent, amount, target_id = reagent, methods = round_robin ? LINEAR : NONE) else for(var/A in reagents.reagent_list) var/datum/reagent/R = A @@ -40,10 +40,11 @@ var/new_amount if(R.volume < amount) new_amount = amount - R.volume - reagents.trans_to(target.parent, amount, target_id = R.type) + reagents.trans_to(target.parent, amount, target_id = R.type, methods = round_robin ? LINEAR : NONE) amount = new_amount if(amount <= 0) break + ///We check if the direction and reagent are valid to give. Needed for filters since different outputs have different behaviours /datum/component/plumbing/filter/proc/can_give_in_direction(dir, reagent) var/obj/machinery/plumbing/filter/F = parent diff --git a/code/datums/components/plumbing/simple_components.dm b/code/datums/components/plumbing/simple_components.dm new file mode 100644 index 0000000000000..d1f8a4c3ca637 --- /dev/null +++ b/code/datums/components/plumbing/simple_components.dm @@ -0,0 +1,26 @@ + +///has one pipe input that only takes, example is manual output pipe +/datum/component/plumbing/simple_demand + demand_connects = SOUTH + +///has one pipe output that only supplies. example is liquid pump and manual input pipe +/datum/component/plumbing/simple_supply + supply_connects = SOUTH + +///input and output, like a holding tank +/datum/component/plumbing/tank + demand_connects = WEST + supply_connects = EAST + +///Lazily demand from any direction. Overlays won't look good, and the aquarium sprite occupies about the entire 32x32 area anyway. +/datum/component/plumbing/aquarium + demand_connects = SOUTH|NORTH|EAST|WEST + use_overlays = FALSE + +///Connects different layer of ducts +/datum/component/plumbing/manifold + demand_connects = NORTH + supply_connects = SOUTH + +/datum/component/plumbing/manifold/change_ducting_layer(obj/caller, obj/changer, new_layer) + return diff --git a/code/datums/components/plumbing/splitter.dm b/code/datums/components/plumbing/splitter.dm index 5ade1dfebc3ba..f94c78c490438 100644 --- a/code/datums/components/plumbing/splitter.dm +++ b/code/datums/components/plumbing/splitter.dm @@ -29,7 +29,7 @@ return FALSE -/datum/component/plumbing/splitter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net) +/datum/component/plumbing/splitter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net, round_robin = TRUE) var/direction for(var/A in ducts) if(ducts[A] == net) diff --git a/code/datums/components/profound_fisher.dm b/code/datums/components/profound_fisher.dm index ec839e265f2f0..9638af4a8f2c2 100644 --- a/code/datums/components/profound_fisher.dm +++ b/code/datums/components/profound_fisher.dm @@ -1,64 +1,136 @@ -///component that allows player mobs to play the fishing minigame, non-player mobs will "pretend" fish +///component that allows player mobs to play the fishing minigame without a rod equipped, non-player mobs will "pretend" fish /datum/component/profound_fisher ///the fishing rod this mob will use var/obj/item/fishing_rod/mob_fisher/our_rod - ///if controlled by an AI, the things this mob can "pretend" fish - var/list/npc_fishing_preset -/datum/component/profound_fisher/Initialize(list/npc_fishing_preset = list()) - if(!isliving(parent)) - return - our_rod = new(parent) - src.npc_fishing_preset = npc_fishing_preset - ADD_TRAIT(parent, TRAIT_PROFOUND_FISHER, REF(src)) +/datum/component/profound_fisher/Initialize(our_rod) + var/isgloves = istype(parent, /obj/item/clothing/gloves) + if(!isliving(parent) && !isgloves) + return COMPONENT_INCOMPATIBLE + src.our_rod = our_rod || new(parent) + src.our_rod.internal = TRUE + ADD_TRAIT(src.our_rod, TRAIT_NOT_BARFABLE, REF(src)) + RegisterSignal(src.our_rod, COMSIG_QDELETING, PROC_REF(on_rod_qdel)) + + if(!isgloves) + RegisterSignal(parent, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) + else + var/obj/item/clothing/gloves = parent + RegisterSignal(gloves, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(gloves, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(gloves, COMSIG_ATOM_ATTACK_HAND_SECONDARY, PROC_REF(open_rod_menu)) + RegisterSignal(gloves, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + gloves.flags_1 |= HAS_CONTEXTUAL_SCREENTIPS_1 + RegisterSignal(gloves, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, PROC_REF(on_requesting_context_from_item)) + var/mob/living/wearer = gloves.loc + if(istype(wearer) && wearer.get_item_by_slot(ITEM_SLOT_GLOVES) == gloves) + RegisterSignal(wearer, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(on_unarmed_attack)) + +/datum/component/profound_fisher/proc/on_requesting_context_from_item(datum/source, list/context, obj/item/held_item, mob/living/user) + SIGNAL_HANDLER + if(isnull(held_item) && user.contains(parent)) + context[SCREENTIP_CONTEXT_RMB] = "Open rod UI" + return CONTEXTUAL_SCREENTIP_SET -/datum/component/profound_fisher/RegisterWithParent() - RegisterSignal(parent, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(pre_attack)) +/datum/component/profound_fisher/proc/on_examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + examine_list += span_info("When [EXAMINE_HINT("held")] or [EXAMINE_HINT("equipped")], [EXAMINE_HINT("right-click")] with a empty hand to open the integrated fishing rod interface.") + examine_list += span_tinynoticeital("To fish, you need to turn combat mode off.") -/datum/component/profound_fisher/UnregisterFromParent() - UnregisterSignal(parent, COMSIG_HOSTILE_PRE_ATTACKINGTARGET) - REMOVE_TRAIT(parent, TRAIT_PROFOUND_FISHER, REF(src)) +/datum/component/profound_fisher/proc/on_rod_qdel(datum/source) + SIGNAL_HANDLER + qdel(src) /datum/component/profound_fisher/Destroy() - QDEL_NULL(our_rod) + our_rod.internal = FALSE + UnregisterSignal(our_rod, COMSIG_QDELETING) + REMOVE_TRAIT(our_rod, TRAIT_NOT_BARFABLE, REF(src)) + our_rod = null return ..() -/datum/component/profound_fisher/proc/pre_attack(datum/source, atom/target) +/datum/component/profound_fisher/proc/on_equip(obj/item/source, atom/equipper, slot) SIGNAL_HANDLER + if(slot != ITEM_SLOT_GLOVES) + return + RegisterSignal(equipper, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(on_unarmed_attack)) - if(!HAS_TRAIT(target, TRAIT_FISHING_SPOT)) - return NONE - var/mob/living/living_parent = parent - if(!living_parent.CanReach(target)) - return NONE - if(living_parent.client) - INVOKE_ASYNC(our_rod, TYPE_PROC_REF(/obj/item, melee_attack_chain), parent, target) +/datum/component/profound_fisher/proc/open_rod_menu(datum/source, mob/user, list/modifiers) + SIGNAL_HANDLER + INVOKE_ASYNC(our_rod, TYPE_PROC_REF(/datum, ui_interact), user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/datum/component/profound_fisher/proc/on_drop(datum/source, atom/dropper) + SIGNAL_HANDLER + UnregisterSignal(dropper, COMSIG_LIVING_UNARMED_ATTACK) + REMOVE_TRAIT(dropper, TRAIT_PROFOUND_FISHER, TRAIT_GENERIC) //this will cancel the current minigame if the fishing rod was internal. + +/datum/component/profound_fisher/proc/on_unarmed_attack(mob/living/source, atom/attack_target, proximity_flag, list/modifiers) + SIGNAL_HANDLER + if(!should_fish_on(source, attack_target)) + return + if(source.client) + INVOKE_ASYNC(src, PROC_REF(begin_fishing), source, attack_target) else - INVOKE_ASYNC(src, PROC_REF(pretend_fish), target) + INVOKE_ASYNC(src, PROC_REF(pretend_fish), source, attack_target) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/component/profound_fisher/proc/pre_attack(mob/living/source, atom/target) + SIGNAL_HANDLER + + if(!should_fish_on(source, target)) + return + if(source.client) + INVOKE_ASYNC(src, PROC_REF(begin_fishing), source, target) + else + INVOKE_ASYNC(src, PROC_REF(pretend_fish), source, target) return COMPONENT_HOSTILE_NO_ATTACK -/datum/component/profound_fisher/proc/pretend_fish(atom/target) - var/fishing_type - for(var/type in npc_fishing_preset) - if(!istype(target, type)) - continue - fishing_type = npc_fishing_preset[type] - break - var/datum/fish_source/fish_spot = GLOB.preset_fish_sources[fishing_type] +/datum/component/profound_fisher/proc/should_fish_on(mob/living/user, atom/target) + if(!HAS_TRAIT(target, TRAIT_FISHING_SPOT) || GLOB.fishing_challenges_by_user[user]) + return FALSE + if(user.combat_mode || !user.CanReach(target)) + return FALSE + return TRUE + +/datum/component/profound_fisher/proc/begin_fishing(mob/living/user, atom/target) + RegisterSignal(user, COMSIG_MOB_BEGIN_FISHING, PROC_REF(actually_fishing_with_internal_rod)) + our_rod.melee_attack_chain(user, target) + UnregisterSignal(user, COMSIG_MOB_BEGIN_FISHING) + +/datum/component/profound_fisher/proc/actually_fishing_with_internal_rod(datum/source) + SIGNAL_HANDLER + ADD_TRAIT(source, TRAIT_PROFOUND_FISHER, REF(parent)) + RegisterSignal(source, COMSIG_MOB_COMPLETE_FISHING, PROC_REF(remove_profound_fisher)) + +/datum/component/profound_fisher/proc/remove_profound_fisher(datum/source) + SIGNAL_HANDLER + REMOVE_TRAIT(source, TRAIT_PROFOUND_FISHER, TRAIT_GENERIC) + UnregisterSignal(source, COMSIG_MOB_COMPLETE_FISHING) + +/datum/component/profound_fisher/proc/pretend_fish(mob/living/source, atom/target) + if(DOING_INTERACTION_WITH_TARGET(source, target)) + return + var/list/fish_spot_container[NPC_FISHING_SPOT] + SEND_SIGNAL(target, COMSIG_NPC_FISHING, fish_spot_container) + var/datum/fish_source/fish_spot = fish_spot_container[NPC_FISHING_SPOT] if(isnull(fish_spot)) return null - var/obj/effect/fishing_lure/lure = new(get_turf(target), target) - var/mob/living/living_parent = parent - if(!do_after(living_parent, 10 SECONDS, target = target)) - qdel(lure) - return - var/reward_loot = fish_spot.roll_reward(our_rod, parent) - if(ispath(reward_loot)) - fish_spot.dispense_reward(reward_loot, parent, target) - qdel(lure) + var/obj/effect/fishing_float/float = new(get_turf(target), target) + playsound(float, 'sound/effects/splash.ogg', 100) + if(!PERFORM_ALL_TESTS(fish_sources)) + var/happiness_percentage = source.ai_controller?.blackboard[BB_BASIC_HAPPINESS] * 0.01 + var/fishing_speed = 10 SECONDS - round(4 SECONDS * happiness_percentage) + if(!do_after(source, fishing_speed, target = target) && !QDELETED(fish_spot)) + qdel(float) + return + var/reward_loot = fish_spot.roll_reward(our_rod, source) + fish_spot.dispense_reward(reward_loot, source, target) + playsound(float, 'sound/effects/bigsplash.ogg', 100) + qdel(float) /obj/item/fishing_rod/mob_fisher - display_fishing_line = FALSE line = /obj/item/fishing_line/reinforced - - + bait = /obj/item/food/bait/doughball/synthetic/unconsumable + resistance_flags = INDESTRUCTIBLE + reel_overlay = null + show_in_wiki = FALSE //abstract fishing rod diff --git a/code/datums/components/ranged_attacks.dm b/code/datums/components/ranged_attacks.dm index 2f9c6cb822da5..58883ce58111f 100644 --- a/code/datums/components/ranged_attacks.dm +++ b/code/datums/components/ranged_attacks.dm @@ -20,7 +20,7 @@ /datum/component/ranged_attacks/Initialize( casing_type, projectile_type, - projectile_sound = 'sound/weapons/gun/pistol/shot.ogg', + projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg', burst_shots, burst_intervals = 0.2 SECONDS, cooldown_time = 3 SECONDS, diff --git a/code/datums/components/regenerative_shield.dm b/code/datums/components/regenerative_shield.dm index 5ecf670820381..34d305b27e13f 100644 --- a/code/datums/components/regenerative_shield.dm +++ b/code/datums/components/regenerative_shield.dm @@ -59,7 +59,7 @@ if(damage >= damage_threshold || number_of_hits <= 0) return NONE - playsound(get_turf(parent), 'sound/weapons/tap.ogg', 20) + playsound(get_turf(parent), 'sound/items/weapons/tap.ogg', 20) new /obj/effect/temp_visual/guardian/phase/out(get_turf(parent)) number_of_hits = max(0, number_of_hits - 1) if(number_of_hits <= 0) @@ -71,14 +71,14 @@ for(var/obj/effect/my_effect as anything in shield_overlays) animate(my_effect, alpha = 0, time = 3 SECONDS) my_effect.remove_filter(SHIELD_FILTER) - playsound(parent, 'sound/mecha/mech_shield_drop.ogg', 20) + playsound(parent, 'sound/vehicles/mecha/mech_shield_drop.ogg', 20) /datum/component/regenerative_shield/proc/enable_shield() number_of_hits = initial(number_of_hits) for(var/obj/effect/my_effect as anything in shield_overlays) animate(my_effect, alpha = 255, time = 3 SECONDS) addtimer(CALLBACK(src, PROC_REF(apply_filter_effects), my_effect), 5 SECONDS) - playsound(parent, 'sound/mecha/mech_shield_raise.ogg', 20) + playsound(parent, 'sound/vehicles/mecha/mech_shield_raise.ogg', 20) /datum/component/regenerative_shield/proc/apply_filter_effects(obj/effect/new_effect) if(isnull(new_effect)) diff --git a/code/datums/components/religious_tool.dm b/code/datums/components/religious_tool.dm index 37b62d1aa0e3c..969e6a9a3cec1 100644 --- a/code/datums/components/religious_tool.dm +++ b/code/datums/components/religious_tool.dm @@ -159,15 +159,15 @@ /datum/component/religious_tool/proc/perform_rite(mob/living/user, path) if(user.mind.holy_role < HOLY_ROLE_PRIEST) if(user.mind.holy_role == HOLY_ROLE_DEACON) - to_chat(user, "You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.") + to_chat(user, span_warning("You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.")) else - to_chat(user, "You are not holy, and therefore cannot perform rites.") + to_chat(user, span_warning("You are not holy, and therefore cannot perform rites.")) return if(rite_types_allowlist && !is_path_in_list(path, rite_types_allowlist)) to_chat(user, span_warning("This cannot perform that kind of rite.")) return if(performing_rite) - to_chat(user, "There is a rite currently being performed here already.") + to_chat(user, span_notice("There is a rite currently being performed here already.")) return if(!user.can_perform_action(parent, FORBID_TELEKINESIS_REACH)) to_chat(user,span_warning("You are not close enough to perform the rite.")) diff --git a/code/datums/components/rename.dm b/code/datums/components/rename.dm index ad98c861ddeed..31e1629f314f8 100644 --- a/code/datums/components/rename.dm +++ b/code/datums/components/rename.dm @@ -26,6 +26,7 @@ src.custom_name = custom_name src.custom_desc = custom_desc apply_rename() + ADD_TRAIT(parent, TRAIT_WAS_RENAMED, type) /** This proc will fire after the parent's name or desc is changed with a pen, which is trying to apply another rename component. @@ -62,4 +63,5 @@ /datum/component/rename/Destroy() revert_rename() + REMOVE_TRAIT(parent, TRAIT_WAS_RENAMED, type) return ..() diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index 7ead11012b024..e34e763ae8397 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -9,7 +9,6 @@ /datum/component/riding dupe_mode = COMPONENT_DUPE_UNIQUE - var/last_move_diagonal = FALSE ///tick delay between movements, lower = faster, higher = slower var/vehicle_move_delay = 2 @@ -196,7 +195,7 @@ if(diroffsets.len == 3) buckled_mob.layer = diroffsets[3] break dir_loop - var/list/static/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) + var/static/list/default_vehicle_pixel_offsets = list(TEXT_NORTH = list(0, 0), TEXT_SOUTH = list(0, 0), TEXT_EAST = list(0, 0), TEXT_WEST = list(0, 0)) var/px = default_vehicle_pixel_offsets[AM_dir] var/py = default_vehicle_pixel_offsets[AM_dir] if(directional_vehicle_offsets[AM_dir]) diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index 50798fce50157..7a18e923afebe 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -7,7 +7,9 @@ var/can_use_abilities = FALSE /// shall we require riders to go through the riding minigame if they arent in our friends list var/require_minigame = FALSE - /// list of blacklisted abilities that cant be shared + /// unsharable abilities that we will force to be shared anyway + var/list/override_unsharable_abilities = list() + /// abilities that are always blacklisted from sharing var/list/blacklist_abilities = list() /datum/component/riding/creature/Initialize(mob/living/riding_mob, force = FALSE, ride_check_flags = NONE, potion_boost = FALSE) @@ -58,10 +60,10 @@ if(living_parent.body_position != STANDING_UP) // if we move while on the ground, the rider falls off . = FALSE // for piggybacks and (redundant?) borg riding, check if the rider is stunned/restrained - else if((ride_check_flags & RIDER_NEEDS_ARMS) && (HAS_TRAIT(rider, TRAIT_RESTRAINED) || rider.incapacitated(IGNORE_RESTRAINTS|IGNORE_GRAB))) + else if((ride_check_flags & RIDER_NEEDS_ARMS) && (HAS_TRAIT(rider, TRAIT_RESTRAINED) || INCAPACITATED_IGNORING(rider, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB))) . = FALSE // for fireman carries, check if the ridden is stunned/restrained - else if((ride_check_flags & CARRIER_NEEDS_ARM) && (HAS_TRAIT(living_parent, TRAIT_RESTRAINED) || living_parent.incapacitated(IGNORE_RESTRAINTS|IGNORE_GRAB))) + else if((ride_check_flags & CARRIER_NEEDS_ARM) && (HAS_TRAIT(living_parent, TRAIT_RESTRAINED) || INCAPACITATED_IGNORING(living_parent, INCAPABLE_RESTRAINTS|INCAPABLE_GRAB))) . = FALSE else if((ride_check_flags & JUST_FRIEND_RIDERS) && !(living_parent.faction.Find(REF(rider)))) . = FALSE @@ -105,9 +107,7 @@ to_chat(user, span_warning("You need a [initial(key.name)] to ride [movable_parent]!")) return COMPONENT_DRIVER_BLOCK_MOVE var/mob/living/living_parent = parent - var/turf/next = get_step(living_parent, direction) step(living_parent, direction) - last_move_diagonal = ((direction & (direction - 1)) && (living_parent.loc == next)) var/modified_move_cooldown = vehicle_move_cooldown var/modified_move_delay = vehicle_move_delay if(ishuman(user) && HAS_TRAIT(user, TRAIT_ROUGHRIDER)) // YEEHAW! @@ -133,7 +133,7 @@ if(SANITY_LEVEL_INSANE) modified_move_cooldown *= 1.2 modified_move_delay *= 1.2 - COOLDOWN_START(src, vehicle_move_cooldown = modified_move_cooldown, (last_move_diagonal ? 2 : 1) * modified_move_delay) + COOLDOWN_START(src, vehicle_move_cooldown = modified_move_cooldown, modified_move_delay) return ..() /// Yeets the rider off, used for animals and cyborgs, redefined for humans who shove their piggyback rider off @@ -170,6 +170,8 @@ for(var/datum/action/action as anything in ridden_creature.actions) if(is_type_in_list(action, blacklist_abilities)) continue + if(!action.can_be_shared && !is_type_in_list(action, override_unsharable_abilities)) + continue action.GiveAction(rider) /// Takes away the riding parent's abilities from the rider @@ -387,7 +389,7 @@ if(human_user && is_clown_job(human_user.mind?.assigned_role)) // there's a new sheriff in town - playsound(movable_parent, 'sound/creatures/pony/clown_gallup.ogg', 50) + playsound(movable_parent, 'sound/mobs/non-humanoids/pony/clown_gallup.ogg', 50) COOLDOWN_START(src, pony_trot_cooldown, 500 MILLISECONDS) /datum/component/riding/creature/bear/handle_specials() @@ -506,7 +508,6 @@ /datum/component/riding/creature/leaper can_force_unbuckle = FALSE can_use_abilities = TRUE - blacklist_abilities = list(/datum/action/cooldown/toggle_seethrough) ride_check_flags = JUST_FRIEND_RIDERS /datum/component/riding/creature/leaper/handle_specials() @@ -515,9 +516,9 @@ /datum/component/riding/creature/leaper/Initialize(mob/living/riding_mob, force = FALSE, ride_check_flags = NONE, potion_boost = FALSE) . = ..() - RegisterSignal(riding_mob, COMSIG_MOB_POINTED, PROC_REF(attack_pointed)) + RegisterSignal(riding_mob, COMSIG_MOVABLE_POINTED, PROC_REF(attack_pointed)) -/datum/component/riding/creature/leaper/proc/attack_pointed(mob/living/rider, atom/pointed) +/datum/component/riding/creature/leaper/proc/attack_pointed(mob/living/rider, atom/pointed, obj/effect/temp_visual/point/point) SIGNAL_HANDLER if(!isclosedturf(pointed)) return @@ -529,7 +530,7 @@ /datum/component/riding/leaper/handle_unbuckle(mob/living/rider) . = ..() - UnregisterSignal(rider, COMSIG_MOB_POINTED) + UnregisterSignal(rider, COMSIG_MOVABLE_POINTED) /datum/component/riding/creature/raptor require_minigame = TRUE diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm index 561d0c87218d3..3c55eae46688a 100644 --- a/code/datums/components/riding/riding_vehicle.dm +++ b/code/datums/components/riding/riding_vehicle.dm @@ -15,19 +15,19 @@ if(!keycheck(rider)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "[movable_parent] has no key inserted!") + to_chat(rider, span_warning("[movable_parent] has no key inserted!")) return COMPONENT_RIDDEN_STOP_Z_MOVE if(HAS_TRAIT(rider, TRAIT_INCAPACITATED)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "You cannot operate [movable_parent] right now!") + to_chat(rider, span_warning("You cannot operate [movable_parent] right now!")) return COMPONENT_RIDDEN_STOP_Z_MOVE if(ride_check_flags & RIDER_NEEDS_LEGS && HAS_TRAIT(rider, TRAIT_FLOORED)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "You can't seem to manage that while unable to stand up enough to move [movable_parent]...") + to_chat(rider, span_warning("You can't seem to manage that while unable to stand up enough to move [movable_parent]...")) return COMPONENT_RIDDEN_STOP_Z_MOVE if(ride_check_flags & RIDER_NEEDS_ARMS && HAS_TRAIT(rider, TRAIT_HANDS_BLOCKED)) if(z_move_flags & ZMOVE_FEEDBACK) - to_chat(rider, "You can't seem to hold onto [movable_parent] to move it...") + to_chat(rider, span_warning("You can't seem to hold onto [movable_parent] to move it...")) return COMPONENT_RIDDEN_STOP_Z_MOVE return COMPONENT_RIDDEN_ALLOW_Z_MOVE @@ -97,8 +97,7 @@ return step(movable_parent, direction) - last_move_diagonal = ((direction & (direction - 1)) && (movable_parent.loc == next)) - COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal? 2 : 1) * vehicle_move_delay) + COOLDOWN_START(src, vehicle_move_cooldown, vehicle_move_delay) if(QDELETED(src)) return @@ -243,14 +242,53 @@ /datum/component/riding/vehicle/scooter/skateboard/hover/proc/hover_check(is_moving = FALSE) var/atom/movable/movable = parent if(!is_space_or_openspace(movable.loc)) - override_allow_spacemove = TRUE + on_hover_enabled() return var/turf/open/our_turf = movable.loc - var/turf/turf_below = GET_TURF_BELOW(our_turf) - if(our_turf.zPassOut(DOWN) && (isnull(turf_below) || (is_space_or_openspace(turf_below) && turf_below.zPassIn(DOWN) && turf_below.zPassOut(DOWN)))) - override_allow_spacemove = FALSE - if(turf_below) - our_turf.zFall(movable, falling_from_move = is_moving) + var/turf/below = GET_TURF_BELOW(our_turf) + + if(!check_space_turf(our_turf)) + on_hover_fail() + return + //it's open space without support and the turf below is null or space without lattice, or if it'd fall several z-levels. + if(isopenspaceturf(our_turf) && our_turf.zPassOut(DOWN) && (isnull(below) || !check_space_turf(below) || (below.zPassOut(DOWN) && below.zPassIn(DOWN)))) + on_hover_fail(our_turf, below, is_moving) + return + on_hover_enabled() + +///Part of the hover_check proc that returns false if it's a space turf without lattice or such. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/check_space_turf(turf/turf) + if(!isspaceturf(turf)) + return TRUE + for(var/obj/object in turf.contents) + if(object.obj_flags & BLOCK_Z_OUT_DOWN) + return TRUE + return FALSE + +///Called by hover_check() when the hoverboard is on a valid turf. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/on_hover_enabled() + override_allow_spacemove = TRUE + +///Called by hover_check() when the hoverboard is on space or open space turf without a support underneath it. +/datum/component/riding/vehicle/scooter/skateboard/hover/proc/on_hover_fail(turf/open/our_turf, turf/turf_below, is_moving) + override_allow_spacemove = FALSE + if(turf_below) + our_turf.zFall(parent, falling_from_move = is_moving) + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy + var/is_slown_down = FALSE + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy/on_hover_enabled() + if(!is_slown_down) + return + is_slown_down = FALSE + vehicle_move_delay -= 1 + +/datum/component/riding/vehicle/scooter/skateboard/hover/holy/on_hover_fail(turf/open/our_turf, turf/turf_below, is_moving) + if(is_slown_down) + return + is_slown_down = TRUE + vehicle_move_delay += 1 /datum/component/riding/vehicle/scooter/skateboard/wheelys vehicle_move_delay = 0 diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm index 6ff8197e09319..40df294af12a8 100644 --- a/code/datums/components/rotation.dm +++ b/code/datums/components/rotation.dm @@ -76,7 +76,7 @@ var/obj/rotated_obj = parent rotated_obj.setDir(turn(rotated_obj.dir, degrees)) if(rotation_flags & ROTATION_REQUIRE_WRENCH) - playsound(rotated_obj, 'sound/items/ratchet.ogg', 50, TRUE) + playsound(rotated_obj, 'sound/items/tools/ratchet.ogg', 50, TRUE) post_rotation.Invoke(user, degrees) diff --git a/code/datums/components/scope.dm b/code/datums/components/scope.dm index 087eb0c06d24c..626668a48e070 100644 --- a/code/datums/components/scope.dm +++ b/code/datums/components/scope.dm @@ -164,14 +164,16 @@ if(HAS_TRAIT(user, TRAIT_USER_SCOPED)) user.balloon_alert(user, "already zoomed!") return - user.playsound_local(parent, 'sound/weapons/scope.ogg', 75, TRUE) + user.playsound_local(parent, 'sound/items/weapons/scope.ogg', 75, TRUE) tracker = user.overlay_fullscreen("scope", /atom/movable/screen/fullscreen/cursor_catcher/scope, isgun(parent)) tracker.assign_to_mob(user, range_modifier) tracker_owner_ckey = user.ckey if(user.is_holding(parent)) RegisterSignals(user, list(COMSIG_MOB_SWAP_HANDS, COMSIG_QDELETING), PROC_REF(stop_zooming)) + RegisterSignal(user, COMSIG_ATOM_ENTERING, PROC_REF(on_enter_new_loc)) else // The item is likely worn (eg. mothic cap) RegisterSignal(user, COMSIG_QDELETING, PROC_REF(stop_zooming)) + RegisterSignal(user, COMSIG_ATOM_ENTERING, PROC_REF(on_enter_new_loc)) var/static/list/capacity_signals = list( COMSIG_LIVING_STATUS_KNOCKDOWN, COMSIG_LIVING_STATUS_PARALYZE, @@ -182,6 +184,13 @@ ADD_TRAIT(user, TRAIT_USER_SCOPED, REF(src)) return TRUE +///Stop scoping if the `newloc` we move to is not a turf +/datum/component/scope/proc/on_enter_new_loc(datum/source, atom/newloc, atom/old_loc, list/atom/old_locs) + SIGNAL_HANDLER + + if(!isturf(newloc)) + stop_zooming(tracker.owner) + /datum/component/scope/proc/on_incapacitated(mob/living/source, amount = 0, ignore_canstun = FALSE) SIGNAL_HANDLER @@ -207,10 +216,11 @@ COMSIG_LIVING_STATUS_STUN, COMSIG_MOB_SWAP_HANDS, COMSIG_QDELETING, + COMSIG_ATOM_ENTERING, )) REMOVE_TRAIT(user, TRAIT_USER_SCOPED, REF(src)) - user.playsound_local(parent, 'sound/weapons/scope.ogg', 75, TRUE, frequency = -1) + user.playsound_local(parent, 'sound/items/weapons/scope.ogg', 75, TRUE, frequency = -1) user.clear_fullscreen("scope") // if the client has ended up in another mob, find that mob so we can fix their cursor @@ -246,18 +256,18 @@ if(isnull(icon_x)) icon_x = text2num(LAZYACCESS(modifiers, ICON_X)) if(isnull(icon_x)) - icon_x = view_list[1]*world.icon_size/2 + icon_x = view_list[1]*ICON_SIZE_X/2 var/icon_y = text2num(LAZYACCESS(modifiers, VIS_Y)) if(isnull(icon_y)) icon_y = text2num(LAZYACCESS(modifiers, ICON_Y)) if(isnull(icon_y)) - icon_y = view_list[2]*world.icon_size/2 - var/x_cap = range_modifier * view_list[1]*world.icon_size / 2 - var/y_cap = range_modifier * view_list[2]*world.icon_size / 2 - var/uncapped_x = round(range_modifier * (icon_x - view_list[1]*world.icon_size/2) * MOUSE_POINTER_OFFSET_MULT) - var/uncapped_y = round(range_modifier * (icon_y - view_list[2]*world.icon_size/2) * MOUSE_POINTER_OFFSET_MULT) + icon_y = view_list[2]*ICON_SIZE_Y/2 + var/x_cap = range_modifier * view_list[1]*ICON_SIZE_X / 2 + var/y_cap = range_modifier * view_list[2]*ICON_SIZE_Y / 2 + var/uncapped_x = round(range_modifier * (icon_x - view_list[1]*ICON_SIZE_X/2) * MOUSE_POINTER_OFFSET_MULT) + var/uncapped_y = round(range_modifier * (icon_y - view_list[2]*ICON_SIZE_Y/2) * MOUSE_POINTER_OFFSET_MULT) given_x = clamp(uncapped_x, -x_cap, x_cap) given_y = clamp(uncapped_y, -y_cap, y_cap) - given_turf = locate(owner.x+round(given_x/world.icon_size, 1),owner.y+round(given_y/world.icon_size, 1),owner.z) + given_turf = locate(owner.x+round(given_x/ICON_SIZE_X, 1),owner.y+round(given_y/ICON_SIZE_Y, 1),owner.z) #undef MOUSE_POINTER_OFFSET_MULT diff --git a/code/datums/components/seclight_attachable.dm b/code/datums/components/seclight_attachable.dm index b1d4aebc93f83..6b3991c9c5e3c 100644 --- a/code/datums/components/seclight_attachable.dm +++ b/code/datums/components/seclight_attachable.dm @@ -97,8 +97,8 @@ RegisterSignal(parent, COMSIG_ITEM_UI_ACTION_CLICK, PROC_REF(on_action_click)) RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby)) RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(parent, COMSIG_ATOM_SABOTEUR_ACT, PROC_REF(on_hit_by_saboteur)) RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(on_parent_deleted)) - RegisterSignal(parent, COMSIG_HIT_BY_SABOTEUR, PROC_REF(on_saboteur)) /datum/component/seclite_attachable/UnregisterFromParent() UnregisterSignal(parent, list( @@ -110,6 +110,7 @@ COMSIG_ITEM_UI_ACTION_CLICK, COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_EXAMINE, + COMSIG_ATOM_SABOTEUR_ACT, COMSIG_QDELETING, )) @@ -296,8 +297,8 @@ // but that's the downside of using icon states over overlays. source.icon_state = base_state -/// Signal proc for [COMSIG_HIT_BY_SABOTEUR] that turns the light off for a few seconds. -/datum/component/seclite_attachable/proc/on_saboteur(datum/source, disrupt_duration) - SIGNAL_HANDLER +//turns the light off for a few seconds. +/datum/component/seclite_attachable/proc/on_hit_by_saboteur(datum/source, disrupt_duration) . = light.on_saboteur(source, disrupt_duration) update_light() + return . diff --git a/code/datums/components/seethrough_mob.dm b/code/datums/components/seethrough_mob.dm index bae87faf61583..b6951c5489b6d 100644 --- a/code/datums/components/seethrough_mob.dm +++ b/code/datums/components/seethrough_mob.dm @@ -122,6 +122,7 @@ background_icon_state = "bg_alien" cooldown_time = 1 SECONDS melee_cooldown_time = 0 + can_be_shared = FALSE /datum/action/cooldown/toggle_seethrough/Remove(mob/remove_from) var/datum/component/seethrough_mob/transparency = target diff --git a/code/datums/components/self_ignition.dm b/code/datums/components/self_ignition.dm new file mode 100644 index 0000000000000..db03b62d17275 --- /dev/null +++ b/code/datums/components/self_ignition.dm @@ -0,0 +1,60 @@ +/// Component used by plasmeme limbs. Ignites the owner and prevents fire armor from working if they're exposed to oxygen +/datum/component/self_ignition + /// How many fire stacks do we apply per second? + /// Default value is 0.25 / 6 (default amount of limbs) + var/fire_stacks_per_second = 0.0416 + /// How many fire stacks are removed when we're exposed to hypernoblium + /// Default value is 10 / 6 (default amount of limbs) + var/fire_stacks_loss = 1.66 + +/datum/component/self_ignition/Initialize(fire_stacks_per_second = 0.0416, fire_stacks_loss = 1.66) + . = ..() + if(!isbodypart(parent)) + return COMPONENT_INCOMPATIBLE + src.fire_stacks_per_second = fire_stacks_per_second + src.fire_stacks_loss = fire_stacks_loss + +/datum/component/self_ignition/RegisterWithParent() + RegisterSignal(parent, COMSIG_BODYPART_ATTACHED, PROC_REF(on_attached)) + RegisterSignal(parent, COMSIG_BODYPART_REMOVED, PROC_REF(on_detached)) + +/datum/component/self_ignition/proc/on_attached(datum/source, mob/living/carbon/human/new_owner) + SIGNAL_HANDLER + RegisterSignal(new_owner, COMSIG_LIVING_LIFE, PROC_REF(on_life)) + +/datum/component/self_ignition/proc/on_detached(datum/source, mob/living/carbon/human/old_owner) + SIGNAL_HANDLER + UnregisterSignal(old_owner, COMSIG_LIVING_LIFE) + REMOVE_TRAIT(old_owner, TRAIT_IGNORE_FIRE_PROTECTION, REF(parent)) + +/datum/component/self_ignition/proc/on_life(mob/living/carbon/human/owner, seconds_per_tick, times_fired) + SIGNAL_HANDLER + + if (HAS_TRAIT(owner, TRAIT_STASIS)) + return + + if (owner.is_atmos_sealed(additional_flags = PLASMAMAN_PREVENT_IGNITION, check_hands = TRUE, ignore_chest_pressureprot = TRUE)) + if (!owner.on_fire) + REMOVE_TRAIT(owner, TRAIT_IGNORE_FIRE_PROTECTION, REF(parent)) + return + + var/datum/gas_mixture/environment = owner.loc.return_air() + if (!environment?.total_moles()) + return + + if(environment.gases[/datum/gas/hypernoblium] && environment.gases[/datum/gas/hypernoblium][MOLES] >= 5) + if(owner.on_fire && owner.fire_stacks > 0) + owner.adjust_fire_stacks(-fire_stacks_loss * seconds_per_tick) + return + + if (HAS_TRAIT(owner, TRAIT_NOFIRE)) + return + + ADD_TRAIT(owner, TRAIT_IGNORE_FIRE_PROTECTION, REF(parent)) + + if(!environment.gases[/datum/gas/oxygen] || environment.gases[/datum/gas/oxygen][MOLES] < 1) //Same threshhold that extinguishes fire + return + + owner.adjust_fire_stacks(fire_stacks_per_second * seconds_per_tick) + if(owner.ignite_mob()) + owner.visible_message(span_danger("[owner]'s body reacts with the atmosphere and bursts into flames!"), span_userdanger("Your body reacts with the atmosphere and bursts into flame!")) diff --git a/code/datums/components/shell.dm b/code/datums/components/shell.dm index 2e9ee73c32a06..bb3054aea6ae6 100644 --- a/code/datums/components/shell.dm +++ b/code/datums/components/shell.dm @@ -173,7 +173,7 @@ if(istype(item, /obj/item/inducer)) var/obj/item/inducer/inducer = item - INVOKE_ASYNC(inducer, TYPE_PROC_REF(/obj/item, attack_atom), attached_circuit || parent, attacker, list()) + INVOKE_ASYNC(inducer, TYPE_PROC_REF(/obj/item, interact_with_atom), attached_circuit || parent, attacker, list()) return COMPONENT_NO_AFTERATTACK if(attached_circuit) diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm index da83c4ad2d29d..53fc330806245 100644 --- a/code/datums/components/shielded.dm +++ b/code/datums/components/shielded.dm @@ -101,7 +101,7 @@ var/obj/item/item_parent = parent COOLDOWN_START(src, charge_add_cd, charge_increment_delay) adjust_charge(charge_recovery) // set the number of charges to current + recovery per increment, clamped from zero to max_charges - playsound(item_parent, 'sound/magic/charge.ogg', 50, TRUE) + playsound(item_parent, 'sound/effects/magic/charge.ogg', 50, TRUE) if(current_charges == max_charges) playsound(item_parent, 'sound/machines/ding.ogg', 50, TRUE) diff --git a/code/datums/components/singularity.dm b/code/datums/components/singularity.dm index 14aaedff7172a..0cd64d829a2fd 100644 --- a/code/datums/components/singularity.dm +++ b/code/datums/components/singularity.dm @@ -373,7 +373,7 @@ for(var/mob/living/target as anything in GLOB.mob_living_list) if(target.z != atom_parent.z) continue - if(target.status_effects & GODMODE) + if(HAS_TRAIT(target, TRAIT_GODMODE)) continue var/distance_from_target = get_dist(target, atom_parent) if(distance_from_target < closest_distance) diff --git a/code/datums/components/sisyphus_awarder.dm b/code/datums/components/sisyphus_awarder.dm index 2a18a2889fc65..854ed26355f25 100644 --- a/code/datums/components/sisyphus_awarder.dm +++ b/code/datums/components/sisyphus_awarder.dm @@ -65,4 +65,4 @@ "reverse_dropoff_coords" = list(bottom_of_the_hill.x, bottom_of_the_hill.y, bottom_of_the_hill.z), )) - SEND_SOUND(sisyphus, 'sound/ambience/music/sisyphus/sisyphus.ogg') + SEND_SOUND(sisyphus, 'sound/music/sisyphus/sisyphus.ogg') diff --git a/code/datums/components/sitcomlaughter.dm b/code/datums/components/sitcomlaughter.dm index 62e9276b1d75d..bc69a08b80c9d 100644 --- a/code/datums/components/sitcomlaughter.dm +++ b/code/datums/components/sitcomlaughter.dm @@ -1,10 +1,10 @@ /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_POST_TILT_AND_CRUSH, COMSIG_MOB_CLUMSY_SHOOT_FOOT) + signals = list(COMSIG_MOB_HIT_BY_SPLAT, COMSIG_ON_CARBON_SLIP, COMSIG_POST_TILT_AND_CRUSH, COMSIG_MOB_CLUMSY_SHOOT_FOOT) proctype = PROC_REF(EngageInComedy) mobtype = /mob/living ///Sounds used for when user has a sitcom action occur - var/list/comedysounds = list('sound/items/SitcomLaugh1.ogg', 'sound/items/SitcomLaugh2.ogg', 'sound/items/SitcomLaugh3.ogg') + var/list/comedysounds = list('sound/items/sitcom_laugh/sitcomLaugh1.ogg', 'sound/items/sitcom_laugh/sitcomLaugh2.ogg', 'sound/items/sitcom_laugh/sitcomLaugh3.ogg') ///Invoked in EngageInComedy is ran var/datum/callback/post_comedy_callback ///Cooldown for inbetween laughs diff --git a/code/datums/components/slime_friends.dm b/code/datums/components/slime_friends.dm new file mode 100644 index 0000000000000..d2b751d092ea9 --- /dev/null +++ b/code/datums/components/slime_friends.dm @@ -0,0 +1,61 @@ +/datum/component/slime_friends + /// Slime maker timer. + var/timer + /// List to pick from when we need slime colour. + var/static/colours = list( + /datum/slime_type/adamantine, + /datum/slime_type/black, + /datum/slime_type/blue, + /datum/slime_type/bluespace, + /datum/slime_type/cerulean, + /datum/slime_type/darkblue, + /datum/slime_type/darkpurple, + /datum/slime_type/gold, + /datum/slime_type/green, + /datum/slime_type/grey, + /datum/slime_type/lightpink, + /datum/slime_type/metal, + /datum/slime_type/oil, + /datum/slime_type/orange, + /datum/slime_type/pink, + /datum/slime_type/purple, + /datum/slime_type/pyrite, + /datum/slime_type/rainbow, + /datum/slime_type/red, + /datum/slime_type/sepia, + /datum/slime_type/silver, + /datum/slime_type/yellow, + ) + +/datum/component/slime_friends/Initialize(...) + . = ..() + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + var/mob/living/living_parent = parent + living_parent.faction |= FACTION_SLIME + RegisterSignal(living_parent, COMSIG_ENTER_AREA, PROC_REF(start_slime_prodaction)) + +/datum/component/slime_friends/Destroy(force) + . = ..() + var/mob/living/living_parent = parent + living_parent.faction -= FACTION_SLIME + timer = null + +/// Start slime prodaction when we leave wizden. +/datum/component/slime_friends/proc/start_slime_prodaction(mob/living/friend, area/new_area) + if(new_area == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS) + UnregisterSignal(friend, COMSIG_ENTER_AREA) + +/// Slime prodactor proc. +/datum/component/slime_friends/proc/make_slime_friend(mob/living/friend) + timer = addtimer(CALLBACK(src, PROC_REF(make_slime_friend), friend), 20 SECONDS) + if(get_area(friend) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + var/turf/where = get_turf(friend) + var/new_colour = pick(colours) + var/mob/living/basic/slime/new_friend = new(where, new_colour, SLIME_LIFE_STAGE_ADULT) + new_friend.faction = friend.faction.Copy() + new_friend.set_enraged_behaviour() + friend.nutrition -= 50 diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 74dbdd5642fe2..8d2dbda379eda 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -38,14 +38,11 @@ COMSIG_ATOM_ENTERED = PROC_REF(Slip), ) - ///what we give to connect_loc if we're an item and get equipped by a mob. makes slippable mobs moving over our holder slip - var/static/list/holder_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(Slip_on_wearer), + ///what we give to connect_loc if we're an item and get equipped by a mob, or if we're a mob. makes slippable mobs moving over the mob slip + var/static/list/mob_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(slip_on_mob), ) - /// The connect_loc_behalf component for the holder_connections list. - var/datum/weakref/holder_connect_loc_behalf - /** * Initialize the slippery component behaviour * @@ -56,7 +53,7 @@ * * lube_flags - Controls the slip behaviour, they are listed starting [here][SLIDE] * * datum/callback/on_slip_callback - Callback to define further custom controls on when slipping is applied * * paralyze - length of time to paralyze the crossing mob for (Deciseconds) - * * force_drop - should the crossing mob drop items in it's hands or not + * * force_drop - should the crossing mob drop items in its hands or not * * slot_whitelist - flags controlling where on a mob this item can be equipped to make the parent mob slippery full list [here][ITEM_SLOT_OCLOTHING] * * datum/callback/on_slip_callback - Callback to add custom behaviours as the crossing mob is slipped */ @@ -79,14 +76,14 @@ src.slot_whitelist = slot_whitelist add_connect_loc_behalf_to_parent() - 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_APPLY_FANTASY_BONUSES, PROC_REF(apply_fantasy_bonuses)) - RegisterSignal(parent, COMSIG_ITEM_REMOVE_FANTASY_BONUSES, PROC_REF(remove_fantasy_bonuses)) - else + if(!ismovable(parent)) RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(Slip)) + else if(isitem(parent)) + src.lube_flags |= SLIPPERY_WHEN_LYING_DOWN + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equip)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_drop)) + RegisterSignal(parent, COMSIG_ITEM_APPLY_FANTASY_BONUSES, PROC_REF(apply_fantasy_bonuses)) + RegisterSignal(parent, COMSIG_ITEM_REMOVE_FANTASY_BONUSES, PROC_REF(remove_fantasy_bonuses)) /datum/component/slippery/Destroy(force) can_slip_callback = null @@ -114,8 +111,13 @@ lube_flags = previous_lube_flags /datum/component/slippery/proc/add_connect_loc_behalf_to_parent() - if(ismovable(parent)) - AddComponent(/datum/component/connect_loc_behalf, parent, default_connections) + var/list/connections_to_use + if(isliving(parent)) + connections_to_use = mob_connections + else if(ismovable(parent)) + connections_to_use = default_connections + if(connections_to_use) + AddComponent(/datum/component/connect_loc_behalf, parent, connections_to_use) /datum/component/slippery/InheritComponent( datum/component/slippery/component, @@ -184,7 +186,7 @@ if((!LAZYLEN(slot_whitelist) || (slot in slot_whitelist)) && isliving(equipper)) holder = equipper qdel(GetComponent(/datum/component/connect_loc_behalf)) - AddComponent(/datum/component/connect_loc_behalf, holder, holder_connections) + AddComponent(/datum/component/connect_loc_behalf, holder, mob_connections) RegisterSignal(holder, COMSIG_QDELETING, PROC_REF(holder_deleted)) /** @@ -227,10 +229,11 @@ * * source - the source of the signal * * arrived - the atom/movable that slipped on us. */ -/datum/component/slippery/proc/Slip_on_wearer(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) +/datum/component/slippery/proc/slip_on_mob(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) SIGNAL_HANDLER - if(holder.body_position == LYING_DOWN && !holder.buckled) + var/mob/living/living = holder || parent + if(!(lube_flags & SLIPPERY_WHEN_LYING_DOWN) || (living.body_position == LYING_DOWN && !living.buckled)) Slip(source, arrived) /datum/component/slippery/UnregisterFromParent() diff --git a/code/datums/components/soapbox.dm b/code/datums/components/soapbox.dm new file mode 100644 index 0000000000000..9d15e5e69292c --- /dev/null +++ b/code/datums/components/soapbox.dm @@ -0,0 +1,46 @@ +/datum/component/soapbox + /// List of our current soapboxxer(s) who are gaining loud speech + var/list/soapboxers = list() + /// Gives atoms moving over us the soapbox speech and takes it away when they leave + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(on_loc_entered), + COMSIG_ATOM_EXITED = PROC_REF(on_loc_exited), + ) + +/datum/component/soapbox/Initialize(...) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + add_connect_loc_behalf_to_parent() + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(parent_moved)) + +///Applies loud speech to our movable when entering the turf our parent is on +/datum/component/soapbox/proc/on_loc_entered(datum/source, mob/living/soapbox_arrive) + SIGNAL_HANDLER + if(!isliving(soapbox_arrive)) + return + if(QDELETED(soapbox_arrive)) + return + RegisterSignal(soapbox_arrive, COMSIG_MOB_SAY, PROC_REF(soapbox_speech)) + soapboxers += soapbox_arrive + +///Takes away loud speech from our movable when it leaves the turf our parent is on +/datum/component/soapbox/proc/on_loc_exited(datum/source, mob/living/soapbox_leave) + SIGNAL_HANDLER + if(soapbox_leave in soapboxers) + UnregisterSignal(soapbox_leave, COMSIG_MOB_SAY) + soapboxers -= soapbox_leave + +///We don't want our soapboxxer to keep their loud say if the parent is moved out from under them +/datum/component/soapbox/proc/parent_moved(datum/source) + SIGNAL_HANDLER + for(var/atom/movable/loud as anything in soapboxers) + UnregisterSignal(loud, COMSIG_MOB_SAY) + soapboxers.Cut() + +///Gives a mob a unique say span +/datum/component/soapbox/proc/soapbox_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + speech_args[SPEECH_SPANS] |= SPAN_SOAPBOX + +/datum/component/soapbox/proc/add_connect_loc_behalf_to_parent() + AddComponent(/datum/component/connect_loc_behalf, parent, loc_connections) diff --git a/code/datums/components/soulstoned.dm b/code/datums/components/soulstoned.dm index bb22030c21042..d4e9e0eaf02e1 100644 --- a/code/datums/components/soulstoned.dm +++ b/code/datums/components/soulstoned.dm @@ -11,8 +11,7 @@ stoned.forceMove(container) stoned.fully_heal() - stoned.add_traits(list(TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), SOULSTONE_TRAIT) - stoned.status_flags |= GODMODE + stoned.add_traits(list(TRAIT_GODMODE, TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), SOULSTONE_TRAIT) RegisterSignal(stoned, COMSIG_MOVABLE_MOVED, PROC_REF(free_prisoner)) @@ -25,5 +24,4 @@ /datum/component/soulstoned/UnregisterFromParent() var/mob/living/stoned = parent - stoned.status_flags &= ~GODMODE - stoned.remove_traits(list(TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), SOULSTONE_TRAIT) + stoned.remove_traits(list(TRAIT_GODMODE, TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), SOULSTONE_TRAIT) diff --git a/code/datums/components/space_allaergy.dm b/code/datums/components/space_allaergy.dm new file mode 100644 index 0000000000000..d1bc334ce1f5f --- /dev/null +++ b/code/datums/components/space_allaergy.dm @@ -0,0 +1,14 @@ +/// Slowly kill the thing when iuts on a planet +/datum/component/planet_allergy/Initialize(...) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ENTER_AREA, PROC_REF(entered_area)) + +/datum/component/planet_allergy/proc/entered_area(mob/living/parent, area/new_area) + SIGNAL_HANDLER + + if(is_on_a_planet(parent) && parent.has_gravity()) + parent.apply_status_effect(/datum/status_effect/planet_allergy) //your gamer body cant stand real gravity + else + parent.remove_status_effect(/datum/status_effect/planet_allergy) diff --git a/code/datums/components/space_camo.dm b/code/datums/components/space_camo.dm new file mode 100644 index 0000000000000..08b6c10649443 --- /dev/null +++ b/code/datums/components/space_camo.dm @@ -0,0 +1,54 @@ +/// Camouflage us when we enter space by increasing alpha and or changing color +/datum/component/space_camo + /// Alpha we have in space + var/space_alpha + /// Alpha we have elsewhere + var/non_space_alpha + /// How long we can't enter camo after hitting or being hit + var/reveal_after_combat + /// The world time after we can camo again + VAR_PRIVATE/next_camo + +/datum/component/space_camo/Initialize(space_alpha, non_space_alpha, reveal_after_combat) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + src.space_alpha = space_alpha + src.non_space_alpha = non_space_alpha + src.reveal_after_combat = reveal_after_combat + + RegisterSignal(parent, COMSIG_ATOM_ENTERING, PROC_REF(on_atom_entering)) + + if(isliving(parent)) + RegisterSignals(parent, list(COMSIG_ATOM_WAS_ATTACKED, COMSIG_MOB_ITEM_ATTACK, COMSIG_LIVING_UNARMED_ATTACK, COMSIG_ATOM_BULLET_ACT, COMSIG_ATOM_REVEAL), PROC_REF(force_exit_camo)) + +/datum/component/space_camo/proc/on_atom_entering(atom/movable/entering, atom/entered) + SIGNAL_HANDLER + + if(!attempt_enter_camo()) + exit_camo(parent) + +/datum/component/space_camo/proc/attempt_enter_camo() + if(!isspaceturf(get_turf(parent)) || next_camo > world.time) + return FALSE + + enter_camo(parent) + return TRUE + +/datum/component/space_camo/proc/force_exit_camo() + SIGNAL_HANDLER + + exit_camo(parent) + next_camo = world.time + reveal_after_combat + addtimer(CALLBACK(src, PROC_REF(attempt_enter_camo)), reveal_after_combat, TIMER_OVERRIDE | TIMER_UNIQUE) + +/datum/component/space_camo/proc/enter_camo(atom/movable/parent) + if(parent.alpha != space_alpha) + animate(parent, alpha = space_alpha, time = 0.5 SECONDS) + parent.remove_from_all_data_huds() + parent.add_atom_colour(SSparallax.get_parallax_color(), TEMPORARY_COLOUR_PRIORITY) + +/datum/component/space_camo/proc/exit_camo(atom/movable/parent) + animate(parent, alpha = non_space_alpha, time = 0.5 SECONDS) + parent.add_to_all_human_data_huds() + parent.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY) diff --git a/code/datums/components/space_dive.dm b/code/datums/components/space_dive.dm new file mode 100644 index 0000000000000..bbbeb0bb16832 --- /dev/null +++ b/code/datums/components/space_dive.dm @@ -0,0 +1,84 @@ +/// Lets us dive under the station from space +/datum/component/space_dive + /// holder we use when we're in dive + var/jaunt_type = /obj/effect/dummy/phased_mob/space_dive + /// time it takes to enter the dive + var/dive_time = 3 SECONDS + /// the time it takes to exit our space dive + var/surface_time = 1 SECONDS + /// Traits added during phasing (and removed after) + var/static/phase_traits = list(TRAIT_MAGICALLY_PHASED, TRAIT_RUNECHAT_HIDDEN, TRAIT_WEATHER_IMMUNE) + +/datum/component/space_dive/Initialize(...) + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_MOVABLE_BUMP, PROC_REF(bump)) + +/datum/component/space_dive/proc/bump(mob/living/parent, atom/bumped) + SIGNAL_HANDLER + + if(!isspaceturf(get_turf(parent))) + return + + if(ismovable(bumped)) + if(istype(bumped, /obj/machinery/door))//door check is kinda lame but it just plays better + return + + var/atom/movable/mover = bumped + if(!mover.anchored) + return + + INVOKE_ASYNC(src, PROC_REF(attempt_dive), parent, bumped) + +/datum/component/space_dive/proc/attempt_dive(mob/living/parent, atom/bumped) + if(!do_after(parent, dive_time, bumped)) + return + + dive(bumped) + +/datum/component/space_dive/proc/dive(atom/bumped) + var/obj/effect/dummy/phased_mob/jaunt = new jaunt_type(get_turf(bumped), parent) + + RegisterSignal(jaunt, COMSIG_MOB_EJECTED_FROM_JAUNT, PROC_REF(surface)) + RegisterSignal(jaunt, COMSIG_MOB_PHASED_CHECK, PROC_REF(move_check)) + parent.add_traits(phase_traits, REF(src)) + + // This needs to happen at the end, after all the traits and stuff is handled + SEND_SIGNAL(parent, COMSIG_MOB_ENTER_JAUNT, src, jaunt) + +/datum/component/space_dive/proc/move_check(obj/effect/dummy/phased_mob/jaunt, mob/living/parent, turf/new_turf) + SIGNAL_HANDLER + + if(!isspaceturf(new_turf)) + return + + INVOKE_ASYNC(src, PROC_REF(attempt_surface), parent, new_turf) + return COMPONENT_BLOCK_PHASED_MOVE + +/// try and surface by doing a do_after +/datum/component/space_dive/proc/attempt_surface(mob/living/parent, turf/new_turf) + if(do_after(parent, surface_time, new_turf, extra_checks = CALLBACK(src, PROC_REF(check_if_moved), parent, get_turf(parent)))) + surface(null, parent, new_turf) + +// we check if we moved for the do_after, since relayed movements arent caught that well by the do_after +/datum/component/space_dive/proc/check_if_moved(mob/living/parent, turf/do_after_turf) + return get_turf(parent) == do_after_turf + +/datum/component/space_dive/proc/surface(atom/holder, mob/living/parent, turf/target) + SIGNAL_HANDLER + + var/obj/effect/dummy/phased_mob/jaunt = parent.loc + if(!istype(jaunt)) + return FALSE + + parent.remove_traits(phase_traits, REF(src)) + + parent.forceMove(target || get_turf(parent)) + qdel(jaunt) + + // This needs to happen at the end, after all the traits and stuff is handled + SEND_SIGNAL(parent, COMSIG_MOB_AFTER_EXIT_JAUNT, src) + +/obj/effect/dummy/phased_mob/space_dive + movespeed = 1 diff --git a/code/datums/components/space_kidnap.dm b/code/datums/components/space_kidnap.dm new file mode 100644 index 0000000000000..7d59a6d7f9fde --- /dev/null +++ b/code/datums/components/space_kidnap.dm @@ -0,0 +1,69 @@ +/// Component that lets us space kidnap people as the voidwalker with our HAAAADS +/datum/component/space_kidnap + /// How long does it take to kidnap them? + var/kidnap_time = 6 SECONDS + /// Are we kidnapping right now? + var/kidnapping = FALSE + +/datum/component/space_kidnap/Initialize(...) + if(!ishuman(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(try_kidnap)) + +/datum/component/space_kidnap/proc/try_kidnap(mob/living/parent, atom/target) + SIGNAL_HANDLER + + if(!isliving(target)) + return + + var/mob/living/victim = target + + if(victim.stat == DEAD) + target.balloon_alert(parent, "is dead!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(!victim.incapacitated) + return + + if(!isspaceturf(get_turf(target))) + target.balloon_alert(parent, "not in space!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + if(!kidnapping) + INVOKE_ASYNC(src, PROC_REF(kidnap), parent, target) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/component/space_kidnap/proc/kidnap(mob/living/parent, mob/living/victim) + victim.Paralyze(kidnap_time) //so they don't get up if we already got em + var/obj/particles = new /obj/effect/abstract/particle_holder (victim, /particles/void_kidnap) + kidnapping = TRUE + + if(do_after(parent, kidnap_time, victim, extra_checks = victim.incapacitated)) + take_them(victim) + + qdel(particles) + kidnapping = FALSE + +/datum/component/space_kidnap/proc/take_them(mob/living/victim) + if(ishuman(victim)) + var/mob/living/carbon/human/hewmon = victim + hewmon.gain_trauma(/datum/brain_trauma/voided) + + victim.flash_act(INFINITY, override_blindness_check = TRUE, visual = TRUE, type = /atom/movable/screen/fullscreen/flash/black) + new /obj/effect/temp_visual/circle_wave/unsettle(get_turf(victim)) + + if(!SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_VOIDWALKER_VOID) || !GLOB.voidwalker_void.len) + victim.forceMove(get_random_station_turf()) + victim.heal_overall_damage(brute = 80, burn = 20) + CRASH("[victim] was instantly dumped after being voidwalker kidnapped due to a missing landmark!") + else + victim.heal_and_revive(90) + victim.adjustOxyLoss(-100, FALSE) + + var/obj/wisp = new /obj/effect/wisp_mobile (get_turf(pick(GLOB.voidwalker_void))) + victim.forceMove(wisp) + succesfully_kidnapped() + +/datum/component/space_kidnap/proc/succesfully_kidnapped(mob/living/carbon/human/kidnappee) + SEND_SIGNAL(parent, COMSIG_VOIDWALKER_SUCCESFUL_KIDNAP, kidnappee) diff --git a/code/datums/components/speechmod.dm b/code/datums/components/speechmod.dm new file mode 100644 index 0000000000000..fc01d8d2d846c --- /dev/null +++ b/code/datums/components/speechmod.dm @@ -0,0 +1,142 @@ +/// Used to apply certain speech patterns +/// Can be used on organs, wearables, mutations and mobs +/datum/component/speechmod + /// Assoc list for strings/regexes and their replacements. Should be lowercase, as case will be automatically changed + var/list/replacements = list() + /// String added to the end of the message + var/end_string = "" + /// Chance for the end string to be applied + var/end_string_chance = 100 + /// Current target for modification + var/mob/targeted + /// Slot tags in which this item works when equipped + var/slots + /// If set to true, turns all text to uppercase + var/uppercase = FALSE + /// Any additional checks that we should do before applying the speech modification + var/datum/callback/should_modify_speech = null + +/datum/component/speechmod/Initialize(replacements = list(), end_string = "", end_string_chance = 100, slots, uppercase = FALSE, should_modify_speech) + if (!ismob(parent) && !isitem(parent) && !istype(parent, /datum/mutation/human)) + return COMPONENT_INCOMPATIBLE + + src.replacements = replacements + src.end_string = end_string + src.end_string_chance = end_string_chance + src.slots = slots + src.uppercase = uppercase + src.should_modify_speech = should_modify_speech + + if (istype(parent, /datum/mutation/human)) + RegisterSignal(parent, COMSIG_MUTATION_GAINED, PROC_REF(on_mutation_gained)) + RegisterSignal(parent, COMSIG_MUTATION_LOST, PROC_REF(on_mutation_lost)) + return + + var/atom/owner = parent + + if (istype(parent, /datum/status_effect)) + var/datum/status_effect/effect = parent + targeted = effect.owner + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + return + + if (ismob(parent)) + targeted = parent + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + return + + if (ismob(owner.loc)) + targeted = owner.loc + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_equipped)) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_unequipped)) + RegisterSignal(parent, COMSIG_ORGAN_IMPLANTED, PROC_REF(on_implanted)) + RegisterSignal(parent, COMSIG_ORGAN_REMOVED, PROC_REF(on_removed)) + +/datum/component/speechmod/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + + var/message = speech_args[SPEECH_MESSAGE] + if(message[1] == "*") + return + if(SEND_SIGNAL(source, COMSIG_TRY_MODIFY_SPEECH) & PREVENT_MODIFY_SPEECH) + return + if(!isnull(should_modify_speech) && !should_modify_speech.Invoke(source, speech_args)) + return + + for (var/to_replace in replacements) + var/replacement = replacements[to_replace] + // Values can be lists to be picked randomly from + if (islist(replacement)) + replacement = pick(replacement) + + message = replacetextEx(message, to_replace, replacement) + message = trim(message) + if (prob(end_string_chance)) + message += islist(end_string) ? pick(end_string) : end_string + speech_args[SPEECH_MESSAGE] = trim(message) + + if (uppercase) + return COMPONENT_UPPERCASE_SPEECH + +/datum/component/speechmod/proc/on_equipped(datum/source, mob/living/user, slot) + SIGNAL_HANDLER + + if (!isnull(slots) && !(slot & slots)) + if (!isnull(targeted)) + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + return + + if (targeted == user) + return + + targeted = user + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/component/speechmod/proc/on_unequipped(datum/source, mob/living/user) + SIGNAL_HANDLER + + if (isnull(targeted)) + return + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + +/datum/component/speechmod/proc/on_implanted(datum/source, mob/living/carbon/receiver) + SIGNAL_HANDLER + + if (targeted == receiver) + return + + targeted = receiver + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/component/speechmod/proc/on_removed(datum/source, mob/living/carbon/former_owner) + SIGNAL_HANDLER + + if (isnull(targeted)) + return + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + +/datum/component/speechmod/proc/on_mutation_gained(datum/source, mob/living/carbon/human/owner) + SIGNAL_HANDLER + + if (targeted == owner) + return + + targeted = owner + RegisterSignal(targeted, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/component/speechmod/proc/on_mutation_lost(datum/source, mob/living/carbon/human/owner) + SIGNAL_HANDLER + + if (isnull(targeted)) + return + UnregisterSignal(targeted, COMSIG_MOB_SAY) + targeted = null + +/datum/component/speechmod/Destroy() + should_modify_speech = null + return ..() diff --git a/code/datums/components/spin2win.dm b/code/datums/components/spin2win.dm index 4524b403355f8..ce9dfa360b323 100644 --- a/code/datums/components/spin2win.dm +++ b/code/datums/components/spin2win.dm @@ -84,7 +84,7 @@ if(start_spin_message) var/message = replacetext(start_spin_message, "%USER", spinning_user) spinning_user.visible_message(message) - playsound(spinning_user, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(spinning_user, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) stop_spinning_timer_id = addtimer(CALLBACK(src, PROC_REF(stop_spinning), spinning_user), spin_duration, TIMER_STOPPABLE|TIMER_DELETE_ME) RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_spin_equipped)) RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(on_spin_dropped)) @@ -95,7 +95,7 @@ STOP_PROCESSING(SSprocessing, src) UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) deltimer(stop_spinning_timer_id) - playsound(user, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(user, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) if(user && end_spin_message) var/message = replacetext(end_spin_message, "%USER", user) user.visible_message(message) @@ -111,7 +111,7 @@ return PROCESS_KILL var/mob/living/item_owner = spinning_item.loc item_owner.emote("spin") - playsound(item_owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(item_owner, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) for(var/mob/living/victim in orange(1, item_owner)) spinning_item.attack(victim, item_owner) diff --git a/code/datums/components/spirit_holding.dm b/code/datums/components/spirit_holding.dm index a7accc38352ee..11ceb778313a9 100644 --- a/code/datums/components/spirit_holding.dm +++ b/code/datums/components/spirit_holding.dm @@ -7,17 +7,20 @@ ///bool on if this component is currently polling for observers to inhabit the item var/attempting_awakening = FALSE /// Allows renaming the bound item - var/allow_renaming + var/allow_renaming = TRUE /// Allows channeling - var/allow_channeling + var/allow_channeling = TRUE + /// Allows exorcism + var/allow_exorcism ///mob contained in the item. var/mob/living/basic/shade/bound_spirit -/datum/component/spirit_holding/Initialize(datum/mind/soul_to_bind, mob/awakener, allow_renaming = TRUE, allow_channeling = TRUE) +/datum/component/spirit_holding/Initialize(datum/mind/soul_to_bind, mob/awakener, allow_renaming = TRUE, allow_channeling = TRUE, allow_exorcism = TRUE) if(!ismovable(parent)) //you may apply this to mobs, i take no responsibility for how that works out return COMPONENT_INCOMPATIBLE src.allow_renaming = allow_renaming src.allow_channeling = allow_channeling + src.allow_exorcism = allow_exorcism if(soul_to_bind) bind_the_soule(soul_to_bind, awakener, soul_to_bind.name) @@ -89,7 +92,7 @@ to_chat(ghost, span_userdanger("The new vessel for your spirit has been destroyed! You remain an unbound ghost.")) return - bind_the_soule(ghost, awakener) + bind_the_soule(ghost.mind, awakener) attempting_awakening = FALSE @@ -107,7 +110,8 @@ bound_spirit.get_language_holder().omnitongue = TRUE //Grants omnitongue RegisterSignal(parent, COMSIG_ATOM_RELAYMOVE, PROC_REF(block_buckle_message)) - RegisterSignal(parent, COMSIG_BIBLE_SMACKED, PROC_REF(on_bible_smacked)) + if(allow_exorcism) + RegisterSignal(parent, COMSIG_BIBLE_SMACKED, PROC_REF(on_bible_smacked)) /** * custom_name : Simply sends a tgui input text box to the blade asking what name they want to be called, and retries it if the input is invalid. @@ -115,11 +119,13 @@ * Arguments: * * awakener: user who interacted with the blade */ -/datum/component/spirit_holding/proc/custom_name(mob/awakener) +/datum/component/spirit_holding/proc/custom_name(mob/awakener, iteration = 1) + if(iteration > 5) + return "indecision" // The spirit of indecision var/chosen_name = sanitize_name(tgui_input_text(bound_spirit, "What are you named?", "Spectral Nomenclature", max_length = MAX_NAME_LEN)) if(!chosen_name) // with the way that sanitize_name works, it'll actually send the error message to the awakener as well. to_chat(awakener, span_warning("Your blade did not select a valid name! Please wait as they try again.")) // more verbose than what sanitize_name might pass in it's error message - return custom_name(awakener) + return custom_name(awakener, iteration++) return chosen_name ///signal fired from a mob moving inside the parent @@ -139,9 +145,11 @@ * * exorcist: user who is attempting to remove the spirit */ /datum/component/spirit_holding/proc/attempt_exorcism(mob/exorcist) + if(!allow_exorcism) + return // just in case var/atom/movable/exorcised_movable = parent to_chat(exorcist, span_notice("You begin to exorcise [parent]...")) - playsound(parent, 'sound/hallucinations/veryfar_noise.ogg',40,TRUE) + playsound(parent, 'sound/effects/hallucinations/veryfar_noise.ogg',40,TRUE) if(!do_after(exorcist, 4 SECONDS, target = exorcised_movable)) return playsound(parent, 'sound/effects/pray_chaplain.ogg',60,TRUE) diff --git a/code/datums/components/splat.dm b/code/datums/components/splat.dm new file mode 100644 index 0000000000000..d22613204bbbd --- /dev/null +++ b/code/datums/components/splat.dm @@ -0,0 +1,75 @@ +/datum/component/splat + ///The icon state to use for the decal + var/icon_state + ///The bodypart layer to use for the decal + var/layer + ///The type of memory to celebrate the event of getting hit by this + var/memory_type + ///The type of smudge we create on the floor + var/smudge_type + ///The moodlet passed down to the creamed component + var/moodlet_type + ///The color we give to the creamed component/overlay + var/splat_color + ///The callback called when a mob is hit by this + var/datum/callback/hit_callback + +/datum/component/splat/Initialize( + icon_state = "creampie", + layer = EXTERNAL_FRONT, + memory_type = /datum/memory/witnessed_creampie, + smudge_type = /obj/effect/decal/cleanable/food/pie_smudge, + moodlet_type = /datum/mood_event/creampie, + splat_color, + datum/callback/hit_callback, +) + . = ..() + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + + src.icon_state = icon_state + src.layer = layer + src.memory_type = memory_type + src.smudge_type = smudge_type + src.moodlet_type = moodlet_type + src.hit_callback = hit_callback + src.splat_color = splat_color + +/datum/component/splat/Destroy() + hit_callback = null + return ..() + +/datum/component/splat/RegisterWithParent() + if(isprojectile(parent)) + RegisterSignal(parent, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(projectile_splat)) + else + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(throw_splat)) + +/datum/component/splat/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOVABLE_IMPACT, COMSIG_PROJECTILE_SELF_ON_HIT)) + +/datum/component/splat/proc/projectile_splat(obj/projectile/source, atom/firer, atom/target, angle, hit_limb_zone, blocked) + SIGNAL_HANDLER + if(blocked != 100) + splat(source, target) + +/datum/component/splat/proc/throw_splat(atom/movable/source, atom/hit_atom, datum/thrownthing/throwing_datum, caught) + SIGNAL_HANDLER + if(caught) //someone caught us! + return + splat(source, hit_atom) + +/datum/component/splat/proc/splat(atom/movable/source, atom/hit_atom) + var/turf/hit_turf = get_turf(hit_atom) + new smudge_type(hit_turf) + var/can_splat_on = TRUE + if(isliving(hit_atom)) + var/mob/living/living_target_getting_hit = hit_atom + if(iscarbon(living_target_getting_hit)) + can_splat_on = !!(living_target_getting_hit.get_bodypart(BODY_ZONE_HEAD)) + hit_callback?.Invoke(living_target_getting_hit, can_splat_on) + if(can_splat_on && is_type_in_typecache(hit_atom, GLOB.splattable)) + hit_atom.AddComponent(/datum/component/face_decal/splat, icon_state, layer, splat_color || source.color, memory_type, moodlet_type) + SEND_SIGNAL(source, COMSIG_MOVABLE_SPLAT, hit_atom) + if(!isprojectile(source)) + qdel(source) diff --git a/code/datums/components/splattercasting.dm b/code/datums/components/splattercasting.dm index b550f2b1221f4..eafc9629a8386 100644 --- a/code/datums/components/splattercasting.dm +++ b/code/datums/components/splattercasting.dm @@ -21,10 +21,12 @@ RegisterSignal(parent, COMSIG_MOB_SPELL_PROJECTILE, PROC_REF(on_spell_projectile)) RegisterSignal(parent, COMSIG_MOB_BEFORE_SPELL_CAST, PROC_REF(on_before_spell_cast)) RegisterSignal(parent, COMSIG_MOB_AFTER_SPELL_CAST, PROC_REF(on_after_spell_cast)) + ADD_TRAIT(parent, TRAIT_SPLATTERCASTER, REF(src)) /datum/component/splattercasting/UnregisterFromParent() . = ..() UnregisterSignal(parent, list(COMSIG_SPECIES_LOSS, COMSIG_MOB_SPELL_PROJECTILE, COMSIG_MOB_BEFORE_SPELL_CAST, COMSIG_MOB_AFTER_SPELL_CAST)) + REMOVE_TRAIT(parent, TRAIT_SPLATTERCASTER, REF(src)) ///signal sent when a spell casts a projectile /datum/component/splattercasting/proc/on_species_change(mob/living/carbon/source, datum/species/lost_species) diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index c5d42797ab433..afd8cce49e8c7 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -1,5 +1,5 @@ /datum/component/squeak - var/static/list/default_squeak_sounds = list('sound/items/toysqueak1.ogg'=1, 'sound/items/toysqueak2.ogg'=1, 'sound/items/toysqueak3.ogg'=1) + var/static/list/default_squeak_sounds = list('sound/items/toy_squeak/toysqueak1.ogg'=1, 'sound/items/toy_squeak/toysqueak2.ogg'=1, 'sound/items/toy_squeak/toysqueak3.ogg'=1) var/list/override_squeak_sounds var/mob/holder @@ -128,7 +128,7 @@ UnregisterSignal(user, COMSIG_QDELETING) holder = null -///just gets rid of the reference to holder in the case that theyre qdeleted +///just gets rid of the reference to holder in the case that they're qdeleted /datum/component/squeak/proc/holder_deleted(datum/source, datum/possible_holder) SIGNAL_HANDLER if(possible_holder == holder) @@ -138,7 +138,7 @@ /datum/component/squeak/proc/disposing_react(datum/source, obj/structure/disposalholder/disposal_holder, obj/machinery/disposal/disposal_source) SIGNAL_HANDLER - //We don't need to worry about unregistering this signal as it will happen for us automaticaly when the holder is qdeleted + //We don't need to worry about unregistering this signal as it will happen for us automatically when the holder is qdeleted RegisterSignal(disposal_holder, COMSIG_ATOM_DIR_CHANGE, PROC_REF(holder_dir_change)) /datum/component/squeak/proc/holder_dir_change(datum/source, old_dir, new_dir) diff --git a/code/datums/components/stationloving.dm b/code/datums/components/stationloving.dm index 35f67d9cd0295..8b59717da70b8 100644 --- a/code/datums/components/stationloving.dm +++ b/code/datums/components/stationloving.dm @@ -61,7 +61,7 @@ CRASH("Unable to find a blobstart landmark for [type] to relocate [parent].") var/atom/movable/movable_parent = parent - playsound(movable_parent, 'sound/machines/synth_no.ogg', 5, TRUE) + playsound(movable_parent, 'sound/machines/synth/synth_no.ogg', 5, TRUE) var/mob/holder = get(movable_parent, /mob) if(holder) diff --git a/code/datums/components/sticker.dm b/code/datums/components/sticker.dm index 2c87d856da872..b627f9923204b 100644 --- a/code/datums/components/sticker.dm +++ b/code/datums/components/sticker.dm @@ -13,18 +13,21 @@ var/atom/movable/our_sticker /// Reference to the created overlay, used during component deletion. var/mutable_appearance/sticker_overlay - // Callback invoked when sticker is applied to the parent. + /// Callback invoked when sticker is applied to the parent. var/datum/callback/stick_callback - // Callback invoked when sticker is peeled (not removed) from the parent. + /// Callback invoked when sticker is peeled (not removed) from the parent. var/datum/callback/peel_callback + /// Text added to the atom's examine when stickered. + var/examine_text -/datum/component/sticker/Initialize(atom/stickering_atom, dir = NORTH, px = 0, py = 0, datum/callback/stick_callback, datum/callback/peel_callback) +/datum/component/sticker/Initialize(atom/stickering_atom, dir = NORTH, px = 0, py = 0, datum/callback/stick_callback, datum/callback/peel_callback, examine_text) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE src.our_sticker = our_sticker src.stick_callback = stick_callback src.peel_callback = peel_callback + src.examine_text = examine_text stick(stickering_atom, px, py) register_turf_signals(dir) @@ -45,9 +48,10 @@ /datum/component/sticker/RegisterWithParent() RegisterSignal(parent, COMSIG_LIVING_IGNITED, PROC_REF(on_ignite)) RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) /datum/component/sticker/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_LIVING_IGNITED, COMSIG_COMPONENT_CLEAN_ACT)) + UnregisterSignal(parent, list(COMSIG_LIVING_IGNITED, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_ATOM_EXAMINE)) /// Subscribes to `COMSIG_TURF_EXPOSE` if parent atom is a turf. If turf is closed - subscribes to signal /datum/component/sticker/proc/register_turf_signals(dir) @@ -80,8 +84,8 @@ var/atom/parent_atom = parent sticker_overlay = mutable_appearance(icon = our_sticker.icon, icon_state = our_sticker.icon_state, layer = parent_atom.layer + 0.01, appearance_flags = RESET_COLOR) - sticker_overlay.pixel_w = px - world.icon_size / 2 - sticker_overlay.pixel_z = py - world.icon_size / 2 + sticker_overlay.pixel_w = px - ICON_SIZE_X / 2 + sticker_overlay.pixel_z = py - ICON_SIZE_Y / 2 parent_atom.add_overlay(sticker_overlay) stick_callback?.Invoke(parent) @@ -116,3 +120,9 @@ if(exposed_temperature >= FIRE_MINIMUM_TEMPERATURE_TO_EXIST) qdel(our_sticker) // which qdels us + +/datum/component/sticker/proc/on_examine(atom/source, mob/user, list/examine_list) + SIGNAL_HANDLER + + if(!isnull(examine_text)) + examine_list += span_warning(examine_text) diff --git a/code/datums/components/style/style.dm b/code/datums/components/style/style.dm index f39379d636783..cc8b061fd353e 100644 --- a/code/datums/components/style/style.dm +++ b/code/datums/components/style/style.dm @@ -37,8 +37,6 @@ var/timerid /// Highest score attained by this component, to avoid as much overhead when considering to award a high score to the client var/high_score = 0 - /// Weakref to the added projectile parry component - var/datum/weakref/projectile_parry /// What rank, minimum, the user needs to be to hotswap items var/hotswap_rank = STYLE_BRUTAL /// If this is multitooled, making it make funny noises on the user's rank going up @@ -100,8 +98,7 @@ RegisterSignal(parent, COMSIG_USER_ITEM_INTERACTION, PROC_REF(hotswap)) RegisterSignal(parent, COMSIG_MOB_MINED, PROC_REF(on_mine)) RegisterSignal(parent, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(on_take_damage)) - RegisterSignal(parent, COMSIG_MOB_EMOTED("flip"), PROC_REF(on_flip)) - RegisterSignal(parent, COMSIG_MOB_EMOTED("spin"), PROC_REF(on_spin)) + RegisterSignal(parent, COMSIG_MOB_EMOTED("taunt"), PROC_REF(on_taunt)) RegisterSignal(parent, COMSIG_MOB_ITEM_ATTACK, PROC_REF(on_attack)) RegisterSignal(parent, COMSIG_LIVING_UNARMED_ATTACK, PROC_REF(on_punch)) RegisterSignal(SSdcs, COMSIG_GLOB_MOB_DEATH, PROC_REF(on_death)) @@ -110,26 +107,13 @@ RegisterSignal(parent, COMSIG_LIVING_DEFUSED_GIBTONITE, PROC_REF(on_gibtonite_defuse)) RegisterSignal(parent, COMSIG_LIVING_CRUSHER_DETONATE, PROC_REF(on_crusher_detonate)) RegisterSignal(parent, COMSIG_LIVING_DISCOVERED_GEYSER, PROC_REF(on_geyser_discover)) - - projectile_parry = WEAKREF(parent.AddComponent(\ - /datum/component/projectile_parry,\ - list(\ - /obj/projectile/colossus,\ - /obj/projectile/temp/watcher,\ - /obj/projectile/kinetic,\ - /obj/projectile/bileworm_acid,\ - /obj/projectile/herald,\ - /obj/projectile/kiss,\ - )\ - ) - ) - + ADD_TRAIT(parent, TRAIT_MINING_PARRYING, STYLE_TRAIT) /datum/component/style/UnregisterFromParent() UnregisterSignal(parent, COMSIG_USER_ITEM_INTERACTION) UnregisterSignal(parent, COMSIG_MOB_MINED) UnregisterSignal(parent, COMSIG_MOB_APPLY_DAMAGE) - UnregisterSignal(parent, list(COMSIG_MOB_EMOTED("flip"), COMSIG_MOB_EMOTED("spin"))) + UnregisterSignal(parent, COMSIG_MOB_EMOTED("taunt")) UnregisterSignal(parent, list(COMSIG_MOB_ITEM_ATTACK, COMSIG_LIVING_UNARMED_ATTACK)) UnregisterSignal(SSdcs, COMSIG_GLOB_MOB_DEATH) UnregisterSignal(parent, COMSIG_LIVING_RESONATOR_BURST) @@ -137,10 +121,7 @@ UnregisterSignal(parent, COMSIG_LIVING_DEFUSED_GIBTONITE) UnregisterSignal(parent, COMSIG_LIVING_CRUSHER_DETONATE) UnregisterSignal(parent, COMSIG_LIVING_DISCOVERED_GEYSER) - - if(projectile_parry) - qdel(projectile_parry.resolve()) - + REMOVE_TRAIT(parent, TRAIT_MINING_PARRYING, STYLE_TRAIT) /datum/component/style/Destroy(force) STOP_PROCESSING(SSdcs, src) @@ -150,14 +131,11 @@ mob_parent.hud_used.show_hud(mob_parent.hud_used.hud_version) return ..() - /datum/component/style/process(seconds_per_tick) point_multiplier = round(max(point_multiplier - 0.2 * seconds_per_tick, 1), 0.1) change_points(-5 * seconds_per_tick * ROUND_UP((style_points + 1) / 200), use_multiplier = FALSE) update_screen() - - /datum/component/style/proc/add_action(action, amount) if(length(actions) > 9) actions.Cut(1, 2) @@ -219,7 +197,7 @@ rank = rank_changed meter.maptext = "[format_rank_string(rank)][generate_multiplier()][generate_actions()]" - meter.maptext_y = 100 - 9 * length(actions) + meter.maptext_y = 94 - 12 * length(actions) update_meter(point_to_rank(), go_back) /datum/component/style/proc/update_meter(new_rank, go_back) @@ -270,19 +248,15 @@ return "SPACED!" /datum/component/style/proc/format_rank_string(new_rank) - var/rank_string = rank_to_string(new_rank) - var/final_string = "" - final_string += "[rank_string[1]]" - final_string += "[copytext(rank_string, 2)]" - return final_string + return MAPTEXT_PIXELLARI("[rank_to_string(new_rank)]") /datum/component/style/proc/generate_multiplier() - return "
MULTIPLIER: [point_multiplier]X" + return "
" + MAPTEXT_GRAND9K("MULTIPLIER: [point_multiplier]X") /datum/component/style/proc/generate_actions() var/action_string = "" for(var/action in actions) - action_string += "
+ [actions[action]]" + action_string += "
" + MAPTEXT_GRAND9K("+ [actions[action]]") return action_string /datum/component/style/proc/action_to_color(action) @@ -432,19 +406,12 @@ // Emote-based multipliers -/datum/component/style/proc/on_flip() +/datum/component/style/proc/on_taunt() SIGNAL_HANDLER point_multiplier = round(min(point_multiplier + 0.5, 3), 0.1) update_screen() -/datum/component/style/proc/on_spin() - SIGNAL_HANDLER - - point_multiplier = round(min(point_multiplier + 0.3, 3), 0.1) - update_screen() - - // Negative effects /datum/component/style/proc/on_take_damage(...) SIGNAL_HANDLER diff --git a/code/datums/components/style/style_meter.dm b/code/datums/components/style/style_meter.dm index 94263700dda21..eb9ca3653fc82 100644 --- a/code/datums/components/style/style_meter.dm +++ b/code/datums/components/style/style_meter.dm @@ -98,6 +98,7 @@ clean_up(loc) forceMove(get_turf(src)) + INVOKE_ASYNC(user, TYPE_PROC_REF(/mob, put_in_hands), src) return CLICK_ACTION_SUCCESS /obj/item/style_meter/multitool_act(mob/living/user, obj/item/tool) @@ -115,9 +116,7 @@ /// Unregister signals and just generally clean up ourselves after being removed from glasses /obj/item/style_meter/proc/clean_up(atom/movable/old_location) old_location.cut_overlay(meter_appearance) - UnregisterSignal(old_location, COMSIG_ITEM_EQUIPPED) - UnregisterSignal(old_location, COMSIG_ITEM_DROPPED) - UnregisterSignal(old_location, COMSIG_ATOM_EXAMINE) + UnregisterSignal(old_location, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ATOM_EXAMINE, COMSIG_CLICK_ALT)) UnregisterSignal(old_location, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL)) if(!style_meter) return @@ -132,7 +131,7 @@ maptext_height = 120 maptext_width = 105 maptext_x = 5 - maptext_y = 100 + maptext_y = 94 maptext = "" layer = SCREENTIP_LAYER diff --git a/code/datums/components/subtype_picker.dm b/code/datums/components/subtype_picker.dm index 78401c9e02293..2cc76e42ecf1f 100644 --- a/code/datums/components/subtype_picker.dm +++ b/code/datums/components/subtype_picker.dm @@ -87,6 +87,6 @@ return FALSE if(QDELETED(target)) return FALSE - if(user.incapacitated() || !user.is_holding(target)) + if(user.incapacitated || !user.is_holding(target)) return FALSE return TRUE diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm index 69ade1e2f1b56..4821f70d006d3 100644 --- a/code/datums/components/summoning.dm +++ b/code/datums/components/summoning.dm @@ -24,7 +24,7 @@ max_mobs = 3, spawn_delay = 10 SECONDS, spawn_text = "appears out of nowhere", - spawn_sound = 'sound/magic/summon_magic.ogg', + spawn_sound = 'sound/effects/magic/summon_magic.ogg', list/faction, ) if(!isitem(parent) && !ishostile(parent) && !isgun(parent) && !ismachinery(parent) && !isstructure(parent) && !isprojectilespell(parent)) diff --git a/code/datums/components/supermatter_crystal.dm b/code/datums/components/supermatter_crystal.dm index 81a29b56c6d81..53a0797c2e1c0 100644 --- a/code/datums/components/supermatter_crystal.dm +++ b/code/datums/components/supermatter_crystal.dm @@ -71,7 +71,7 @@ SIGNAL_HANDLER if(isliving(user)) var/mob/living/living_mob = user - if(living_mob.incorporeal_move || living_mob.status_flags & GODMODE) + if(living_mob.incorporeal_move || HAS_TRAIT(living_mob, TRAIT_GODMODE)) return if(isalien(user)) dust_mob(source, user, cause = "alien attack") @@ -80,7 +80,7 @@ /datum/component/supermatter_crystal/proc/animal_hit(datum/source, mob/living/simple_animal/user, list/modifiers) SIGNAL_HANDLER - if(user.incorporeal_move || user.status_flags & GODMODE) + if(user.incorporeal_move || HAS_TRAIT(user, TRAIT_GODMODE)) return var/atom/atom_source = source var/murder @@ -101,7 +101,7 @@ SIGNAL_HANDLER if(isliving(user)) var/mob/living/living_mob = user - if(living_mob.incorporeal_move || living_mob.status_flags & GODMODE) + if(living_mob.incorporeal_move || HAS_TRAIT(living_mob, TRAIT_GODMODE)) return var/atom/atom_source = source if(iscyborg(user) && atom_source.Adjacent(user)) @@ -115,7 +115,7 @@ /datum/component/supermatter_crystal/proc/hand_hit(datum/source, mob/living/user, list/modifiers) SIGNAL_HANDLER - if(user.incorporeal_move || user.status_flags & GODMODE) + if(user.incorporeal_move || HAS_TRAIT(user, TRAIT_GODMODE)) return if(user.zone_selected != BODY_ZONE_PRECISE_MOUTH) dust_mob(source, user, cause = "hand") @@ -202,7 +202,7 @@ return if(atom_source.Adjacent(user)) //if the item is stuck to the person, kill the person too instead of eating just the item. - if(user.incorporeal_move || user.status_flags & GODMODE) + if(user.incorporeal_move || HAS_TRAIT(user, TRAIT_GODMODE)) return var/vis_msg = span_danger("[user] reaches out and touches [atom_source] with [item], inducing a resonance... [item] starts to glow briefly before the light continues up to [user]'s body. [user.p_They()] burst[user.p_s()] into flames before flashing into dust!") var/mob_msg = span_userdanger("You reach out and touch [atom_source] with [item]. Everything starts burning and all you can hear is ringing. Your last thought is \"That was not a wise decision.\"") @@ -219,7 +219,7 @@ SIGNAL_HANDLER if(isliving(hit_object)) var/mob/living/hit_mob = hit_object - if(hit_mob.incorporeal_move || hit_mob.status_flags & GODMODE) + if(hit_mob.incorporeal_move || HAS_TRAIT(hit_mob, TRAIT_GODMODE)) return var/atom/atom_source = source var/obj/machinery/power/supermatter_crystal/our_supermatter = parent // Why is this a component? @@ -272,7 +272,7 @@ span_hear("You hear a loud crack as you are washed with a wave of heat.")) /datum/component/supermatter_crystal/proc/dust_mob(datum/source, mob/living/nom, vis_msg, mob_msg, cause) - if(nom.incorporeal_move || nom.status_flags & GODMODE) //try to keep supermatter sliver's + hemostat's dust conditions in sync with this too + if(nom.incorporeal_move || HAS_TRAIT(nom, TRAIT_GODMODE)) //try to keep supermatter sliver's + hemostat's dust conditions in sync with this too return var/atom/atom_source = source if(!vis_msg) @@ -290,10 +290,8 @@ /datum/component/supermatter_crystal/proc/consume(atom/source, atom/movable/consumed_object) if(consumed_object.flags_1 & SUPERMATTER_IGNORES_1) return - if(isliving(consumed_object)) - var/mob/living/consumed_mob = consumed_object - if(consumed_mob.status_flags & GODMODE) - return + if(HAS_TRAIT(consumed_object, TRAIT_GODMODE)) + return var/atom/atom_source = source SEND_SIGNAL(consumed_object, COMSIG_SUPERMATTER_CONSUMED, atom_source) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 657d555b366ed..baf1efaee1dd5 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -43,7 +43,7 @@ src.min_distance = min_distance var/mob/P = parent - to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and clicking on your target with an empty hand.")) + to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and ") + span_boldnotice("RIGHT-CLICKING on your target with an empty hand.")) addtimer(CALLBACK(src, PROC_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE) @@ -71,10 +71,10 @@ /datum/component/tackler/proc/checkTackle(mob/living/carbon/user, atom/clicked_atom, list/modifiers) SIGNAL_HANDLER - if(modifiers[ALT_CLICK] || modifiers[SHIFT_CLICK] || modifiers[CTRL_CLICK] || modifiers[MIDDLE_CLICK]) + if(!modifiers[RIGHT_CLICK] || modifiers[ALT_CLICK] || modifiers[SHIFT_CLICK] || modifiers[CTRL_CLICK] || modifiers[MIDDLE_CLICK]) return - if(!user.throw_mode || user.get_active_held_item() || user.pulling || user.buckled || user.incapacitated()) + if(!user.throw_mode || user.get_active_held_item() || user.pulling || user.buckled || user.incapacitated) return if(!clicked_atom || !(isturf(clicked_atom) || isturf(clicked_atom.loc))) @@ -104,7 +104,7 @@ tackling = TRUE RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(checkObstacle)) - playsound(user, 'sound/weapons/thudswoosh.ogg', 40, TRUE, -1) + playsound(user, 'sound/items/weapons/thudswoosh.ogg', 40, TRUE, -1) var/leap_word = isfelinid(user) ? "pounce" : "leap" //If cat, "pounce" instead of "leap". if(can_see(user, clicked_atom, 7)) @@ -405,6 +405,10 @@ if(el_tail && (el_tail.wag_flags & WAG_WAGGING)) // lizard tail wagging is robust and can swat away assailants! defense_mod += 1 + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = tackle_target.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + defense_mod += potential_spine.strength_bonus + // OF-FENSE var/mob/living/carbon/sacker = parent var/sacker_drunkenness = sacker.get_drunk_amount() @@ -437,6 +441,10 @@ if(sacker_wing) attack_mod += 2 + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = sacker.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + attack_mod += potential_spine.strength_bonus + if(ishuman(sacker)) var/mob/living/carbon/human/human_sacker = sacker @@ -500,6 +508,10 @@ if(HAS_TRAIT(user, TRAIT_HEAD_INJURY_BLOCKED)) oopsie_mod -= 6 + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) // Can't snap that spine if it's made of metal. + if(istype(potential_spine)) + oopsie_mod -= potential_spine.strength_bonus + if(HAS_TRAIT(user, TRAIT_CLUMSY)) oopsie_mod += 6 //honk! @@ -521,7 +533,7 @@ else user.adjustBruteLoss(40, updating_health=FALSE) user.adjustStaminaLoss(30) - playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE) + playsound(user, 'sound/effects/blob/blobattack.ogg', 60, TRUE) playsound(user, 'sound/effects/splat.ogg', 70, TRUE) playsound(user, 'sound/effects/wounds/crack2.ogg', 70, TRUE) user.emote("scream") @@ -538,7 +550,7 @@ user.adjustBruteLoss(40, updating_health = FALSE) user.adjustStaminaLoss(30) user.gain_trauma_type(BRAIN_TRAUMA_MILD) - playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE) + playsound(user, 'sound/effects/blob/blobattack.ogg', 60, TRUE) playsound(user, 'sound/effects/splat.ogg', 70, TRUE) user.emote("gurgle") shake_camera(user, 7, 7) @@ -550,7 +562,7 @@ user.adjustBruteLoss(30) user.Unconscious(10 SECONDS) user.gain_trauma_type(BRAIN_TRAUMA_MILD) - user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8) + user.playsound_local(get_turf(user), 'sound/items/weapons/flashbang.ogg', 100, TRUE, 8) shake_camera(user, 6, 6) user.flash_act(1, TRUE, TRUE, length = 3.5) @@ -561,7 +573,7 @@ user.adjust_confusion(15 SECONDS) if(prob(80)) user.gain_trauma(/datum/brain_trauma/mild/concussion) - user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8) + user.playsound_local(get_turf(user), 'sound/items/weapons/flashbang.ogg', 100, TRUE, 8) user.Knockdown(4 SECONDS) shake_camera(user, 5, 5) user.flash_act(1, TRUE, TRUE, length = 2.5) @@ -581,7 +593,7 @@ user.Knockdown(2 SECONDS) shake_camera(user, 2, 2) - playsound(user, 'sound/weapons/smash.ogg', 70, TRUE) + playsound(user, 'sound/items/weapons/smash.ogg', 70, TRUE) /datum/component/tackler/proc/resetTackle() @@ -591,7 +603,7 @@ ///A special case for splatting for handling windows /datum/component/tackler/proc/splatWindow(mob/living/carbon/user, obj/structure/window/W) - playsound(user, 'sound/effects/Glasshit.ogg', 140, TRUE) + playsound(user, 'sound/effects/glass/Glasshit.ogg', 140, TRUE) if(W.type in list(/obj/structure/window, /obj/structure/window/fulltile, /obj/structure/window/unanchored, /obj/structure/window/fulltile/unanchored)) // boring unreinforced windows for(var/i in 1 to speed) @@ -670,7 +682,7 @@ var/datum/thrownthing/tackle = tackle_ref?.resolve() - playsound(owner, 'sound/weapons/smash.ogg', 70, TRUE) + playsound(owner, 'sound/items/weapons/smash.ogg', 70, TRUE) if(tackle) tackle.finalize(hit=TRUE) resetTackle() diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm index 59df008b2b100..17309b888eac3 100644 --- a/code/datums/components/tactical.dm +++ b/code/datums/components/tactical.dm @@ -42,6 +42,9 @@ RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(unmodify)) RegisterSignal(parent, COMSIG_ATOM_UPDATED_ICON, PROC_REF(on_icon_update)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + RegisterSignal(user, COMSIG_HUMAN_GET_VISIBLE_NAME, PROC_REF(on_name_inquiry)) + RegisterSignal(user, COMSIG_HUMAN_GET_FORCED_NAME, PROC_REF(on_name_inquiry)) + ADD_TRAIT(user, TRAIT_UNKNOWN, REF(src)) current_slot = slot @@ -62,6 +65,24 @@ image.plane = FLOAT_PLANE user.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "sneaking_mission[REF(src)]", image) + +/datum/component/tactical/proc/on_name_inquiry(obj/item/source, list/identity) + SIGNAL_HANDLER + + var/tactical_disguise_power = INFINITY // it's a flawless plan: they'll never look behind this unassuming potted plant + if(identity[VISIBLE_NAME_FORCED]) + if(identity[VISIBLE_NAME_FORCED] >= tactical_disguise_power) // my disguise is too powerful for you, traveler! but seriously this is bad + stack_trace("A name forcing signal ([identity[VISIBLE_NAME_FACE]]) has a priority collision with [src].") + else + identity[VISIBLE_NAME_FORCED] = tactical_disguise_power + else + identity[VISIBLE_NAME_FORCED] = tactical_disguise_power + + var/obj/item/flawless_disguise = parent + identity[VISIBLE_NAME_FACE] = flawless_disguise.name + identity[VISIBLE_NAME_ID] = flawless_disguise.name // for Unknown (as 'potted plant') says + + /datum/component/tactical/proc/unmodify(obj/item/source, mob/user) SIGNAL_HANDLER if(!source) @@ -77,8 +98,14 @@ COMSIG_MOVABLE_MOVED, COMSIG_ATOM_UPDATED_ICON, )) + + UnregisterSignal(user, list( + COMSIG_HUMAN_GET_VISIBLE_NAME, + COMSIG_HUMAN_GET_FORCED_NAME, + )) current_slot = null user.remove_alt_appearance("sneaking_mission[REF(src)]") + REMOVE_TRAIT(user, TRAIT_UNKNOWN, REF(src)) ///Checks if a mob is holding us, and if so we will modify our appearance to properly match w/ the mob. /datum/component/tactical/proc/tactical_update(obj/item/source) diff --git a/code/datums/components/temporary_glass_shatter.dm b/code/datums/components/temporary_glass_shatter.dm new file mode 100644 index 0000000000000..c2db33190e601 --- /dev/null +++ b/code/datums/components/temporary_glass_shatter.dm @@ -0,0 +1,30 @@ +/// Component to make an item temporarily break glass +/datum/component/temporary_glass_shatterer/Initialize(...) + . = ..() + + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + + RegisterSignal(parent, COMSIG_ITEM_INTERACTING_WITH_ATOM, PROC_REF(on_tap)) + +/datum/component/temporary_glass_shatterer/proc/on_tap(obj/item/parent, mob/tapper, atom/target) + SIGNAL_HANDLER + + if(istype(target, /obj/structure/window)) + var/obj/structure/grille/grille = locate(/obj/structure/grille) in get_turf(target) + if(grille?.is_shocked()) + target.balloon_alert(tapper, "is shocked!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + var/obj/structure/window/window = target + window.temporary_shatter() + else if(istype(target, /obj/structure/grille)) + var/obj/structure/grille/grille = target + if(grille.is_shocked()) + target.balloon_alert(tapper, "is shocked!") + return COMPONENT_CANCEL_ATTACK_CHAIN + + grille.temporary_shatter() + else + return + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm index e76f5d5b53cd3..1e8313fa53b2b 100644 --- a/code/datums/components/tether.dm +++ b/code/datums/components/tether.dm @@ -1,39 +1,195 @@ +/// Creates a tether between two objects that limits movement range. Tether requires LOS and can be adjusted by left/right clicking its /datum/component/tether - dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS + dupe_mode = COMPONENT_DUPE_ALLOWED + /// Other side of the tether var/atom/tether_target + /// Maximum (and initial) distance that this tether can be adjusted to var/max_dist + /// What the tether is going to be called var/tether_name + /// Current extension distance + var/cur_dist + /// Embedded item that the tether "should" originate from + var/atom/embed_target + /// Beam effect + var/datum/beam/tether_beam + /// Tether module if we were created by one + var/obj/item/mod/module/tether/parent_module -/datum/component/tether/Initialize(atom/tether_target, max_dist = 4, tether_name) - if(!isliving(parent) || !istype(tether_target) || !tether_target.loc) +/datum/component/tether/Initialize(atom/tether_target, max_dist = 7, tether_name, atom/embed_target = null, start_distance = null, parent_module = null) + if(!ismovable(parent) || !istype(tether_target) || !tether_target.loc) return COMPONENT_INCOMPATIBLE + src.tether_target = tether_target + src.embed_target = embed_target src.max_dist = max_dist + src.parent_module = parent_module + cur_dist = max_dist + if (start_distance != null) + cur_dist = start_distance + var/datum/beam/beam = tether_target.Beam(parent, "line", 'icons/obj/clothing/modsuit/mod_modules.dmi', emissive = FALSE, beam_type = /obj/effect/ebeam/tether) + tether_beam = beam if (ispath(tether_name, /atom)) var/atom/tmp = tether_name src.tether_name = initial(tmp.name) else src.tether_name = tether_name - RegisterSignals(parent, list(COMSIG_MOVABLE_PRE_MOVE), PROC_REF(checkTether)) -/datum/component/tether/proc/checkTether(mob/mover, newloc) +/datum/component/tether/RegisterWithParent() + RegisterSignal(parent, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(check_tether)) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(check_snap)) + RegisterSignal(tether_target, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(check_tether)) + RegisterSignal(tether_target, COMSIG_MOVABLE_MOVED, PROC_REF(check_snap)) + RegisterSignal(tether_target, COMSIG_QDELETING, PROC_REF(on_delete)) + RegisterSignal(tether_beam.visuals, COMSIG_CLICK, PROC_REF(beam_click)) + // Also snap if the beam gets deleted, more of a backup check than anything + RegisterSignal(tether_beam.visuals, COMSIG_QDELETING, PROC_REF(on_delete)) + + if (!isnull(embed_target)) + RegisterSignal(embed_target, COMSIG_ITEM_UNEMBEDDED, PROC_REF(on_embedded_removed)) + RegisterSignal(embed_target, COMSIG_QDELETING, PROC_REF(on_delete)) + + if (!isnull(parent_module)) + RegisterSignals(parent_module, list(COMSIG_QDELETING, COMSIG_MOVABLE_MOVED, COMSIG_MOD_TETHER_SNAP), PROC_REF(snap)) + +/datum/component/tether/UnregisterFromParent() + UnregisterSignal(parent, list(COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED)) + if (!QDELETED(tether_target)) + UnregisterSignal(tether_target, list(COMSIG_MOVABLE_PRE_MOVE, COMSIG_MOVABLE_MOVED, COMSIG_QDELETING)) + if (!QDELETED(tether_beam)) + UnregisterSignal(tether_beam.visuals, list(COMSIG_CLICK, COMSIG_QDELETING)) + qdel(tether_beam) + if (!QDELETED(embed_target)) + UnregisterSignal(embed_target, list(COMSIG_ITEM_UNEMBEDDED, COMSIG_QDELETING)) + +/datum/component/tether/proc/check_tether(atom/source, new_loc) SIGNAL_HANDLER - if (get_dist(mover,newloc) > max_dist) - to_chat(mover, span_userdanger("The [tether_name] runs out of slack and prevents you from moving!")) + if (check_snap()) + return + + if (!isturf(new_loc)) + to_chat(source, span_warning("[tether_name] prevents you from entering [new_loc]!")) return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + var/atom/movable/anchor = (source == tether_target ? parent : tether_target) + if (get_dist(anchor, new_loc) > cur_dist) + if (!istype(anchor) || anchor.anchored || !anchor.Move(get_step_towards(anchor, new_loc))) + to_chat(source, span_warning("[tether_name] runs out of slack and prevents you from moving!")) + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + var/atom/blocker - out: - for(var/turf/T in get_line(tether_target,newloc)) - if (T.density) - blocker = T - break out - for(var/a in T) - var/atom/A = a - if(A.density && A != mover && A != tether_target) - blocker = A - break out + var/anchor_dir = get_dir(source, anchor) + for (var/turf/line_turf in get_line(anchor, new_loc)) + if (line_turf.density && line_turf != anchor.loc && line_turf != source.loc) + blocker = line_turf + break + if (line_turf == anchor.loc || line_turf == source.loc) + for (var/atom/in_turf in line_turf) + if ((in_turf.flags_1 & ON_BORDER_1) && (in_turf.dir & anchor_dir)) + blocker = in_turf + break + else + for (var/atom/in_turf in line_turf) + if (in_turf.density && in_turf != source && in_turf != tether_target) + blocker = in_turf + break + + if (!isnull(blocker)) + break + if (blocker) - to_chat(mover, span_userdanger("The [tether_name] catches on [blocker] and prevents you from moving!")) + to_chat(source, span_warning("[tether_name] catches on [blocker] and prevents you from moving!")) return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + + if (get_dist(anchor, new_loc) != cur_dist || !ismovable(source)) + return + + var/atom/movable/movable_source = source + var/datum/drift_handler/handler = movable_source.drift_handler + if (isnull(handler)) + return + handler.remove_angle_force(get_angle(anchor, source)) + +/datum/component/tether/proc/check_snap() + SIGNAL_HANDLER + + var/atom/atom_target = parent + // Something broke us out, snap the tether + if (get_dist(atom_target, tether_target) > cur_dist + 1 || !isturf(atom_target.loc) || !isturf(tether_target.loc) || atom_target.z != tether_target.z) + snap() + +/datum/component/tether/proc/snap() + SIGNAL_HANDLER + + var/atom/atom_target = parent + atom_target.visible_message(span_warning("[atom_target]'s [tether_name] snaps!"), span_userdanger("Your [tether_name] snaps!"), span_hear("You hear a cable snapping.")) + playsound(atom_target, 'sound/effects/snap.ogg', 50, TRUE) + qdel(src) + +/datum/component/tether/proc/on_delete() + SIGNAL_HANDLER + qdel(src) + +/datum/component/tether/proc/on_embedded_removed(atom/source, mob/living/victim) + SIGNAL_HANDLER + parent.AddComponent(/datum/component/tether, source, max_dist, tether_name, cur_dist) + qdel(src) + +/datum/component/tether/proc/beam_click(atom/source, atom/location, control, params, mob/user) + SIGNAL_HANDLER + + INVOKE_ASYNC(src, PROC_REF(process_beam_click), source, location, params, user) + +/datum/component/tether/proc/process_beam_click(atom/source, atom/location, params, mob/user) + if (!location.can_interact(user)) + return + var/list/modifiers = params2list(params) + if(LAZYACCESS(modifiers, CTRL_CLICK)) + location.balloon_alert(user, "cutting the tether...") + if (!do_after(user, 1 SECONDS, user)) + return + + qdel(src) + location.balloon_alert(user, "tether cut!") + to_chat(parent, span_danger("Your [tether_name] has been cut!")) + return + + if (LAZYACCESS(modifiers, RIGHT_CLICK)) + if (cur_dist >= max_dist) + location.balloon_alert(user, "no coil remaining!") + return + cur_dist += 1 + location.balloon_alert(user, "tether extended") + return + + if (cur_dist <= 1) + location.balloon_alert(user, "too short!") + return + + if (cur_dist > get_dist(parent, tether_target)) + cur_dist -= 1 + location.balloon_alert(user, "tether shortened") + return + + if (!ismovable(parent) && !ismovable(tether_target)) + location.balloon_alert(user, "too short!") + return + + var/atom/movable/movable_parent = parent + var/atom/movable/movable_target = tether_target + + if (istype(movable_parent) && movable_parent.Move(get_step(movable_parent.loc, get_dir(movable_parent, movable_target)))) + cur_dist -= 1 + location.balloon_alert(user, "tether shortened") + return + + if (istype(movable_target) && movable_target.Move(get_step(movable_target.loc, get_dir(movable_target, movable_parent)))) + cur_dist -= 1 + location.balloon_alert(user, "tether shortened") + return + + location.balloon_alert(user, "too short!") + +/obj/effect/ebeam/tether + mouse_opacity = MOUSE_OPACITY_ICON diff --git a/code/datums/components/thermite.dm b/code/datums/components/thermite.dm index 7ab8b755ca10a..1fac66c07cd64 100644 --- a/code/datums/components/thermite.dm +++ b/code/datums/components/thermite.dm @@ -116,7 +116,7 @@ */ /datum/component/thermite/proc/thermite_melt(mob/user) var/turf/parent_turf = parent - playsound(parent_turf, 'sound/items/welder.ogg', 100, TRUE) + playsound(parent_turf, 'sound/items/tools/welder.ogg', 100, TRUE) fakefire = new(parent_turf) burn_callback = CALLBACK(src, PROC_REF(burn_parent), user) burn_timer = addtimer(burn_callback, min(amount * 0.35 SECONDS, 20 SECONDS), TIMER_STOPPABLE) diff --git a/code/datums/components/toggle_attached_clothing.dm b/code/datums/components/toggle_attached_clothing.dm index 9ba42fe091732..8321119d85e58 100644 --- a/code/datums/components/toggle_attached_clothing.dm +++ b/code/datums/components/toggle_attached_clothing.dm @@ -198,9 +198,9 @@ on_removed?.Invoke(deployable) var/obj/item/parent_gear = parent - if (destroy_on_removal) + if(destroy_on_removal) QDEL_NULL(deployable) - else if (parent_icon_state_suffix) + if(parent_icon_state_suffix) parent_gear.icon_state = "[initial(parent_gear.icon_state)]" parent_gear.worn_icon_state = parent_gear.icon_state parent_gear.update_slot_icon() diff --git a/code/datums/components/trader/trader.dm b/code/datums/components/trader/trader.dm index b10041385277d..d623a9943b893 100644 --- a/code/datums/components/trader/trader.dm +++ b/code/datums/components/trader/trader.dm @@ -52,7 +52,7 @@ * Format; list(TYPEPATH = list(PRICE, QUANTITY, ADDITIONAL_DESCRIPTION)) * Associated list of items able to be sold to the NPC with the money given for them. * The price given should be the "base" price; any price manipulation based on variables should be done with apply_sell_price_mods() - * ADDITIONAL_DESCRIPTION is any additional text added to explain how the variables of the item effect the price; if it's stack based, it's final price depends how much is in the stack + * ADDITIONAL_DESCRIPTION is any additional text added to explain how the variables of the item effect the price; if it's stack based, its final price depends how much is in the stack * EX; /obj/item/stack/sheet/mineral/diamond = list(500, INFINITY, ", per 100 cm3 sheet of diamond") * This list is filled by Initialize(), if you want to change the starting wanted items, modify initial_wanteds() */ @@ -327,7 +327,7 @@ Can accept both a type path, and an instance of a datum. Type path has priority. return original_cost /** - * Handles modifying/deleting the items to ensure that a proper amount is converted into cash; put into it's own proc to make the children of this not override a 30+ line sell_item() + * Handles modifying/deleting the items to ensure that a proper amount is converted into cash; put into its own proc to make the children of this not override a 30+ line sell_item() * * Arguments: * * selling - (Item REF) this is the item being sold diff --git a/code/datums/components/transforming.dm b/code/datums/components/transforming.dm index 5276f45dc0a75..622fb2ed7d31d 100644 --- a/code/datums/components/transforming.dm +++ b/code/datums/components/transforming.dm @@ -50,7 +50,7 @@ throwforce_on = 0, throw_speed_on = 2, sharpness_on = NONE, - hitsound_on = 'sound/weapons/blade1.ogg', + hitsound_on = 'sound/items/weapons/blade1.ogg', w_class_on = WEIGHT_CLASS_BULKY, clumsy_check = TRUE, clumsy_damage = 10, @@ -174,7 +174,7 @@ /datum/component/transforming/proc/default_transform_message(obj/item/source, mob/user) if(user) source.balloon_alert(user, "[active ? "enabled" : "disabled"] [source]") - playsound(source, 'sound/weapons/batonextend.ogg', 50, TRUE) + playsound(source, 'sound/items/weapons/batonextend.ogg', 50, TRUE) /* * Toggle active between true and false, and call diff --git a/code/datums/components/trapdoor.dm b/code/datums/components/trapdoor.dm index 32b72c48853e5..a5d28107556c6 100644 --- a/code/datums/components/trapdoor.dm +++ b/code/datums/components/trapdoor.dm @@ -19,19 +19,37 @@ var/conspicuous /// overlay that makes trapdoors more obvious var/static/trapdoor_overlay + /** + * list of lists that are arguments for readding decals when the linked trapdoor comes back. pain. + * + * we are storing this data FOR the trapdoor component we are linked to. kinda like a multitool. + * format: list(list(element's description, element's cleanable, element's directional, element's pic)) + * the list will be filled with all the data of the deleting elements (when ChangeTurf is called) only when the trapdoor begins to open. + * so any other case the elements will be changed but not recorded. + */ + var/list/stored_decals = list() + /// Trapdoor shuts close automatically + var/autoclose = TRUE + /// Delay before trapdoor shuts close + var/autoclose_delay = 5 SECONDS -/datum/component/trapdoor/Initialize(starts_open, trapdoor_turf_path, assembly, conspicuous = TRUE) +/datum/component/trapdoor/Initialize(starts_open, trapdoor_turf_path, assembly, conspicuous = TRUE, list/carried_decals = null, autoclose = TRUE) if(!isopenturf(parent)) return COMPONENT_INCOMPATIBLE src.conspicuous = conspicuous src.assembly = assembly + src.autoclose = autoclose + if(carried_decals) + stored_decals = carried_decals.Copy() if(!trapdoor_overlay) trapdoor_overlay = mutable_appearance('icons/turf/overlays.dmi', "border_black", ABOVE_NORMAL_TURF_LAYER) if(IS_OPEN(parent)) openspace_trapdoor_setup(trapdoor_turf_path, assembly) + if(autoclose) + addtimer(CALLBACK(src, PROC_REF(try_closing)), autoclose_delay) else tile_trapdoor_setup(trapdoor_turf_path, assembly) @@ -45,7 +63,7 @@ ///initializing as a closed trapdoor, we need to take data from the tile we're on to give it to the open state to store /datum/component/trapdoor/proc/tile_trapdoor_setup(trapdoor_turf_path) src.trapdoor_turf_path = parent.type - if(assembly && assembly.stored_decals.len) + if(stored_decals.len) reapply_all_decals() if(conspicuous) var/turf/parent_turf = parent @@ -60,6 +78,7 @@ else RegisterSignal(assembly, COMSIG_ASSEMBLY_PULSED, PROC_REF(toggle_trapdoor)) RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(try_unlink)) + RegisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(try_link)) /datum/component/trapdoor/UnregisterFromParent() . = ..() @@ -69,6 +88,7 @@ UnregisterSignal(parent, COMSIG_TURF_CHANGE) UnregisterSignal(parent, COMSIG_ATOM_EXAMINE) UnregisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL)) + UnregisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION) /datum/component/trapdoor/proc/try_unlink(turf/source, mob/user, obj/item/tool) SIGNAL_HANDLER @@ -81,14 +101,44 @@ INVOKE_ASYNC(src, PROC_REF(async_try_unlink), source, user, tool) return +/datum/component/trapdoor/proc/try_link(turf/source, mob/user, obj/item/tool) + SIGNAL_HANDLER + if(!istype(tool, /obj/item/trapdoor_remote)) + return + var/obj/item/trapdoor_remote/remote = tool + if(!remote.internals) + source.balloon_alert(user, "missing internals") + return + if(IS_OPEN(parent)) + source.balloon_alert(user, "can't link trapdoor when its open") + return + if(assembly) + source.balloon_alert(user, "already linked") + return + source.balloon_alert(user, "linking trapdoor") + INVOKE_ASYNC(src, PROC_REF(async_try_link), source, user, tool) + +/datum/component/trapdoor/proc/async_try_link(turf/source, mob/user, obj/item/trapdoor_remote/remote) + if(!do_after(user, 2 SECONDS, target=source)) + return + if(IS_OPEN(parent)) + source.balloon_alert(user, "can't link trapdoor when its open") + return + src.assembly = remote.internals + ++assembly.linked + source.balloon_alert(user, "trapdoor linked") + UnregisterSignal(SSdcs, COMSIG_GLOB_TRAPDOOR_LINK) + RegisterSignal(assembly, COMSIG_ASSEMBLY_PULSED, PROC_REF(toggle_trapdoor)) + RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(try_unlink)) + /datum/component/trapdoor/proc/async_try_unlink(turf/source, mob/user, obj/item/tool) if(!do_after(user, 5 SECONDS, target=source)) return if(IS_OPEN(parent)) source.balloon_alert(user, "can't unlink trapdoor when its open") return - assembly.linked = FALSE - assembly.stored_decals = list() + assembly.linked = max(assembly.linked - 1, 0) + stored_decals = list() UnregisterSignal(assembly, COMSIG_ASSEMBLY_PULSED) UnregisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL)) RegisterSignal(SSdcs, COMSIG_GLOB_TRAPDOOR_LINK, PROC_REF(on_link_requested)) @@ -98,7 +148,7 @@ /datum/component/trapdoor/proc/decal_detached(datum/source, description, cleanable, directional, pic) SIGNAL_HANDLER ///so it adds the list to the list, not appending it to the end. thank you byond, very cool. - assembly.stored_decals += list(list(description, cleanable, directional, pic)) + stored_decals += list(list(description, cleanable, directional, pic)) /** * ## reapply_all_decals @@ -106,9 +156,9 @@ * changing turfs does not bring over decals, so we must perform a little bit of element reapplication. */ /datum/component/trapdoor/proc/reapply_all_decals() - for(var/list/element_data as anything in assembly.stored_decals) + for(var/list/element_data as anything in stored_decals) apply_decal(element_data[1], element_data[2], element_data[3], element_data[4]) - assembly.stored_decals = list() + stored_decals = list() /// small proc that takes passed arguments and drops it into a new element /datum/component/trapdoor/proc/apply_decal(description, cleanable, directional, pic) @@ -117,11 +167,11 @@ ///called by linking remotes to tie an assembly to the trapdoor /datum/component/trapdoor/proc/on_link_requested(datum/source, obj/item/assembly/trapdoor/assembly) SIGNAL_HANDLER - if(get_dist(parent, assembly) > TRAPDOOR_LINKING_SEARCH_RANGE || assembly.linked) + if(get_dist(parent, assembly) > TRAPDOOR_LINKING_SEARCH_RANGE) return . = LINKED_UP src.assembly = assembly - assembly.linked = TRUE + ++assembly.linked UnregisterSignal(SSdcs, COMSIG_GLOB_TRAPDOOR_LINK) RegisterSignal(assembly, COMSIG_ASSEMBLY_PULSED, PROC_REF(toggle_trapdoor)) RegisterSignal(parent, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(try_unlink)) @@ -129,6 +179,8 @@ ///signal called by our assembly being pulsed /datum/component/trapdoor/proc/toggle_trapdoor(datum/source) SIGNAL_HANDLER + if(assembly) + autoclose = assembly.autoclose if(!IS_OPEN(parent)) try_opening() else @@ -145,8 +197,8 @@ // otherwise, break trapdoor dying_trapdoor.visible_message(span_warning("The trapdoor mechanism in [dying_trapdoor] is broken!")) if(assembly) - assembly.linked = FALSE - assembly.stored_decals.Cut() + assembly.linked = max(assembly.linked - 1, 0) + stored_decals.Cut() assembly = null return post_change_callbacks += CALLBACK(src, TYPE_PROC_REF(/datum/component/trapdoor, carry_over_trapdoor), trapdoor_turf_path, conspicuous, assembly) @@ -158,7 +210,7 @@ * apparently callbacks with arguments on invoke and the callback itself have the callback args go first. interesting! */ /datum/component/trapdoor/proc/carry_over_trapdoor(trapdoor_turf_path, conspicuous, assembly, turf/new_turf) - new_turf.AddComponent(/datum/component/trapdoor, FALSE, trapdoor_turf_path, assembly, conspicuous) + new_turf.AddComponent(/datum/component/trapdoor, FALSE, trapdoor_turf_path, assembly, conspicuous, stored_decals, autoclose) /** * ## on_examine @@ -213,20 +265,12 @@ var/search_cooldown_time = 10 SECONDS ///if true, a trapdoor in the world has a reference to this assembly and is listening for when it is pulsed. var/linked = FALSE - /** - * list of lists that are arguments for readding decals when the linked trapdoor comes back. pain. - * - * we are storing this data FOR the trapdoor component we are linked to. kinda like a multitool. - * format: list(list(element's description, element's cleanable, element's directional, element's pic)) - * the list will be filled with all the data of the deleting elements (when ChangeTurf is called) only when the trapdoor begins to open. - * so any other case the elements will be changed but not recorded. - */ - var/list/stored_decals = list() - + /// Linked trapdoors will automatically close + var/autoclose = TRUE /obj/item/assembly/trapdoor/pulsed(mob/pulser) . = ..() - if(linked) + if(linked > 0) return if(!COOLDOWN_FINISHED(src, search_cooldown)) if(loc && pulser) @@ -243,10 +287,10 @@ return if(SEND_GLOBAL_SIGNAL(COMSIG_GLOB_TRAPDOOR_LINK, src) & LINKED_UP) playsound(assembly_turf, 'sound/machines/chime.ogg', 50, TRUE) - assembly_turf.visible_message("[src] has linked up to a nearby trapdoor! \ - You may now use it to check where the trapdoor is... be careful!", vision_distance = SAMETILE_MESSAGE_RANGE) + assembly_turf.visible_message(span_notice("[src] has linked up to a nearby trapdoor! \ + You may now use it to check where the trapdoor is... be careful!"), vision_distance = SAMETILE_MESSAGE_RANGE) else - playsound(assembly_turf, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(assembly_turf, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) assembly_turf.visible_message(span_warning("[src] has failed to find a trapdoor nearby to link to."), vision_distance = SAMETILE_MESSAGE_RANGE) /** @@ -272,8 +316,12 @@ . += span_notice("The internals can be removed with a screwdriver.") if(!internals.linked) . += span_warning("[src] is not linked to a trapdoor.") + . += span_notice("[src] will link to nearby trapdoors when used.") return - . += span_notice("[src] is linked to a trapdoor.") + . += span_notice("[src] is linked to [internals.linked] trapdoor(s).") + . += span_notice("It can be linked to additional trapdoor(s) by using it on a trapdoor.") + . += span_notice("Trapdoor can be unlinked with multitool.") + . += span_notice("Autoclose is [internals.autoclose ? "enabled" : "disabled"], ctrl-click to toggle.") if(!COOLDOWN_FINISHED(src, trapdoor_cooldown)) . += span_warning("It is on a short cooldown.") @@ -310,7 +358,7 @@ internals.pulsed(user) // The pulse linked successfully if(internals.linked) - user.balloon_alert(user, "linked") + user.balloon_alert(user, "linked [internals.linked] trapdoors") // The pulse failed to link else user.balloon_alert(user, "link failed!") @@ -321,13 +369,24 @@ return TRUE user.balloon_alert(user, "trapdoor triggered") - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) icon_state = "trapdoor_pressed" addtimer(VARSET_CALLBACK(src, icon_state, initial(icon_state)), trapdoor_cooldown_time) COOLDOWN_START(src, trapdoor_cooldown, trapdoor_cooldown_time) internals.pulsed(user) return TRUE +/obj/item/trapdoor_remote/item_ctrl_click(mob/user) + if (!user.is_holding(src)) + return CLICK_ACTION_BLOCKING + if(!internals) + user.balloon_alert(user, "no device!") + return CLICK_ACTION_BLOCKING + + internals.autoclose = !internals.autoclose + user.balloon_alert(user, "autoclose [internals.autoclose ? "enabled" : "disabled"]") + return CLICK_ACTION_SUCCESS + #undef TRAPDOOR_LINKING_SEARCH_RANGE ///subtype with internals already included. If you're giving a department a roundstart trapdoor, this is what you want diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index 5a3ff4b4cb070..dcb8d63a3c43e 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -217,10 +217,11 @@ if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) user.dropItemToGround(parent, force = TRUE) return COMPONENT_EQUIPPED_FAILED // blocked wield from item + if (wield_callback?.Invoke(parent, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) + return wielded = TRUE ADD_TRAIT(parent, TRAIT_WIELDED, REF(src)) RegisterSignal(user, COMSIG_MOB_SWAPPING_HANDS, PROC_REF(on_swapping_hands)) - wield_callback?.Invoke(parent, user) // update item stats and name var/obj/item/parent_item = parent diff --git a/code/datums/components/unobserved_actor.dm b/code/datums/components/unobserved_actor.dm index 7956c9034772a..007d39a0ae845 100644 --- a/code/datums/components/unobserved_actor.dm +++ b/code/datums/components/unobserved_actor.dm @@ -6,16 +6,19 @@ /datum/component/unobserved_actor /// Dictates what behaviour you're blocked from while observed var/unobserved_flags = NONE + /// List of action types which cannot be used while observed. Applies to all actions if not set, and does nothing if NO_OBSERVED_ACTIONS flag isnt present + var/list/affected_actions = null /// Cooldown to prevent message spam when holding a move button COOLDOWN_DECLARE(message_cooldown) -/datum/component/unobserved_actor/Initialize(unobserved_flags = NONE) +/datum/component/unobserved_actor/Initialize(unobserved_flags = NONE, list/affected_actions = null) . = ..() if (!isliving(parent)) return ELEMENT_INCOMPATIBLE if (unobserved_flags == NONE) CRASH("No behaviour flags provided to unobserved actor element") src.unobserved_flags = unobserved_flags + src.affected_actions = affected_actions /datum/component/unobserved_actor/RegisterWithParent() if (unobserved_flags & NO_OBSERVED_MOVEMENT) @@ -52,17 +55,21 @@ return COMPONENT_ATOM_BLOCK_DIR_CHANGE /// Called when the mob tries to use an ability -/datum/component/unobserved_actor/proc/on_tried_ability(mob/living/source) +/datum/component/unobserved_actor/proc/on_tried_ability(mob/living/source, datum/action) SIGNAL_HANDLER if (!check_if_seen(source)) return + if (!isnull(affected_actions) && !(action.type in affected_actions)) + return return COMPONENT_BLOCK_ABILITY_START /// Called when the mob tries to cast a spell -/datum/component/unobserved_actor/proc/on_tried_spell(mob/living/source) +/datum/component/unobserved_actor/proc/on_tried_spell(mob/living/source, datum/action) SIGNAL_HANDLER if (!check_if_seen(source)) return + if (!isnull(affected_actions) && !(action.type in affected_actions)) + return return SPELL_CANCEL_CAST /// Called when the mob tries to attack @@ -92,7 +99,7 @@ // We aren't in darkness, loop for viewers. for(var/mob/living/mob_target in oview(my_turf, 7)) // They probably cannot see us if we cannot see them... can they? - if(mob_target.client && !mob_target.is_blind() && !mob_target.has_unlimited_silicon_privilege && !HAS_TRAIT(mob_target, TRAIT_UNOBSERVANT)) + if(mob_target.client && !mob_target.is_blind() && !HAS_TRAIT(mob_target, TRAIT_UNOBSERVANT)) return TRUE for(var/obj/vehicle/sealed/mecha/mecha_mob_target in oview(my_turf, 7)) for(var/mob/mechamob_target as anything in mecha_mob_target.occupants) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index d62414a862b24..82b12d555ac06 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -3,7 +3,7 @@ /** * Uplinks * - * All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in it's contents). Then add 'uses.' + * All /obj/item(s) have a hidden_uplink var. By default it's null. Give the item one with 'new(src') (it must be in its contents). Then add 'uses.' * Use whatever conditionals you want to check that the user has an uplink, and then call interact() on their uplink. * You might also want the uplink menu to open if active. Check if the uplink is 'active' and then interact() with it. **/ @@ -191,7 +191,8 @@ data["current_progression_scaling"] = SStraitor.current_progression_scaling data["maximum_potential_objectives"] = uplink_handler.maximum_potential_objectives - if(uplink_handler.has_objectives) + + if(uplink_handler.primary_objectives) var/list/primary_objectives = list() for(var/datum/objective/task as anything in uplink_handler.primary_objectives) var/list/task_data = list() @@ -201,7 +202,9 @@ task_data["task_name"] = "DIRECTIVE [uppertext(GLOB.phonetic_alphabet[length(primary_objectives) + 1])]" task_data["task_text"] = task.explanation_text primary_objectives += list(task_data) + data["primary_objectives"] = primary_objectives + if(uplink_handler.has_objectives) var/list/potential_objectives = list() for(var/index in 1 to uplink_handler.potential_objectives.len) var/datum/traitor_objective/objective = uplink_handler.potential_objectives[index] @@ -216,7 +219,7 @@ objective_data["id"] = index active_objectives += list(objective_data) - data["primary_objectives"] = primary_objectives + data["potential_objectives"] = potential_objectives data["active_objectives"] = active_objectives data["completed_final_objective"] = uplink_handler.final_objective @@ -227,9 +230,12 @@ for(var/datum/uplink_item/item as anything in uplink_handler.extra_purchasable) if(item.stock_key in stock_list) extra_purchasable_stock[REF(item)] = stock_list[item.stock_key] + var/atom/actual_item = item.item extra_purchasable += list(list( "id" = item.type, "name" = item.name, + "icon" = actual_item.icon, + "icon_state" = actual_item.icon_state, "cost" = item.cost, "desc" = item.desc, "category" = item.category ? initial(item.category.name) : null, @@ -288,6 +294,13 @@ return item = SStraitor.uplink_items_by_type[item_path] uplink_handler.purchase_item(ui.user, item, parent) + if("buy_raw_tc") + if (uplink_handler.telecrystals <= 0) + return + var/desired_amount = tgui_input_number(ui.user, "How many raw telecrystals to buy?", "Buy Raw TC", default = uplink_handler.telecrystals, max_value = uplink_handler.telecrystals) + if(!desired_amount || desired_amount < 1) + return + uplink_handler.purchase_raw_tc(ui.user, desired_amount, parent) if("lock") if(!lockable) return TRUE diff --git a/code/datums/components/vacuum.dm b/code/datums/components/vacuum.dm index c471dc13a16bc..0bf7888ff47e3 100644 --- a/code/datums/components/vacuum.dm +++ b/code/datums/components/vacuum.dm @@ -53,7 +53,7 @@ if (!isitem(potential_item)) continue var/obj/item/item = potential_item - if (vacuum_bag?.attackby(item)) + if (vacuum_bag.atom_storage.attempt_insert(item)) sucked = TRUE // track that we successfully sucked up something // if we did indeed suck up something, play a funny noise diff --git a/code/datums/components/wormborn.dm b/code/datums/components/wormborn.dm new file mode 100644 index 0000000000000..1841dbf38cc3e --- /dev/null +++ b/code/datums/components/wormborn.dm @@ -0,0 +1,74 @@ +/datum/component/wormborn + +/datum/component/wormborn/Initialize(...) + . = ..() + if(!isliving(parent)) + return COMPONENT_INCOMPATIBLE + +/datum/component/wormborn/RegisterWithParent() + . = ..() + RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(second_breath)) + +/datum/component/wormborn/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, COMSIG_LIVING_DEATH) + +/datum/component/wormborn/proc/second_breath(mob/living/source) + SIGNAL_HANDLER + + if(get_area(source) == GLOB.areas_by_type[/area/centcom/wizard_station]) + return + source.buckled?.unbuckle_mob(source, force = TRUE) + + if(source.movement_type & VENTCRAWLING) + source.forceMove(get_turf(source)) + + var/mob/living/worm = new /mob/living/basic/wizard_worm(get_turf(source)) + source.mind?.transfer_to(worm) + source.forceMove(worm) + +/mob/living/basic/wizard_worm + name = "Magic Worm" + desc = "Large blue worm. What happens if you put your hand in his mouth?." + icon = 'icons/mob/simple/mob.dmi' + icon_state = "wizard_start" + icon_living = "wizard_start" + base_icon_state = "wizard" + maxHealth = 800 + health = 800 + melee_damage_lower = 20 + melee_damage_upper = 30 + obj_damage = 200 + speed = 0 + move_force = MOVE_FORCE_OVERPOWERING + move_resist = MOVE_FORCE_OVERPOWERING + pull_force = MOVE_FORCE_OVERPOWERING + mob_size = MOB_SIZE_HUGE + sentience_type = SENTIENCE_BOSS + mob_biotypes = MOB_ORGANIC|MOB_SPECIAL + +/mob/living/basic/wizard_worm/has_gravity(turf/gravity_turf) + return TRUE + +/mob/living/basic/wizard_worm/can_be_pulled() + return FALSE + +/mob/living/basic/wizard_worm/Initialize(mapload, spawn_bodyparts = TRUE) + . = ..() + AddElement(/datum/element/wall_tearer) + + if(spawn_bodyparts) + build_tail() + +/mob/living/basic/wizard_worm/proc/build_tail(mob/living/tail) + AddComponent(/datum/component/mob_chain, vary_icon_state = TRUE) + var/mob/living/basic/wizard_worm/prev = src + for(var/i in 1 to 5) + prev = new_segment(behind = prev) + update_appearance(UPDATE_ICON_STATE) + +/mob/living/basic/wizard_worm/proc/new_segment(mob/living/basic/wizard_worm/behind) + var/mob/living/segment = new type(drop_location(), FALSE) + ADD_TRAIT(segment, TRAIT_PERMANENTLY_MORTAL, INNATE_TRAIT) + segment.AddComponent(/datum/component/mob_chain, front = behind, vary_icon_state = TRUE) + return segment diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index 00437a2cdd8f1..146d3c2de0785 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -11,9 +11,9 @@ /// How long does it take to get a dash charge back? var/charge_rate = 25 SECONDS /// What sound do we play on dash? - var/dash_sound = 'sound/magic/blink.ogg' + var/dash_sound = 'sound/effects/magic/blink.ogg' /// What sound do we play on recharge? - var/recharge_sound = 'sound/magic/charge.ogg' + var/recharge_sound = 'sound/effects/magic/charge.ogg' /// What effect does our beam use? var/beam_effect = "blur" /// How long does our beam last? diff --git a/code/datums/datum.dm b/code/datums/datum.dm index b7e11010e8fe5..d4abc7c69adc3 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -93,7 +93,7 @@ * Default implementation of clean-up code. * * This should be overridden to remove all references pointing to the object being destroyed, if - * you do override it, make sure to call the parent and return it's return value by default + * you do override it, make sure to call the parent and return its return value by default * * Return an appropriate [QDEL_HINT][QDEL_HINT_QUEUE] to modify handling of your deletion; * in most cases this is [QDEL_HINT_QUEUE]. @@ -142,6 +142,10 @@ _clear_signal_refs() //END: ECS SHIT + if(!(datum_flags & DF_STATIC_OBJECT)) + DREAMLUAU_CLEAR_REF_USERDATA(vars) // vars ceases existing when src does, so we need to clear any lua refs to it that exist. + DREAMLUAU_CLEAR_REF_USERDATA(src) + return QDEL_HINT_QUEUE ///Only override this if you know what you're doing. You do not know what you're doing @@ -340,7 +344,7 @@ . = ..() update_item_action_buttons() -/** Update a filter's parameter to the new one. If the filter doesnt exist we won't do anything. +/** Update a filter's parameter to the new one. If the filter doesn't exist we won't do anything. * * Arguments: * * name - Filter name @@ -358,7 +362,7 @@ filter_data[name][thing] = new_params[thing] update_filters() -/** Update a filter's parameter and animate this change. If the filter doesnt exist we won't do anything. +/** Update a filter's parameter and animate this change. If the filter doesn't exist we won't do anything. * Basically a [datum/proc/modify_filter] call but with animations. Unmodified filter parameters are kept. * * Arguments: @@ -404,10 +408,15 @@ var/list/names = islist(name_or_names) ? name_or_names : list(name_or_names) + . = FALSE for(var/name in names) if(filter_data[name]) filter_data -= name - update_filters() + . = TRUE + + if(.) + update_filters() + return . /datum/proc/clear_filters() ASSERT(isatom(src) || isimage(src)) @@ -415,6 +424,11 @@ filter_data = null atom_cast.filters = null +/// Calls qdel on itself, because signals dont allow callbacks +/datum/proc/selfdelete() + SIGNAL_HANDLER + qdel(src) + /// Return text from this proc to provide extra context to hard deletes that happen to it /// Optional, you should use this for cases where replication is difficult and extra context is required /// Can be called more then once per object, use harddel_deets_dumped to avoid duplicate calls (I am so sorry) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index aeea8b22cbaab..944532324af10 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -23,8 +23,8 @@ /** * Gets all the dropdown options in the vv menu. - * When overriding, make sure to call . = ..() first and appent to the result, that way parent items are always at the top and child items are further down. - * Add seperators by doing VV_DROPDOWN_OPTION("", "---") + * When overriding, make sure to call . = ..() first and append to the result, that way parent items are always at the top and child items are further down. + * Add separators by doing VV_DROPDOWN_OPTION("", "---") */ /datum/proc/vv_get_dropdown() SHOULD_CALL_PARENT(TRUE) @@ -44,7 +44,7 @@ /** * This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks! * href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables! - * This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm incase this runtimes. + * This proc is for "high level" actions like admin heal/set species/etc/etc. The low level debugging things should go in admin/view_variables/topic_basic.dm in case this runtimes. */ /datum/proc/vv_do_topic(list/href_list) if(!usr || !usr.client || !usr.client.holder || !check_rights(NONE)) diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index 9560820f2f048..154027b8b9ae6 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -146,6 +146,8 @@ cycles_to_beat = max(DISEASE_RECOVERY_SCALING, DISEASE_CYCLES_HARMFUL) if(DISEASE_SEVERITY_BIOHAZARD) cycles_to_beat = max(DISEASE_RECOVERY_SCALING, DISEASE_CYCLES_BIOHAZARD) + else + cycles_to_beat = max(DISEASE_RECOVERY_SCALING, DISEASE_CYCLES_NONTHREAT) peaked_cycles += stage/max_stages //every cycle we spend sick counts towards eventually curing the virus, faster at higher stages recovery_prob += DISEASE_RECOVERY_CONSTANT + (peaked_cycles / (cycles_to_beat / DISEASE_RECOVERY_SCALING)) //more severe viruses are beaten back more aggressively after the peak if(stage_peaked) diff --git a/code/datums/diseases/adrenal_crisis.dm b/code/datums/diseases/adrenal_crisis.dm index cd9a2dd318010..aa9587c2e1ab9 100644 --- a/code/datums/diseases/adrenal_crisis.dm +++ b/code/datums/diseases/adrenal_crisis.dm @@ -8,7 +8,7 @@ agent = "Shitty Adrenal Glands" viable_mobtypes = list(/mob/living/carbon/human) spreading_modifier = 1 - desc = "If left untreated the subject will suffer from lethargy, dizziness and periodic loss of conciousness." + desc = "If left untreated the subject will suffer from lethargy, dizziness and periodic loss of consciousness." severity = DISEASE_SEVERITY_MEDIUM spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS spread_text = "Organ failure" diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 8c8e8e02169b4..82099a7532b52 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -265,7 +265,7 @@ properties["severity"] += round((properties["transmittable"] / 8), 1) properties["severity"] = round((properties["severity"] / 2), 1) properties["severity"] *= (symptoms.len / VIRUS_SYMPTOM_LIMIT) //fewer symptoms, less severity - properties["severity"] = clamp(properties["severity"], 1, 7) + properties["severity"] = round(clamp(properties["severity"], 1, 7), 1) properties["capacity"] = get_symptom_weights() // Assign the properties that are in the list. diff --git a/code/datums/diseases/advance/floor_diseases/carpellosis.dm b/code/datums/diseases/advance/floor_diseases/carpellosis.dm index a0482215494c4..cdeb6051537e3 100644 --- a/code/datums/diseases/advance/floor_diseases/carpellosis.dm +++ b/code/datums/diseases/advance/floor_diseases/carpellosis.dm @@ -41,7 +41,7 @@ switch(stage) if(2) - if(SPT_PROB(1, seconds_per_tick) && affected_mob.stat == CONSCIOUS) + if(SPT_PROB(1, seconds_per_tick) && affected_mob.stat == CONSCIOUS && affected_mob.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL)) to_chat(affected_mob, span_warning("You want to wag your tail...")) affected_mob.emote("wag") if(3) diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm index 47044068f242e..6ae9fe42b6e3a 100644 --- a/code/datums/diseases/advance/symptoms/choking.dm +++ b/code/datums/diseases/advance/symptoms/choking.dm @@ -74,7 +74,7 @@ Asphyxiation Very very noticable. Decreases stage speed. - Decreases transmittablity. + Decreases transmittability. Bonus Inflicts large spikes of oxyloss diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index 3ec095feb5c7f..3fe097920cc4b 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -2,7 +2,7 @@ * Slightly hidden. * Lowers resistance tremendously. * Decreases stage speed tremendously. - * Decreases transmittablity tremendously. + * Decreases transmittability tremendously. * Fatal level * Bonus: Ignites infected mob. */ diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm index 90070aa15fb9f..005a651b7f338 100644 --- a/code/datums/diseases/advance/symptoms/flesh_eating.dm +++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm @@ -70,7 +70,7 @@ Autophagocytosis (AKA Programmed mass cell death) Very noticable. Lowers resistance. Fast stage speed. - Decreases transmittablity. + Decreases transmittability. Fatal Level. Bonus diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm index fad70aff23f72..79f0646a5c4b3 100644 --- a/code/datums/diseases/advance/symptoms/oxygen.dm +++ b/code/datums/diseases/advance/symptoms/oxygen.dm @@ -14,7 +14,7 @@ stage_speed = -3 transmittable = -4 level = 6 - base_message_chance = 5 + base_message_chance = 3 symptom_delay_min = 1 symptom_delay_max = 1 required_organ = ORGAN_SLOT_LUNGS @@ -40,26 +40,32 @@ if(4, 5) infected_mob.losebreath = max(0, infected_mob.losebreath - 4) infected_mob.adjustOxyLoss(-7) + if(prob(base_message_chance)) + to_chat(infected_mob, span_notice("You realize you haven't been breathing.")) if(regenerate_blood && infected_mob.blood_volume < BLOOD_VOLUME_NORMAL) infected_mob.blood_volume += 1 else if(prob(base_message_chance)) - to_chat(infected_mob, span_notice("[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]")) + to_chat(infected_mob, span_notice("Your lungs feel great.")) return -/datum/symptom/oxygen/on_stage_change(datum/disease/advance/A) +/datum/symptom/oxygen/on_stage_change(datum/disease/advance/advanced_disease) . = ..() if(!.) return FALSE - var/mob/living/carbon/M = A.affected_mob - if(A.stage >= 4) - ADD_TRAIT(M, TRAIT_NOBREATH, DISEASE_TRAIT) + var/mob/living/carbon/infected_mob = advanced_disease.affected_mob + if(advanced_disease.stage >= 4) + ADD_TRAIT(infected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) + if(advanced_disease.stage == 4) + to_chat(infected_mob, span_notice("You don't feel the need to breathe anymore.")) else - REMOVE_TRAIT(M, TRAIT_NOBREATH, DISEASE_TRAIT) + REMOVE_TRAIT(infected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) + if(advanced_disease.stage_peaked && advanced_disease.stage == 3) + to_chat(infected_mob, span_notice("You feel the need to breathe again.")) return TRUE -/datum/symptom/oxygen/End(datum/disease/advance/A) +/datum/symptom/oxygen/End(datum/disease/advance/advanced_disease) . = ..() if(!.) return - REMOVE_TRAIT(A.affected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) + REMOVE_TRAIT(advanced_disease.affected_mob, TRAIT_NOBREATH, DISEASE_TRAIT) diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm index f0f3136487418..dc475fc887daa 100644 --- a/code/datums/diseases/advance/symptoms/shedding.dm +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -46,7 +46,6 @@ /datum/symptom/shedding/proc/baldify(mob/living/carbon/human/baldie, fully_bald) if(fully_bald) baldie.set_facial_hairstyle("Shaved", update = FALSE) - baldie.set_hairstyle("Bald", update = FALSE) + baldie.set_hairstyle("Bald") //this will call update_body_parts() else - baldie.set_hairstyle("Balding Hair", update = FALSE) - baldie.update_body_parts() + baldie.set_hairstyle("Balding Hair") diff --git a/code/datums/diseases/chronic_illness.dm b/code/datums/diseases/chronic_illness.dm index d99d29e61a851..617cfde763d11 100644 --- a/code/datums/diseases/chronic_illness.dm +++ b/code/datums/diseases/chronic_illness.dm @@ -1,7 +1,7 @@ /datum/disease/chronic_illness name = "Hereditary Manifold Sickness" max_stages = 5 - spread_text = "Unspread Illness" + spread_text = "Non-communicable disease" spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS disease_flags = CHRONIC infectable_biotypes = MOB_ORGANIC | MOB_MINERAL | MOB_ROBOTIC @@ -42,7 +42,7 @@ need_mob_update += affected_mob.adjustStaminaLoss(70, updating_stamina = FALSE) if(SPT_PROB(1, seconds_per_tick)) to_chat(affected_mob, span_danger("You feel a buzzing in your brain.")) - SEND_SOUND(affected_mob, sound('sound/weapons/flash_ring.ogg')) + SEND_SOUND(affected_mob, sound('sound/items/weapons/flash_ring.ogg')) if(SPT_PROB(0.5, seconds_per_tick)) need_mob_update += affected_mob.adjustBruteLoss(1, updating_health = FALSE) if(need_mob_update) @@ -65,8 +65,8 @@ to_chat(affected_mob, span_danger("[pick("You feel as though your atoms are accelerating in place.", "You feel like you're being torn apart!")]")) affected_mob.emote("scream") need_mob_update += affected_mob.adjustBruteLoss(10, updating_health = FALSE) - if(need_mob_update) - affected_mob.updatehealth() + if(need_mob_update) + affected_mob.updatehealth() if(5) switch(rand(1,2)) if(1) @@ -75,7 +75,7 @@ if(2) to_chat(affected_mob, span_boldwarning("There is no place for you in this timeline.")) affected_mob.adjustStaminaLoss(100, forced = TRUE) - playsound(affected_mob.loc, 'sound/magic/repulse.ogg', 100, FALSE) + playsound(affected_mob.loc, 'sound/effects/magic/repulse.ogg', 100, FALSE) affected_mob.emote("scream") for(var/mob/living/viewers in viewers(3, affected_mob.loc)) viewers.flash_act() diff --git a/code/datums/diseases/heart_failure.dm b/code/datums/diseases/heart_failure.dm index 45d4e6672fb69..419fc9efff3df 100644 --- a/code/datums/diseases/heart_failure.dm +++ b/code/datums/diseases/heart_failure.dm @@ -43,7 +43,7 @@ to_chat(affected_mob, span_warning("You feel [pick("full", "nauseated", "sweaty", "weak", "tired", "short of breath", "uneasy")].")) if(3 to 4) if(!sound) - affected_mob.playsound_local(affected_mob, 'sound/health/slowbeat.ogg', 40, FALSE, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) + affected_mob.playsound_local(affected_mob, 'sound/effects/health/slowbeat.ogg', 40, FALSE, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) sound = TRUE if(SPT_PROB(1.5, seconds_per_tick)) to_chat(affected_mob, span_danger("You feel a sharp pain in your chest!")) diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 966987828bd54..4a359ca1f2dc0 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -230,7 +230,7 @@ /datum/disease/transformation/slime name = "Advanced Mutation Transformation" - cure_text = "frost oil" + cure_text = "Frost oil" cures = list(/datum/reagent/consumable/frostoil) cure_chance = 55 agent = "Advanced Mutation Toxin" diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 17cdb20e3c492..3ccbc7b71ea25 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -63,7 +63,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) var/list/features = list("mcolor" = COLOR_WHITE) ///Stores the hashed values of the person's non-human features var/unique_features - ///Stores the real name of the person who originally got this dna datum. Used primarely for changelings, + ///Stores the real name of the person who originally got this dna datum. Used primarily for changelings, var/real_name ///All mutations are from now on here var/list/mutations = list() @@ -77,7 +77,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) ///List of the default genes from this mutation to allow DNA Scanner highlighting var/default_mutation_genes[DNA_MUTATION_BLOCKS] var/stability = 100 - ///Did we take something like mutagen? In that case we cant get our genes scanned to instantly cheese all the powers. + ///Did we take something like mutagen? In that case we can't get our genes scanned to instantly cheese all the powers. var/scrambled = FALSE /// Weighted list of nonlethal meltdowns var/static/list/nonfatal_meltdowns = list() @@ -150,9 +150,19 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) SEND_SIGNAL(holder, COMSIG_CARBON_GAIN_MUTATION, mutation_type, class) return force_give(new mutation_type (class, time, copymut = mutation)) -/datum/dna/proc/remove_mutation(mutation_type) +/datum/dna/proc/remove_mutation(datum/mutation/human/mutation_type, mutadone) + + var/datum/mutation/human/actual_mutation = get_mutation(mutation_type) + + if(!actual_mutation) + return FALSE + + // Check that it exists first before trying to remove it with mutadone + if(actual_mutation.mutadone_proof && mutadone) + return FALSE + SEND_SIGNAL(holder, COMSIG_CARBON_LOSE_MUTATION, mutation_type) - return force_lose(get_mutation(mutation_type)) + return force_lose(actual_mutation) /datum/dna/proc/check_mutation(mutation_type) return get_mutation(mutation_type) @@ -213,11 +223,9 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) if(features["lizard_markings"]) L[DNA_LIZARD_MARKINGS_BLOCK] = construct_block(SSaccessories.lizard_markings_list.Find(features["lizard_markings"]), length(SSaccessories.lizard_markings_list)) if(features["tail_cat"]) - L[DNA_TAIL_BLOCK] = construct_block(SSaccessories.tails_list_human.Find(features["tail_cat"]), length(SSaccessories.tails_list_human)) + L[DNA_TAIL_BLOCK] = construct_block(SSaccessories.tails_list_felinid.Find(features["tail_cat"]), length(SSaccessories.tails_list_felinid)) if(features["tail_lizard"]) L[DNA_LIZARD_TAIL_BLOCK] = construct_block(SSaccessories.tails_list_lizard.Find(features["tail_lizard"]), length(SSaccessories.tails_list_lizard)) - if(features["tail_monkey"]) - L[DNA_MONKEY_TAIL_BLOCK] = construct_block(SSaccessories.tails_list_monkey.Find(features["tail_monkey"]), length(SSaccessories.tails_list_monkey)) if(features["snout"]) L[DNA_SNOUT_BLOCK] = construct_block(SSaccessories.snouts_list.Find(features["snout"]), length(SSaccessories.snouts_list)) if(features["horns"]) @@ -238,6 +246,8 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) L[DNA_MUSHROOM_CAPS_BLOCK] = construct_block(SSaccessories.caps_list.Find(features["caps"]), length(SSaccessories.caps_list)) if(features["pod_hair"]) L[DNA_POD_HAIR_BLOCK] = construct_block(SSaccessories.pod_hair_list.Find(features["pod_hair"]), length(SSaccessories.pod_hair_list)) + if(features["fish_tail"]) + L[DNA_FISH_TAIL_BLOCK] = construct_block(SSaccessories.tails_list_fish.Find(features["fish_tail"]), length(SSaccessories.tails_list_fish)) for(var/blocknum in 1 to DNA_FEATURE_BLOCKS) . += L[blocknum] || random_string(GET_UI_BLOCK_LEN(blocknum), GLOB.hex_characters) @@ -359,11 +369,9 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) if(DNA_LIZARD_MARKINGS_BLOCK) set_uni_feature_block(blocknumber, construct_block(SSaccessories.lizard_markings_list.Find(features["lizard_markings"]), length(SSaccessories.lizard_markings_list))) if(DNA_TAIL_BLOCK) - set_uni_feature_block(blocknumber, construct_block(SSaccessories.tails_list_human.Find(features["tail_cat"]), length(SSaccessories.tails_list_human))) + set_uni_feature_block(blocknumber, construct_block(SSaccessories.tails_list_felinid.Find(features["tail_cat"]), length(SSaccessories.tails_list_felinid))) if(DNA_LIZARD_TAIL_BLOCK) set_uni_feature_block(blocknumber, construct_block(SSaccessories.tails_list_lizard.Find(features["tail_lizard"]), length(SSaccessories.tails_list_lizard))) - if(DNA_MONKEY_TAIL_BLOCK) - set_uni_feature_block(blocknumber, construct_block(SSaccessories.tails_list_monkey.Find(features["tail_monkey"]), length(SSaccessories.tails_list_monkey))) if(DNA_SNOUT_BLOCK) set_uni_feature_block(blocknumber, construct_block(SSaccessories.snouts_list.Find(features["snout"]), length(SSaccessories.snouts_list))) if(DNA_HORNS_BLOCK) @@ -384,6 +392,8 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) set_uni_feature_block(blocknumber, construct_block(SSaccessories.caps_list.Find(features["caps"]), length(SSaccessories.caps_list))) if(DNA_POD_HAIR_BLOCK) set_uni_feature_block(blocknumber, construct_block(SSaccessories.pod_hair_list.Find(features["pod_hair"]), length(SSaccessories.pod_hair_list))) + if(DNA_FISH_TAIL_BLOCK) + set_uni_feature_block(blocknumber, construct_block(SSaccessories.tails_list_fish.Find(features["fish_tail"]), length(SSaccessories.tails_list_fish))) //Please use add_mutation or activate_mutation instead /datum/dna/proc/force_give(datum/mutation/human/human_mutation) @@ -400,8 +410,9 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) if(holder && (human_mutation in mutations)) set_se(0, human_mutation) . = human_mutation.on_losing(holder) - qdel(human_mutation) // qdel mutations on removal - update_instability(FALSE) + if(!(human_mutation in mutations)) + qdel(human_mutation) // qdel mutations on removal + update_instability(FALSE) return /** @@ -469,7 +480,9 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) generate_dna_blocks() if(randomize_features) for(var/species_type in GLOB.species_prototypes) - features |= GLOB.species_prototypes[species_type].randomize_features() + var/list/new_features = GLOB.species_prototypes[species_type].randomize_features() + for(var/feature in new_features) + features[feature] = new_features[feature] features["mcolor"] = "#[random_color()]" @@ -480,7 +493,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) /datum/dna/stored/add_mutation(mutation_name) //no mutation changes on stored dna. return -/datum/dna/stored/remove_mutation(mutation_name) +/datum/dna/stored/remove_mutation(mutation_name, mutadone) return /datum/dna/stored/check_mutation(mutation_name) @@ -663,11 +676,9 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) if(dna.features["spines"]) dna.features["spines"] = SSaccessories.spines_list[deconstruct_block(get_uni_feature_block(features, DNA_SPINES_BLOCK), length(SSaccessories.spines_list))] if(dna.features["tail_cat"]) - dna.features["tail_cat"] = SSaccessories.tails_list_human[deconstruct_block(get_uni_feature_block(features, DNA_TAIL_BLOCK), length(SSaccessories.tails_list_human))] + dna.features["tail_cat"] = SSaccessories.tails_list_felinid[deconstruct_block(get_uni_feature_block(features, DNA_TAIL_BLOCK), length(SSaccessories.tails_list_felinid))] if(dna.features["tail_lizard"]) dna.features["tail_lizard"] = SSaccessories.tails_list_lizard[deconstruct_block(get_uni_feature_block(features, DNA_LIZARD_TAIL_BLOCK), length(SSaccessories.tails_list_lizard))] - if(dna.features["tail_monkey"]) - dna.features["tail_monkey"] = SSaccessories.tails_list_monkey[deconstruct_block(get_uni_feature_block(features, DNA_MONKEY_TAIL_BLOCK), length(SSaccessories.tails_list_monkey))] if(dna.features["ears"]) dna.features["ears"] = SSaccessories.ears_list[deconstruct_block(get_uni_feature_block(features, DNA_EARS_BLOCK), length(SSaccessories.ears_list))] if(dna.features["moth_wings"]) @@ -684,9 +695,11 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) dna.features["caps"] = SSaccessories.caps_list[deconstruct_block(get_uni_feature_block(features, DNA_MUSHROOM_CAPS_BLOCK), length(SSaccessories.caps_list))] if(dna.features["pod_hair"]) dna.features["pod_hair"] = SSaccessories.pod_hair_list[deconstruct_block(get_uni_feature_block(features, DNA_POD_HAIR_BLOCK), length(SSaccessories.pod_hair_list))] + if(dna.features["fish_tail"]) + dna.features["fish_tail"] = SSaccessories.tails_list_fish[deconstruct_block(get_uni_feature_block(features, DNA_FISH_TAIL_BLOCK), length(SSaccessories.tails_list_fish))] - for(var/obj/item/organ/external/external_organ in organs) - external_organ.mutate_feature(features, src) + for(var/obj/item/organ/organ in organs) + organ.mutate_feature(features, src) if(icon_update) update_body(is_creating = mutcolor_update) @@ -746,7 +759,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) if(istype(mutation, /datum/mutation/human)) var/datum/mutation/human/M = mutation mutation_type = M.type - if(!mutation_in_sequence(mutation_type)) //cant activate what we dont have, use add_mutation + if(!mutation_in_sequence(mutation_type)) //can't activate what we don't have, use add_mutation return FALSE add_mutation(mutation, MUT_NORMAL) return TRUE diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm index c2154736cc0f0..7aa7f120e7509 100644 --- a/code/datums/dog_fashion.dm +++ b/code/datums/dog_fashion.dm @@ -243,3 +243,18 @@ obj_icon_state = "eyepatch" emote_hear = list("sighs gruffly.", "groans.") emote_see = list("considers their own mortality.", "stares bleakly into the middle distance.", "ponders the horrors of warfare.") + +/datum/dog_fashion/head/watermelon + name = "Watermelon Warrior %REAL_NAME%" + desc = "5% safer than normal and ready to take on advantage!" + obj_icon_state = "watermelon" + +/datum/dog_fashion/head/holymelon + name = "Holymelon Paladin %REAL_NAME%" + desc = "Extraterrestial powers beware, %NAME% is here to smite you down!" + obj_icon_state = "holymelon" + +/datum/dog_fashion/head/barrelmelon + name = "Barrelmelon Berserk %REAL_NAME%" + desc = "Either the sturdiness of the helmet gave %REAL_NAME% a confidence boost, or its bit tight on their head..." + obj_icon_state = "barrelmelon" diff --git a/code/datums/drift_handler.dm b/code/datums/drift_handler.dm new file mode 100644 index 0000000000000..7000483f9ab11 --- /dev/null +++ b/code/datums/drift_handler.dm @@ -0,0 +1,262 @@ +///Component that handles drifting +///Manages a movement loop that actually does the legwork of moving someone +///Alongside dealing with the post movement input blocking required to make things look nice +/datum/drift_handler + var/atom/movable/parent + var/atom/inertia_last_loc + var/old_dir + var/datum/move_loop/smooth_move/drifting_loop + ///Should we ignore the next glide rate input we get? + ///This is to some extent a hack around the order of operations + ///Around COMSIG_MOVELOOP_POSTPROCESS. I'm sorry lad + var/ignore_next_glide = FALSE + ///Have we been delayed? IE: active, but not working right this second? + var/delayed = FALSE + var/block_inputs_until + /// How much force is behind this drift. + var/drift_force = 1 + +/// Accepts three args. The direction to drift in, if the drift is instant or not, and if it's not instant, the delay on the start +/datum/drift_handler/New(atom/movable/parent, inertia_angle, instant = FALSE, start_delay = 0, drift_force = 1) + . = ..() + src.parent = parent + parent.drift_handler = src + var/flags = MOVEMENT_LOOP_OUTSIDE_CONTROL + if(instant) + flags |= MOVEMENT_LOOP_START_FAST + src.drift_force = drift_force + drifting_loop = GLOB.move_manager.smooth_move(moving = parent, angle = inertia_angle, delay = get_loop_delay(parent), subsystem = SSnewtonian_movement, priority = MOVEMENT_SPACE_PRIORITY, flags = flags) + + if(!drifting_loop) + qdel(src) + return + + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_START, PROC_REF(drifting_start)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_STOP, PROC_REF(drifting_stop)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_PREPROCESS_CHECK, PROC_REF(before_move)) + RegisterSignal(drifting_loop, COMSIG_MOVELOOP_POSTPROCESS, PROC_REF(after_move)) + RegisterSignal(drifting_loop, COMSIG_QDELETING, PROC_REF(loop_death)) + RegisterSignal(parent, COMSIG_MOB_ATTEMPT_HALT_SPACEMOVE, PROC_REF(attempt_halt)) + if(drifting_loop.status & MOVELOOP_STATUS_RUNNING) + drifting_start(drifting_loop) // There's a good chance it'll autostart, gotta catch that + + var/visual_delay = get_loop_delay(parent) + + // Start delay is essentially a more granular version of instant + // Isn't used in the standard case, just for things that have odd wants + if(!instant && start_delay) + drifting_loop.pause_for(start_delay) + visual_delay = start_delay + + apply_initial_visuals(visual_delay) + +/datum/drift_handler/Destroy() + inertia_last_loc = null + if(!QDELETED(drifting_loop)) + qdel(drifting_loop) + drifting_loop = null + parent.inertia_moving = FALSE + parent.drift_handler = null + return ..() + +/datum/drift_handler/proc/apply_initial_visuals(visual_delay) + // If something "somewhere" doesn't want us to apply our glidesize delays, don't + if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_VISUAL_ATTEMPT) & DRIFT_VISUAL_FAILED) + return + + // Ignore the next glide because it's literally just us + ignore_next_glide = TRUE + parent.set_glide_size(MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSnewtonian_movement.visual_delay)) + if(!ismob(parent)) + return + var/mob/mob_parent = parent + //Ok this is slightly weird, but basically, we need to force the client to glide at our rate + //Make sure moving into a space move looks like a space move essentially + //There is an inbuilt assumption that gliding will be added as a part of a move call, but eh + //It's ok if it's not, it's just important if it is. + mob_parent.client?.visual_delay = MOVEMENT_ADJUSTED_GLIDE_SIZE(visual_delay, SSnewtonian_movement.visual_delay) + +/datum/drift_handler/proc/newtonian_impulse(inertia_angle, start_delay, additional_force, controlled_cap) + SIGNAL_HANDLER + inertia_last_loc = parent.loc + // We've been told to move in the middle of deletion process, tell parent to create a new handler instead + if(!drifting_loop) + qdel(src) + return FALSE + + var/applied_force = additional_force + + var/force_x = sin(drifting_loop.angle) * drift_force + sin(inertia_angle) * applied_force / parent.inertia_force_weight + var/force_y = cos(drifting_loop.angle) * drift_force + cos(inertia_angle) * applied_force / parent.inertia_force_weight + + drift_force = clamp(sqrt(force_x * force_x + force_y * force_y), 0, !isnull(controlled_cap) ? controlled_cap : INERTIA_FORCE_CAP) + if(drift_force < 0.1) // Rounding issues + qdel(src) + return TRUE + + drifting_loop.set_angle(delta_to_angle(force_x, force_y)) + drifting_loop.set_delay(get_loop_delay(parent)) + return TRUE + +/datum/drift_handler/proc/drifting_start() + SIGNAL_HANDLER + inertia_last_loc = parent.loc + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(handle_move)) + // We will use glide size to intuit how long to delay our loop's next move for + // This way you can't ride two movements at once while drifting, since that'd be dumb as fuck + RegisterSignal(parent, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(handle_glidesize_update)) + // If you stop pulling something mid drift, I want it to retain that momentum + RegisterSignal(parent, COMSIG_ATOM_NO_LONGER_PULLING, PROC_REF(stopped_pulling)) + +/datum/drift_handler/proc/drifting_stop() + SIGNAL_HANDLER + parent.inertia_moving = FALSE + ignore_next_glide = FALSE + UnregisterSignal(parent, list(COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, COMSIG_ATOM_NO_LONGER_PULLING)) + +/datum/drift_handler/proc/before_move(datum/source) + SIGNAL_HANDLER + parent.inertia_moving = TRUE + old_dir = parent.dir + delayed = FALSE + +/datum/drift_handler/proc/after_move(datum/source, result, visual_delay) + SIGNAL_HANDLER + if(result == MOVELOOP_FAILURE) + qdel(src) + return + + parent.setDir(old_dir) + parent.inertia_moving = FALSE + if(parent.Process_Spacemove(angle2dir(drifting_loop.angle), continuous_move = TRUE)) + glide_to_halt(visual_delay) + return + + inertia_last_loc = parent.loc + ignore_next_glide = TRUE + +/datum/drift_handler/proc/loop_death(datum/source) + SIGNAL_HANDLER + drifting_loop = null + +/datum/drift_handler/proc/handle_move(datum/source, old_loc) + SIGNAL_HANDLER + // This can happen, because signals once sent cannot be stopped + if(QDELETED(src)) + return + if(!isturf(parent.loc)) + qdel(src) + return + if(parent.inertia_moving) + return + if(!parent.Process_Spacemove(angle2dir(drifting_loop.angle), continuous_move = TRUE)) + return + qdel(src) + +/// We're going to take the passed in glide size +/// and use it to manually delay our loop for that period +/// to allow the other movement to complete +/datum/drift_handler/proc/handle_glidesize_update(datum/source, glide_size) + SIGNAL_HANDLER + // If we aren't drifting, or this is us, fuck off + if(!drifting_loop || parent.inertia_moving) + return + // If we are drifting, but this set came from the moveloop itself, drop the input + // I'm sorry man + if(ignore_next_glide) + ignore_next_glide = FALSE + return + var/glide_delay = round(ICON_SIZE_ALL / glide_size, 1) * world.tick_lag + drifting_loop.pause_for(glide_delay) + delayed = TRUE + +/// If we're pulling something and stop, we want it to continue at our rate and such +/datum/drift_handler/proc/stopped_pulling(datum/source, atom/movable/was_pulling) + SIGNAL_HANDLER + // This does mean it falls very slightly behind, but otherwise they'll potentially run into us + var/next_move_in = drifting_loop.timer - world.time + world.tick_lag + was_pulling.newtonian_move(angle2dir(drifting_loop.angle), start_delay = next_move_in, drift_force = drift_force, controlled_cap = drift_force) + +/datum/drift_handler/proc/glide_to_halt(glide_for) + if(!ismob(parent)) + qdel(src) + return + + var/mob/mob_parent = parent + var/client/our_client = mob_parent.client + // If we're not active, don't do the glide because it'll look dumb as fuck + if(!our_client || delayed) + qdel(src) + return + + block_inputs_until = world.time + glide_for + 1 + QDEL_IN(src, glide_for + 1) + qdel(drifting_loop) + RegisterSignal(parent, COMSIG_MOB_CLIENT_PRE_MOVE, PROC_REF(allow_final_movement)) + +/datum/drift_handler/proc/allow_final_movement(datum/source) + SIGNAL_HANDLER + // Some things want to allow movement out of spacedrift, we should let them + if(SEND_SIGNAL(parent, COMSIG_MOVABLE_DRIFT_BLOCK_INPUT) & DRIFT_ALLOW_INPUT) + return + if(world.time < block_inputs_until) + return COMSIG_MOB_CLIENT_BLOCK_PRE_MOVE + +/datum/drift_handler/proc/attempt_halt(mob/source, movement_dir, continuous_move, atom/backup) + SIGNAL_HANDLER + + if (get_dir(source, backup) == movement_dir || source.loc == backup.loc) + if (drift_force >= INERTIA_FORCE_THROW_FLOOR) + source.throw_at(backup, 1, floor(1 + (drift_force - INERTIA_FORCE_THROW_FLOOR) / INERTIA_FORCE_PER_THROW_FORCE), spin = FALSE) + return + + if (drift_force < INERTIA_FORCE_SPACEMOVE_GRAB || isnull(drifting_loop)) + return + + if (!isnull(source.client) && source.client.intended_direction) + if ((source.client.intended_direction & movement_dir) && !(get_dir(source, backup) & movement_dir)) + return + + if (drift_force <= INERTIA_FORCE_SPACEMOVE_REDUCTION / source.inertia_force_weight) + glide_to_halt(get_loop_delay(source)) + return COMPONENT_PREVENT_SPACEMOVE_HALT + + drift_force -= INERTIA_FORCE_SPACEMOVE_REDUCTION / source.inertia_force_weight + drifting_loop.set_delay(get_loop_delay(source)) + return COMPONENT_PREVENT_SPACEMOVE_HALT + +/datum/drift_handler/proc/get_loop_delay(atom/movable/movable) + return (DEFAULT_INERTIA_SPEED / ((1 - INERTIA_SPEED_COEF) + drift_force * INERTIA_SPEED_COEF)) * movable.inertia_move_multiplier + +/datum/drift_handler/proc/stabilize_drift(target_angle, target_force, stabilization_force) + /// We aren't drifting + if (isnull(drifting_loop)) + return + + /// Lack of angle means that we are trying to halt movement + if (isnull(target_angle)) + // Going through newtonian_move ensures that all Process_Spacemove code runs properly, instead of directly adjusting forces + parent.newtonian_move(reverse_angle(drifting_loop.angle), drift_force = min(drift_force, stabilization_force)) + return + + // Force required to be applied in order to get to the desired movement vector, with projection of current movement onto desired vector to ensure that we only compensate for excess + var/drift_projection = max(0, cos(target_angle - drifting_loop.angle)) * drift_force + var/force_x = sin(target_angle) * target_force - sin(drifting_loop.angle) * drift_force + var/force_y = cos(target_angle) * target_force - cos(drifting_loop.angle) * drift_force + var/force_angle = delta_to_angle(force_x, force_y) + var/applied_force = sqrt(force_x * force_x + force_y * force_y) + var/force_projection = max(0, cos(target_angle - force_angle)) * applied_force + force_x -= min(force_projection, drift_projection) * sin(target_angle) + force_x -= min(force_projection, drift_projection) * cos(target_angle) + applied_force = min(sqrt(force_x * force_x + force_y * force_y), stabilization_force) + parent.newtonian_move(force_angle, instant = TRUE, drift_force = applied_force) + +/// Removes all force in a certain direction +/datum/drift_handler/proc/remove_angle_force(target_angle) + /// We aren't drifting + if (isnull(drifting_loop)) + return + + var/projected_force = max(0, cos(target_angle - drifting_loop.angle)) * drift_force + if (projected_force > 0) + parent.newtonian_move(reverse_angle(target_angle), projected_force) diff --git a/code/datums/ductnet.dm b/code/datums/ductnet.dm index e97add695d9a3..5cc241cce2b5b 100644 --- a/code/datums/ductnet.dm +++ b/code/datums/ductnet.dm @@ -35,7 +35,7 @@ demanders += P return TRUE -///remove a plumber. we dont delete ourselves because ductnets dont persist through plumbing objects +///remove a plumber. we don't delete ourselves because ductnets don't persist through plumbing objects /datum/ductnet/proc/remove_plumber(datum/component/plumbing/P) suppliers.Remove(P) //we're probably only in one of these, but Remove() is inherently sane so this is fine demanders.Remove(P) @@ -62,7 +62,7 @@ var/obj/machinery/duct/M = A M.duct = src //forget your old master - D.ducts.Cut() //clear this so the other network doesnt clear the ducts along with themselves (this took the life out of me) + D.ducts.Cut() //clear this so the other network doesn't clear the ducts along with themselves (this took the life out of me) D.destroy_network() ///destroy the network and tell all our ducts and plumbers we are gone @@ -72,5 +72,5 @@ for(var/A in ducts) var/obj/machinery/duct/D = A D.duct = null - if(delete) //I don't want code to run with qdeleted objects because that can never be good, so keep this in-case the ductnet has some business left to attend to before commiting suicide + if(delete) //I don't want code to run with qdeleted objects because that can never be good, so keep this in-case the ductnet has some business left to attend to before committing suicide qdel(src) diff --git a/code/datums/eigenstate.dm b/code/datums/eigenstate.dm index b25fa657eb6e4..8b113285b4b1a 100644 --- a/code/datums/eigenstate.dm +++ b/code/datums/eigenstate.dm @@ -25,7 +25,7 @@ GLOBAL_DATUM_INIT(eigenstate_manager, /datum/eigenstate_manager, new) targets -= target continue if(!subtle) - target.visible_message("[target] fizzes, collapsing it's unique wavefunction into the others!") //If we're in a eigenlink all on our own and are open to new friends + target.visible_message("[target] fizzes, collapsing its unique wavefunction into the others!") //If we're in a eigenlink all on our own and are open to new friends remove_eigen_entry(target) //clearup for new stuff //Do we still have targets? if(!length(targets)) diff --git a/code/datums/elements/ai_held_item.dm b/code/datums/elements/ai_held_item.dm index 053a1827fb23d..185e45da9aa2b 100644 --- a/code/datums/elements/ai_held_item.dm +++ b/code/datums/elements/ai_held_item.dm @@ -54,7 +54,7 @@ var/obj/item/carried_item = get_held_item(source) if (!carried_item) return - examine_text += span_notice("[source.p_They()] [source.p_are()] carrying [carried_item.get_examine_string(user)].") + examine_text += span_notice("[source.p_They()] [source.p_are()] carrying [carried_item.examine_title(user)].") /// If we died, drop anything we were carrying /datum/element/ai_held_item/proc/on_death(mob/living/ol_yeller) diff --git a/code/datums/elements/art.dm b/code/datums/elements/art.dm index 81d388aa94af8..d5a642c23d0b6 100644 --- a/code/datums/elements/art.dm +++ b/code/datums/elements/art.dm @@ -74,7 +74,7 @@ var/datum/job_department/hater_department = SSjob.get_department_type(hater_department_type) for(var/datum/job/hater_job as anything in hater_department.department_jobs) haters += hater_job.title - var/datum/job/quartermaster/fucking_quartermaster = SSjob.GetJobType(/datum/job/quartermaster) + var/datum/job/quartermaster/fucking_quartermaster = SSjob.get_job_type(/datum/job/quartermaster) haters += fucking_quartermaster.title if(!(user.mind.assigned_role.title in haters)) diff --git a/code/datums/elements/bane.dm b/code/datums/elements/bane.dm index 6e62d15fc1648..110a755de23b0 100644 --- a/code/datums/elements/bane.dm +++ b/code/datums/elements/bane.dm @@ -1,6 +1,6 @@ /// Deals extra damage to mobs of a certain type, species, or biotype. -/// This doesn't directly modify the normal damage of the weapon, instead it applies it's own damage seperatedly ON TOP of normal damage -/// ie. a sword that does 10 damage with a bane elment attacthed that has a 0.5 damage_multiplier will do: +/// This doesn't directly modify the normal damage of the weapon, instead it applies its own damage separately ON TOP of normal damage +/// ie. a sword that does 10 damage with a bane element attached that has a 0.5 damage_multiplier will do: /// 10 damage from the swords normal attack + 5 damage (50%) from the bane element /datum/element/bane element_flags = ELEMENT_BESPOKE @@ -27,40 +27,20 @@ src.added_damage = added_damage src.requires_combat_mode = requires_combat_mode src.mob_biotypes = mob_biotypes - target.AddComponent(/datum/component/on_hit_effect, CALLBACK(src, PROC_REF(do_bane)), CALLBACK(src, PROC_REF(check_bane))) + target.AddElementTrait(TRAIT_ON_HIT_EFFECT, REF(src), /datum/element/on_hit_effect) + RegisterSignal(target, COMSIG_ON_HIT_EFFECT, PROC_REF(do_bane)) -/datum/element/bane/Detach(datum/target) - qdel(target.GetComponent(/datum/component/on_hit_effect)) +/datum/element/bane/Detach(datum/source) + UnregisterSignal(source, COMSIG_ON_HIT_EFFECT) + REMOVE_TRAIT(source, TRAIT_ON_HIT_EFFECT, REF(src)) return ..() -/datum/element/bane/proc/check_bane(bane_applier, target, bane_weapon) - if(!check_biotype_path(bane_applier, target)) +/datum/element/bane/proc/do_bane(datum/element_owner, mob/living/bane_applier, mob/living/baned_target, hit_zone, throw_hit) + if(!check_biotype_path(bane_applier, baned_target)) return - var/atom/movable/atom_owner = bane_weapon - if(SEND_SIGNAL(atom_owner, COMSIG_OBJECT_PRE_BANING, target) & COMPONENT_CANCEL_BANING) + if(SEND_SIGNAL(element_owner, COMSIG_OBJECT_PRE_BANING, baned_target) & COMPONENT_CANCEL_BANING) return - return TRUE -/** - * Checks typepaths and the mob's biotype, returning TRUE if correct and FALSE if wrong. - * Additionally checks if combat mode is required, and if so whether it's enabled or not. - */ -/datum/element/bane/proc/check_biotype_path(mob/living/bane_applier, atom/target) - if(!isliving(target)) - return FALSE - var/mob/living/living_target = target - if(bane_applier) - if(requires_combat_mode && !bane_applier.combat_mode) - return FALSE - var/is_correct_biotype = living_target.mob_biotypes & mob_biotypes - if(mob_biotypes && !(is_correct_biotype)) - return FALSE - if(ispath(target_type, /mob/living)) - return istype(living_target, target_type) - else //species type - return is_species(living_target, target_type) - -/datum/element/bane/proc/do_bane(datum/element_owner, mob/living/bane_applier, mob/living/baned_target, hit_zone) var/force_boosted var/applied_dam_type @@ -91,3 +71,22 @@ baned_target.apply_damage(extra_damage, applied_dam_type, hit_zone) SEND_SIGNAL(baned_target, COMSIG_LIVING_BANED, bane_applier, baned_target) // for extra effects when baned. SEND_SIGNAL(element_owner, COMSIG_OBJECT_ON_BANING, baned_target) + +/** + * Checks typepaths and the mob's biotype, returning TRUE if correct and FALSE if wrong. + * Additionally checks if combat mode is required, and if so whether it's enabled or not. + */ +/datum/element/bane/proc/check_biotype_path(mob/living/bane_applier, atom/target) + if(!isliving(target)) + return FALSE + var/mob/living/living_target = target + if(bane_applier) + if(requires_combat_mode && !bane_applier.combat_mode) + return FALSE + var/is_correct_biotype = living_target.mob_biotypes & mob_biotypes + if(mob_biotypes && !(is_correct_biotype)) + return FALSE + if(ispath(target_type, /mob/living)) + return istype(living_target, target_type) + else //species type + return is_species(living_target, target_type) diff --git a/code/datums/elements/bed_tucking.dm b/code/datums/elements/bed_tucking.dm index 58f5640c31c75..3b49f2a608f88 100644 --- a/code/datums/elements/bed_tucking.dm +++ b/code/datums/elements/bed_tucking.dm @@ -53,11 +53,11 @@ return COMPONENT_NO_AFTERATTACK /datum/element/bed_tuckable/proc/tuck(obj/item/tucked, obj/structure/bed/target_bed) - tucked.dir = target_bed.dir - tucked.pixel_x = target_bed.dir & EAST ? -x_offset : x_offset + tucked.dir = target_bed.dir & target_bed.left_headrest_dirs ? EAST : WEST + tucked.pixel_x = target_bed.dir & target_bed.left_headrest_dirs ? -x_offset : x_offset tucked.pixel_y = y_offset if(starting_angle) - rotation_degree = target_bed.dir & EAST ? starting_angle + 180 : starting_angle + rotation_degree = target_bed.dir & target_bed.left_headrest_dirs ? starting_angle + 180 : starting_angle tucked.transform = turn(tucked.transform, rotation_degree) RegisterSignal(tucked, COMSIG_ITEM_PICKUP, PROC_REF(untuck)) diff --git a/code/datums/elements/block_turf_fingerprints.dm b/code/datums/elements/block_turf_fingerprints.dm new file mode 100644 index 0000000000000..f3b7ab9cf19f1 --- /dev/null +++ b/code/datums/elements/block_turf_fingerprints.dm @@ -0,0 +1,56 @@ +/** + * ## block_turf_fingerprints + * + * Attach to a movable, prevents mobs from leaving fingerprints on the turf below it + */ +/datum/element/block_turf_fingerprints + element_flags = ELEMENT_DETACH_ON_HOST_DESTROY + +/datum/element/block_turf_fingerprints/Attach(datum/target) + . = ..() + if(!ismovable(target)) + return ELEMENT_INCOMPATIBLE + + var/atom/movable/target_movable = target + if(isturf(target_movable.loc)) + apply_to_turf(target_movable.loc) + + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(move_turf)) + +/datum/element/block_turf_fingerprints/Detach(atom/movable/target) + . = ..() + if(isturf(target.loc)) + remove_from_turf(target.loc) + + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + +/datum/element/block_turf_fingerprints/proc/apply_to_turf(turf/the_turf) + // It's possible two things with this element could be on the same turf, so let's avoid double-applying + if(the_turf.interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND) + // But what if the turf has this flag by default? We still need to override register a signal. + // Otherwise we may run into a very niche bug: + // - A turf as this flag by default + // - A movable with this element is placed on the turf + // - It does not gain the flag nor register a signal + // - The turf changes, and the new turf does not gain the flag + if(initial(the_turf.interaction_flags_atom) & INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND) + RegisterSignal(the_turf, COMSIG_TURF_CHANGE, PROC_REF(replace_our_turf), override = TRUE) + return + + the_turf.interaction_flags_atom |= INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND + RegisterSignal(the_turf, COMSIG_TURF_CHANGE, PROC_REF(replace_our_turf)) + +/datum/element/block_turf_fingerprints/proc/remove_from_turf(turf/the_turf) + the_turf.interaction_flags_atom &= ~INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND + UnregisterSignal(the_turf, COMSIG_TURF_CHANGE) + +/datum/element/block_turf_fingerprints/proc/move_turf(atom/movable/source, atom/old_loc) + SIGNAL_HANDLER + if(isturf(old_loc)) + remove_from_turf(old_loc) + if(isturf(source.loc)) + apply_to_turf(source.loc) + +/datum/element/block_turf_fingerprints/proc/replace_our_turf(datum/source, path, new_baseturfs, flags, post_change_callbacks) + SIGNAL_HANDLER + post_change_callbacks += CALLBACK(src, PROC_REF(apply_to_turf)) diff --git a/code/datums/elements/bugkiller_reagent.dm b/code/datums/elements/bugkiller_reagent.dm index 57f2ae65d9209..d2c25926e966f 100644 --- a/code/datums/elements/bugkiller_reagent.dm +++ b/code/datums/elements/bugkiller_reagent.dm @@ -59,7 +59,7 @@ /datum/status_effect/bugkiller_death/on_apply() if(owner.stat == DEAD) return FALSE - playsound(owner, 'sound/voice/human/malescream_1.ogg', 25, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 5) + playsound(owner, 'sound/mobs/humanoids/human/scream/malescream_1.ogg', 25, TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 5) to_chat(owner, span_userdanger("The world begins to go dark...")) owner.spasm_animation(spasm_loops) owner.adjust_eye_blur(duration) diff --git a/code/datums/elements/can_shatter.dm b/code/datums/elements/can_shatter.dm index be7e02e25b458..df19e4ef12344 100644 --- a/code/datums/elements/can_shatter.dm +++ b/code/datums/elements/can_shatter.dm @@ -45,9 +45,10 @@ shatter(source, impacted_turf) /// Tells the parent to shatter if we are thrown and impact something -/datum/element/can_shatter/proc/on_throw_impact(datum/source, atom/hit_atom) +/datum/element/can_shatter/proc/on_throw_impact(datum/source, atom/hit_atom, datum/thrownthing/throwing_datum, caught) SIGNAL_HANDLER - + if(caught) + return shatter(source, hit_atom) /// Handles the actual shattering part, throwing shards of whatever is defined on the component everywhere diff --git a/code/datums/elements/climbable.dm b/code/datums/elements/climbable.dm index a2c67742a357e..5700ca3bc2e85 100644 --- a/code/datums/elements/climbable.dm +++ b/code/datums/elements/climbable.dm @@ -35,6 +35,8 @@ examine_texts += span_notice("[source] looks climbable.") /datum/element/climbable/proc/can_climb(atom/source, mob/user) + if (!user.CanReach(source)) + return FALSE var/dir_step = get_dir(user, source.loc) //To jump over a railing you have to be standing next to it, not far behind it. if(source.flags_1 & ON_BORDER_1 && user.loc != source.loc && (dir_step & source.dir) == source.dir) @@ -104,8 +106,8 @@ if(ISDIAGONALDIR(climbed_thing.dir) && same_loc) if(params) //we check the icon x and y parameters of the click-drag to determine step_dir. var/list/modifiers = params2list(params) - var/x_dist = (text2num(LAZYACCESS(modifiers, ICON_X)) - world.icon_size/2) * (climbed_thing.dir & WEST ? -1 : 1) - var/y_dist = (text2num(LAZYACCESS(modifiers, ICON_Y)) - world.icon_size/2) * (climbed_thing.dir & SOUTH ? -1 : 1) + var/x_dist = (text2num(LAZYACCESS(modifiers, ICON_X)) - ICON_SIZE_X/2) * (climbed_thing.dir & WEST ? -1 : 1) + var/y_dist = (text2num(LAZYACCESS(modifiers, ICON_Y)) - ICON_SIZE_Y/2) * (climbed_thing.dir & SOUTH ? -1 : 1) dir_step = (x_dist >= y_dist ? (EAST|WEST) : (NORTH|SOUTH)) & climbed_thing.dir else dir_step = get_dir(user, get_step(climbed_thing, climbed_thing.dir)) diff --git a/code/datums/elements/consumable_mob.dm b/code/datums/elements/consumable_mob.dm index 1a7c67a431220..fafdb8cbcab28 100644 --- a/code/datums/elements/consumable_mob.dm +++ b/code/datums/elements/consumable_mob.dm @@ -23,7 +23,7 @@ /datum/element/consumable_mob/proc/on_consume(atom/movable/source, mob/living/consumer) SIGNAL_HANDLER - if(!consumer.combat_mode || !consumer.reagents) + if(!consumer.combat_mode || !consumer.reagents || HAS_TRAIT(consumer, TRAIT_PACIFISM)) return for(var/reagent_type in reagents_list) if(isnull(reagents_list[reagent_type])) diff --git a/code/datums/elements/content_barfer.dm b/code/datums/elements/content_barfer.dm index e30294bc08a7f..533a88503e21e 100644 --- a/code/datums/elements/content_barfer.dm +++ b/code/datums/elements/content_barfer.dm @@ -20,7 +20,9 @@ /datum/element/content_barfer/proc/barf_contents(mob/living/target) SIGNAL_HANDLER - for(var/atom/movable/barfed_out in target) + for(var/atom/movable/barfed_out as anything in target) + if(HAS_TRAIT(barfed_out, TRAIT_NOT_BARFABLE)) + continue barfed_out.forceMove(target.loc) if(prob(90)) step(barfed_out, pick(GLOB.alldirs)) diff --git a/code/datums/elements/corrupted_organ.dm b/code/datums/elements/corrupted_organ.dm index 666ca3460fce5..504c6851e00c6 100644 --- a/code/datums/elements/corrupted_organ.dm +++ b/code/datums/elements/corrupted_organ.dm @@ -41,7 +41,7 @@ ) return var/turf/origin_turf = get_turf(organ) - playsound(organ, 'sound/magic/forcewall.ogg', vol = 100) + playsound(organ, 'sound/effects/magic/forcewall.ogg', vol = 100) new /obj/effect/temp_visual/curse_blast(origin_turf) organ.visible_message(span_revenwarning("[organ] explodes in a burst of dark energy!")) for(var/mob/living/target in range(1, origin_turf)) diff --git a/code/datums/elements/damage_threshold.dm b/code/datums/elements/damage_threshold.dm index 60c87dc5ed5c1..764f5d7a9bd6d 100644 --- a/code/datums/elements/damage_threshold.dm +++ b/code/datums/elements/damage_threshold.dm @@ -45,7 +45,7 @@ span_hear("You hear a thud."), COMBAT_MESSAGE_RANGE, ) - playsound(source, 'sound/weapons/tap.ogg', tap_vol, TRUE, -1) + playsound(source, 'sound/items/weapons/tap.ogg', tap_vol, TRUE, -1) return SUCCESSFUL_BLOCK return NONE diff --git a/code/datums/elements/decals/blood.dm b/code/datums/elements/decals/blood.dm index 857b9e2b678ea..16fd4241147d4 100644 --- a/code/datums/elements/decals/blood.dm +++ b/code/datums/elements/decals/blood.dm @@ -24,8 +24,8 @@ icon = I.icon icon_state = I.icon_state var/icon/icon_for_size = icon(icon, icon_state) - var/scale_factor_x = icon_for_size.Width()/world.icon_size - var/scale_factor_y = icon_for_size.Height()/world.icon_size + var/scale_factor_x = icon_for_size.Width()/ICON_SIZE_X + var/scale_factor_y = icon_for_size.Height()/ICON_SIZE_Y var/mutable_appearance/blood_splatter = mutable_appearance('icons/effects/blood.dmi', "itemblood", appearance_flags = RESET_COLOR) //MA of the blood that we apply blood_splatter.transform = blood_splatter.transform.Scale(scale_factor_x, scale_factor_y) blood_splatter.blend_mode = BLEND_INSET_OVERLAY diff --git a/code/datums/elements/deliver_first.dm b/code/datums/elements/deliver_first.dm index 0fb83a2545603..ae1947bff02a8 100644 --- a/code/datums/elements/deliver_first.dm +++ b/code/datums/elements/deliver_first.dm @@ -80,7 +80,7 @@ if(user) target.balloon_alert(user, "access denied until delivery!") if(COOLDOWN_FINISHED(src, deny_cooldown)) - playsound(target, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(target, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) COOLDOWN_START(src, deny_cooldown, DENY_SOUND_COOLDOWN) return BLOCK_OPEN diff --git a/code/datums/elements/dextrous.dm b/code/datums/elements/dextrous.dm index 681e2a9488d8c..240cfc88494d3 100644 --- a/code/datums/elements/dextrous.dm +++ b/code/datums/elements/dextrous.dm @@ -69,5 +69,5 @@ for(var/obj/item/held_item in examined.held_items) if(held_item.item_flags & (ABSTRACT|EXAMINE_SKIP|HAND_ITEM)) continue - examine_list += span_info("[examined.p_They()] [examined.p_have()] [held_item.get_examine_string(user)] in [examined.p_their()] \ + examine_list += span_info("[examined.p_They()] [examined.p_have()] [held_item.examine_title(user)] in [examined.p_their()] \ [examined.get_held_index_name(examined.get_held_index_of_item(held_item))].") diff --git a/code/datums/elements/digitalcamo.dm b/code/datums/elements/digitalcamo.dm index 3f4db60de2d51..b8a9fa673e358 100644 --- a/code/datums/elements/digitalcamo.dm +++ b/code/datums/elements/digitalcamo.dm @@ -27,17 +27,15 @@ /datum/element/digitalcamo/proc/HideFromAIHuds(mob/living/target) for(var/mob/living/silicon/ai/AI in GLOB.ai_list) - var/datum/atom_hud/M = GLOB.huds[AI.med_hud] - M.hide_single_atomhud_from(AI,target) - var/datum/atom_hud/S = GLOB.huds[AI.sec_hud] - S.hide_single_atomhud_from(AI,target) + for (var/hud_type in AI.silicon_huds) + var/datum/atom_hud/silicon_hud = GLOB.huds[hud_type] + silicon_hud.hide_single_atomhud_from(AI,target) /datum/element/digitalcamo/proc/UnhideFromAIHuds(mob/living/target) for(var/mob/living/silicon/ai/AI in GLOB.ai_list) - var/datum/atom_hud/M = GLOB.huds[AI.med_hud] - M.unhide_single_atomhud_from(AI,target) - var/datum/atom_hud/S = GLOB.huds[AI.sec_hud] - S.unhide_single_atomhud_from(AI,target) + for (var/hud_type in AI.silicon_huds) + var/datum/atom_hud/silicon_hud = GLOB.huds[hud_type] + silicon_hud.unhide_single_atomhud_from(AI,target) /datum/element/digitalcamo/proc/on_examine(datum/source, mob/M) SIGNAL_HANDLER diff --git a/code/datums/elements/disarm_attack.dm b/code/datums/elements/disarm_attack.dm index a788cd9f35ed3..8b4b0b3ff8adf 100644 --- a/code/datums/elements/disarm_attack.dm +++ b/code/datums/elements/disarm_attack.dm @@ -6,13 +6,23 @@ if(!isitem(target)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ITEM_ATTACK_SECONDARY, PROC_REF(secondary_attack)) - RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) + var/obj/item/item = target + RegisterSignal(item, COMSIG_ITEM_ATTACK_SECONDARY, PROC_REF(secondary_attack)) + RegisterSignal(item, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) + item.item_flags |= ITEM_HAS_CONTEXTUAL_SCREENTIPS + RegisterSignal(item, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET, PROC_REF(add_item_context)) /datum/element/disarm_attack/Detach(datum/source) - UnregisterSignal(source, list(COMSIG_ATOM_EXAMINE, COMSIG_ITEM_ATTACK_SECONDARY)) + UnregisterSignal(source, list(COMSIG_ATOM_EXAMINE, COMSIG_ITEM_ATTACK_SECONDARY, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET)) return ..() +/datum/element/disarm_attack/proc/add_item_context(obj/item/source, list/context, atom/target, mob/living/user) + SIGNAL_HANDLER + if(!isliving(target) || !can_disarm_attack(source, target, user, FALSE)) + return NONE + context[SCREENTIP_CONTEXT_RMB] = "Shove" + return CONTEXTUAL_SCREENTIP_SET + /datum/element/disarm_attack/proc/secondary_attack(obj/item/source, mob/living/victim, mob/living/user, params) SIGNAL_HANDLER if(!user.can_disarm(victim) || !can_disarm_attack(source, victim, user)) diff --git a/code/datums/elements/door_pryer.dm b/code/datums/elements/door_pryer.dm index b7f213b3856f6..3e2bd2c5a43d6 100644 --- a/code/datums/elements/door_pryer.dm +++ b/code/datums/elements/door_pryer.dm @@ -35,12 +35,13 @@ attacker.balloon_alert(attacker, "busy!") return COMPONENT_CANCEL_ATTACK_CHAIN - if (airlock_target.locked || airlock_target.welded || airlock_target.seal) - if (!attacker.combat_mode) - airlock_target.balloon_alert(attacker, "it's sealed!") - return COMPONENT_CANCEL_ATTACK_CHAIN + if (attacker.combat_mode) return // Attack the door + if (airlock_target.locked || airlock_target.welded || airlock_target.seal) + airlock_target.balloon_alert(attacker, "it's sealed!") + return COMPONENT_CANCEL_ATTACK_CHAIN + INVOKE_ASYNC(src, PROC_REF(open_door), attacker, airlock_target) return COMPONENT_CANCEL_ATTACK_CHAIN @@ -59,7 +60,7 @@ message = span_warning("[attacker] starts forcing the [airlock_target] open!"), blind_message = span_hear("You hear a metal screeching sound."), ) - playsound(airlock_target, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(airlock_target, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) airlock_target.balloon_alert(attacker, "prying...") if(!do_after(attacker, pry_time, airlock_target)) airlock_target.balloon_alert(attacker, "interrupted!") diff --git a/code/datums/elements/dryable.dm b/code/datums/elements/dryable.dm index d0cdf2355231a..d66ea96d8c1f1 100644 --- a/code/datums/elements/dryable.dm +++ b/code/datums/elements/dryable.dm @@ -27,25 +27,24 @@ var/atom/movable/resulting_atom = dried_atom resulting_atom.add_atom_colour(COLOR_DRIED_TAN, FIXED_COLOUR_PRIORITY) apply_dried_status(resulting_atom, drying_user) - resulting_atom.forceMove(source.drop_location()) return else if(isstack(source)) //Check if its a sheet var/obj/item/stack/itemstack = dried_atom for(var/i in 1 to itemstack.amount) - var/atom/movable/resulting_atom = new dry_result(source.drop_location()) + var/atom/movable/resulting_atom = new dry_result(source.loc) apply_dried_status(resulting_atom, drying_user) qdel(source) return else if(istype(source, /obj/item/food) && ispath(dry_result, /obj/item/food)) var/obj/item/food/source_food = source - var/obj/item/food/resulting_food = new dry_result(source.drop_location()) + var/obj/item/food/resulting_food = new dry_result(source.loc) resulting_food.reagents.clear_reagents() source_food.reagents.trans_to(resulting_food, source_food.reagents.total_volume) apply_dried_status(resulting_food, drying_user) qdel(source) return else - var/atom/movable/resulting_atom = new dry_result(source.drop_location()) + var/atom/movable/resulting_atom = new dry_result(source.loc) apply_dried_status(resulting_atom, drying_user) qdel(source) diff --git a/code/datums/elements/elevation.dm b/code/datums/elements/elevation.dm index b83548c6b5f41..959fa14f79837 100644 --- a/code/datums/elements/elevation.dm +++ b/code/datums/elements/elevation.dm @@ -151,8 +151,8 @@ /datum/element/elevation_core/proc/on_initialized_on(turf/source, atom/movable/spawned) SIGNAL_HANDLER - if(isliving(spawned)) - elevate_mob(spawned) + if(isliving(spawned) && !HAS_TRAIT(spawned, TRAIT_ON_ELEVATED_SURFACE)) + on_entered(entered = spawned) /datum/element/elevation_core/proc/on_exited(turf/source, atom/movable/gone) SIGNAL_HANDLER diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 6e83d91c5e76d..fbaf638bdd520 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -23,7 +23,7 @@ return RegisterSignal(target, COMSIG_MOVABLE_IMPACT_ZONE, PROC_REF(check_embed)) - RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(examined)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE_TAGS, PROC_REF(examined_tags)) RegisterSignal(target, COMSIG_EMBED_TRY_FORCE, PROC_REF(try_force_embed)) RegisterSignal(target, COMSIG_ITEM_DISABLE_EMBED, PROC_REF(detach_from_weapon)) @@ -46,7 +46,7 @@ if(blocked || !istype(victim) || HAS_TRAIT(victim, TRAIT_PIERCEIMMUNE)) return FALSE - if(victim.status_flags & GODMODE) + if(HAS_TRAIT(victim, TRAIT_GODMODE)) return FALSE var/flying_speed = throwingdatum?.speed || weapon.throw_speed @@ -82,13 +82,13 @@ Detach(weapon) ///Someone inspected our embeddable item -/datum/element/embed/proc/examined(obj/item/I, mob/user, list/examine_list) +/datum/element/embed/proc/examined_tags(obj/item/I, mob/user, list/examine_list) SIGNAL_HANDLER if(I.is_embed_harmless()) - examine_list += "[I] feels sticky, and could probably get stuck to someone if thrown properly!" + examine_list["sticky"] = "[I] feels sticky, and could probably get stuck to someone if thrown properly!" else - examine_list += "[I] has a fine point, and could probably embed in someone if thrown properly!" + examine_list["embeddable"] = "[I] has a fine point, and could probably embed in someone if thrown properly!" /** * check_embed_projectile() is what we get when a projectile with a defined shrapnel_type impacts a target. @@ -106,6 +106,7 @@ return // we don't care var/payload_type = source.shrapnel_type var/obj/item/payload = new payload_type(get_turf(hit)) + payload.set_embed(source.get_embed()) if(istype(payload, /obj/item/shrapnel/bullet)) payload.name = source.name SEND_SIGNAL(source, COMSIG_PROJECTILE_ON_SPAWN_EMBEDDED, payload) @@ -116,6 +117,8 @@ if(!try_force_embed(payload, limb)) payload.failedEmbed() + else + SEND_SIGNAL(source, COMSIG_PROJECTILE_ON_EMBEDDED, payload, hit) Detach(source) /** diff --git a/code/datums/elements/eyestab.dm b/code/datums/elements/eyestab.dm index b8c0d78c4ae5c..a6757f67fb39b 100644 --- a/code/datums/elements/eyestab.dm +++ b/code/datums/elements/eyestab.dm @@ -2,6 +2,8 @@ #define CLUMSY_ATTACK_SELF_CHANCE 50 /// The damage threshold (of the victim's eyes) after which they start taking more serious effects #define EYESTAB_BLEEDING_THRESHOLD 10 +/// The damage threshold (of the victim's eyes) after which they can go blind +#define EYESTAB_BLINDING_THRESHOLD 30 /// How much blur we can apply #define EYESTAB_MAX_BLUR (4 MINUTES) @@ -80,13 +82,14 @@ return target.adjust_eye_blur_up_to(6 SECONDS, EYESTAB_MAX_BLUR) + var/started_bleeding = eyes.damage < EYESTAB_BLEEDING_THRESHOLD eyes.apply_organ_damage(rand(2, 4)) if(eyes.damage < EYESTAB_BLEEDING_THRESHOLD) return // At over 10 damage we apply a lot of eye blur target.adjust_eye_blur_up_to(30 SECONDS, EYESTAB_MAX_BLUR) - if (target.stat != DEAD) + if (target.stat != DEAD && started_bleeding) to_chat(target, span_danger("Your eyes start to bleed profusely!")) // At over 10 damage, we cause at least enough eye damage to force nearsightedness @@ -102,8 +105,26 @@ target.Unconscious(2 SECONDS) target.Paralyze(4 SECONDS) - // At over 10 damage, there is a chance (based on eye damage) of going blind - if (prob(eyes.damage - eyes.low_threshold + 1)) + // A solid chance of getting a permanent scar over one of your eyes, if you have at least one unscarred eyeball + if (prob(eyes.damage - EYESTAB_BLEEDING_THRESHOLD + 1)) + var/valid_sides = list() + if (!(eyes.scarring & RIGHT_EYE_SCAR)) + valid_sides += RIGHT_EYE_SCAR + if (!(eyes.scarring & LEFT_EYE_SCAR)) + valid_sides += LEFT_EYE_SCAR + if (length(valid_sides)) + var/picked_side = pick(valid_sides) + to_chat(target, span_userdanger("You feel searing pain shoot though your [picked_side == RIGHT_EYE_SCAR ? "right" : "left"] eye!")) + // oof ouch my eyes + var/datum/wound/pierce/bleed/severe/eye/eye_puncture = new + eye_puncture.apply_wound(eyes.bodypart_owner, wound_source = "eye stab", right_side = picked_side) + eyes.apply_scar(picked_side) + + if (eyes.damage < EYESTAB_BLINDING_THRESHOLD) + return + + // At over 30 damage, there is a chance (based on eye damage) of going blind + if (prob(eyes.damage - EYESTAB_BLINDING_THRESHOLD + 1)) if (!target.is_blind_from(EYE_DAMAGE)) eyes.set_organ_damage(eyes.maxHealth) // Also cause some temp blindness, so that they're still blind even if they get healed @@ -111,4 +132,5 @@ #undef CLUMSY_ATTACK_SELF_CHANCE #undef EYESTAB_BLEEDING_THRESHOLD +#undef EYESTAB_BLINDING_THRESHOLD #undef EYESTAB_MAX_BLUR diff --git a/code/datums/elements/falling_hazard.dm b/code/datums/elements/falling_hazard.dm index 355bcd92e4e01..65ac6b4569f0e 100644 --- a/code/datums/elements/falling_hazard.dm +++ b/code/datums/elements/falling_hazard.dm @@ -12,7 +12,7 @@ /// Does the target crush and flatten whoever it falls on var/crushes_people = FALSE /// What sound is played when the target falls onto a mob - var/impact_sound = 'sound/magic/clockwork/fellowship_armory.ogg' //CLANG + var/impact_sound = 'sound/effects/magic/clockwork/fellowship_armory.ogg' //CLANG /datum/element/falling_hazard/Attach(datum/target, damage, wound_bonus, hardhat_safety, crushes, impact_sound) . = ..() @@ -52,7 +52,7 @@ if(crushes_people) poor_target.Knockdown(0.25 SECONDS * fall_damage) // For a piano, that would be 15 seconds - playsound(poor_target, 'sound/weapons/parry.ogg', 50, TRUE) // You PARRIED the falling object with your EPIC hardhat + playsound(poor_target, 'sound/items/weapons/parry.ogg', 50, TRUE) // You PARRIED the falling object with your EPIC hardhat return var/obj/item/bodypart/target_head = poor_target.get_bodypart(BODY_ZONE_HEAD) diff --git a/code/datums/elements/firestacker.dm b/code/datums/elements/firestacker.dm index b7bad65cc6ced..a512e5e89c7d1 100644 --- a/code/datums/elements/firestacker.dm +++ b/code/datums/elements/firestacker.dm @@ -27,10 +27,10 @@ /datum/element/firestacker/proc/stack_on(datum/owner, mob/living/target) target.adjust_fire_stacks(amount) -/datum/element/firestacker/proc/impact(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) +/datum/element/firestacker/proc/impact(datum/source, atom/hit_atom, datum/thrownthing/throwing_datum, caught) SIGNAL_HANDLER - if(isliving(hit_atom)) + if(!caught && isliving(hit_atom)) stack_on(source, hit_atom) /datum/element/firestacker/proc/item_attack(datum/source, atom/movable/target, mob/living/user) diff --git a/code/datums/elements/fish_safe_storage.dm b/code/datums/elements/fish_safe_storage.dm new file mode 100644 index 0000000000000..bb7864ced0e6a --- /dev/null +++ b/code/datums/elements/fish_safe_storage.dm @@ -0,0 +1,53 @@ +///An element that puts in stasis any fish that enters the atom. +/datum/element/fish_safe_storage + element_flags = ELEMENT_DETACH_ON_HOST_DESTROY + var/list/tracked_fish = list() + +/datum/element/fish_safe_storage/New() + . = ..() + START_PROCESSING(SSprocessing, src) + +/datum/element/fish_safe_storage/Attach(atom/target) + . = ..() + if(!isatom(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_ATOM_ENTERED, PROC_REF(on_enter)) + RegisterSignal(target, COMSIG_ATOM_EXITED, PROC_REF(on_exit)) + RegisterSignal(target, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(on_init_on)) + for(var/obj/item/fish/fish in target) + tracked_fish |= fish + fish.enter_stasis() + +/datum/element/fish_safe_storage/Detach(atom/source) + for(var/obj/item/fish/fish in source) + tracked_fish -= fish + fish.exit_stasis() + UnregisterSignal(source, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_EXITED, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON)) + return ..() + +/datum/element/fish_safe_storage/proc/on_enter(datum/source, obj/item/fish/arrived) + SIGNAL_HANDLER + if(isfish(arrived)) + tracked_fish |= arrived + arrived.enter_stasis() + +/datum/element/fish_safe_storage/proc/on_init_on(datum/source, obj/item/fish/created) + SIGNAL_HANDLER + if(isfish(created) && !QDELETED(created)) + tracked_fish |= created + created.enter_stasis() + +/datum/element/fish_safe_storage/proc/on_exit(datum/source, obj/item/fish/gone) + SIGNAL_HANDLER + if(isfish(gone)) + tracked_fish -= gone + gone.exit_stasis() + +/datum/element/fish_safe_storage/process(seconds_per_tick) + for(var/obj/item/fish/fish as anything in tracked_fish) + ///Keep delaying hunger and breeding while in stasis, and also heal them. + fish.last_feeding += seconds_per_tick SECONDS + fish.breeding_wait += seconds_per_tick SECONDS + if(fish.health < initial(fish.health) * 0.65) + fish.adjust_health(fish.health + 0.75 * seconds_per_tick) diff --git a/code/datums/elements/food/food_trash.dm b/code/datums/elements/food/food_trash.dm index 6df36c82c4c41..244de8d7e84ab 100644 --- a/code/datums/elements/food/food_trash.dm +++ b/code/datums/elements/food/food_trash.dm @@ -22,11 +22,14 @@ RegisterSignal(target, COMSIG_ITEM_ATTACK_SELF, PROC_REF(open_trash)) if(flags & FOOD_TRASH_POPABLE) RegisterSignal(target, COMSIG_FOOD_CROSSED, PROC_REF(food_crossed)) - RegisterSignal(target, COMSIG_ITEM_ON_GRIND, PROC_REF(generate_trash)) - RegisterSignal(target, COMSIG_ITEM_ON_JUICE, PROC_REF(generate_trash)) - RegisterSignal(target, COMSIG_ITEM_USED_AS_INGREDIENT, PROC_REF(generate_trash)) - RegisterSignal(target, COMSIG_ITEM_ON_COMPOSTED, PROC_REF(generate_trash)) - RegisterSignal(target, COMSIG_ITEM_SOLD_TO_CUSTOMER, PROC_REF(generate_trash)) + RegisterSignals(target, list( + COMSIG_ITEM_ON_GRIND, + COMSIG_ITEM_ON_JUICE, + COMSIG_ITEM_USED_AS_INGREDIENT, + COMSIG_ITEM_ON_COMPOSTED, + COMSIG_ITEM_SOLD_TO_CUSTOMER, + COMSIG_MOVABLE_SPLAT, + ), PROC_REF(generate_trash)) /datum/element/food_trash/Detach(datum/target) . = ..() @@ -38,7 +41,9 @@ COMSIG_ITEM_ON_JUICE, COMSIG_ITEM_USED_AS_INGREDIENT, COMSIG_ITEM_ON_COMPOSTED, - COMSIG_ITEM_SOLD_TO_CUSTOMER,)) + COMSIG_ITEM_SOLD_TO_CUSTOMER, + COMSIG_MOVABLE_SPLAT, + )) /datum/element/food_trash/proc/generate_trash(datum/source, mob/living/eater, mob/living/feeder) SIGNAL_HANDLER diff --git a/code/datums/elements/food/fried_item.dm b/code/datums/elements/food/fried_item.dm index 2afab84d1cb43..bc21e51f24cd7 100644 --- a/code/datums/elements/food/fried_item.dm +++ b/code/datums/elements/food/fried_item.dm @@ -17,28 +17,27 @@ var/atom/this_food = target switch(fry_time) - if(0 to 15) + if(0 to 15 SECONDS) this_food.add_atom_colour(fried_colors[1], FIXED_COLOUR_PRIORITY) this_food.name = "lightly-fried [this_food.name]" this_food.desc += " It's been lightly fried in a deep fryer." - if(15 to 50) + if(15 SECONDS to 50 SECONDS) this_food.add_atom_colour(fried_colors[2], FIXED_COLOUR_PRIORITY) this_food.name = "fried [this_food.name]" this_food.desc += " It's been fried, increasing its tastiness value by [rand(1, 75)]%." - if(50 to 85) + if(50 SECONDS to 85 SECONDS) this_food.add_atom_colour(fried_colors[3], FIXED_COLOUR_PRIORITY) this_food.name = "deep-fried [this_food.name]" this_food.desc += " Deep-fried to perfection." - if(85 to INFINITY) + if(85 SECONDS to INFINITY) this_food.add_atom_colour(fried_colors[4], FIXED_COLOUR_PRIORITY) this_food.name = "\proper the physical manifestation of the very concept of fried foods" this_food.desc = "A heavily-fried... something. Who can tell anymore?" ADD_TRAIT(this_food, TRAIT_FOOD_FRIED, ELEMENT_TRAIT(type)) - SEND_SIGNAL(this_food, COMSIG_ITEM_FRIED, fry_time) // Already edible items will inherent these parameters // Otherwise, we will become edible. this_food.AddComponent( \ @@ -49,6 +48,7 @@ foodtypes = FRIED, \ volume = this_food.reagents?.maximum_volume, \ ) + SEND_SIGNAL(this_food, COMSIG_ITEM_FRIED, fry_time) /datum/element/fried_item/Detach(atom/source, ...) for(var/color in fried_colors) diff --git a/code/datums/elements/food/grilled_item.dm b/code/datums/elements/food/grilled_item.dm index de6c2ef41c1b9..6899f47faa475 100644 --- a/code/datums/elements/food/grilled_item.dm +++ b/code/datums/elements/food/grilled_item.dm @@ -28,8 +28,12 @@ if(grill_time > 30 SECONDS && isnull(this_food.GetComponent(/datum/component/edible))) this_food.AddComponent(/datum/component/edible, foodtypes = FRIED) + SEND_SIGNAL(this_food, COMSIG_ITEM_BARBEQUE_GRILLED, grill_time) + ADD_TRAIT(this_food, TRAIT_FOOD_BBQ_GRILLED, ELEMENT_TRAIT(type)) + /datum/element/grilled_item/Detach(atom/source, ...) source.name = initial(source.name) source.desc = initial(source.desc) qdel(source.GetComponent(/datum/component/edible)) // Don't care if it was initially edible + REMOVE_TRAIT(src, TRAIT_FOOD_BBQ_GRILLED, ELEMENT_TRAIT(type)) return ..() diff --git a/code/datums/elements/food/microwavable.dm b/code/datums/elements/food/microwavable.dm index 8e7305545c0b0..5fdd4c084add1 100644 --- a/code/datums/elements/food/microwavable.dm +++ b/code/datums/elements/food/microwavable.dm @@ -44,6 +44,7 @@ var/efficiency = istype(used_microwave) ? used_microwave.efficiency : 1 SEND_SIGNAL(result, COMSIG_ITEM_MICROWAVE_COOKED, source, efficiency) + SEND_SIGNAL(source, COMSIG_ITEM_MICROWAVE_COOKED_FROM, result, efficiency) if(IS_EDIBLE(result) && (result_typepath != default_typepath)) BLACKBOX_LOG_FOOD_MADE(result.type) diff --git a/code/datums/elements/footstep.dm b/code/datums/elements/footstep.dm index a162e58752d55..698f7896a70b4 100644 --- a/code/datums/elements/footstep.dm +++ b/code/datums/elements/footstep.dm @@ -71,38 +71,55 @@ if(source.body_position == LYING_DOWN) //play crawling sound if we're lying if(turf.footstep) - playsound(turf, 'sound/effects/footstep/crawl1.ogg', 15 * volume, falloff_distance = 1, vary = sound_vary) + var/sound = 'sound/effects/footstep/crawl1.ogg' + if(HAS_TRAIT(source, TRAIT_FLOPPING)) + sound = pick(SFX_FISH_PICKUP, 'sound/mobs/non-humanoids/fish/fish_drop1.ogg') + playsound(turf, sound, 15 * volume, falloff_distance = 1, vary = sound_vary) return - if(iscarbon(source)) - var/mob/living/carbon/carbon_source = source - if(!carbon_source.get_bodypart(BODY_ZONE_L_LEG) && !carbon_source.get_bodypart(BODY_ZONE_R_LEG)) - return - if(carbon_source.move_intent == MOVE_INTENT_WALK) - return// stealth + if(iscarbon(source) && source.move_intent == MOVE_INTENT_WALK) + return // stealth + steps_for_living[source] += 1 var/steps = steps_for_living[source] - if(steps >= 6) + if(steps >= 24) + // right foot = 0, 4, 8, 12, 16, 20 + // left foot = 2, 6, 10, 14, 18, 22 + // 24 -> return to 0 -> right foot, repeat steps_for_living[source] = 0 steps = 0 if(steps % 2) + // skipping every other step, anyways. gets noisy otherwise return - if(steps != 0 && !source.has_gravity()) // don't need to step as often when you hop around + if(steps % 6 != 0 && !source.has_gravity()) + // don't need to step as often when you hop around return - . = list(FOOTSTEP_MOB_SHOE = turf.footstep, FOOTSTEP_MOB_BAREFOOT = turf.barefootstep, FOOTSTEP_MOB_HEAVY = turf.heavyfootstep, FOOTSTEP_MOB_CLAW = turf.clawfootstep, STEP_SOUND_PRIORITY = STEP_SOUND_NO_PRIORITY) - var/overriden = SEND_SIGNAL(turf, COMSIG_TURF_PREPARE_STEP_SOUND, .) & FOOTSTEP_OVERRIDEN - //The turf has no footstep sound (e.g. open space) and none of the objects on that turf (e.g. catwalks) overrides it - if(!overriden && isnull(turf.footstep)) + var/list/footstep_data = list( + FOOTSTEP_MOB_SHOE = turf.footstep, + FOOTSTEP_MOB_BAREFOOT = turf.barefootstep, + FOOTSTEP_MOB_HEAVY = turf.heavyfootstep, + FOOTSTEP_MOB_CLAW = turf.clawfootstep, + STEP_SOUND_PRIORITY = STEP_SOUND_NO_PRIORITY, + ) + var/sigreturn = SEND_SIGNAL(turf, COMSIG_TURF_PREPARE_STEP_SOUND, footstep_data) + if(sigreturn & FOOTSTEP_OVERRIDEN) + return footstep_data + if(isnull(turf.footstep)) + // The turf has no footstep sound (e.g. open space) + // and none of the objects on that turf (e.g. catwalks) overrides it return null - return . + return footstep_data /datum/element/footstep/proc/play_simplestep(mob/living/source, atom/oldloc, direction, forced, list/old_locs, momentum_change) SIGNAL_HANDLER + if(source.moving_diagonally == SECOND_DIAG_STEP) + return // to prevent a diagonal step from counting as 2 + if (forced || SHOULD_DISABLE_FOOTSTEPS(source)) return @@ -122,9 +139,54 @@ /datum/element/footstep/proc/play_humanstep(mob/living/carbon/human/source, atom/oldloc, direction, forced, list/old_locs, momentum_change) SIGNAL_HANDLER + if(source.moving_diagonally == SECOND_DIAG_STEP) + return // to prevent a diagonal step from counting as 2 + if (forced || SHOULD_DISABLE_FOOTSTEPS(source) || !momentum_change) return + var/list/prepared_steps = prepare_step(source) + if(isnull(prepared_steps)) + return + + var/footstep_type = null + var/list/footstep_sounds + var/stepcount = steps_for_living[source] + // any leg covering sounds defaults to shoe sounds + if((source.wear_suit?.body_parts_covered|source.w_uniform?.body_parts_covered|source.shoes?.body_parts_covered) & FEET) + footstep_type = FOOTSTEP_MOB_SHOE + // now pick whether to draw from left foot or right foot sounds + else + var/obj/item/bodypart/leg/left_leg = source.get_bodypart(BODY_ZONE_L_LEG) + var/obj/item/bodypart/leg/right_leg = source.get_bodypart(BODY_ZONE_R_LEG) + if(stepcount == 2 || stepcount == 6) + footstep_sounds = left_leg?.special_footstep_sounds || right_leg?.special_footstep_sounds + footstep_type = left_leg?.footstep_type || right_leg?.footstep_type + else + footstep_sounds = right_leg?.special_footstep_sounds || left_leg?.special_footstep_sounds + footstep_type = right_leg?.footstep_type || left_leg?.footstep_type + + // allow for snowflake effects to take priority + if(!length(footstep_sounds)) + switch(footstep_type) + if(FOOTSTEP_MOB_CLAW) + footstep_sounds = GLOB.clawfootstep[prepared_steps[footstep_type]] + if(FOOTSTEP_MOB_BAREFOOT) + footstep_sounds = GLOB.barefootstep[prepared_steps[footstep_type]] + if(FOOTSTEP_MOB_HEAVY) + footstep_sounds = GLOB.heavyfootstep[prepared_steps[footstep_type]] + if(FOOTSTEP_MOB_SHOE) + footstep_sounds = GLOB.footstep[prepared_steps[footstep_type]] + if(null) + return + else + // Got an unsupported type, somehow + CRASH("Invalid footstep type for human footstep: \[[footstep_type]\]") + + // no snowflake, and no (found) footstep sounds, nothing to do + if(!length(footstep_sounds)) + return + var/volume_multiplier = 1 var/range_adjustment = 0 @@ -132,37 +194,20 @@ volume_multiplier = 0.6 range_adjustment = -2 - var/list/prepared_steps = prepare_step(source) - if(isnull(prepared_steps)) - return - - //cache for sanic speed (lists are references anyways) - var/footstep_sounds = GLOB.footstep - ///list returned by playsound() filled by client mobs who heard the footstep. given to play_fov_effect() + // list returned by playsound() filled by client mobs who heard the footstep. given to play_fov_effect() var/list/heard_clients - - if((source.wear_suit?.body_parts_covered | source.w_uniform?.body_parts_covered | source.shoes?.body_parts_covered) & FEET) - // we are wearing shoes - - var/shoestep_type = prepared_steps[FOOTSTEP_MOB_SHOE] - if(!isnull(shoestep_type) && footstep_sounds[shoestep_type]) // shoestep type can be null - heard_clients = playsound(source.loc, pick(footstep_sounds[shoestep_type][1]), - footstep_sounds[shoestep_type][2] * volume * volume_multiplier, - TRUE, - footstep_sounds[shoestep_type][3] + e_range + range_adjustment, falloff_distance = 1, vary = sound_vary) - else - // we are barefoot - - if(source.dna.species.special_step_sounds) - heard_clients = playsound(source.loc, pick(source.dna.species.special_step_sounds), 50, TRUE, falloff_distance = 1, vary = sound_vary) - else - var/barefoot_type = prepared_steps[FOOTSTEP_MOB_BAREFOOT] - var/bare_footstep_sounds = GLOB.barefootstep - if(!isnull(barefoot_type) && bare_footstep_sounds[barefoot_type]) // barefoot_type can be null - heard_clients = playsound(source.loc, pick(bare_footstep_sounds[barefoot_type][1]), - bare_footstep_sounds[barefoot_type][2] * volume * volume_multiplier, - TRUE, - bare_footstep_sounds[barefoot_type][3] + e_range + range_adjustment, falloff_distance = 1, vary = sound_vary) + var/picked_sound = pick(footstep_sounds[1]) + var/picked_volume = footstep_sounds[2] * volume * volume_multiplier + var/picked_range = footstep_sounds[3] + e_range + range_adjustment + + heard_clients = playsound( + source = source, + soundin = picked_sound, + vol = picked_volume, + vary = sound_vary, + extrarange = picked_range, + falloff_distance = 1, + ) if(heard_clients) play_fov_effect(source, 5, "footstep", direction, ignore_self = TRUE, override_list = heard_clients) @@ -172,6 +217,9 @@ /datum/element/footstep/proc/play_simplestep_machine(atom/movable/source, atom/oldloc, direction, forced, list/old_locs, momentum_change) SIGNAL_HANDLER + if(source.moving_diagonally == SECOND_DIAG_STEP) + return // to prevent a diagonal step from counting as 2 + if (forced || SHOULD_DISABLE_FOOTSTEPS(source)) return diff --git a/code/datums/elements/frozen.dm b/code/datums/elements/frozen.dm index d112ef31b5f91..df857cdd6efe6 100644 --- a/code/datums/elements/frozen.dm +++ b/code/datums/elements/frozen.dm @@ -28,7 +28,7 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 organ.organ_flags |= ORGAN_FROZEN RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) - RegisterSignal(target, COMSIG_MOVABLE_THROW_LANDED, PROC_REF(shatter_on_throw)) + RegisterSignal(target, COMSIG_MOVABLE_THROW_LANDED, PROC_REF(shatter_on_landed)) RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(shatter_on_throw)) RegisterSignal(target, COMSIG_OBJ_UNFREEZE, PROC_REF(on_unfreeze)) @@ -54,8 +54,13 @@ GLOBAL_LIST_INIT(freon_color_matrix, list("#2E5E69", "#60A2A8", "#A1AFB1", rgb(0 SIGNAL_HANDLER Detach(source) -///signal handler for COMSIG_MOVABLE_POST_THROW that shatters our target after impacting after a throw -/datum/element/frozen/proc/shatter_on_throw(datum/target, datum/thrownthing/throwingdatum) +/datum/element/frozen/proc/shatter_on_throw(datum/source, atom/hit_atom, datum/thrownthing/throwing_datum, caught) + SIGNAL_HANDLER + if(!caught) + shatter_on_landed(source, throwing_datum) + +///signal handler that shatters our target after impacting after a throw. +/datum/element/frozen/proc/shatter_on_landed(datum/target, datum/thrownthing/throwingdatum) SIGNAL_HANDLER var/obj/obj_target = target if(ismob(throwingdatum.thrower)) diff --git a/code/datums/elements/gags_recolorable.dm b/code/datums/elements/gags_recolorable.dm index 93b21c5d31d4e..c59b314ee96c1 100644 --- a/code/datums/elements/gags_recolorable.dm +++ b/code/datums/elements/gags_recolorable.dm @@ -10,7 +10,7 @@ /datum/element/gags_recolorable/proc/on_examine(atom/source, mob/user, list/examine_text) SIGNAL_HANDLER - examine_text += span_notice("Now utilising PPP recolouring technology, capable of absorbing paint and pigments for changing it's colours!") + examine_text += span_notice("Now utilising PPP recolouring technology, capable of absorbing paint and pigments for changing its colours!") /datum/element/gags_recolorable/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user) SIGNAL_HANDLER diff --git a/code/datums/elements/give_turf_traits.dm b/code/datums/elements/give_turf_traits.dm index 3c53d4a5e7305..7e7c37d86e7ef 100644 --- a/code/datums/elements/give_turf_traits.dm +++ b/code/datums/elements/give_turf_traits.dm @@ -67,7 +67,7 @@ for(var/mob/living/living in location) living.update_turf_movespeed() -/// Signals and components are carried over when the turf is changed, so they've to be readded post-change. +/// Signals are carried over when the turf is changed, but traits aren't, so they've to be readded post-change. /datum/element/give_turf_traits/proc/pre_change_turf(turf/changed, path, list/new_baseturfs, flags, list/post_change_callbacks) SIGNAL_HANDLER post_change_callbacks += CALLBACK(src, PROC_REF(reoccupy_turf)) diff --git a/code/datums/elements/glass_pacifist.dm b/code/datums/elements/glass_pacifist.dm new file mode 100644 index 0000000000000..76204201c601e --- /dev/null +++ b/code/datums/elements/glass_pacifist.dm @@ -0,0 +1,18 @@ +/// Prevents the living from attacking windows +/datum/element/glass_pacifist + +/datum/element/glass_pacifist/Attach(datum/target) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_LIVING_ATTACK_ATOM, PROC_REF(check_if_glass)) + +/datum/element/glass_pacifist/proc/check_if_glass(mob/living/owner, atom/hit) + SIGNAL_HANDLER + + if(istype(hit, /obj/structure/window)) + owner.visible_message(span_notice("[owner.name] nuzzles the [hit.name]!")) + new /obj/effect/temp_visual/heart(hit.loc) + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/elements/high_fiver.dm b/code/datums/elements/high_fiver.dm index 6e4e9739cefc5..249a9f4059de4 100644 --- a/code/datums/elements/high_fiver.dm +++ b/code/datums/elements/high_fiver.dm @@ -54,7 +54,7 @@ taker.add_mood_event(descriptor, /datum/mood_event/high_five_full_hand) // not so successful now! return COMPONENT_OFFER_INTERRUPT - playsound(offerer, 'sound/weapons/slap.ogg', min(50 * slappers_giver, 300), TRUE, 1) + playsound(offerer, 'sound/items/weapons/slap.ogg', min(50 * slappers_giver, 300), TRUE, 1) offerer.add_mob_memory(/datum/memory/high_five, deuteragonist = taker, high_five_type = descriptor, high_ten = high_ten) taker.add_mob_memory(/datum/memory/high_five, deuteragonist = offerer, high_five_type = descriptor, high_ten = high_ten) diff --git a/code/datums/elements/immerse.dm b/code/datums/elements/immerse.dm index 89148fad7e2a3..d50ae906c0a55 100644 --- a/code/datums/elements/immerse.dm +++ b/code/datums/elements/immerse.dm @@ -107,6 +107,8 @@ */ /datum/element/immerse/proc/on_init_or_entered(turf/source, atom/movable/movable) SIGNAL_HANDLER + if(QDELETED(movable)) + return if(HAS_TRAIT(movable, TRAIT_IMMERSED)) return if(movable.layer >= ABOVE_ALL_MOB_LAYER || !ISINRANGE(movable.plane, MUTATE_PLANE(FLOOR_PLANE, source), MUTATE_PLANE(GAME_PLANE, source))) @@ -140,8 +142,8 @@ */ /datum/element/immerse/proc/add_immerse_overlay(atom/movable/movable) var/list/icon_dimensions = get_icon_dimensions(movable.icon) - var/width = icon_dimensions["width"] || world.icon_size - var/height = icon_dimensions["height"] || world.icon_size + var/width = icon_dimensions["width"] || ICON_SIZE_X + var/height = icon_dimensions["height"] || ICON_SIZE_Y var/is_below_water = movable.layer < WATER_LEVEL_LAYER ? "underwater-" : "" @@ -182,19 +184,19 @@ * but since we want the appearance to stay where it should be, * we have to counteract this one. */ - var/extra_width = (width - world.icon_size) * 0.5 - var/extra_height = (height - world.icon_size) * 0.5 + var/extra_width = (width - ICON_SIZE_X) * 0.5 + var/extra_height = (height - ICON_SIZE_Y) * 0.5 var/mutable_appearance/overlay_appearance = new() var/icon/immerse_icon = generated_immerse_icons["[icon]-[icon_state]-[mask_icon]"] - var/last_i = width/world.icon_size + var/last_i = width/ICON_SIZE_X for(var/i in -1 to last_i) var/mutable_appearance/underwater = mutable_appearance(icon, icon_state) - underwater.pixel_x = world.icon_size * i - extra_width - underwater.pixel_y = -world.icon_size - extra_height + underwater.pixel_x = ICON_SIZE_X * i - extra_width + underwater.pixel_y = -ICON_SIZE_Y - extra_height overlay_appearance.overlays += underwater var/mutable_appearance/water_level = is_below_water ? underwater : mutable_appearance(immerse_icon) - water_level.pixel_x = world.icon_size * i - extra_width + water_level.pixel_x = ICON_SIZE_X * i - extra_width water_level.pixel_y = -extra_height overlay_appearance.overlays += water_level diff --git a/code/datums/elements/kneejerk.dm b/code/datums/elements/kneejerk.dm index cd93fe31917ed..78c0ba7654d69 100644 --- a/code/datums/elements/kneejerk.dm +++ b/code/datums/elements/kneejerk.dm @@ -51,17 +51,17 @@ var/target_brain_damage = target_brain.damage if(target_brain_damage < BRAIN_DAMAGE_MILD) //a healthy brain produces a normal reaction - playsound(target, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(target, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) target.visible_message(span_danger("[target]'s leg kicks out sharply!"), \ span_danger("Your leg kicks out sharply!")) else if(target_brain_damage < BRAIN_DAMAGE_SEVERE) //a mildly damaged brain produces a delayed reaction - playsound(target, 'sound/weapons/punchmiss.ogg', 15, TRUE, -1) + playsound(target, 'sound/items/weapons/punchmiss.ogg', 15, TRUE, -1) target.visible_message(span_danger("After a moment, [target]'s leg kicks out sharply!"), \ span_danger("After a moment, your leg kicks out sharply!")) else if(target_brain_damage < BRAIN_DAMAGE_DEATH) //a severely damaged brain produces a delayed + weaker reaction - playsound(target, 'sound/weapons/punchmiss.ogg', 5, TRUE, -1) + playsound(target, 'sound/items/weapons/punchmiss.ogg', 5, TRUE, -1) target.visible_message(span_danger("After a moment, [target]'s leg kicks out weakly!"), \ span_danger("After a moment, your leg kicks out weakly!")) diff --git a/code/datums/elements/lazy_fishing_spot.dm b/code/datums/elements/lazy_fishing_spot.dm index 901b163af1538..67edcea2e88ed 100644 --- a/code/datums/elements/lazy_fishing_spot.dm +++ b/code/datums/elements/lazy_fishing_spot.dm @@ -16,9 +16,23 @@ src.configuration = configuration ADD_TRAIT(target, TRAIT_FISHING_SPOT, REF(src)) RegisterSignal(target, COMSIG_PRE_FISHING, PROC_REF(create_fishing_spot)) + RegisterSignal(target, COMSIG_NPC_FISHING, PROC_REF(return_glob_fishing_spot)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examined)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(on_examined_more)) + RegisterSignal(target, COMSIG_ATOM_EX_ACT, PROC_REF(explosive_fishing)) + RegisterSignal(target, COMSIG_FISH_RELEASED_INTO, PROC_REF(fish_released)) + RegisterSignal(target, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(link_to_fish_porter)) /datum/element/lazy_fishing_spot/Detach(datum/target) - UnregisterSignal(target, COMSIG_PRE_FISHING) + UnregisterSignal(target, list( + COMSIG_FISH_RELEASED_INTO, + COMSIG_PRE_FISHING, + COMSIG_NPC_FISHING, + COMSIG_ATOM_EXAMINE, + COMSIG_ATOM_EXAMINE_MORE, + COMSIG_ATOM_EX_ACT, + COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), + )) REMOVE_TRAIT(target, TRAIT_FISHING_SPOT, REF(src)) return ..() @@ -27,3 +41,45 @@ source.AddComponent(/datum/component/fishing_spot, GLOB.preset_fish_sources[configuration]) Detach(source) + +///If the fish source has fishes that are shown in the +/datum/element/lazy_fishing_spot/proc/on_examined(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT)) + return + + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + + if(!fish_source.has_known_fishes()) + return + + examine_text += span_tinynoticeital("This is a fishing spot. You can look again to list its fishes...") + +/datum/element/lazy_fishing_spot/proc/on_examined_more(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISHING_SPOT)) + return + + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + fish_source.get_catchable_fish_names(user, source, examine_text) + +/datum/element/lazy_fishing_spot/proc/explosive_fishing(atom/location, severity) + SIGNAL_HANDLER + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + fish_source.spawn_reward_from_explosion(location, severity) + +/datum/element/lazy_fishing_spot/proc/return_glob_fishing_spot(datum/source, list/fish_spot_container) + fish_spot_container[NPC_FISHING_SPOT] = GLOB.preset_fish_sources[configuration] + +/datum/element/lazy_fishing_spot/proc/link_to_fish_porter(atom/source, mob/user, obj/item/multitool/tool) + SIGNAL_HANDLER + if(!istype(tool.buffer, /obj/machinery/fishing_portal_generator)) + return + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + var/obj/machinery/fishing_portal_generator/portal = tool.buffer + return portal.link_fishing_spot(fish_source, source, user) + +/datum/element/lazy_fishing_spot/proc/fish_released(datum/source, obj/item/fish/fish, mob/living/releaser) + SIGNAL_HANDLER + var/datum/fish_source/fish_source = GLOB.preset_fish_sources[configuration] + fish_source.readd_fish(fish, releaser) diff --git a/code/datums/elements/leeching_walk.dm b/code/datums/elements/leeching_walk.dm index c0afc52b24583..c9f547189e699 100644 --- a/code/datums/elements/leeching_walk.dm +++ b/code/datums/elements/leeching_walk.dm @@ -55,3 +55,5 @@ // Heals blood loss if(source.blood_volume < BLOOD_VOLUME_NORMAL) source.blood_volume += 2.5 * seconds_per_tick + // Slowly regulates your body temp + source.adjust_bodytemperature((source.get_body_temp_normal() - source.bodytemperature)/5) diff --git a/code/datums/elements/lifesteal.dm b/code/datums/elements/lifesteal.dm index 48f812fc1f1fa..ed607c34976b3 100644 --- a/code/datums/elements/lifesteal.dm +++ b/code/datums/elements/lifesteal.dm @@ -13,13 +13,16 @@ /datum/element/lifesteal/Attach(datum/target, flat_heal = 10) . = ..() src.flat_heal = flat_heal - target.AddComponent(/datum/component/on_hit_effect, CALLBACK(src, PROC_REF(do_lifesteal))) + target.AddElementTrait(TRAIT_ON_HIT_EFFECT, REF(src), /datum/element/on_hit_effect) + RegisterSignal(target, COMSIG_ON_HIT_EFFECT, PROC_REF(do_lifesteal)) -/datum/element/lifesteal/Detach(datum/target) - qdel(target.GetComponent(/datum/component/on_hit_effect)) +/datum/element/lifesteal/Detach(datum/source) + UnregisterSignal(source, COMSIG_ON_HIT_EFFECT) + REMOVE_TRAIT(source, TRAIT_ON_HIT_EFFECT, REF(src)) return ..() -/datum/element/lifesteal/proc/do_lifesteal(datum/element_owner, atom/heal_target, atom/damage_target, hit_zone) +/datum/element/lifesteal/proc/do_lifesteal(datum/source, atom/heal_target, atom/damage_target, hit_zone, throw_hit) + SIGNAL_HANDLER if(isliving(heal_target) && isliving(damage_target)) var/mob/living/healing = heal_target var/mob/living/damaging = damage_target diff --git a/code/datums/elements/light_eater.dm b/code/datums/elements/light_eater.dm index 27500b066fefa..3f51590da1c6e 100644 --- a/code/datums/elements/light_eater.dm +++ b/code/datums/elements/light_eater.dm @@ -127,7 +127,19 @@ */ /datum/element/light_eater/proc/on_interacting_with(obj/item/source, mob/living/user, atom/target) SIGNAL_HANDLER - eat_lights(target, source) + if(eat_lights(target, source)) + // do a "pretend" attack if we're hitting something that can't normally be + if(isobj(target)) + var/obj/smacking = target + if(smacking.obj_flags & CAN_BE_HIT) + return NONE + else if(!isturf(target)) + return NONE + user.do_attack_animation(target) + user.changeNext_move(CLICK_CD_RAPID) + target.play_attack_sound() + // not particularly picky about what happens afterwards in the attack chain + return NONE /** * Called when a source object is used to block a thrown object, projectile, or attack diff --git a/code/datums/elements/mirage_border.dm b/code/datums/elements/mirage_border.dm index 999455a0b8343..ca7c422dd1127 100644 --- a/code/datums/elements/mirage_border.dm +++ b/code/datums/elements/mirage_border.dm @@ -24,9 +24,9 @@ var/turf/northeast = locate(clamp(x + (direction & EAST ? range : 0), 1, world.maxx), clamp(y + (direction & NORTH ? range : 0), 1, world.maxy), z) holder.vis_contents += block(southwest, northeast) if(direction & SOUTH) - holder.pixel_y -= world.icon_size * range + holder.pixel_y -= ICON_SIZE_Y * range if(direction & WEST) - holder.pixel_x -= world.icon_size * range + holder.pixel_x -= ICON_SIZE_X * range /datum/element/mirage_border/Detach(atom/movable/target) . = ..() diff --git a/code/datums/elements/movetype_handler.dm b/code/datums/elements/movetype_handler.dm index 6d730d345e284..e88aac6e26515 100644 --- a/code/datums/elements/movetype_handler.dm +++ b/code/datums/elements/movetype_handler.dm @@ -8,7 +8,6 @@ element_flags = ELEMENT_DETACH_ON_HOST_DESTROY var/list/attached_atoms = list() - var/list/paused_floating_anim_atoms = list() /datum/element/movetype_handler/Attach(datum/target) . = ..() @@ -22,7 +21,6 @@ RegisterSignals(movable_target, GLOB.movement_type_removetrait_signals, PROC_REF(on_movement_type_trait_loss)) RegisterSignal(movable_target, SIGNAL_ADDTRAIT(TRAIT_NO_FLOATING_ANIM), PROC_REF(on_no_floating_anim_trait_gain)) RegisterSignal(movable_target, SIGNAL_REMOVETRAIT(TRAIT_NO_FLOATING_ANIM), PROC_REF(on_no_floating_anim_trait_loss)) - RegisterSignal(movable_target, COMSIG_PAUSE_FLOATING_ANIM, PROC_REF(pause_floating_anim)) attached_atoms[movable_target] = TRUE if(movable_target.movement_type & (FLOATING|FLYING) && !HAS_TRAIT(movable_target, TRAIT_NO_FLOATING_ANIM)) @@ -32,14 +30,12 @@ var/list/signals_to_remove = list( SIGNAL_ADDTRAIT(TRAIT_NO_FLOATING_ANIM), SIGNAL_REMOVETRAIT(TRAIT_NO_FLOATING_ANIM), - COMSIG_PAUSE_FLOATING_ANIM ) signals_to_remove += GLOB.movement_type_addtrait_signals signals_to_remove += GLOB.movement_type_removetrait_signals UnregisterSignal(source, signals_to_remove) attached_atoms -= source - paused_floating_anim_atoms -= source STOP_FLOATING_ANIM(source) return ..() @@ -51,7 +47,7 @@ return var/old_state = source.movement_type source.movement_type |= flag - if(!(old_state & (FLOATING|FLYING)) && (source.movement_type & (FLOATING|FLYING)) && !paused_floating_anim_atoms[source] && !HAS_TRAIT(source, TRAIT_NO_FLOATING_ANIM)) + if(!(old_state & (FLOATING|FLYING)) && (source.movement_type & (FLOATING|FLYING)) && !HAS_TRAIT(source, TRAIT_NO_FLOATING_ANIM)) DO_FLOATING_ANIM(source) SEND_SIGNAL(source, COMSIG_MOVETYPE_FLAG_ENABLED, flag, old_state) @@ -78,24 +74,5 @@ /// Called when the TRAIT_NO_FLOATING_ANIM trait is removed from the mob. Restarts the bobbing animation. /datum/element/movetype_handler/proc/on_no_floating_anim_trait_loss(atom/movable/source, trait) SIGNAL_HANDLER - if(source.movement_type & (FLOATING|FLYING) && !paused_floating_anim_atoms[source]) + if(source.movement_type & (FLOATING|FLYING)) DO_FLOATING_ANIM(source) - -///Pauses the floating animation for the duration of the timer... plus [tickrate - (world.time + timer) % tickrate] to be precise. -/datum/element/movetype_handler/proc/pause_floating_anim(atom/movable/source, timer) - SIGNAL_HANDLER - if(paused_floating_anim_atoms[source] < world.time + timer) - STOP_FLOATING_ANIM(source) - if(!length(paused_floating_anim_atoms)) - START_PROCESSING(SSdcs, src) //1 second tickrate. - paused_floating_anim_atoms[source] = world.time + timer - -/datum/element/movetype_handler/process() - for(var/_paused in paused_floating_anim_atoms) - var/atom/movable/paused = _paused - if(paused_floating_anim_atoms[paused] < world.time) - if(paused.movement_type & (FLOATING|FLYING) && !HAS_TRAIT(paused, TRAIT_NO_FLOATING_ANIM)) - DO_FLOATING_ANIM(paused) - paused_floating_anim_atoms -= paused - if(!length(paused_floating_anim_atoms)) - STOP_PROCESSING(SSdcs, src) diff --git a/code/datums/elements/no_crit_hitting.dm b/code/datums/elements/no_crit_hitting.dm new file mode 100644 index 0000000000000..416a6e70b87a2 --- /dev/null +++ b/code/datums/elements/no_crit_hitting.dm @@ -0,0 +1,21 @@ +/// Stops a mob from hitting someone in crit. doesn't account for projectiles or spells +/datum/element/no_crit_hitting + +/datum/element/no_crit_hitting/Attach(datum/target) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignals(target, list(COMSIG_MOB_ITEM_ATTACK), PROC_REF(check_attack)) + +/datum/element/no_crit_hitting/proc/check_attack(mob/living/attacker, atom/attacked) + SIGNAL_HANDLER + + if(!isliving(attacked)) + return + + var/mob/living/liver = attacked + if(liver.stat == HARD_CRIT) + liver.balloon_alert(attacker, "they're in crit!") + return COMPONENT_CANCEL_ATTACK_CHAIN diff --git a/code/datums/elements/on_hit_effect.dm b/code/datums/elements/on_hit_effect.dm new file mode 100644 index 0000000000000..f84a6cafa6f44 --- /dev/null +++ b/code/datums/elements/on_hit_effect.dm @@ -0,0 +1,65 @@ +/** + * ## On Hit Effect Component! + * + * Component for other elements/components to rely on for on-hit effects without duplicating the on-hit code. + * See Lifesteal, or bane for examples. + */ +/datum/element/on_hit_effect + +/datum/element/on_hit_effect/Attach(datum/target) + . = ..() + if(!HAS_TRAIT(target, TRAIT_ON_HIT_EFFECT)) + stack_trace("[type] added to [target] without adding TRAIT_ON_HIT_EFFECT first. Please use AddElementTrait instead.") + if(ismachinery(target) || isstructure(target) || isgun(target) || isprojectilespell(target)) + RegisterSignal(target, COMSIG_PROJECTILE_ON_HIT, PROC_REF(on_projectile_hit)) + else if(isitem(target)) + RegisterSignal(target, COMSIG_ITEM_AFTERATTACK, PROC_REF(item_afterattack)) + else if(isanimal_or_basicmob(target)) + RegisterSignal(target, COMSIG_HOSTILE_POST_ATTACKINGTARGET, PROC_REF(hostile_attackingtarget)) + else if(isprojectile(target)) + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(on_projectile_self_hit)) + else + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_MOVABLE_IMPACT, PROC_REF(on_thrown_hit)) + +/datum/element/on_hit_effect/Detach(datum/source) + UnregisterSignal(source, list( + COMSIG_PROJECTILE_ON_HIT, + COMSIG_ITEM_AFTERATTACK, + COMSIG_HOSTILE_POST_ATTACKINGTARGET, + COMSIG_PROJECTILE_SELF_ON_HIT, + COMSIG_MOVABLE_IMPACT, + )) + return ..() + +/datum/element/on_hit_effect/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters) + SIGNAL_HANDLER + + if(!proximity_flag) + return + + on_hit(source, user, target, user.zone_selected) + +/datum/element/on_hit_effect/proc/hostile_attackingtarget(mob/living/attacker, atom/target, success) + SIGNAL_HANDLER + + if(!success) + return + + on_hit(attacker, attacker, target, attacker.zone_selected) + +/datum/element/on_hit_effect/proc/on_projectile_hit(datum/fired_from, atom/movable/firer, atom/target, angle, body_zone) + SIGNAL_HANDLER + on_hit(fired_from, firer, target, body_zone) + +/datum/element/on_hit_effect/proc/on_projectile_self_hit(datum/source, mob/firer, atom/target, angle, body_zone) + SIGNAL_HANDLER + on_hit(source, firer, target, body_zone) + +/datum/element/on_hit_effect/proc/on_thrown_hit(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) + SIGNAL_HANDLER + on_hit(source, source, hit_atom, null, TRUE) + +/datum/element/on_hit_effect/proc/on_hit(atom/source, atom/movable/attacker, atom/target, body_zone, throw_hit = FALSE) + SEND_SIGNAL(source, COMSIG_ON_HIT_EFFECT, attacker, target, body_zone, throw_hit) diff --git a/code/datums/elements/only_pull_living.dm b/code/datums/elements/only_pull_living.dm new file mode 100644 index 0000000000000..8113a66a73021 --- /dev/null +++ b/code/datums/elements/only_pull_living.dm @@ -0,0 +1,16 @@ +/// Element for only letting a living pull other livings +/datum/element/only_pull_living + +/datum/element/only_pull_living/Attach(datum/target) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + RegisterSignal(target, COMSIG_LIVING_TRY_PULL, PROC_REF(try_pull)) + +/datum/element/only_pull_living/proc/try_pull(mob/living/owner, atom/movable/pulled) + SIGNAL_HANDLER + + if(!isliving(pulled)) + return COMSIG_LIVING_CANCEL_PULL diff --git a/code/datums/elements/organ_set_bonus.dm b/code/datums/elements/organ_set_bonus.dm index aeb63356fb485..082933e409e97 100644 --- a/code/datums/elements/organ_set_bonus.dm +++ b/code/datums/elements/organ_set_bonus.dm @@ -57,6 +57,10 @@ var/required_biotype = MOB_ORGANIC /// A list of traits added to the mob upon bonus activation, can be of any length. var/list/bonus_traits = list() + /// Limb overlay to apply upon activation + var/limb_overlay + /// Color priority for limb overlay + var/color_overlay_priority /datum/status_effect/organ_set_bonus/proc/set_organs(new_value) organs = new_value @@ -80,6 +84,13 @@ owner.add_traits(bonus_traits, REF(src)) if(bonus_activate_text) to_chat(owner, bonus_activate_text) + if(!iscarbon(owner) || !limb_overlay) + return TRUE + var/mob/living/carbon/carbon_owner = owner + for(var/obj/item/bodypart/limb in carbon_owner.bodyparts) + limb.add_bodypart_overlay(new limb_overlay()) + limb.add_color_override(COLOR_WHITE, color_overlay_priority) + carbon_owner.update_body() return TRUE /datum/status_effect/organ_set_bonus/proc/disable_bonus() @@ -89,3 +100,12 @@ owner.remove_traits(bonus_traits, REF(src)) if(bonus_deactivate_text) to_chat(owner, bonus_deactivate_text) + if(!iscarbon(owner) || QDELETED(owner) || !limb_overlay) + return + var/mob/living/carbon/carbon_owner = owner + for(var/obj/item/bodypart/limb in carbon_owner.bodyparts) + var/overlay = locate(limb_overlay) in limb.bodypart_overlays + if(overlay) + limb.remove_bodypart_overlay(overlay) + limb.remove_color_override(color_overlay_priority) + carbon_owner.update_body() diff --git a/code/datums/elements/pet_bonus.dm b/code/datums/elements/pet_bonus.dm index 5ef8b515077ac..d809b9ef4bdad 100644 --- a/code/datums/elements/pet_bonus.dm +++ b/code/datums/elements/pet_bonus.dm @@ -8,17 +8,17 @@ element_flags = ELEMENT_BESPOKE argument_hash_start_idx = 2 - ///optional cute message to send when you pet your pet! - var/emote_message + ///string key of the emote to do when pet. + var/emote_name ///actual moodlet given, defaults to the pet animal one var/moodlet -/datum/element/pet_bonus/Attach(datum/target, emote_message, moodlet = /datum/mood_event/pet_animal) +/datum/element/pet_bonus/Attach(datum/target, emote_name, moodlet = /datum/mood_event/pet_animal) . = ..() if(!isliving(target)) return ELEMENT_INCOMPATIBLE - src.emote_message = emote_message + src.emote_name = emote_name src.moodlet = moodlet RegisterSignal(target, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) @@ -34,6 +34,6 @@ new /obj/effect/temp_visual/heart(pet.loc) SEND_SIGNAL(pet, COMSIG_ANIMAL_PET, petter, modifiers) - if(emote_message && prob(33)) - pet.manual_emote(emote_message) + if(emote_name && prob(33)) + INVOKE_ASYNC(pet, TYPE_PROC_REF(/mob, emote), emote_name) petter.add_mood_event("petting_bonus", moodlet, pet) diff --git a/code/datums/elements/pet_collar.dm b/code/datums/elements/pet_collar.dm new file mode 100644 index 0000000000000..f98767629e7e7 --- /dev/null +++ b/code/datums/elements/pet_collar.dm @@ -0,0 +1,95 @@ +/datum/element/wears_collar + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + ///our icon's pathfile + var/collar_icon + ///our collar's icon state + var/collar_icon_state + ///iconstate of our collar while resting + var/collar_resting_icon_state + +/datum/element/wears_collar/Attach(datum/target, collar_icon = 'icons/mob/simple/pets.dmi', collar_resting_icon_state = FALSE, collar_icon_state) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + src.collar_icon = collar_icon + src.collar_icon_state = collar_icon_state + src.collar_resting_icon_state = collar_resting_icon_state + + RegisterSignal(target, COMSIG_ATOM_ATTACKBY, PROC_REF(attach_collar)) + RegisterSignal(target, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_overlays_updated)) + RegisterSignal(target, COMSIG_ATOM_EXITED, PROC_REF(on_content_exit)) + RegisterSignal(target, COMSIG_ATOM_ENTERED, PROC_REF(on_content_enter)) + RegisterSignal(target, COMSIG_LIVING_RESTING, PROC_REF(on_rest)) + RegisterSignal(target, COMSIG_MOB_STATCHANGE, PROC_REF(on_stat_change)) + +/datum/element/wears_collar/Detach(datum/target) + . = ..() + UnregisterSignal(target, list( + COMSIG_ATOM_ATTACKBY, + COMSIG_ATOM_UPDATE_OVERLAYS, + COMSIG_ATOM_EXITED, + COMSIG_ATOM_ENTERED, + COMSIG_LIVING_RESTING, + COMSIG_MOB_STATCHANGE, + )) + +/datum/element/wears_collar/proc/on_stat_change(mob/living/source) + SIGNAL_HANDLER + + if(collar_icon_state) + source.update_icon(UPDATE_OVERLAYS) + +/datum/element/wears_collar/proc/on_content_exit(mob/living/source, atom/moved) + SIGNAL_HANDLER + + if(!istype(moved, /obj/item/clothing/neck/petcollar)) + return + source.fully_replace_character_name(null, source::name) + if(collar_icon_state) + source.update_appearance() + +/datum/element/wears_collar/proc/on_content_enter(mob/living/source, obj/item/clothing/neck/petcollar/new_collar) + SIGNAL_HANDLER + + if(!istype(new_collar) || !new_collar.tagname) + return + + source.fully_replace_character_name(null, "\proper [new_collar.tagname]") + if(collar_icon_state) + source.update_appearance() + +/datum/element/wears_collar/proc/attach_collar(atom/source, atom/movable/attacking_item, atom/user, params) + SIGNAL_HANDLER + + if(!istype(attacking_item, /obj/item/clothing/neck/petcollar)) + return NONE + if(locate(/obj/item/clothing/neck/petcollar) in source) + user.balloon_alert(source, "already wearing a collar!") + return NONE + attacking_item.forceMove(source) + return COMPONENT_NO_AFTERATTACK + +/datum/element/wears_collar/proc/on_overlays_updated(mob/living/source, list/overlays) + SIGNAL_HANDLER + + if(!locate(/obj/item/clothing/neck/petcollar) in source) + return + + var/icon_tag = "" + + if(source.stat == DEAD || HAS_TRAIT(source, TRAIT_FAKEDEATH)) + icon_tag = "_dead" + else if(collar_resting_icon_state && source.resting) + icon_tag = "_rest" + + overlays += mutable_appearance(collar_icon, "[collar_icon_state][icon_tag]collar") + overlays += mutable_appearance(collar_icon, "[collar_icon_state][icon_tag]tag") + + +/datum/element/wears_collar/proc/on_rest(atom/movable/source) + SIGNAL_HANDLER + + source.update_icon(UPDATE_OVERLAYS) diff --git a/code/datums/elements/pet_cult.dm b/code/datums/elements/pet_cult.dm new file mode 100644 index 0000000000000..36941e7b74299 --- /dev/null +++ b/code/datums/elements/pet_cult.dm @@ -0,0 +1,127 @@ +#define PET_CULT_ATTACK_UPPER 15 +#define PET_CULT_HEALTH 50 + +/datum/element/cultist_pet + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + ///our pet cult icon's pathfile + var/pet_cult_icon + ///our pet cult icon state + var/pet_cult_icon_state + +/datum/element/cultist_pet/Attach(datum/target, pet_cult_icon = 'icons/mob/simple/pets.dmi', pet_cult_icon_state) + . = ..() + + if(!isliving(target)) + return ELEMENT_INCOMPATIBLE + + src.pet_cult_icon = pet_cult_icon + src.pet_cult_icon_state = pet_cult_icon_state + + RegisterSignal(target, COMSIG_LIVING_CULT_SACRIFICED, PROC_REF(become_cultist)) + RegisterSignal(target, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(on_login)) + RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON_STATE, PROC_REF(on_icon_state_updated)) + RegisterSignal(target, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_overlays_updated)) + +/datum/element/cultist_pet/Detach(datum/target) + . = ..() + UnregisterSignal(target, list( + COMSIG_MOB_LOGIN, + COMSIG_LIVING_CULT_SACRIFICED, + COMSIG_ATOM_UPDATE_ICON_STATE, + COMSIG_ATOM_UPDATE_OVERLAYS, + )) + +/datum/element/cultist_pet/proc/on_overlays_updated(mob/living/basic/source, list/overlays) + SIGNAL_HANDLER + + if(isnull(source.mind) && (FACTION_CULT in source.faction)) //cult indicator we show for non sentient pets + var/image/cult_indicator = image(icon = 'icons/mob/simple/pets.dmi', icon_state = "pet_cult_indicator", layer = ABOVE_GAME_PLANE) + overlays += cult_indicator + +/datum/element/cultist_pet/proc/on_icon_state_updated(mob/living/basic/source) + SIGNAL_HANDLER + + if(pet_cult_icon_state && (FACTION_CULT in source.faction)) + source.icon_state = pet_cult_icon_state + source.icon_living = pet_cult_icon_state + +///turn into terrifying beasts +/datum/element/cultist_pet/proc/become_cultist(mob/living/basic/source, list/invokers, datum/team) + SIGNAL_HANDLER + + if(source.stat == DEAD) + return + + if(FACTION_CULT in source.faction) + return STOP_SACRIFICE + + source.mind?.add_antag_datum(/datum/antagonist/cult, team) + qdel(source.GetComponent(/datum/component/obeys_commands)) //if we obey commands previously, forget about them + source.melee_damage_lower = max(PET_CULT_ATTACK_UPPER - 5, source::melee_damage_lower) + source.melee_damage_upper = max(PET_CULT_ATTACK_UPPER, source::melee_damage_upper) + source.maxHealth = max(PET_CULT_HEALTH, source::maxHealth) + source.fully_heal() + + source.faction = list(FACTION_CULT) //we only serve the cult + + if(isnull(pet_cult_icon_state)) + source.add_atom_colour(RUNE_COLOR_MEDIUMRED, FIXED_COLOUR_PRIORITY) + + var/static/list/cult_appetite = list( + /obj/item/organ, + /obj/effect/decal/cleanable/blood, + ) + + var/static/list/death_loot = list( + /obj/effect/gibspawner/generic, + /obj/item/soulstone, + ) + + source.AddElement(/datum/element/basic_eating, heal_amt = 15, food_types = cult_appetite) + source.AddElement(/datum/element/death_drops, death_loot) + + source.basic_mob_flags &= DEL_ON_DEATH + qdel(source.ai_controller) + source.ai_controller = new /datum/ai_controller/basic_controller/pet_cult(source) + var/datum/action/cooldown/spell/conjure/revive_rune/rune_ability = new(source) + rune_ability.Grant(source) + source.ai_controller.set_blackboard_key(BB_RUNE_ABILITY, rune_ability) + source.ai_controller.set_blackboard_key(BB_CULT_TEAM, team) + + var/static/list/new_pet_commands = list( + /datum/pet_command/point_targeting/attack, + /datum/pet_command/follow, + /datum/pet_command/free, + /datum/pet_command/idle, + /datum/pet_command/untargeted_ability/draw_rune, + ) + source.AddComponent(/datum/component/obeys_commands, new_pet_commands) + RegisterSignal(source, COMSIG_HOSTILE_PRE_ATTACKINGTARGET, PROC_REF(activate_rune)) + source.update_appearance() + return STOP_SACRIFICE + + +/datum/element/cultist_pet/proc/activate_rune(datum/source, atom/target) + SIGNAL_HANDLER + + if(!istype(target, /obj/effect/rune/raise_dead)) //we can only revive people... + return NONE + + INVOKE_ASYNC(target, TYPE_PROC_REF(/atom, attack_hand), source) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/element/cultist_pet/proc/on_login(mob/living/source) + SIGNAL_HANDLER + + if(!(FACTION_CULT in source.faction)) + return + var/datum/team/cult_team = source.ai_controller.blackboard[BB_CULT_TEAM] + if(isnull(cult_team)) + return + source.mind.add_antag_datum(/datum/antagonist/cult, cult_team) + source.update_appearance(UPDATE_OVERLAYS) + + +#undef PET_CULT_ATTACK_UPPER +#undef PET_CULT_HEALTH diff --git a/code/datums/elements/proficient_miner.dm b/code/datums/elements/proficient_miner.dm index 9a382afce280e..0d7a43528f5ac 100644 --- a/code/datums/elements/proficient_miner.dm +++ b/code/datums/elements/proficient_miner.dm @@ -12,7 +12,16 @@ if(!ismineralturf(target)) return var/turf/closed/mineral/mineral_wall = target - mineral_wall.gets_drilled(source) + + if(!istype(mineral_wall, /turf/closed/mineral/gibtonite)) + mineral_wall.gets_drilled(source) + return + + var/turf/closed/mineral/gibtonite/gibtonite_wall = mineral_wall + if(gibtonite_wall.stage == GIBTONITE_UNSTRUCK) + mineral_wall.gets_drilled(source) + + /datum/element/proficient_miner/Detach(datum/source, ...) UnregisterSignal(source, COMSIG_MOVABLE_BUMP) diff --git a/code/datums/elements/quality_food_ingredient.dm b/code/datums/elements/quality_food_ingredient.dm new file mode 100644 index 0000000000000..e9bfec246c52c --- /dev/null +++ b/code/datums/elements/quality_food_ingredient.dm @@ -0,0 +1,71 @@ +///An element that adds extra food quality to any edible that was made from an atom with this attached. +/datum/element/quality_food_ingredient + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + ///The increase of recipe complexity (basically hardcoded food quality) of edibles made with this. + var/complexity_increase = 0 + +/datum/element/quality_food_ingredient/Attach(datum/target, complexity_increase) + . = ..() + if(!isatom(target)) + return ELEMENT_INCOMPATIBLE + if(HAS_TRAIT_FROM(target, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src))) //It already has this element attached. + return + + src.complexity_increase = complexity_increase + + RegisterSignal(target, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(used_in_craft)) + RegisterSignal(target, COMSIG_ITEM_BAKED, PROC_REF(item_baked)) + RegisterSignal(target, COMSIG_ITEM_MICROWAVE_COOKED_FROM, PROC_REF(microwaved_from)) + RegisterSignal(target, COMSIG_ITEM_GRILLED, PROC_REF(item_grilled)) + RegisterSignals(target, list(COMSIG_ITEM_BARBEQUE_GRILLED, COMSIG_ITEM_FRIED), PROC_REF(simply_cooked)) + RegisterSignal(target, COMSIG_ITEM_USED_AS_INGREDIENT, PROC_REF(used_as_ingredient)) + +/datum/element/quality_food_ingredient/Detach(datum/source) + UnregisterSignal(source, list( + COMSIG_ATOM_USED_IN_CRAFT, + COMSIG_ITEM_BAKED, + COMSIG_ITEM_MICROWAVE_COOKED_FROM, + COMSIG_ITEM_GRILLED, + COMSIG_ITEM_BARBEQUE_GRILLED, + COMSIG_ITEM_FRIED, + COMSIG_ITEM_USED_AS_INGREDIENT, + COMSIG_FOOD_GET_EXTRA_COMPLEXITY, + )) + REMOVE_TRAIT(source, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src)) + return ..() + +/datum/element/quality_food_ingredient/proc/used_in_craft(datum/source, atom/result) + SIGNAL_HANDLER + add_quality(result) + +/datum/element/quality_food_ingredient/proc/item_baked(datum/source, atom/baked_result) + SIGNAL_HANDLER + add_quality(baked_result) + +/datum/element/quality_food_ingredient/proc/microwaved_from(datum/source, atom/result) + SIGNAL_HANDLER + add_quality(result) + +/datum/element/quality_food_ingredient/proc/item_grilled(datum/source, atom/grill_result) + SIGNAL_HANDLER + add_quality(grill_result) + +/datum/element/quality_food_ingredient/proc/simply_cooked(datum/source) + SIGNAL_HANDLER + //The target of the food quality and the source are the same, there's no need to re-add the whole element. + RegisterSignal(source, COMSIG_FOOD_GET_EXTRA_COMPLEXITY, PROC_REF(add_complexity), TRUE) + ADD_TRAIT(source, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src)) + +/datum/element/quality_food_ingredient/proc/used_as_ingredient(datum/source, atom/container) + SIGNAL_HANDLER + add_quality(container) + +/datum/element/quality_food_ingredient/proc/add_quality(atom/target) + target.AddElement(/datum/element/quality_food_ingredient, complexity_increase) + RegisterSignal(target, COMSIG_FOOD_GET_EXTRA_COMPLEXITY, PROC_REF(add_complexity), TRUE) + ADD_TRAIT(target, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src)) + +/datum/element/quality_food_ingredient/proc/add_complexity(datum/source, list/extra_complexity) + SIGNAL_HANDLER + extra_complexity[1] += complexity_increase diff --git a/code/datums/elements/simple_flying.dm b/code/datums/elements/simple_flying.dm index 49b8771687bd9..e6d8f42db838b 100644 --- a/code/datums/elements/simple_flying.dm +++ b/code/datums/elements/simple_flying.dm @@ -17,6 +17,7 @@ /datum/element/simple_flying/Detach(datum/target) . = ..() UnregisterSignal(target, COMSIG_MOB_STATCHANGE) + REMOVE_TRAIT(target, TRAIT_MOVE_FLYING, ELEMENT_TRAIT(type)) ///signal called by the stat of the target changing /datum/element/simple_flying/proc/on_stat_change(mob/living/target, new_stat) diff --git a/code/datums/elements/slapcrafting.dm b/code/datums/elements/slapcrafting.dm index 42776bf31f773..4b58bddd2a0f4 100644 --- a/code/datums/elements/slapcrafting.dm +++ b/code/datums/elements/slapcrafting.dm @@ -26,7 +26,7 @@ return //Don't do anything, it just shouldn't be used in crafting. RegisterSignal(target, COMSIG_ATOM_ATTACKBY, PROC_REF(attempt_slapcraft)) - RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(get_examine_info)) + RegisterSignal(target, COMSIG_ATOM_EXAMINE_TAGS, PROC_REF(get_examine_info)) RegisterSignal(target, COMSIG_ATOM_EXAMINE_MORE, PROC_REF(get_examine_more_info)) RegisterSignal(target, COMSIG_TOPIC, PROC_REF(topic_handler)) @@ -126,7 +126,7 @@ already_used_names += initial(result.name) string_results += list("\a [initial(result.name)]") - examine_list += span_notice("You think [source] could be used to make [english_list(string_results)]! Examine again to look at the details...") + examine_list["crafting component"] = "You think [source] could be used to make [english_list(string_results)]! Examine again to look at the details..." /// Alerts any examiners to the details of the recipe. /datum/element/slapcrafting/proc/get_examine_more_info(atom/source, mob/user, list/examine_list) diff --git a/code/datums/elements/spooky.dm b/code/datums/elements/spooky.dm index 30a04f6348b20..89d53c4e99734 100644 --- a/code/datums/elements/spooky.dm +++ b/code/datums/elements/spooky.dm @@ -40,7 +40,7 @@ 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(18) //boneless humanoids don't lose the will to live to_chat(C, "DOOT") - to_chat(C, "You're feeling more bony.") + to_chat(C, span_robot("You're feeling more bony.")) INVOKE_ASYNC(src, PROC_REF(spectral_change), H) else //the sound will spook monkeys. diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index 1b932ce066590..14cdda8e4cf52 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -43,15 +43,21 @@ if(!user.can_perform_action(source, FORBID_TELEKINESIS_REACH | ALLOW_RESTING)) return - // Cyborgs buckle people by dragging them onto them, unless in combat mode. + // Snowflake for cyborgs buckling people by dragging them onto them, unless in combat mode. if (iscyborg(user)) var/mob/living/silicon/robot/cyborg_user = user if (!cyborg_user.combat_mode) return + // Snowflake for xeno consumption code + if (isalienadult(user)) + var/mob/living/carbon/alien/adult/alien = user + if (alien.grab_state == GRAB_AGGRESSIVE && alien.pulling == source) + return if (!isnull(should_strip_proc_path) && !call(source, should_strip_proc_path)(user)) return + // Snowflake for mob scooping if (isliving(source)) var/mob/living/mob = source if (mob.can_be_held && (user.grab_state == GRAB_AGGRESSIVE) && (user.pulling == source)) diff --git a/code/datums/elements/tool_renaming.dm b/code/datums/elements/tool_renaming.dm index bd87f1d171c86..729c5fd6a2182 100644 --- a/code/datums/elements/tool_renaming.dm +++ b/code/datums/elements/tool_renaming.dm @@ -51,7 +51,6 @@ return renamed_obj.AddComponent(/datum/component/rename, input, renamed_obj.desc) to_chat(user, span_notice("You have successfully renamed \the [old_name] to [renamed_obj].")) - ADD_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_NAME) if(OPTION_DESCRIPTION) @@ -64,13 +63,11 @@ return renamed_obj.AddComponent(/datum/component/rename, renamed_obj.name, input) to_chat(user, span_notice("You have successfully changed [renamed_obj]'s description.")) - ADD_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_DESC) if(OPTION_RESET) qdel(renamed_obj.GetComponent(/datum/component/rename)) to_chat(user, span_notice("You have successfully reset [renamed_obj]'s name and description.")) - REMOVE_TRAIT(renamed_obj, TRAIT_WAS_RENAMED, RENAMING_TOOL_LABEL_TRAIT) renamed_obj.update_appearance(UPDATE_NAME | UPDATE_DESC) #undef OPTION_RENAME diff --git a/code/datums/elements/undertile.dm b/code/datums/elements/undertile.dm index ed901b196c1aa..229b292b31ae9 100644 --- a/code/datums/elements/undertile.dm +++ b/code/datums/elements/undertile.dm @@ -43,8 +43,13 @@ var/turf/T = get_turf(source) if(underfloor_accessibility < UNDERFLOOR_INTERACTABLE) - SET_PLANE_IMPLICIT(source, FLOOR_PLANE) // We do this so that turfs that allow you to see what's underneath them don't have to be on the game plane (which causes ambient occlusion weirdness) - source.layer = ABOVE_OPEN_TURF_LAYER + // We only want to change the layer/plane for things that aren't already on the floor plane, + // as overriding the settings for those would cause layering issues + if(PLANE_TO_TRUE(source.plane) != FLOOR_PLANE) + // We do this so that turfs that allow you to see what's underneath them don't have to be on the game plane (which causes ambient occlusion weirdness) + SET_PLANE_IMPLICIT(source, FLOOR_PLANE) + source.layer = ABOVE_OPEN_TURF_LAYER + ADD_TRAIT(source, TRAIT_UNDERFLOOR, REF(src)) if(tile_overlay) @@ -77,6 +82,8 @@ if(use_anchor) source.set_anchored(FALSE) + SEND_SIGNAL(source, COMSIG_UNDERTILE_UPDATED) + /datum/element/undertile/Detach(atom/movable/source, visibility_trait, invisibility_level = INVISIBILITY_MAXIMUM) . = ..() diff --git a/code/datums/elements/venomous.dm b/code/datums/elements/venomous.dm index ba4e088750cd1..93bb455509821 100644 --- a/code/datums/elements/venomous.dm +++ b/code/datums/elements/venomous.dm @@ -7,29 +7,30 @@ element_flags = ELEMENT_BESPOKE argument_hash_start_idx = 2 ///Path of the reagent added - var/poison_type + var/reagents ///Details of how we inject our venom var/injection_flags ///How much of the reagent added. if it's a list, it'll pick a range with the range being list(lower_value, upper_value) var/list/amount_added + ///Does this trigger when thrown? + var/thrown_effect = FALSE /datum/element/venomous/Attach(datum/target, poison_type, amount_added, injection_flags = NONE, thrown_effect = FALSE) . = ..() - src.poison_type = poison_type + src.reagents = poison_type src.amount_added = amount_added src.injection_flags = injection_flags - target.AddComponent(\ - /datum/component/on_hit_effect,\ - on_hit_callback = CALLBACK(src, PROC_REF(do_venom)),\ - thrown_effect = thrown_effect,\ - ) + src.thrown_effect = thrown_effect + target.AddElementTrait(TRAIT_ON_HIT_EFFECT, REF(src), /datum/element/on_hit_effect) + RegisterSignal(target, COMSIG_ON_HIT_EFFECT, PROC_REF(do_venom)) -/datum/element/venomous/Detach(datum/target) - qdel(target.GetComponent(/datum/component/on_hit_effect)) +/datum/element/venomous/Detach(datum/source) + UnregisterSignal(source, COMSIG_ON_HIT_EFFECT) + REMOVE_TRAIT(source, TRAIT_ON_HIT_EFFECT, REF(src)) return ..() -/datum/element/venomous/proc/do_venom(datum/element_owner, atom/venom_source, mob/living/target, hit_zone) - if(!istype(target)) +/datum/element/venomous/proc/do_venom(datum/element_owner, atom/venom_source, mob/living/target, hit_zone, throw_hit) + if((throw_hit && !thrown_effect) || !istype(target)) return if(target.stat == DEAD) return @@ -40,4 +41,17 @@ final_amount_added = rand(amount_added[1], amount_added[2]) else final_amount_added = amount_added - target.reagents?.add_reagent(poison_type, final_amount_added) + + var/datum/reagents/tmp_holder = new(final_amount_added) + tmp_holder.my_atom = src + tmp_holder.add_reagent(reagents, final_amount_added) + + tmp_holder.trans_to( + target = target, + amount = tmp_holder.total_volume, + multiplier = 1, + methods = INJECT, + transferred_by = ismob(element_owner) ? element_owner : null, + show_message = FALSE, + ) + qdel(tmp_holder) diff --git a/code/datums/elements/waddling.dm b/code/datums/elements/waddling.dm index e63d0329bb630..d89504dbcfecb 100644 --- a/code/datums/elements/waddling.dm +++ b/code/datums/elements/waddling.dm @@ -18,7 +18,7 @@ return if(isliving(moved)) var/mob/living/living_moved = moved - if (living_moved.incapacitated() || living_moved.body_position == LYING_DOWN) + if (living_moved.incapacitated || (living_moved.body_position == LYING_DOWN && !HAS_TRAIT(living_moved, TRAIT_FLOPPING))) return waddling_animation(moved) diff --git a/code/datums/elements/wall_engraver.dm b/code/datums/elements/wall_engraver.dm index 7204d8cacef5e..2b319b0609a28 100644 --- a/code/datums/elements/wall_engraver.dm +++ b/code/datums/elements/wall_engraver.dm @@ -31,12 +31,12 @@ /datum/element/wall_engraver/proc/try_chisel(obj/item/item, turf/closed/wall, mob/living/user) if(!istype(wall) || !user.mind) return - if(HAS_TRAIT_FROM(wall, TRAIT_NOT_ENGRAVABLE, INNATE_TRAIT)) - user.balloon_alert(user, "wall cannot be engraved!") - return - if(HAS_TRAIT_FROM(wall, TRAIT_NOT_ENGRAVABLE, TRAIT_GENERIC)) + if(HAS_TRAIT_FROM(wall, TRAIT_NOT_ENGRAVABLE, ENGRAVED_TRAIT)) user.balloon_alert(user, "wall has already been engraved!") return + if(HAS_TRAIT(wall, TRAIT_NOT_ENGRAVABLE)) + user.balloon_alert(user, "wall cannot be engraved!") + return if(!length(user.mind?.memories)) user.balloon_alert(user, "nothing memorable to engrave!") return diff --git a/code/datums/elements/wall_tearer.dm b/code/datums/elements/wall_tearer.dm index 2c9ff5416d59b..cf61de7300919 100644 --- a/code/datums/elements/wall_tearer.dm +++ b/code/datums/elements/wall_tearer.dm @@ -51,7 +51,7 @@ var/rip_time = (istype(target, /turf/closed/wall/r_wall) ? tear_time * reinforced_multiplier : tear_time) / 3 if (rip_time > 0) tearer.visible_message(span_warning("[tearer] begins tearing through [target]!")) - playsound(tearer, 'sound/machines/airlock_alien_prying.ogg', vol = 100, vary = TRUE) + playsound(tearer, 'sound/machines/airlock/airlock_alien_prying.ogg', vol = 100, vary = TRUE) target.balloon_alert(tearer, "tearing...") if (!do_after(tearer, delay = rip_time, target = target, interaction_key = do_after_key)) tearer.balloon_alert(tearer, "interrupted!") diff --git a/code/datums/elements/weapon_description.dm b/code/datums/elements/weapon_description.dm index 0897b571159bb..eda7ca59b49e6 100644 --- a/code/datums/elements/weapon_description.dm +++ b/code/datums/elements/weapon_description.dm @@ -73,6 +73,10 @@ // Doesn't show the base notes for items that have the override notes variable set to true if(!source.override_notes) + if (source.sharpness & SHARP_EDGED) + readout += "It's sharp and could cause bleeding wounds." + if (source.sharpness & SHARP_POINTY) + readout += "It's pointy and could cause piercing wounds." // Make sure not to divide by 0 on accident if(source.force > 0) readout += "It takes about [span_warning("[HITS_TO_CRIT(source.force)] melee hit\s")] to take down an enemy." diff --git a/code/datums/elements/wheel.dm b/code/datums/elements/wheel.dm index 2bb8977ca5cae..a50addb15a382 100644 --- a/code/datums/elements/wheel.dm +++ b/code/datums/elements/wheel.dm @@ -17,7 +17,7 @@ return if(isliving(moved)) var/mob/living/living_moved = moved - if (living_moved.incapacitated() || living_moved.body_position == LYING_DOWN) + if (living_moved.incapacitated || living_moved.body_position == LYING_DOWN) return var/rotation_degree = (360 / 3) if(direction & SOUTHWEST) diff --git a/code/datums/embed_data.dm b/code/datums/embed_data.dm index ac010d170a8eb..a82d305c8e6eb 100644 --- a/code/datums/embed_data.dm +++ b/code/datums/embed_data.dm @@ -38,8 +38,8 @@ GLOBAL_LIST_INIT(embed_by_type, generate_embed_type_cache()) /// This percentage of all pain will be dealt as stam damage rather than brute (0-1) var/pain_stam_pct = 0 -/datum/embed_data/proc/generate_with_values(embed_chance, fall_chance, pain_chance, pain_mult, impact_pain_mult, remove_pain_mult, rip_time, ignore_throwspeed_threshold, jostle_chance, jostle_pain_mult, pain_stam_pct) - var/datum/embed_data/data = new() +/datum/embed_data/proc/generate_with_values(embed_chance, fall_chance, pain_chance, pain_mult, impact_pain_mult, remove_pain_mult, rip_time, ignore_throwspeed_threshold, jostle_chance, jostle_pain_mult, pain_stam_pct, force_new = FALSE) + var/datum/embed_data/data = isnull(GLOB.embed_by_type[type]) && !force_new ? src : new() data.embed_chance = !isnull(embed_chance) ? embed_chance : src.embed_chance data.fall_chance = !isnull(fall_chance) ? fall_chance : src.fall_chance @@ -52,3 +52,4 @@ GLOBAL_LIST_INIT(embed_by_type, generate_embed_type_cache()) data.jostle_chance = !isnull(jostle_chance) ? jostle_chance : src.jostle_chance data.jostle_pain_mult = !isnull(jostle_pain_mult) ? jostle_pain_mult : src.jostle_pain_mult data.pain_stam_pct = !isnull(pain_stam_pct) ? pain_stam_pct : src.pain_stam_pct + return data diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 7006d6d6daa71..d37b442357c90 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -44,20 +44,28 @@ var/list/mob_type_blacklist_typecache /// Types that can use this emote regardless of their state. var/list/mob_type_ignore_stat_typecache + /// Trait that is required to use this emote. + var/trait_required /// In which state can you use this emote? (Check stat.dm for a full list of them) var/stat_allowed = CONSCIOUS /// Sound to play when emote is called. var/sound - /// Used for the honk borg emote. + /// Does this emote vary in pitch? var/vary = FALSE + /// If this emote's sound is affected by TTS pitch + var/affected_by_pitch = TRUE /// Can only code call this event instead of the player. var/only_forced_audio = FALSE /// The cooldown between the uses of the emote. var/cooldown = 0.8 SECONDS /// Does this message have a message that can be modified by the user? var/can_message_change = FALSE - /// How long is the cooldown on the audio of the emote, if it has one? - var/audio_cooldown = 2 SECONDS + /// How long is the shared emote cooldown triggered by this emote? + var/general_emote_audio_cooldown = 2 SECONDS + /// How long is the specific emote cooldown triggered by this emote? + var/specific_emote_audio_cooldown = 5 SECONDS + /// Does this emote's sound ignore walls? + var/sound_wall_ignore = FALSE /datum/emote/New() switch(mob_type_allowed_typecache) @@ -83,27 +91,26 @@ * * type_override - Override to the current emote_type. * * intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE). * - * Returns TRUE if it was able to run the emote, FALSE otherwise. */ /datum/emote/proc/run_emote(mob/user, params, type_override, intentional = FALSE) - if(!can_run_emote(user, TRUE, intentional)) - return FALSE - if(SEND_SIGNAL(user, COMSIG_MOB_PRE_EMOTED, key, params, type_override, intentional, src) & COMPONENT_CANT_EMOTE) - return TRUE // We don't return FALSE because the error output would be incorrect, provide your own if necessary. var/msg = select_message_type(user, message, intentional) if(params && message_param) msg = select_param(user, params) msg = replace_pronoun(user, msg) if(!msg) - return TRUE + return user.log_message(msg, LOG_EMOTE) var/tmp_sound = get_sound(user) - if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, type)) - TIMER_COOLDOWN_START(user, type, audio_cooldown) - playsound(user, tmp_sound, 50, vary) + if(tmp_sound && should_play_sound(user, intentional) && TIMER_COOLDOWN_FINISHED(user, "general_emote_audio_cooldown") && TIMER_COOLDOWN_FINISHED(user, type)) + TIMER_COOLDOWN_START(user, type, specific_emote_audio_cooldown) + TIMER_COOLDOWN_START(user, "general_emote_audio_cooldown", general_emote_audio_cooldown) + var/frequency = null + if (affected_by_pitch && SStts.tts_enabled && SStts.pitch_enabled) + frequency = rand(MIN_EMOTE_PITCH, MAX_EMOTE_PITCH) * (1 + sqrt(abs(user.pitch)) * SIGN(user.pitch) * EMOTE_TTS_PITCH_MULTIPLIER) + playsound(source = user,soundin = tmp_sound,vol = 50, vary = vary, ignore_walls = sound_wall_ignore, frequency = frequency) var/is_important = emote_type & EMOTE_IMPORTANT var/is_visual = emote_type & EMOTE_VISIBLE @@ -126,22 +133,22 @@ runechat_flags = EMOTE_MESSAGE, ) else if(is_important) - to_chat(viewer, "[user] [msg]") + to_chat(viewer, span_emote("[user] [msg]")) else if(is_audible && is_visual) viewer.show_message( - "[user] [msg]", MSG_AUDIBLE, - "You see how [user] [msg]", MSG_VISUAL, + span_emote("[user] [msg]"), MSG_AUDIBLE, + span_emote("You see how [user] [msg]"), MSG_VISUAL, ) else if(is_audible) - viewer.show_message("[user] [msg]", MSG_AUDIBLE) + viewer.show_message(span_emote("[user] [msg]"), MSG_AUDIBLE) else if(is_visual) - viewer.show_message("[user] [msg]", MSG_VISUAL) - return TRUE // Early exit so no dchat message + viewer.show_message(span_emote("[user] [msg]"), MSG_VISUAL) + return // Early exit so no dchat message // The emote has some important information, and should always be shown to the user else if(is_important) for(var/mob/viewer as anything in viewers(user)) - to_chat(viewer, "[user] [msg]") + to_chat(viewer, span_emote("[user] [msg]")) if(user.runechat_prefs_check(viewer, EMOTE_MESSAGE)) viewer.create_chat_message( speaker = user, @@ -153,7 +160,7 @@ else if(is_visual && is_audible) user.audible_message( message = msg, - deaf_message = "You see how [user] [msg]", + deaf_message = span_emote("You see how [user] [msg]"), self_message = msg, audible_message_flags = EMOTE_MESSAGE|ALWAYS_SHOW_SELF_MESSAGE, ) @@ -181,9 +188,9 @@ continue if(!(get_chat_toggles(ghost.client) & CHAT_GHOSTSIGHT)) continue - to_chat(ghost, "[FOLLOW_LINK(ghost, user)] [dchatmsg]") + to_chat(ghost, span_emote("[FOLLOW_LINK(ghost, user)] [dchatmsg]")) - return TRUE + return @@ -197,8 +204,13 @@ * Returns FALSE if the cooldown is not over, TRUE if the cooldown is over. */ /datum/emote/proc/check_cooldown(mob/user, intentional) + + if(SEND_SIGNAL(user, COMSIG_MOB_EMOTE_COOLDOWN_CHECK, src.key, intentional) & COMPONENT_EMOTE_COOLDOWN_BYPASS) + intentional = FALSE + if(!intentional) return TRUE + if(user.emotes_used && user.emotes_used[src] + cooldown > world.time) var/datum/emote/default_emote = /datum/emote if(cooldown > initial(default_emote.cooldown)) // only worry about longer-than-normal emotes @@ -293,10 +305,13 @@ * * user - Person that is trying to send the emote. * * status_check - Bool that says whether we should check their stat or not. * * intentional - Bool that says whether the emote was forced (FALSE) or not (TRUE). + * * params - Parameters added after the emote. * * Returns a bool about whether or not the user can run the emote. */ -/datum/emote/proc/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE) +/datum/emote/proc/can_run_emote(mob/user, status_check = TRUE, intentional = FALSE, params) + if(trait_required && !HAS_TRAIT(user, trait_required)) + return FALSE if(!is_type_in_typecache(user, mob_type_allowed_typecache)) return FALSE if(is_type_in_typecache(user, mob_type_blacklist_typecache)) diff --git a/code/datums/ert.dm b/code/datums/ert.dm index 7e358b38cecb4..2000d59199908 100644 --- a/code/datums/ert.dm +++ b/code/datums/ert.dm @@ -1,14 +1,23 @@ /datum/ert - var/mobtype = /mob/living/carbon/human + ///Antag datum team for this type of ERT. var/team = /datum/team/ert + ///Do we open the doors to the "high-impact" weapon/explosive cabinets? Used for combat-focused ERTs. var/opendoors = TRUE + ///Alternate antag datum given to the leader of the squad. var/leader_role = /datum/antagonist/ert/commander + ///Do we humanize all spawned players or keep them the species in their current character prefs? 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. + ///A list of roles distributed to the selected candidates that are not the leader. + var/roles = list(/datum/antagonist/ert/security, /datum/antagonist/ert/medic, /datum/antagonist/ert/engineer) + ///The custom name assigned to this team, for their antag datum/roundend reporting. var/rename_team + ///Defines the color/alert code of the response team. Unused if a polldesc is defined. var/code + ///The mission given to this ERT type in their flavor text. var/mission = "Assist the station." + ///The number of players for consideration. var/teamsize = 5 + ///The "would you like to play as XXX" message used when polling for players. var/polldesc /// If TRUE, gives the team members "[role] [random last name]" style names var/random_names = TRUE @@ -20,6 +29,8 @@ var/datum/map_template/ert_template /// If we should actually _use_ the ert_template custom shuttle var/use_custom_shuttle = TRUE + /// Used for spawning bodies for your ERT. Unless customized in the Summon-ERT verb settings, will be overridden and should not be defined at the datum level. + var/mob/living/carbon/human/mob_type /datum/ert/New() if (!polldesc) @@ -126,3 +137,14 @@ mission = "Having heard the station's request for aid, assist the crew in defending themselves." polldesc = "an independent station defense militia" random_names = TRUE + +/datum/ert/medical + opendoors = FALSE + teamsize = 4 + leader_role = /datum/antagonist/ert/medical_commander + enforce_human = FALSE //All the best doctors I know are moths and cats + roles = list(/datum/antagonist/ert/medical_technician) + rename_team = "EMT Squad" + code = "Violet" + mission = "Provide emergency medical services to the crew." + polldesc = "an emergency medical response team" diff --git a/code/datums/greyscale/README.md b/code/datums/greyscale/README.md index 9ff6bbca1d189..0d8106ebec687 100644 --- a/code/datums/greyscale/README.md +++ b/code/datums/greyscale/README.md @@ -4,7 +4,7 @@ If you're wanting to add easy recolors for your sprite then this is the system f - Multiple color layers so your sprite can be generated from more than one color. - Mixed greyscale and colored sprite layers; You can choose to only greyscale a part of the sprite or have premade filters applied to layers. -- Blend modes; Instead of just putting layers of sprites on top of eachother you can use the more advanced blend modes. +- Blend modes; Instead of just putting layers of sprites on top of each other you can use the more advanced blend modes. - Reusable configurations; You can reference greyscale sprites from within the configuration of another, allowing you to have a bunch of styles with minimal additional configuration. ## Other Documents @@ -31,7 +31,7 @@ This is simply some pointers in the code linking together your dmi and the json ## Json Configuration File -The json is made up of some metadata and a list of layers used while creating the sprite. Inner lists are processed as their own chunk before being applied elsewhere, this is useful when you start using more advanced blend modes. Most of the time though you're just going to want a list of icons overlaid on top of eachother. +The json is made up of some metadata and a list of layers used while creating the sprite. Inner lists are processed as their own chunk before being applied elsewhere, this is useful when you start using more advanced blend modes. Most of the time though you're just going to want a list of icons overlaid on top of each other. ```json { diff --git a/code/datums/greyscale/_greyscale_config.dm b/code/datums/greyscale/_greyscale_config.dm index 60c12c25b9ef1..ddfda189ef2b3 100644 --- a/code/datums/greyscale/_greyscale_config.dm +++ b/code/datums/greyscale/_greyscale_config.dm @@ -249,7 +249,7 @@ /datum/greyscale_config/proc/GenerateBundle(list/colors, list/render_steps, icon/last_external_icon) if(!istype(colors)) colors = SSgreyscale.ParseColorString(colors) - if(length(colors) != expected_colors) + if(length(colors) < expected_colors) CRASH("[DebugName()] expected [expected_colors] color arguments but only received [length(colors)]") var/list/generated_icons = list() diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm index 377a2fa16938e..bdc2a7d2928c5 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm @@ -276,6 +276,11 @@ icon_file = 'icons/mob/inhands/clothing/suits_righthand.dmi' json_config = 'code/datums/greyscale/json_configs/jumpsuit_prison_inhand.json' +/datum/greyscale_config/jumpsuit/worn_digi + name = "Jumpsuit Worn (Digitigrate)" + icon_file = 'icons/mob/clothing/under/digi_template.dmi' + json_config = 'code/datums/greyscale/json_configs/jumpsuit_worn_digilegs.json' + /datum/greyscale_config/eth_tunic name = "Ethereal Tunic" icon_file = 'icons/obj/clothing/under/ethereal.dmi' diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_effects.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_effects.dm index 34db9013a893d..91cfb618c210f 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_effects.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_effects.dm @@ -2,3 +2,8 @@ name = "Transmutation Rune" icon_file = 'icons/effects/96x96.dmi' json_config = 'code/datums/greyscale/json_configs/heretic_rune.json' + +/datum/greyscale_config/manipulator_hand + name = "Manipulator Hand" + icon_file = 'icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi' + json_config = 'code/datums/greyscale/json_configs/manipulator_hand.json' diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm index a3866971aae5f..62f30855abb1f 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm @@ -229,6 +229,21 @@ icon_file = 'icons/obj/toys/plushes.dmi' json_config = 'code/datums/greyscale/json_configs/plushie_carp.json' +/datum/greyscale_config/pet_carrier + name = "Pet Carrier" + icon_file = 'icons/obj/pet_carrier.dmi' + json_config = 'code/datums/greyscale/json_configs/pet_carrier.json' + +/datum/greyscale_config/pet_carrier_inhands_left + name = "Pet Carrier Left" + icon_file = 'icons/mob/inhands/items_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/pet_carrier_inhands.json' + +/datum/greyscale_config/pet_carrier_inhands_right + name = "Pet Carrier Right" + icon_file = 'icons/mob/inhands/items_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/pet_carrier_inhands.json' + /datum/greyscale_config/plush_lizard name = "Plushie Lizard" icon_file = 'icons/obj/toys/plushes.dmi' @@ -265,15 +280,15 @@ /datum/greyscale_config/vape/open_low name = "Open Vape Low" - json_config = 'code/datums/greyscale/json_configs/vape_open_low.json' + json_config = 'code/datums/greyscale/json_configs/vapeopen_low.json' /datum/greyscale_config/vape/open_med name = "Open Vape Medium" - json_config = 'code/datums/greyscale/json_configs/vape_open_med.json' + json_config = 'code/datums/greyscale/json_configs/vapeopen_med.json' /datum/greyscale_config/vape/open_high name = "Open Vape High" - json_config = 'code/datums/greyscale/json_configs/vape_open_high.json' + json_config = 'code/datums/greyscale/json_configs/vapeopen_high.json' // // TAPE diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm index 7202c41ecc540..9556612be189c 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_objects.dm @@ -3,6 +3,11 @@ icon_file = 'icons/obj/doors/airlocks/material/material.dmi' json_config = 'code/datums/greyscale/json_configs/material_airlock.json' +/datum/greyscale_config/big_manipulator + name = "Big Manipulator" + icon_file = 'icons/obj/machines/big_manipulator_parts/big_manipulator_core.dmi' + json_config = 'code/datums/greyscale/json_configs/big_manipulator.json' + // // BENCHES // diff --git a/code/datums/greyscale/config_types/mutant_organ_config.dm b/code/datums/greyscale/config_types/mutant_organ_config.dm index 18789a27ccaaf..3427622472835 100644 --- a/code/datums/greyscale/config_types/mutant_organ_config.dm +++ b/code/datums/greyscale/config_types/mutant_organ_config.dm @@ -2,3 +2,8 @@ name = "Mutant Organ" icon_file = 'icons/obj/medical/organs/infuser_organs.dmi' json_config = 'code/datums/greyscale/json_configs/mutant_organs.json' + +/datum/greyscale_config/fish_tail + name = "Fish Tail" + icon_file = 'icons/obj/medical/organs/infuser_organs.dmi' + json_config = 'code/datums/greyscale/json_configs/fish_tail.json' diff --git a/code/datums/greyscale/json_configs/bandanaskull_inhands.json b/code/datums/greyscale/json_configs/bandanaskull_inhands.json index b7067cf3c2e71..40fade079736c 100644 --- a/code/datums/greyscale/json_configs/bandanaskull_inhands.json +++ b/code/datums/greyscale/json_configs/bandanaskull_inhands.json @@ -14,3 +14,4 @@ } ] } + diff --git a/code/datums/greyscale/json_configs/big_manipulator.json b/code/datums/greyscale/json_configs/big_manipulator.json new file mode 100644 index 0000000000000..c7f96bac2abaa --- /dev/null +++ b/code/datums/greyscale/json_configs/big_manipulator.json @@ -0,0 +1,15 @@ +{ + "core": [ + { + "type": "icon_state", + "icon_state": "core", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "core_colour", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/fish_tail.json b/code/datums/greyscale/json_configs/fish_tail.json new file mode 100644 index 0000000000000..3293c1df4ba08 --- /dev/null +++ b/code/datums/greyscale/json_configs/fish_tail.json @@ -0,0 +1,15 @@ +{ + "fish_tail": [ + { + "type": "icon_state", + "icon_state": "fish_tail", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "fish_tail_meat", + "blend_mode": "overlay" + } + ] +} \ No newline at end of file diff --git a/code/datums/greyscale/json_configs/items/cleric_mace.json b/code/datums/greyscale/json_configs/items/cleric_mace.json index 781c790ea6ab5..5197ebc45a2ef 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace.json @@ -9,7 +9,8 @@ { "type": "icon_state", "icon_state": "handle", - "blend_mode": "overlay" + "blend_mode": "overlay", + "color_ids": [ 2 ] } ], "default_worn": [ @@ -22,7 +23,8 @@ { "type": "icon_state", "icon_state": "worn_handle", - "blend_mode": "overlay" + "blend_mode": "overlay", + "color_ids": [ 2 ] } ] } diff --git a/code/datums/greyscale/json_configs/items/cleric_mace_worn.json b/code/datums/greyscale/json_configs/items/cleric_mace_worn.json index c49a829aa2c21..5725cfa689a42 100644 --- a/code/datums/greyscale/json_configs/items/cleric_mace_worn.json +++ b/code/datums/greyscale/json_configs/items/cleric_mace_worn.json @@ -9,7 +9,8 @@ { "type": "icon_state", "icon_state": "worn_handle", - "blend_mode": "overlay" + "blend_mode": "overlay", + "color_ids": [ 2 ] } ] } diff --git a/code/datums/greyscale/json_configs/jumpsuit_worn_digilegs.json b/code/datums/greyscale/json_configs/jumpsuit_worn_digilegs.json new file mode 100644 index 0000000000000..9aa201cece3c1 --- /dev/null +++ b/code/datums/greyscale/json_configs/jumpsuit_worn_digilegs.json @@ -0,0 +1,10 @@ +{ + "": [ + { + "type": "icon_state", + "icon_state": "jumpsuit", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/kitsune.json b/code/datums/greyscale/json_configs/kitsune.json index bee6418321387..495520fbbd806 100644 --- a/code/datums/greyscale/json_configs/kitsune.json +++ b/code/datums/greyscale/json_configs/kitsune.json @@ -12,5 +12,19 @@ "blend_mode": "overlay", "color_ids": [ 2 ] } + ], + "kitsune_up": [ + { + "type": "icon_state", + "icon_state": "kitsune_base_up", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "kitsune_stripe_up", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } ] } diff --git a/code/datums/greyscale/json_configs/manipulator_hand.json b/code/datums/greyscale/json_configs/manipulator_hand.json new file mode 100644 index 0000000000000..be7c96df62b64 --- /dev/null +++ b/code/datums/greyscale/json_configs/manipulator_hand.json @@ -0,0 +1,15 @@ +{ + "hand": [ + { + "type": "icon_state", + "icon_state": "hand", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "hand_colour", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/meter.json b/code/datums/greyscale/json_configs/meter.json index 73cfb73995955..344500c2a9dcc 100644 --- a/code/datums/greyscale/json_configs/meter.json +++ b/code/datums/greyscale/json_configs/meter.json @@ -2,26 +2,26 @@ "meter": [ { "type": "icon_state", - "icon_state": "pressure_off", + "icon_state": "meter_base", "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", + "icon_state": "pressure_off", "blend_mode": "overlay" } ], "meter0": [ { "type": "icon_state", - "icon_state": "pressure0", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure0", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -32,14 +32,14 @@ "meter1_1": [ { "type": "icon_state", - "icon_state": "pressure1_1", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure1_1", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -50,14 +50,14 @@ "meter1_2": [ { "type": "icon_state", - "icon_state": "pressure1_2", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure1_2", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -68,14 +68,14 @@ "meter1_3": [ { "type": "icon_state", - "icon_state": "pressure1_3", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure1_3", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -86,14 +86,14 @@ "meter1_4": [ { "type": "icon_state", - "icon_state": "pressure1_4", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure1_4", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -104,14 +104,14 @@ "meter1_5": [ { "type": "icon_state", - "icon_state": "pressure1_5", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure1_5", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -122,14 +122,14 @@ "meter1_6": [ { "type": "icon_state", - "icon_state": "pressure1_6", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure1_6", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -140,14 +140,14 @@ "meter2_1": [ { "type": "icon_state", - "icon_state": "pressure2_1", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure2_1", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -158,14 +158,14 @@ "meter2_2": [ { "type": "icon_state", - "icon_state": "pressure2_2", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure2_2", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -176,14 +176,14 @@ "meter2_3": [ { "type": "icon_state", - "icon_state": "pressure2_3", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure2_3", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -194,14 +194,14 @@ "meter2_4": [ { "type": "icon_state", - "icon_state": "pressure2_4", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure2_4", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -212,14 +212,14 @@ "meter2_5": [ { "type": "icon_state", - "icon_state": "pressure2_5", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure2_5", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -230,14 +230,14 @@ "meter2_6": [ { "type": "icon_state", - "icon_state": "pressure2_6", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure2_6", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -248,14 +248,14 @@ "meter3_1": [ { "type": "icon_state", - "icon_state": "pressure3_1", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure3_1", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -266,14 +266,14 @@ "meter3_2": [ { "type": "icon_state", - "icon_state": "pressure3_2", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure3_2", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -284,14 +284,14 @@ "meter3_3": [ { "type": "icon_state", - "icon_state": "pressure3_3", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure3_3", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -302,14 +302,14 @@ "meter3_4": [ { "type": "icon_state", - "icon_state": "pressure3_4", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure3_4", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -320,14 +320,14 @@ "meter3_5": [ { "type": "icon_state", - "icon_state": "pressure3_5", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure3_5", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -338,14 +338,14 @@ "meter3_6": [ { "type": "icon_state", - "icon_state": "pressure3_6", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure3_6", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", @@ -356,14 +356,14 @@ "meter4": [ { "type": "icon_state", - "icon_state": "pressure4", - "blend_mode": "overlay", - "color_ids": [ 1 ] + "icon_state": "meter_base", + "blend_mode": "overlay" }, { "type": "icon_state", - "icon_state": "meter_base", - "blend_mode": "overlay" + "icon_state": "pressure4", + "blend_mode": "overlay", + "color_ids": [ 1 ] }, { "type": "icon_state", diff --git a/code/datums/greyscale/json_configs/pet_carrier.json b/code/datums/greyscale/json_configs/pet_carrier.json new file mode 100644 index 0000000000000..1674765268ff2 --- /dev/null +++ b/code/datums/greyscale/json_configs/pet_carrier.json @@ -0,0 +1,87 @@ +{ + "pet_carrier_open": [ + { + "type": "icon_state", + "icon_state": "pet_carrier_open", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_gags", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "pet_carrier_closed_unlocked": [ + { + "type": "icon_state", + "icon_state": "pet_carrier_unlocked", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_closed", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_gags", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "pet_carrier_closed_locked": [ + { + "type": "icon_state", + "icon_state": "pet_carrier_locked", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_closed", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_gags", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "pet_carrier_occupied_unlocked": [ + { + "type": "icon_state", + "icon_state": "pet_carrier_unlocked", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_occupied", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_gags", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "pet_carrier_occupied_locked": [ + { + "type": "icon_state", + "icon_state": "pet_carrier_locked", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_occupied", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_gags", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/pet_carrier_inhands.json b/code/datums/greyscale/json_configs/pet_carrier_inhands.json new file mode 100644 index 0000000000000..05978e3c8292b --- /dev/null +++ b/code/datums/greyscale/json_configs/pet_carrier_inhands.json @@ -0,0 +1,15 @@ +{ + "pet_carrier": [ + { + "type": "icon_state", + "icon_state": "pet_carrier", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "pet_carrier_gags", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/code/datums/greyscale/json_configs/vape_open_high.json b/code/datums/greyscale/json_configs/vape_open_high.json deleted file mode 100644 index 65a0400d00334..0000000000000 --- a/code/datums/greyscale/json_configs/vape_open_high.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "vape_open_high": [ - { - "type": "icon_state", - "icon_state": "vapeOutlet", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "vapeInput", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "vapeopen_high", - "blend_mode": "overlay" - } - ] -} diff --git a/code/datums/greyscale/json_configs/vape_open_low.json b/code/datums/greyscale/json_configs/vape_open_low.json deleted file mode 100644 index 3ad5971bc3783..0000000000000 --- a/code/datums/greyscale/json_configs/vape_open_low.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "vape_open_low": [ - { - "type": "icon_state", - "icon_state": "vapeOutlet", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "vapeInput", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "vapeopen_low", - "blend_mode": "overlay" - } - ] -} diff --git a/code/datums/greyscale/json_configs/vape_open_med.json b/code/datums/greyscale/json_configs/vape_open_med.json deleted file mode 100644 index f26302edd77b3..0000000000000 --- a/code/datums/greyscale/json_configs/vape_open_med.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "vape_open_med": [ - { - "type": "icon_state", - "icon_state": "vapeOutlet", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "vapeInput", - "blend_mode": "overlay" - }, - { - "type": "icon_state", - "icon_state": "vapeopen_med", - "blend_mode": "overlay" - } - ] -} diff --git a/code/datums/greyscale/json_configs/vapeopen_high.json b/code/datums/greyscale/json_configs/vapeopen_high.json new file mode 100644 index 0000000000000..1ef82459ca8c6 --- /dev/null +++ b/code/datums/greyscale/json_configs/vapeopen_high.json @@ -0,0 +1,20 @@ +{ + "vapeopen_high": [ + { + "type": "icon_state", + "icon_state": "vapeOutlet", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeInput", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "vapeopen_high", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/json_configs/vapeopen_low.json b/code/datums/greyscale/json_configs/vapeopen_low.json new file mode 100644 index 0000000000000..eaef871bf3d1f --- /dev/null +++ b/code/datums/greyscale/json_configs/vapeopen_low.json @@ -0,0 +1,20 @@ +{ + "vapeopen_low": [ + { + "type": "icon_state", + "icon_state": "vapeOutlet", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeInput", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "vapeopen_low", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/json_configs/vapeopen_med.json b/code/datums/greyscale/json_configs/vapeopen_med.json new file mode 100644 index 0000000000000..508015825cef6 --- /dev/null +++ b/code/datums/greyscale/json_configs/vapeopen_med.json @@ -0,0 +1,20 @@ +{ + "vapeopen_med": [ + { + "type": "icon_state", + "icon_state": "vapeOutlet", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "vapeInput", + "blend_mode": "overlay" + }, + { + "type": "icon_state", + "icon_state": "vapeopen_med", + "blend_mode": "overlay" + } + ] +} diff --git a/code/datums/greyscale/layer.dm b/code/datums/greyscale/layer.dm index 06a001c1ad835..f12fb1992c9db 100644 --- a/code/datums/greyscale/layer.dm +++ b/code/datums/greyscale/layer.dm @@ -64,7 +64,7 @@ /datum/greyscale_layer/proc/CrossVerify() return -/// Used to actualy create the layer using the given colors +/// Used to actually create the layer using the given colors /// Do not override, use InternalGenerate instead /datum/greyscale_layer/proc/Generate(list/colors, list/render_steps, icon/new_icon) var/list/processed_colors = list() diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index c3562aa598732..c6e8236e55964 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -87,6 +87,6 @@ msg += "
Current Informational Settings:" msg += "Protect Authority Roles From Traitor: [CONFIG_GET(flag/protect_roles_from_antagonist)]" msg += "Protect Assistant Role From Traitor: [CONFIG_GET(flag/protect_assistant_from_antagonist)]" - msg += "Enforce Human Authority: [CONFIG_GET(flag/enforce_human_authority)]" + msg += "Enforce Human Authority: [CONFIG_GET(string/human_authority)]" msg += "Allow Latejoin Antagonists: [CONFIG_GET(flag/allow_latejoin_antagonists)]" - to_chat(src, "[msg.Join("
")]
") + to_chat(src, span_infoplain(msg.Join("
"))) diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index 78ec5f133066c..fead0417db9b2 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -11,7 +11,7 @@ user.reset_perspective(null) user.remote_control = null -//this datum manages it's own references +//this datum manages its own references /datum/holocall ///the one that called @@ -179,7 +179,7 @@ if(QDELETED(src)) return FALSE - . = !QDELETED(user) && !user.incapacitated() && !QDELETED(calling_holopad) && calling_holopad.is_operational && user.loc == calling_holopad.loc + . = !QDELETED(user) && !user.incapacitated && !QDELETED(calling_holopad) && calling_holopad.is_operational && user.loc == calling_holopad.loc if(.) if(!connected_holopad) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index c0e90994af520..fbe99dd8095ac 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -8,17 +8,24 @@ GLOBAL_LIST_EMPTY(huds_by_category) //GLOBAL HUD LIST GLOBAL_LIST_INIT(huds, list( - DATA_HUD_SECURITY_BASIC = new/datum/atom_hud/data/human/security/basic(), - DATA_HUD_SECURITY_ADVANCED = new/datum/atom_hud/data/human/security/advanced(), - DATA_HUD_MEDICAL_BASIC = new/datum/atom_hud/data/human/medical/basic(), - DATA_HUD_MEDICAL_ADVANCED = new/datum/atom_hud/data/human/medical/advanced(), - DATA_HUD_DIAGNOSTIC_BASIC = new/datum/atom_hud/data/diagnostic/basic(), - DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(), - DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor(), - DATA_HUD_SENTIENT_DISEASE = new/datum/atom_hud/sentient_disease(), - DATA_HUD_AI_DETECT = new/datum/atom_hud/ai_detector(), - DATA_HUD_FAN = new/datum/atom_hud/data/human/fan_hud(), - DATA_HUD_MALF_APC = new/datum/atom_hud/data/malf_apc(), + DATA_HUD_SECURITY_BASIC = new /datum/atom_hud/data/human/security/basic(), + DATA_HUD_SECURITY_ADVANCED = new /datum/atom_hud/data/human/security/advanced(), + DATA_HUD_MEDICAL_BASIC = new /datum/atom_hud/data/human/medical/basic(), + DATA_HUD_MEDICAL_ADVANCED = new /datum/atom_hud/data/human/medical/advanced(), + DATA_HUD_DIAGNOSTIC = new /datum/atom_hud/data/diagnostic(), + DATA_HUD_BOT_PATH = new /datum/atom_hud/data/bot_path(), + DATA_HUD_ABDUCTOR = new /datum/atom_hud/abductor(), + DATA_HUD_SENTIENT_DISEASE = new /datum/atom_hud/sentient_disease(), + DATA_HUD_AI_DETECT = new /datum/atom_hud/ai_detector(), + DATA_HUD_FAN = new /datum/atom_hud/data/human/fan_hud(), + DATA_HUD_MALF_APC = new /datum/atom_hud/data/malf_apc(), +)) + +GLOBAL_LIST_INIT(trait_to_hud, list( + TRAIT_SECURITY_HUD = DATA_HUD_SECURITY_ADVANCED, + TRAIT_MEDICAL_HUD = DATA_HUD_MEDICAL_ADVANCED, + TRAIT_DIAGNOSTIC_HUD = DATA_HUD_DIAGNOSTIC, + TRAIT_BOT_PATH_HUD = DATA_HUD_BOT_PATH, )) /datum/atom_hud @@ -32,11 +39,11 @@ GLOBAL_LIST_INIT(huds, list( // by z level so when they change z's we can adjust what images they see from this hud. var/list/hud_users = list() - ///used for signal tracking purposes, associative list of the form: list(hud atom = TRUE) that isnt separated by z level + ///used for signal tracking purposes, associative list of the form: list(hud atom = TRUE) that isn't separated by z level var/list/atom/hud_atoms_all_z_levels = list() ///used for signal tracking purposes, associative list of the form: list(hud user = number of times this hud was added to this user). - ///that isnt separated by z level + ///that isn't separated by z level var/list/mob/hud_users_all_z_levels = list() ///these will be the indexes for the atom's hud_list @@ -46,10 +53,10 @@ GLOBAL_LIST_INIT(huds, list( var/list/next_time_allowed = list() ///mobs that have triggered the cooldown and are queued to see the hud, but do not yet var/list/queued_to_see = list() - /// huduser = list(atoms with their hud hidden) - aka everyone hates targeted invisiblity + /// huduser = list(atoms with their hud hidden) - aka everyone hates targeted invisibility var/list/hud_exceptions = list() ///whether or not this atom_hud type updates the global huds_by_category list. - ///some subtypes cant work like this since theyre supposed to "belong" to + ///some subtypes can't work like this since they're supposed to "belong" to ///one target atom each. it will still go in the other global hud lists. var/uses_global_hud_category = TRUE @@ -168,9 +175,9 @@ GLOBAL_LIST_INIT(huds, list( hud_users_all_z_levels[former_viewer] -= 1//decrement number of sources for this hud on this user (bad way to track i know) - if (absolute || hud_users_all_z_levels[former_viewer] <= 0)//if forced or there arent any sources left, remove the user + if (absolute || hud_users_all_z_levels[former_viewer] <= 0)//if forced or there aren't any sources left, remove the user - if(!hud_atoms_all_z_levels[former_viewer])//make sure we arent unregistering changes on a mob thats also a hud atom for this hud + if(!hud_atoms_all_z_levels[former_viewer])//make sure we aren't unregistering changes on a mob that's also a hud atom for this hud UnregisterSignal(former_viewer, COMSIG_MOVABLE_Z_CHANGED) UnregisterSignal(former_viewer, COMSIG_QDELETING) @@ -215,7 +222,7 @@ GLOBAL_LIST_INIT(huds, list( if(!hud_atom_to_remove || !hud_atoms_all_z_levels[hud_atom_to_remove]) return FALSE - //make sure we arent unregistering a hud atom thats also a hud user mob + //make sure we aren't unregistering a hud atom that's also a hud user mob if(!hud_users_all_z_levels[hud_atom_to_remove]) UnregisterSignal(hud_atom_to_remove, COMSIG_MOVABLE_Z_CHANGED) UnregisterSignal(hud_atom_to_remove, COMSIG_QDELETING) @@ -271,12 +278,12 @@ GLOBAL_LIST_INIT(huds, list( for(var/mob/hud_user as anything in get_hud_users_for_z_level(atom_turf.z)) if(!hud_user.client) continue - hud_user.client.images -= hud_atom.active_hud_list[hud_category_to_remove]//by this point it shouldnt be in active_hud_list + hud_user.client.images -= hud_atom.active_hud_list[hud_category_to_remove]//by this point it shouldn't be in active_hud_list return TRUE -///when a hud atom or hud user changes z levels this makes sure it gets the images it needs and removes the images it doesnt need. -///because of how signals work we need the same proc to handle both use cases because being a hud atom and being a hud user arent mutually exclusive +///when a hud atom or hud user changes z levels this makes sure it gets the images it needs and removes the images it doesn't need. +///because of how signals work we need the same proc to handle both use cases because being a hud atom and being a hud user aren't mutually exclusive /datum/atom_hud/proc/on_atom_or_user_z_level_changed(atom/movable/moved_atom, turf/old_turf, turf/new_turf) SIGNAL_HANDLER if(old_turf) @@ -293,7 +300,7 @@ GLOBAL_LIST_INIT(huds, list( if(new_turf) if(hud_users_all_z_levels[moved_atom]) - hud_users[new_turf.z][moved_atom] = TRUE //hud users is associative, hud atoms isnt + hud_users[new_turf.z][moved_atom] = TRUE //hud users is associative, hud atoms isn't add_all_atoms_to_single_mob_hud(moved_atom, get_hud_atoms_for_z_level(new_turf.z)) diff --git a/code/datums/id_trim/_id_trim.dm b/code/datums/id_trim/_id_trim.dm index 067e2e3826390..32bafcb41d3f7 100644 --- a/code/datums/id_trim/_id_trim.dm +++ b/code/datums/id_trim/_id_trim.dm @@ -24,6 +24,14 @@ /// Accesses that this trim unlocks on a card that require wildcard slots to apply. If a card cannot accept all a trim's wildcard accesses, the card is incompatible with the trim. var/list/wildcard_access = list() + ///If true, IDs with this trim will grant wearers with bigger arrows when pointing + var/big_pointer = FALSE + ///If set, IDs with this trim will give wearers arrows of different colors when pointing + var/pointer_color + +/datum/id_trim/proc/find_job() + return null + /// Returns the SecHUD job icon state for whatever this object's ID card is, if it has one. /obj/item/proc/get_sechud_job_icon_state() var/obj/item/card/id/id_card = GetID() diff --git a/code/datums/id_trim/admin.dm b/code/datums/id_trim/admin.dm index 9de155c9a0468..ee0cf1b977e0a 100644 --- a/code/datums/id_trim/admin.dm +++ b/code/datums/id_trim/admin.dm @@ -5,6 +5,8 @@ department_color = COLOR_CENTCOM_BLUE subdepartment_color = COLOR_SERVICE_LIME threat_modifier = -INFINITY + big_pointer = TRUE + pointer_color = COLOR_GREEN /datum/id_trim/admin/New() . = ..() diff --git a/code/datums/id_trim/centcom.dm b/code/datums/id_trim/centcom.dm index 5cc24f4bd6e19..498a4de254e3b 100644 --- a/code/datums/id_trim/centcom.dm +++ b/code/datums/id_trim/centcom.dm @@ -7,6 +7,8 @@ department_color = COLOR_CENTCOM_BLUE subdepartment_color = COLOR_CENTCOM_BLUE threat_modifier = -10 // Centcom are legally allowed to do whatever they want + big_pointer = TRUE + pointer_color = COLOR_CENTCOM_BLUE /// Trim for Centcom VIPs /datum/id_trim/centcom/vip @@ -20,6 +22,7 @@ trim_state = "trim_janitor" department_color = COLOR_CENTCOM_BLUE subdepartment_color = COLOR_SERVICE_LIME + big_pointer = FALSE /// Trim for Centcom Thunderdome Overseers. /datum/id_trim/centcom/thunderdome_overseer @@ -35,10 +38,12 @@ /datum/id_trim/centcom/intern access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_WEAPONS) assignment = "CentCom Intern" + big_pointer = FALSE /// Trim for Centcom Head Interns. Different assignment, common station access added on. /datum/id_trim/centcom/intern/head assignment = "CentCom Head Intern" + big_pointer = TRUE /datum/id_trim/centcom/intern/head/New() . = ..() @@ -49,11 +54,13 @@ /datum/id_trim/centcom/bounty_hunter access = list(ACCESS_CENT_GENERAL) assignment = "Bounty Hunter" + big_pointer = FALSE /// Trim for Centcom Bartenders. /datum/id_trim/centcom/bartender access = list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_BAR) assignment = JOB_CENTCOM_BARTENDER + big_pointer = FALSE /// Trim for Centcom Medical Officers. /datum/id_trim/centcom/medical_officer @@ -68,6 +75,7 @@ /// Trim for Centcom Specops Officers. All Centcom and Station Access. /datum/id_trim/centcom/specops_officer assignment = JOB_CENTCOM_SPECIAL_OFFICER + big_pointer = FALSE /datum/id_trim/centcom/specops_officer/New() . = ..() @@ -129,6 +137,7 @@ trim_state = "trim_securityofficer" subdepartment_color = COLOR_SECURITY_RED sechud_icon_state = SECHUD_SECURITY_RESPONSE_OFFICER + big_pointer = FALSE /datum/id_trim/centcom/ert/security/New() . = ..() @@ -141,6 +150,7 @@ trim_state = "trim_stationengineer" subdepartment_color = COLOR_ENGINEERING_ORANGE sechud_icon_state = SECHUD_ENGINEERING_RESPONSE_OFFICER + big_pointer = FALSE /datum/id_trim/centcom/ert/engineer/New() . = ..() @@ -153,6 +163,7 @@ trim_state = "trim_medicaldoctor" subdepartment_color = COLOR_MEDICAL_BLUE sechud_icon_state = SECHUD_MEDICAL_RESPONSE_OFFICER + big_pointer = FALSE /datum/id_trim/centcom/ert/medical/New() . = ..() @@ -165,6 +176,7 @@ trim_state = "trim_chaplain" subdepartment_color = COLOR_SERVICE_LIME sechud_icon_state = SECHUD_RELIGIOUS_RESPONSE_OFFICER + big_pointer = FALSE /datum/id_trim/centcom/ert/chaplain/New() . = ..() @@ -177,6 +189,7 @@ trim_state = "trim_ert_janitor" subdepartment_color = COLOR_SERVICE_LIME sechud_icon_state = SECHUD_JANITORIAL_RESPONSE_OFFICER + big_pointer = FALSE /datum/id_trim/centcom/ert/janitor/New() . = ..() @@ -189,6 +202,7 @@ trim_state = "trim_clown" subdepartment_color = COLOR_MAGENTA sechud_icon_state = SECHUD_ENTERTAINMENT_RESPONSE_OFFICER + big_pointer = FALSE /datum/id_trim/centcom/ert/clown/New() . = ..() @@ -197,6 +211,8 @@ /datum/id_trim/centcom/ert/militia assignment = "Frontier Militia" + big_pointer = FALSE /datum/id_trim/centcom/ert/militia/general assignment = "Frontier Militia General" + big_pointer = TRUE diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm index 4d4c44138e0c2..34432a638db01 100644 --- a/code/datums/id_trim/jobs.dm +++ b/code/datums/id_trim/jobs.dm @@ -24,10 +24,10 @@ /datum/id_trim/job/New() if(ispath(job)) - job = SSjob.GetJobType(job) + job = SSjob.get_job_type(job) if(isnull(job_changes)) - job_changes = SSmapping.config.job_changes + job_changes = SSmapping.current_map.job_changes if(!length(job_changes)) refresh_trim_access() @@ -76,8 +76,11 @@ return TRUE +/datum/id_trim/job/find_job() + return job + /datum/id_trim/job/assistant - assignment = "Assistant" + assignment = JOB_ASSISTANT trim_state = "trim_assistant" intern_alt_name = "Intern" sechud_icon_state = SECHUD_ASSISTANT @@ -104,7 +107,7 @@ ACCESS_MAINT_TUNNELS) /datum/id_trim/job/atmospheric_technician - assignment = "Atmospheric Technician" + assignment = JOB_ATMOSPHERIC_TECHNICIAN trim_state = "trim_atmospherictechnician" department_color = COLOR_ENGINEERING_ORANGE subdepartment_color = COLOR_ENGINEERING_ORANGE @@ -133,7 +136,7 @@ job = /datum/job/atmospheric_technician /datum/id_trim/job/bartender - assignment = "Bartender" + assignment = JOB_BARTENDER trim_state = "trim_bartender" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -156,8 +159,31 @@ ) job = /datum/job/bartender +/datum/id_trim/job/pun_pun + assignment = "Busser" + trim_state = "trim_busser" + department_color = COLOR_SERVICE_LIME + subdepartment_color = COLOR_SERVICE_LIME + sechud_icon_state = SECHUD_BUSSER + minimal_access = list( + ACCESS_MINERAL_STOREROOM, + ACCESS_SERVICE, + ACCESS_THEATRE, + ) + extra_access = list( + ACCESS_HYDROPONICS, + ACCESS_KITCHEN, + ACCESS_BAR, + ) + template_access = list( + ACCESS_CAPTAIN, + ACCESS_CHANGE_IDS, + ACCESS_HOP, + ) + job = /datum/job/pun_pun + /datum/id_trim/job/bitrunner - assignment = "Bitrunner" + assignment = JOB_BITRUNNER trim_state = "trim_bitrunner" department_color = COLOR_CARGO_BROWN subdepartment_color = COLOR_CARGO_BROWN @@ -181,7 +207,7 @@ job = /datum/job/bitrunner /datum/id_trim/job/botanist - assignment = "Botanist" + assignment = JOB_BOTANIST trim_state = "trim_botanist" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -204,7 +230,7 @@ job = /datum/job/botanist /datum/id_trim/job/bridge_assistant - assignment = "Bridge Assistant" + assignment = JOB_BRIDGE_ASSISTANT trim_state = "trim_assistant" department_color = COLOR_COMMAND_BLUE subdepartment_color = COLOR_COMMAND_BLUE @@ -226,7 +252,7 @@ job = /datum/job/bridge_assistant /datum/id_trim/job/captain - assignment = "Captain" + assignment = JOB_CAPTAIN intern_alt_name = "Captain-in-Training" trim_state = "trim_captain" department_color = COLOR_COMMAND_BLUE @@ -238,6 +264,8 @@ ACCESS_CHANGE_IDS, ) job = /datum/job/captain + big_pointer = TRUE + pointer_color = COLOR_COMMAND_BLUE /// Captain gets all station accesses hardcoded in because it's the Captain. /datum/id_trim/job/captain/New() @@ -249,7 +277,7 @@ return ..() /datum/id_trim/job/cargo_technician - assignment = "Cargo Technician" + assignment = JOB_CARGO_TECHNICIAN trim_state = "trim_cargotechnician" department_color = COLOR_CARGO_BROWN subdepartment_color = COLOR_CARGO_BROWN @@ -274,7 +302,7 @@ job = /datum/job/cargo_technician /datum/id_trim/job/chaplain - assignment = "Chaplain" + assignment = JOB_CHAPLAIN trim_state = "trim_chaplain" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -296,7 +324,7 @@ job = /datum/job/chaplain /datum/id_trim/job/chemist - assignment = "Chemist" + assignment = JOB_CHEMIST trim_state = "trim_chemist" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_MEDICAL_BLUE @@ -321,7 +349,7 @@ job = /datum/job/chemist /datum/id_trim/job/chief_engineer - assignment = "Chief Engineer" + assignment = JOB_CHIEF_ENGINEER intern_alt_name = "Chief Engineer-in-Training" trim_state = "trim_stationengineer" department_color = COLOR_COMMAND_BLUE @@ -360,9 +388,11 @@ ACCESS_CHANGE_IDS, ) job = /datum/job/chief_engineer + big_pointer = TRUE + pointer_color = COLOR_ENGINEERING_ORANGE /datum/id_trim/job/chief_medical_officer - assignment = "Chief Medical Officer" + assignment = JOB_CHIEF_MEDICAL_OFFICER intern_alt_name = "Chief Medical Officer-in-Training" trim_state = "trim_medicaldoctor" department_color = COLOR_COMMAND_BLUE @@ -399,9 +429,11 @@ ACCESS_CHANGE_IDS, ) job = /datum/job/chief_medical_officer + big_pointer = TRUE + pointer_color = COLOR_MEDICAL_BLUE /datum/id_trim/job/clown - assignment = "Clown" + assignment = JOB_CLOWN trim_state = "trim_clown" department_color = COLOR_MAGENTA subdepartment_color = COLOR_MAGENTA @@ -420,7 +452,7 @@ job = /datum/job/clown /datum/id_trim/job/cook - assignment = "Cook" + assignment = JOB_COOK trim_state = "trim_cook" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -443,11 +475,11 @@ job = /datum/job/cook /datum/id_trim/job/cook/chef - assignment = "Chef" + assignment = JOB_CHEF sechud_icon_state = SECHUD_CHEF /datum/id_trim/job/coroner - assignment = "Coroner" + assignment = JOB_CORONER trim_state = "trim_coroner" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_SERVICE_LIME @@ -474,7 +506,7 @@ job = /datum/job/coroner /datum/id_trim/job/curator - assignment = "Curator" + assignment = JOB_CURATOR trim_state = "trim_curator" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -495,7 +527,7 @@ job = /datum/job/curator /datum/id_trim/job/detective - assignment = "Detective" + assignment = JOB_DETECTIVE trim_state = "trim_detective" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_SECURITY_RED @@ -533,7 +565,7 @@ access |= list(ACCESS_MAINT_TUNNELS) /datum/id_trim/job/geneticist - assignment = "Geneticist" + assignment = JOB_GENETICIST trim_state = "trim_geneticist" department_color = COLOR_SCIENCE_PINK subdepartment_color = COLOR_SCIENCE_PINK @@ -561,7 +593,7 @@ job = /datum/job/geneticist /datum/id_trim/job/head_of_personnel - assignment = "Head of Personnel" + assignment = JOB_HEAD_OF_PERSONNEL intern_alt_name = "Head of Personnel-in-Training" trim_state = "trim_headofpersonnel" department_color = COLOR_COMMAND_BLUE @@ -612,9 +644,11 @@ ACCESS_CHANGE_IDS, ) job = /datum/job/head_of_personnel + big_pointer = TRUE + pointer_color = COLOR_SERVICE_LIME /datum/id_trim/job/head_of_security - assignment = "Head of Security" + assignment = JOB_HEAD_OF_SECURITY intern_alt_name = "Head of Security-in-Training" trim_state = "trim_securityofficer" department_color = COLOR_COMMAND_BLUE @@ -661,6 +695,8 @@ ACCESS_CHANGE_IDS, ) job = /datum/job/head_of_security + big_pointer = TRUE + pointer_color = COLOR_SECURITY_RED /datum/id_trim/job/head_of_security/refresh_trim_access() . = ..() @@ -673,7 +709,7 @@ access |= list(ACCESS_MAINT_TUNNELS) /datum/id_trim/job/janitor - assignment = "Janitor" + assignment = JOB_JANITOR trim_state = "trim_janitor" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SERVICE_LIME @@ -693,7 +729,7 @@ job = /datum/job/janitor /datum/id_trim/job/lawyer - assignment = "Lawyer" + assignment = JOB_LAWYER trim_state = "trim_lawyer" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_SECURITY_RED @@ -714,7 +750,7 @@ job = /datum/job/lawyer /datum/id_trim/job/medical_doctor - assignment = "Medical Doctor" + assignment = JOB_MEDICAL_DOCTOR trim_state = "trim_medicaldoctor" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_MEDICAL_BLUE @@ -739,7 +775,7 @@ job = /datum/job/doctor /datum/id_trim/job/mime - assignment = "Mime" + assignment = JOB_MIME trim_state = "trim_mime" department_color = COLOR_SILVER subdepartment_color = COLOR_WHITE @@ -758,7 +794,7 @@ job = /datum/job/mime /datum/id_trim/job/paramedic - assignment = "Paramedic" + assignment = JOB_PARAMEDIC trim_state = "trim_paramedic" department_color = COLOR_MEDICAL_BLUE subdepartment_color = COLOR_MEDICAL_BLUE @@ -790,7 +826,7 @@ job = /datum/job/paramedic /datum/id_trim/job/prisoner - assignment = "Prisoner" + assignment = JOB_PRISONER trim_state = "trim_warden" department_color = COLOR_PRISONER_BLACK subdepartment_color = COLOR_PRISONER_BLACK @@ -833,7 +869,7 @@ template_access = null /datum/id_trim/job/psychologist - assignment = "Psychologist" + assignment = JOB_PSYCHOLOGIST trim_state = "trim_psychologist" department_color = COLOR_SERVICE_LIME subdepartment_color = COLOR_MEDICAL_BLUE @@ -857,7 +893,7 @@ job = /datum/job/psychologist /datum/id_trim/job/quartermaster - assignment = "Quartermaster" + assignment = JOB_QUARTERMASTER intern_alt_name = "Quartermaster-in-Training" trim_state = "trim_cargotechnician" department_color = COLOR_COMMAND_BLUE @@ -893,9 +929,11 @@ ACCESS_CHANGE_IDS, ) job = /datum/job/quartermaster + big_pointer = TRUE + pointer_color = COLOR_CARGO_BROWN /datum/id_trim/job/research_director - assignment = "Research Director" + assignment = JOB_RESEARCH_DIRECTOR intern_alt_name = "Research Director-in-Training" trim_state = "trim_scientist" department_color = COLOR_COMMAND_BLUE @@ -941,9 +979,11 @@ ACCESS_CHANGE_IDS, ) job = /datum/job/research_director + big_pointer = TRUE + pointer_color = COLOR_SCIENCE_PINK /datum/id_trim/job/roboticist - assignment = "Roboticist" + assignment = JOB_ROBOTICIST trim_state = "trim_roboticist" department_color = COLOR_SCIENCE_PINK subdepartment_color = COLOR_SCIENCE_PINK @@ -957,13 +997,13 @@ ACCESS_ROBOTICS, ACCESS_SCIENCE, ACCESS_TECH_STORAGE, + ACCESS_ORDNANCE, + ACCESS_ORDNANCE_STORAGE, ) extra_access = list( ACCESS_GENETICS, ACCESS_XENOBIOLOGY, ACCESS_MORGUE_SECURE, - ACCESS_ORDNANCE, - ACCESS_ORDNANCE_STORAGE, ) template_access = list( ACCESS_CAPTAIN, @@ -973,7 +1013,7 @@ job = /datum/job/roboticist /datum/id_trim/job/scientist - assignment = "Scientist" + assignment = JOB_SCIENTIST trim_state = "trim_scientist" department_color = COLOR_SCIENCE_PINK subdepartment_color = COLOR_SCIENCE_PINK @@ -1001,7 +1041,7 @@ /// Sec officers have departmental variants. They each have their own trims with bonus departmental accesses. /datum/id_trim/job/security_officer - assignment = "Security Officer" + assignment = JOB_SECURITY_OFFICER trim_state = "trim_securityofficer" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_SECURITY_RED @@ -1056,7 +1096,7 @@ if(CONFIG_GET(number/depsec_access_level) == POPULATION_SCALED_ACCESS) var/minimal_security_officers = 3 // We do not spawn in any more lockers if there are 5 or less security officers, so let's keep it lower than that number. - var/datum/job/J = SSjob.GetJob(JOB_SECURITY_OFFICER) + var/datum/job/J = SSjob.get_job(JOB_SECURITY_OFFICER) if((J.spawn_positions - minimal_security_officers) <= 0) access |= elevated_access @@ -1064,7 +1104,7 @@ access |= elevated_access /datum/id_trim/job/security_officer/supply - assignment = "Security Officer (Cargo)" + assignment = JOB_SECURITY_OFFICER_SUPPLY subdepartment_color = COLOR_CARGO_BROWN department_access = list( ACCESS_BIT_DEN, @@ -1078,7 +1118,7 @@ ) /datum/id_trim/job/security_officer/engineering - assignment = "Security Officer (Engineering)" + assignment = JOB_SECURITY_OFFICER_ENGINEERING subdepartment_color = COLOR_ENGINEERING_ORANGE department_access = list( ACCESS_ATMOSPHERICS, @@ -1092,7 +1132,7 @@ ) /datum/id_trim/job/security_officer/medical - assignment = "Security Officer (Medical)" + assignment = JOB_SECURITY_OFFICER_MEDICAL subdepartment_color = COLOR_MEDICAL_BLUE department_access = list( ACCESS_MEDICAL, @@ -1106,7 +1146,7 @@ ) /datum/id_trim/job/security_officer/science - assignment = "Security Officer (Science)" + assignment = JOB_SECURITY_OFFICER_SCIENCE subdepartment_color = COLOR_SCIENCE_PINK department_access = list( ACCESS_RESEARCH, @@ -1122,7 +1162,7 @@ ) /datum/id_trim/job/shaft_miner - assignment = "Shaft Miner" + assignment = JOB_SHAFT_MINER trim_state = "trim_shaftminer" department_color = COLOR_CARGO_BROWN subdepartment_color = COLOR_SCIENCE_PINK @@ -1159,7 +1199,7 @@ template_access = null /datum/id_trim/job/station_engineer - assignment = "Station Engineer" + assignment = JOB_STATION_ENGINEER trim_state = "trim_stationengineer" department_color = COLOR_ENGINEERING_ORANGE subdepartment_color = COLOR_ENGINEERING_ORANGE @@ -1188,7 +1228,7 @@ job = /datum/job/station_engineer /datum/id_trim/job/veteran_advisor - assignment = "Veteran Security Advisor" + assignment = JOB_VETERAN_ADVISOR trim_state = "trim_veteranadvisor" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_COMMAND_BLUE @@ -1206,6 +1246,7 @@ extra_access = list() template_access = list() job = /datum/job/veteran_advisor + big_pointer = TRUE /datum/id_trim/job/veteran_advisor/refresh_trim_access() . = ..() @@ -1219,7 +1260,7 @@ /datum/id_trim/job/warden - assignment = "Warden" + assignment = JOB_WARDEN trim_state = "trim_warden" department_color = COLOR_SECURITY_RED subdepartment_color = COLOR_SECURITY_RED @@ -1275,3 +1316,5 @@ extra_access = list() template_access = list() job = /datum/job/human_ai + big_pointer = TRUE + pointer_color = COLOR_MODERATE_BLUE diff --git a/code/datums/id_trim/ruins.dm b/code/datums/id_trim/ruins.dm index 36284e06b72c4..1eccc77a985b5 100644 --- a/code/datums/id_trim/ruins.dm +++ b/code/datums/id_trim/ruins.dm @@ -72,6 +72,7 @@ /datum/id_trim/centcom/corpse/commander assignment = "Commander" access = list(ACCESS_CENT_CAPTAIN, ACCESS_CENT_GENERAL, ACCESS_CENT_SPECOPS, ACCESS_CENT_MEDICAL, ACCESS_CENT_STORAGE) + big_pointer = TRUE /// Trim for various Centcom corpses. /datum/id_trim/centcom/corpse/private_security @@ -115,6 +116,7 @@ /datum/id_trim/pirate/captain assignment = "Pirate Captain" trim_state = "trim_captain" + big_pointer = TRUE /datum/id_trim/pirate/silverscale assignment = "Silver Scale Member" @@ -130,6 +132,7 @@ /datum/id_trim/away/dangerous_research/head_occultist assignment = "Head Occultist" access = list(ACCESS_AWAY_SCIENCE, ACCESS_AWAY_COMMAND) + big_pointer = TRUE //Trims for waystation.dmm space ruin /datum/id_trim/away/waystation/cargo_technician @@ -143,6 +146,7 @@ trim_state = "trim_quartermaster" department_color = COLOR_CARGO_BROWN access = list(ACCESS_AWAY_SUPPLY, ACCESS_AWAY_COMMAND) + big_pointer = TRUE /datum/id_trim/away/waystation/security assignment = "Waystation Security Officer" @@ -162,3 +166,17 @@ /datum/id_trim/away/the_outlet/mad_manager assignment = "The Mad Manager" access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_MEDICAL, ACCESS_AWAY_SEC) + big_pointer = TRUE + +//Haunted Trading Post IDs +/datum/id_trim/away/hauntedtradingpost + assignment = "Donk Co. Employee" + department_color = COLOR_ENGINEERING_ORANGE + sechud_icon_state = SECHUD_SYNDICATE + threat_modifier = 5 + access = list(ACCESS_SYNDICATE) + +/datum/id_trim/away/hauntedtradingpost/boss + assignment = "Donk Co. Executive" + access = list(ACCESS_SYNDICATE, ACCESS_AWAY_COMMAND) + big_pointer = TRUE diff --git a/code/datums/id_trim/syndicate.dm b/code/datums/id_trim/syndicate.dm index 9a3e0c5fc9173..41c76aaf3784c 100644 --- a/code/datums/id_trim/syndicate.dm +++ b/code/datums/id_trim/syndicate.dm @@ -7,11 +7,14 @@ sechud_icon_state = SECHUD_SYNDICATE access = list(ACCESS_SYNDICATE) threat_modifier = 5 // Bad guy on deck + big_pointer = TRUE + pointer_color = COLOR_SYNDIE_RED /// Trim for Syndicate mobs, outfits and corpses. /datum/id_trim/syndicom/crew assignment = "Syndicate Operative" access = list(ACCESS_SYNDICATE, ACCESS_ROBOTICS) + big_pointer = FALSE /// Interdyne medical Staff /datum/id_trim/syndicom/Interdyne/pharmacist @@ -19,6 +22,8 @@ trim_state = "trim_medicaldoctor" sechud_icon_state = SECHUD_SYNDICATE_INTERDYNE access = list(ACCESS_SYNDICATE, ACCESS_ROBOTICS, ACCESS_SURGERY) + big_pointer = FALSE + pointer_color = null /// Interdyne head medical Staff /datum/id_trim/syndicom/Interdyne/pharmacist_director @@ -28,6 +33,8 @@ subdepartment_color = COLOR_SYNDIE_RED_HEAD sechud_icon_state = SECHUD_SYNDICATE_INTERDYNE_HEAD access = list(ACCESS_SYNDICATE, ACCESS_ROBOTICS, ACCESS_SURGERY) + big_pointer = TRUE + pointer_color = COLOR_SYNDIE_RED_HEAD /// Trim for the space IRS agents (why are they syndie access? I wouldn't worry about it.) /datum/id_trim/syndicom/irs @@ -37,11 +44,14 @@ subdepartment_color = COLOR_COMMAND_BLUE sechud_icon_state = SECHUD_DEATH_COMMANDO access = list(ACCESS_SYNDICATE, ACCESS_MAINT_TUNNELS) + big_pointer = FALSE + pointer_color = null /datum/id_trim/syndicom/irs/auditor assignment = "Internal Revenue Service Head Auditor" trim_state = "trim_quartermaster" sechud_icon_state = SECHUD_QUARTERMASTER + big_pointer = TRUE /// Trim for Syndicate mobs, outfits and corpses. /datum/id_trim/syndicom/captain @@ -60,6 +70,8 @@ /datum/id_trim/battlecruiser/captain assignment = "Syndicate Battlecruiser Captain" access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + big_pointer = TRUE + pointer_color = COLOR_SYNDIE_RED /// Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards. /datum/id_trim/chameleon @@ -79,6 +91,8 @@ /datum/id_trim/chameleon/operative/nuke_leader assignment = "Syndicate Operative Leader" access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + big_pointer = TRUE + pointer_color = COLOR_SYNDIE_RED /// Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards. /datum/id_trim/chameleon/operative/clown @@ -89,3 +103,5 @@ /datum/id_trim/chameleon/operative/clown_leader assignment = "Syndicate Entertainment Operative Leader" access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + big_pointer = TRUE + pointer_color = COLOR_SYNDIE_RED diff --git a/code/datums/job_configs/_job_configs.dm b/code/datums/job_configs/_job_configs.dm index 84e2cb4ec0a41..b3a32cd8a2b83 100644 --- a/code/datums/job_configs/_job_configs.dm +++ b/code/datums/job_configs/_job_configs.dm @@ -33,6 +33,12 @@ stack_trace("Attempted to validate value for the default job config! You're doing something wrong!!") return FALSE +/// Check if the config entry should be made for a specific job +/// By default returns TRUE, meaning that by default every job will have the config entry created by the datum +/// An example of what this could be used for is: A value that only appears if the job is a head of staff +/datum/job_config_type/proc/validate_entry(datum/job/occupation) + return TRUE + /// This is the proc that we actually invoke to set the config-based values for each job. Is also intended to handle all in-depth logic checks pertient to the job datum itself. /// Return TRUE if the value was set successfully (or if expected behavior did indeed occur), FALSE if it was not. /datum/job_config_type/proc/set_current_value(datum/job/occupation, value) diff --git a/code/datums/job_configs/human_authority.dm b/code/datums/job_configs/human_authority.dm new file mode 100644 index 0000000000000..68b6c64f95cfa --- /dev/null +++ b/code/datums/job_configs/human_authority.dm @@ -0,0 +1,17 @@ +/// Whether if the job should whitelist humans, whitelist nonhumans, or neither +/datum/job_config_type/human_authority + name = JOB_CONFIG_HUMAN_AUTHORITY + datum_var_name = "human_authority" + +/datum/job_config_type/human_authority/validate_value(value) + if(value == JOB_AUTHORITY_HUMANS_ONLY) + return TRUE + + if(value == JOB_AUTHORITY_NON_HUMANS_ALLOWED) + return TRUE + + return FALSE + +/datum/job_config_type/human_authority/validate_entry(datum/job/occupation) + return occupation.job_flags & JOB_HEAD_OF_STAFF + diff --git a/code/datums/json_database.dm b/code/datums/json_database.dm index ea3ff354b48ce..6baeb44ab091b 100644 --- a/code/datums/json_database.dm +++ b/code/datums/json_database.dm @@ -61,6 +61,16 @@ /datum/json_database/proc/get_key(key) return cached_data[key] +/// Picks the data of a random key and then removes that key from the database. +/// Since the list is no longer inside the database, you can mutate and use it as you like. +/datum/json_database/proc/pick_and_take_key() + if(!length(cached_data)) + return null + var/key = pick(cached_data) + . = cached_data[key] + cached_data -= key + queue_save() + /// Sets the data at the key to the value, and queues a save. /datum/json_database/proc/set_key(key, value) cached_data[key] = value diff --git a/code/datums/lazy_template.dm b/code/datums/lazy_template.dm index 7b18ff7225f03..3faefc0cc78b4 100644 --- a/code/datums/lazy_template.dm +++ b/code/datums/lazy_template.dm @@ -130,3 +130,7 @@ /datum/lazy_template/heretic_sacrifice_room key = LAZY_TEMPLATE_KEY_HERETIC_SACRIFICE map_name = "heretic_sacrifice" + +/datum/lazy_template/voidwalker_void + key = LAZY_TEMPLATE_KEY_VOIDWALKER_VOID + map_name = "voidwalker_void" diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 54185efdb8dda..122eab2861e99 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -2,7 +2,7 @@ * A datum for sounds that need to loop, with a high amount of configurability. */ /datum/looping_sound - /// (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end. + /// (list or soundfile) Since this can be either a list or a single soundfile you can have random sounds. May contain further lists but must contain a soundfile at the end. In a list, path must have also be assigned a value or it will be assigned 0 and not play. var/mid_sounds /// The length of time to wait between playing mid_sounds. var/mid_length diff --git a/code/datums/looping_sounds/acid.dm b/code/datums/looping_sounds/acid.dm index e461e5d02ce9c..9dcf6e1750a0c 100644 --- a/code/datums/looping_sounds/acid.dm +++ b/code/datums/looping_sounds/acid.dm @@ -1,5 +1,5 @@ /// Soundloop for the acid component. /datum/looping_sound/acid - mid_sounds = list('sound/items/welder.ogg' = 1) + mid_sounds = list('sound/items/tools/welder.ogg' = 1) mid_length = 10 volume = 150 diff --git a/code/datums/looping_sounds/breathing.dm b/code/datums/looping_sounds/breathing.dm index f9a81c6856926..a50e13a7fd5da 100644 --- a/code/datums/looping_sounds/breathing.dm +++ b/code/datums/looping_sounds/breathing.dm @@ -1,9 +1,19 @@ /datum/looping_sound/breathing - mid_sounds = 'sound/voice/breathing.ogg' + mid_sounds = list( + 'sound/mobs/humanoids/breathing/internals_breathing1.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing2.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing3.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing4.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing5.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing6.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing7.ogg' = 1, + 'sound/mobs/humanoids/breathing/internals_breathing8.ogg' = 1, + ) //Calculated this by using the average breathing time of an adult (12 to 20 per minute, which on average is 16 per minute) - mid_length = 3.75 SECONDS - mid_length_vary = 0.2 SECONDS + // realism is overrated, make it longer to reduce ear fatigue + mid_length = 7 SECONDS + mid_length_vary = 0.7 SECONDS //spess station- - volume = 13 + volume = 7 pressure_affected = FALSE - direct = TRUE + vary = TRUE diff --git a/code/datums/looping_sounds/choking.dm b/code/datums/looping_sounds/choking.dm index 444204efa1fa6..6d337b1c7d648 100644 --- a/code/datums/looping_sounds/choking.dm +++ b/code/datums/looping_sounds/choking.dm @@ -1,5 +1,5 @@ /datum/looping_sound/choking - mid_sounds = list('sound/creatures/gag1.ogg' = 1, 'sound/creatures/gag2.ogg' = 1, 'sound/creatures/gag3.ogg' = 1, 'sound/creatures/gag4.ogg' = 1, 'sound/creatures/gag5.ogg' = 1) + mid_sounds = list('sound/mobs/humanoids/human/gag_vomit/gag1.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag2.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag3.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag4.ogg' = 1, 'sound/mobs/humanoids/human/gag_vomit/gag5.ogg' = 1) mid_length = 1.6 SECONDS mid_length_vary = 0.3 SECONDS each_once = TRUE diff --git a/code/datums/looping_sounds/cyborg.dm b/code/datums/looping_sounds/cyborg.dm index 499e61757c6dd..0a01a4c7116b9 100644 --- a/code/datums/looping_sounds/cyborg.dm +++ b/code/datums/looping_sounds/cyborg.dm @@ -1,10 +1,10 @@ /datum/looping_sound/wash - mid_sounds = list('sound/creatures/cyborg/wash1.ogg' = 1, 'sound/creatures/cyborg/wash2.ogg' = 1) + mid_sounds = list('sound/mobs/non-humanoids/cyborg/wash1.ogg' = 1, 'sound/mobs/non-humanoids/cyborg/wash2.ogg' = 1) mid_length = 1.5 SECONDS // This makes them overlap slightly, which works out well for masking the fade in/out start_volume = 100 - start_sound = 'sound/creatures/cyborg/wash_start.ogg' + start_sound = 'sound/mobs/non-humanoids/cyborg/wash_start.ogg' start_length = 3.6 SECONDS // again, slightly shorter then the real time of 4 seconds, will make the transition to midsounds more seemless end_volume = 100 - end_sound = 'sound/creatures/cyborg/wash_end.ogg' + end_sound = 'sound/mobs/non-humanoids/cyborg/wash_end.ogg' vary = TRUE extra_range = 5 diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index 00fd3063e4382..7800326bb0a35 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -5,7 +5,7 @@ /datum/looping_sound/reverse_bear_trap_beep - mid_sounds = list('sound/machines/beep.ogg' = 1) + mid_sounds = list('sound/machines/beep/beep.ogg' = 1) mid_length = 60 volume = 10 @@ -24,7 +24,7 @@ mid_length = 1 SECONDS /datum/looping_sound/trapped_machine_beep - mid_sounds = list('sound/machines/beep.ogg' = 1) + mid_sounds = list('sound/machines/beep/beep.ogg' = 1) mid_length = 10 SECONDS mid_length_vary = 5 SECONDS falloff_exponent = 10 @@ -32,19 +32,19 @@ volume = 5 /datum/looping_sound/chainsaw - start_sound = list('sound/weapons/chainsaw_start.ogg' = 1) + start_sound = list('sound/items/weapons/chainsaw_start.ogg' = 1) start_length = 0.85 SECONDS - mid_sounds = list('sound/weapons/chainsaw_loop.ogg' = 1) + mid_sounds = list('sound/items/weapons/chainsaw_loop.ogg' = 1) mid_length = 0.85 SECONDS - end_sound = list('sound/weapons/chainsaw_stop.ogg' = 1) + end_sound = list('sound/items/weapons/chainsaw_stop.ogg' = 1) end_volume = 35 volume = 40 ignore_walls = FALSE /datum/looping_sound/beesmoke - mid_sounds = list('sound/weapons/beesmoke.ogg' = 1) + mid_sounds = list('sound/items/weapons/beesmoke.ogg' = 1) volume = 5 /datum/looping_sound/zipline - mid_sounds = list('sound/weapons/zipline_mid.ogg' = 1) + mid_sounds = list('sound/items/weapons/zipline_mid.ogg' = 1) volume = 5 diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 2d5e3564e6d09..c4648a929b300 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -47,7 +47,7 @@ volume = 15 /datum/looping_sound/clock - mid_sounds = list('sound/ambience/ticking_clock.ogg' = 1) + mid_sounds = list('sound/ambience/misc/ticking_clock.ogg' = 1) mid_length = 40 volume = 50 ignore_walls = FALSE @@ -90,7 +90,7 @@ /datum/looping_sound/jackpot mid_length = 11 - mid_sounds = list('sound/machines/roulettejackpot.ogg' = 1) + mid_sounds = list('sound/machines/roulette/roulettejackpot.ogg' = 1) volume = 85 vary = TRUE @@ -116,7 +116,7 @@ start_sound = 'sound/machines/computer/computer_start.ogg' start_length = 7.2 SECONDS start_volume = 10 - mid_sounds = list('sound/machines/computer/computer_mid1.ogg', 'sound/machines/computer/computer_mid2.ogg') + mid_sounds = list('sound/machines/computer/computer_mid1.ogg' = 1, 'sound/machines/computer/computer_mid2.ogg' = 1) mid_length = 1.8 SECONDS end_sound = 'sound/machines/computer/computer_end.ogg' end_volume = 10 @@ -126,15 +126,22 @@ falloff_distance = 1 //Instant falloff after initial tile /datum/looping_sound/gravgen - mid_sounds = list('sound/machines/gravgen/gravgen_mid1.ogg' = 1, 'sound/machines/gravgen/gravgen_mid2.ogg' = 1, 'sound/machines/gravgen/gravgen_mid3.ogg' = 1, 'sound/machines/gravgen/gravgen_mid4.ogg' = 1) - mid_length = 1.8 SECONDS - extra_range = 10 - volume = 20 + start_sound = 'sound/machines/gravgen/grav_gen_start.ogg' + start_length = 1 SECONDS + mid_sounds = list( + 'sound/machines/gravgen/grav_gen_mid1.ogg' = 12, + 'sound/machines/gravgen/grav_gen_mid2.ogg' = 1, + ) + mid_length = 1.1 SECONDS + end_sound = 'sound/machines/gravgen/grav_gen_end.ogg' + extra_range = 8 + vary = TRUE + volume = 70 falloff_distance = 5 falloff_exponent = 20 /datum/looping_sound/firealarm - mid_sounds = list('sound/machines/FireAlarm1.ogg' = 1,'sound/machines/FireAlarm2.ogg' = 1,'sound/machines/FireAlarm3.ogg' = 1,'sound/machines/FireAlarm4.ogg' = 1) + mid_sounds = list('sound/machines/fire_alarm/FireAlarm1.ogg' = 1,'sound/machines/fire_alarm/FireAlarm2.ogg' = 1,'sound/machines/fire_alarm/FireAlarm3.ogg' = 1,'sound/machines/fire_alarm/FireAlarm4.ogg' = 1) mid_length = 2.4 SECONDS volume = 30 @@ -144,34 +151,34 @@ falloff_exponent = 5 /datum/looping_sound/boiling - mid_sounds = list('sound/effects/bubbles2.ogg' = 1) + mid_sounds = list('sound/effects/bubbles/bubbles2.ogg' = 1) mid_length = 7 SECONDS volume = 25 /datum/looping_sound/typing mid_sounds = list( - 'sound/machines/terminal_button01.ogg' = 1, - 'sound/machines/terminal_button02.ogg' = 1, - 'sound/machines/terminal_button03.ogg' = 1, - 'sound/machines/terminal_button04.ogg' = 1, - 'sound/machines/terminal_button05.ogg' = 1, - 'sound/machines/terminal_button06.ogg' = 1, - 'sound/machines/terminal_button07.ogg' = 1, - 'sound/machines/terminal_button08.ogg' = 1, + 'sound/machines/terminal/terminal_button01.ogg' = 1, + 'sound/machines/terminal/terminal_button02.ogg' = 1, + 'sound/machines/terminal/terminal_button03.ogg' = 1, + 'sound/machines/terminal/terminal_button04.ogg' = 1, + 'sound/machines/terminal/terminal_button05.ogg' = 1, + 'sound/machines/terminal/terminal_button06.ogg' = 1, + 'sound/machines/terminal/terminal_button07.ogg' = 1, + 'sound/machines/terminal/terminal_button08.ogg' = 1, ) mid_length = 0.3 SECONDS /datum/looping_sound/soup mid_sounds = list( - 'sound/effects/soup_boil1.ogg' = 1, - 'sound/effects/soup_boil2.ogg' = 1, - 'sound/effects/soup_boil3.ogg' = 1, - 'sound/effects/soup_boil4.ogg' = 1, - 'sound/effects/soup_boil5.ogg' = 1, + 'sound/effects/soup_boil/soup_boil1.ogg' = 1, + 'sound/effects/soup_boil/soup_boil2.ogg' = 1, + 'sound/effects/soup_boil/soup_boil3.ogg' = 1, + 'sound/effects/soup_boil/soup_boil4.ogg' = 1, + 'sound/effects/soup_boil/soup_boil5.ogg' = 1, ) mid_length = 3 SECONDS volume = 80 - end_sound = 'sound/effects/soup_boil_end.ogg' + end_sound = 'sound/effects/soup_boil/soup_boil_end.ogg' end_volume = 60 extra_range = MEDIUM_RANGE_SOUND_EXTRARANGE falloff_exponent = 4 diff --git a/code/datums/looping_sounds/music.dm b/code/datums/looping_sounds/music.dm index ac76e236bc784..cc35ab8a8ee37 100644 --- a/code/datums/looping_sounds/music.dm +++ b/code/datums/looping_sounds/music.dm @@ -1,6 +1,6 @@ /datum/looping_sound/local_forecast mid_sounds = list( - 'sound/ambience/music/elevator/robocop-short.ogg' = 1, + 'sound/music/elevator/robocop-short.ogg' = 1, ) mid_length = 61 SECONDS volume = 20 diff --git a/code/datums/looping_sounds/vents.dm b/code/datums/looping_sounds/vents.dm index 2d0a3443631df..016b21db9cad0 100644 --- a/code/datums/looping_sounds/vents.dm +++ b/code/datums/looping_sounds/vents.dm @@ -1,7 +1,7 @@ /datum/looping_sound/vent_pump_overclock - start_sound = 'sound/machines/fan_start.ogg' + start_sound = 'sound/machines/fan/fan_start.ogg' start_length = 1.5 SECONDS - end_sound = 'sound/machines/fan_stop.ogg' + end_sound = 'sound/machines/fan/fan_stop.ogg' end_sound = 1.5 SECONDS - mid_sounds = 'sound/machines/fan_loop.ogg' + mid_sounds = 'sound/machines/fan/fan_loop.ogg' mid_length = 2 SECONDS diff --git a/code/datums/looping_sounds/weather.dm b/code/datums/looping_sounds/weather.dm index 6576cfb4e8d12..fa782a5f4ee5a 100644 --- a/code/datums/looping_sounds/weather.dm +++ b/code/datums/looping_sounds/weather.dm @@ -1,53 +1,53 @@ /datum/looping_sound/active_outside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/outside/active_mid1.ogg'=1, - 'sound/weather/ashstorm/outside/active_mid1.ogg'=1, - 'sound/weather/ashstorm/outside/active_mid1.ogg'=1 + 'sound/ambience/weather/ashstorm/outside/active_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/active_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/active_mid1.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/outside/active_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/outside/active_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/outside/active_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/outside/active_end.ogg' volume = 80 /datum/looping_sound/active_inside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/inside/active_mid1.ogg'=1, - 'sound/weather/ashstorm/inside/active_mid2.ogg'=1, - 'sound/weather/ashstorm/inside/active_mid3.ogg'=1 + 'sound/ambience/weather/ashstorm/inside/active_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/active_mid2.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/active_mid3.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/inside/active_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/inside/active_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/inside/active_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/inside/active_end.ogg' volume = 60 /datum/looping_sound/weak_outside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/outside/weak_mid1.ogg'=1, - 'sound/weather/ashstorm/outside/weak_mid2.ogg'=1, - 'sound/weather/ashstorm/outside/weak_mid3.ogg'=1 + 'sound/ambience/weather/ashstorm/outside/weak_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/weak_mid2.ogg'=1, + 'sound/ambience/weather/ashstorm/outside/weak_mid3.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/outside/weak_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/outside/weak_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/outside/weak_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/outside/weak_end.ogg' volume = 50 /datum/looping_sound/weak_inside_ashstorm mid_sounds = list( - 'sound/weather/ashstorm/inside/weak_mid1.ogg'=1, - 'sound/weather/ashstorm/inside/weak_mid2.ogg'=1, - 'sound/weather/ashstorm/inside/weak_mid3.ogg'=1 + 'sound/ambience/weather/ashstorm/inside/weak_mid1.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/weak_mid2.ogg'=1, + 'sound/ambience/weather/ashstorm/inside/weak_mid3.ogg'=1 ) mid_length = 80 - start_sound = 'sound/weather/ashstorm/inside/weak_start.ogg' + start_sound = 'sound/ambience/weather/ashstorm/inside/weak_start.ogg' start_length = 130 - end_sound = 'sound/weather/ashstorm/inside/weak_end.ogg' + end_sound = 'sound/ambience/weather/ashstorm/inside/weak_end.ogg' volume = 30 /datum/looping_sound/void_loop - mid_sounds = list('sound/ambience/VoidsEmbrace.ogg'=1) + mid_sounds = list('sound/music/antag/heretic/VoidsEmbrace.ogg'=1) mid_length = 1669 // exact length of the music in ticks volume = 100 extra_range = 30 diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm index e5dc7860b0b2a..8475c9e43f9f0 100644 --- a/code/datums/martial/_martial.dm +++ b/code/datums/martial/_martial.dm @@ -211,7 +211,7 @@ * Resets the current streak. * * Arguments - * * mob/living/new_target - (Optional) The mob being attacked while the reset is occuring. + * * mob/living/new_target - (Optional) The mob being attacked while the reset is occurring. * * update_icon - If TRUE, the combo display will be updated. */ /datum/martial_art/proc/reset_streak(mob/living/new_target, update_icon = TRUE) diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 4e6400163a34b..9d6252855d3e1 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -7,8 +7,10 @@ name = "Boxing" id = MARTIALART_BOXING pacifist_style = TRUE - ///Boolean on whether we are sportsmanlike in our tussling; TRUE means we have restrictions + /// Boolean on whether we are sportsmanlike in our tussling; TRUE means we have restrictions var/honorable_boxer = TRUE + /// Default damage type for our boxing. + var/default_damage_type = STAMINA /// List of traits applied to users of this martial art. var/list/boxing_traits = list(TRAIT_BOXING_READY) /// Balloon alert cooldown for warning our boxer to alternate their blows to get more damage @@ -40,10 +42,16 @@ if(findtext(streak, LEFT_RIGHT_COMBO) || findtext(streak, RIGHT_LEFT_COMBO)) reset_streak() + // If we have an extra effect from the combo, perform it here. By default, we have no extra effect. + perform_extra_effect(attacker, defender) return combo_multiplier * 1.5 return combo_multiplier +/// An extra effect on some moves and attacks. +/datum/martial_art/boxing/proc/perform_extra_effect(mob/living/attacker, mob/living/defender) + return + /datum/martial_art/boxing/disarm_act(mob/living/attacker, mob/living/defender) if(honor_check(defender)) add_to_streak("D", defender) @@ -88,8 +96,8 @@ // If true, grants experience for punching; we only gain experience if we punch another boxer. var/grant_experience = FALSE - // What type of damage does our kind of boxing do? Defaults to STAMINA, unless you're performing EVIL BOXING - var/damage_type = honorable_boxer ? STAMINA : attacker.get_attack_type() + // What type of damage does our kind of boxing do? Defaults to STAMINA for normal boxing, unless you're performing EVIL BOXING. Subtypes use different damage types. + var/damage_type = honorable_boxer ? default_damage_type : attacker.get_attack_type() attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) @@ -98,6 +106,11 @@ if(honor_check(defender)) var/strength_bonus = HAS_TRAIT(attacker, TRAIT_STRENGTH) ? 2 : 0 //Investing into genetic strength improvements makes you a better boxer + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = attacker.get_organ_slot(ORGAN_SLOT_SPINE) //Getting a cyberspine also pushes you further than just mere meat + if(istype(potential_spine)) + strength_bonus *= potential_spine.strength_bonus + damage += round(athletics_skill * check_streak(attacker, defender) + strength_bonus) grant_experience = TRUE @@ -142,12 +155,12 @@ log_combat(attacker, defender, "punched (boxing) ") + if(defender.stat == DEAD || !honor_check(defender)) //early returning here so we don't worry about knockout probs or experience gain + return TRUE + if(grant_experience) skill_experience_adjustment(attacker, (damage/lower_force)) - if(defender.stat == DEAD || !honor_check(defender)) //early returning here so we don't worry about knockout probs - return TRUE - //Determine our attackers athletics level as a knockout probability bonus var/attacker_athletics_skill = (attacker.mind?.get_skill_modifier(/datum/skill/athletics, SKILL_RANDS_MODIFIER) + base_unarmed_effectiveness) @@ -160,6 +173,18 @@ if(!prob(final_knockout_probability)) return TRUE + crit_effect(attacker, defender, armor_block, damage_type, damage) + + experience_earned *= 2 //Double our experience gain on a crit hit + + playsound(defender, 'sound/effects/coin2.ogg', 40, TRUE) + new /obj/effect/temp_visual/crit(get_turf(defender)) + skill_experience_adjustment(attacker, experience_earned) //double experience for a successful crit + + return TRUE + +/// Our crit effect. For normal boxing, this applies a stagger, then applies a knockout if they're staggered. Other types of boxing apply different kinds of effects. +/datum/martial_art/boxing/proc/crit_effect(mob/living/attacker, mob/living/defender, armor_block = 0, damage_type = STAMINA, damage = 0) if(defender.get_timed_status_effect_duration(/datum/status_effect/staggered)) defender.visible_message( span_danger("[attacker] knocks [defender] out with a haymaker!"), @@ -184,14 +209,6 @@ to_chat(attacker, span_danger("You stagger [defender] with a haymaker!")) log_combat(attacker, defender, "staggered (boxing) ") - experience_earned *= 2 //Double our experience gain on a crit hit - - playsound(defender, 'sound/effects/coin2.ogg', 40, TRUE) - new /obj/effect/temp_visual/crit(get_turf(defender)) - skill_experience_adjustment(attacker, experience_earned) //double experience for a successful crit - - return TRUE - /// Returns whether whoever is checked by this proc is complying with the rules of boxing. The boxer cannot block non-boxers, and cannot apply their scariest moves against non-boxers. /datum/martial_art/boxing/proc/honor_check(mob/living/possible_boxer) if(!honorable_boxer) @@ -215,7 +232,7 @@ /datum/martial_art/boxing/proc/check_block(mob/living/boxer, atom/movable/hitby, damage, attack_text, attack_type, ...) SIGNAL_HANDLER - if(!can_use(boxer) || !boxer.throw_mode || boxer.incapacitated(IGNORE_GRAB)) + if(!can_use(boxer) || !boxer.throw_mode || INCAPACITATED_IGNORING(boxer, INCAPABLE_GRAB)) return NONE if(attack_type != UNARMED_ATTACK) @@ -249,8 +266,9 @@ return NONE if(istype(attacker) && boxer.Adjacent(attacker)) - attacker.apply_damage(10, STAMINA) + attacker.apply_damage(10, default_damage_type) boxer.apply_damage(5, STAMINA) + perform_extra_effect(boxer, attacker) boxer.visible_message( span_danger("[boxer] [block_text]s [attack_text]!"), @@ -266,6 +284,8 @@ return FALSE return ..() +// Boxing Variants! + /// Evil Boxing; for sick, evil scoundrels. Has no honor, making it more lethal (therefore unable to be used by pacifists). /// Grants Strength and Stimmed to speed up any experience gain. @@ -276,6 +296,68 @@ honorable_boxer = FALSE boxing_traits = list(TRAIT_BOXING_READY, TRAIT_STRENGTH, TRAIT_STIMMED) +/// Hunter Boxing: for the uncaring, completely deranged one-spacer ecological disaster. +/// The honor check accepts boxing ready targets, OR various biotypes as valid targets. Uses a special crit effect rather than the standard one (against monsters). +/// I guess technically, this allows for lethal boxing. If you want. +/datum/martial_art/boxing/hunter + name = "Hunter Boxing" + id = MARTIALART_HUNTER_BOXING + pacifist_style = FALSE + default_damage_type = BRUTE + boxing_traits = list(TRAIT_BOXING_READY) + /// The mobs we are looking for to pass the honor check + var/honorable_mob_biotypes = MOB_BEAST | MOB_SPECIAL | MOB_PLANT | MOB_BUG + /// Our crit shout words. First word is then paired with a second word to form an attack name. + var/list/first_word_strike = list("Extinction", "Brutalization", "Explosion", "Adventure", "Thunder", "Lightning", "Sonic", "Atomizing", "Whirlwind", "Tornado", "Shark", "Falcon") + var/list/second_word_strike = list(" Punch", " Pawnch", "-punch", " Jab", " Hook", " Fist", " Uppercut", " Straight", " Strike", " Lunge") + +/datum/martial_art/boxing/hunter/honor_check(mob/living/possible_boxer) + if(HAS_TRAIT(possible_boxer, TRAIT_BOXING_READY)) + return TRUE + + if(possible_boxer.mob_biotypes & MOB_HUMANOID && !istype(possible_boxer, /mob/living/simple_animal/hostile/megafauna)) //We're after animals, not people. Unless they want to box. (Or a megafauna) + return FALSE + + if(possible_boxer.mob_biotypes & honorable_mob_biotypes) //We're after animals, not people + return TRUE + + return FALSE //rather than default assume TRUE, we default assume FALSE. After all, there could be mobs that are none of our biotypes and also not humanoid. By default, they would be valid for being boxed if TRUE. + +// Our hunter boxer applies a rebuke and double damage against the target of their crit. If the target is humanoid, we just perform our regular crit effect instead. + +/datum/martial_art/boxing/hunter/crit_effect(mob/living/attacker, mob/living/defender, armor_block = 0, damage_type = STAMINA, damage = 0) + if(defender.mob_biotypes & MOB_HUMANOID && !istype(defender, /mob/living/simple_animal/hostile/megafauna)) + return ..() //Applies the regular crit effect if it is a normal human, and not a megafauna + + var/first_word_pick = pick(first_word_strike) + var/second_word_pick = pick(second_word_strike) + + defender.visible_message( + span_danger("[attacker] knocks the absolute bajeezus out of [defender] utilizing the terrifying [first_word_pick][second_word_pick]!!!"), + span_userdanger("You have the absolute bajeezus knocked out of you by [attacker]!!!"), + span_hear("You hear a sickening sound of flesh hitting flesh!"), + COMBAT_MESSAGE_RANGE, + attacker, + ) + to_chat(attacker, span_danger("You knock the absolute bajeezus out of [defender] out with the terrifying [first_word_pick][second_word_pick]!!!")) + if(ishuman(attacker)) + var/mob/living/carbon/human/human_attacker = attacker + human_attacker.force_say() + human_attacker.say("[first_word_pick][second_word_pick]!!!", forced = "hunter boxing enthusiastic battlecry") + defender.apply_status_effect(/datum/status_effect/rebuked) + defender.apply_damage(damage * 2, default_damage_type, BODY_ZONE_CHEST, armor_block) //deals double our damage AGAIN + attacker.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood, 3) //Get a little healing in return for a successful crit + log_combat(attacker, defender, "hunter crit punched (boxing)") + +// Our hunter boxer speeds up their attacks when completing a combo against a valid target, and does a sizable amount of extra damage. + +/datum/martial_art/boxing/hunter/perform_extra_effect(mob/living/attacker, mob/living/defender) + if(defender.mob_biotypes & MOB_HUMANOID && !istype(defender, /mob/living/simple_animal/hostile/megafauna)) + return // Does not apply to humans (who aren't megafauna) + + attacker.changeNext_move(CLICK_CD_RAPID) + defender.apply_damage(rand(15,20), default_damage_type, BODY_ZONE_CHEST) + #undef LEFT_RIGHT_COMBO #undef RIGHT_LEFT_COMBO #undef LEFT_LEFT_COMBO diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm index 8e33ac5a851ea..35f8a254e177e 100644 --- a/code/datums/martial/cqc.dm +++ b/code/datums/martial/cqc.dm @@ -46,7 +46,7 @@ /datum/martial_art/cqc/proc/check_block(mob/living/cqc_user, atom/movable/hitby, damage, attack_text, attack_type, ...) SIGNAL_HANDLER - if(!can_use(cqc_user) || !cqc_user.throw_mode || cqc_user.incapacitated(IGNORE_GRAB)) + if(!can_use(cqc_user) || !cqc_user.throw_mode || INCAPACITATED_IGNORING(cqc_user, INCAPABLE_GRAB)) return NONE if(attack_type == PROJECTILE_ATTACK) return NONE @@ -104,7 +104,7 @@ attacker, ) to_chat(attacker, span_danger("You slam [defender] into the ground!")) - playsound(attacker, 'sound/weapons/slam.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/slam.ogg', 50, TRUE, -1) defender.apply_damage(10, BRUTE) defender.Paralyze(12 SECONDS) log_combat(attacker, defender, "slammed (CQC)") @@ -125,7 +125,7 @@ attacker, ) to_chat(attacker, span_danger("You kick [defender]'s head, knocking [defender.p_them()] out!")) - playsound(attacker, 'sound/weapons/genhit1.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/genhit1.ogg', 50, TRUE, -1) var/helmet_protection = defender.run_armor_check(BODY_ZONE_HEAD, MELEE) defender.apply_effect(20 SECONDS, EFFECT_KNOCKDOWN, helmet_protection) @@ -141,7 +141,7 @@ attacker, ) to_chat(attacker, span_danger("You kick [defender] back!")) - playsound(attacker, 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) var/atom/throw_target = get_edge_target_turf(defender, attacker.dir) defender.throw_at(throw_target, 1, 14, attacker) defender.apply_damage(10, attacker.get_attack_type()) @@ -163,7 +163,7 @@ ) to_chat(attacker, span_danger("You punch [defender]'s neck!")) defender.adjustStaminaLoss(60) - playsound(attacker, 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(attacker, 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) return TRUE /datum/martial_art/cqc/proc/Restrain(mob/living/attacker, mob/living/defender) @@ -201,7 +201,7 @@ attacker, ) to_chat(attacker, span_danger("You strike [defender]'s abdomen, neck and back consecutively!")) - playsound(defender, 'sound/weapons/cqchit2.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/cqchit2.ogg', 50, TRUE, -1) var/obj/item/held_item = defender.get_active_held_item() if(held_item && defender.temporarilyRemoveItemFromInventory(held_item)) attacker.put_in_hands(held_item) @@ -291,7 +291,7 @@ picked_hit_type = pick("kick", "stomp") defender.apply_damage(bonus_damage, BRUTE) - playsound(defender, (picked_hit_type == "kick" || picked_hit_type == "stomp") ? 'sound/weapons/cqchit2.ogg' : 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(defender, (picked_hit_type == "kick" || picked_hit_type == "stomp") ? 'sound/items/weapons/cqchit2.ogg' : 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) defender.visible_message( span_danger("[attacker] [picked_hit_type]ed [defender]!"), @@ -344,7 +344,7 @@ attacker, ) to_chat(attacker, span_danger("You strike [defender]'s jaw,[disarmed_item ? " disarming [defender.p_them()] of [disarmed_item] and" : ""] leaving [defender.p_them()] disoriented!")) - playsound(defender, 'sound/weapons/cqchit1.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/cqchit1.ogg', 50, TRUE, -1) defender.set_jitter_if_lower(4 SECONDS) defender.apply_damage(5, attacker.get_attack_type()) log_combat(attacker, defender, "disarmed (CQC)", addition = disarmed_item ? "(disarmed of [disarmed_item])" : null) @@ -358,7 +358,7 @@ attacker, ) to_chat(attacker, span_warning("You fail to disarm [defender]!")) - playsound(defender, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punchmiss.ogg', 25, TRUE, -1) log_combat(attacker, defender, "failed to disarm (CQC)") return MARTIAL_ATTACK_FAIL diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 57e158cf66982..d670b8eb63806 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -201,7 +201,7 @@ attacker, ) to_chat(attacker, span_danger("You disarm [defender]!")) - playsound(defender, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) log_combat(attacker, defender, "disarmed (Krav Maga)", addition = "(disarmed of [stuff_in_hand])") return MARTIAL_ATTACK_INVALID // normal shove diff --git a/code/datums/martial/plasma_fist.dm b/code/datums/martial/plasma_fist.dm index 47df74a3d4634..89981554f3ea3 100644 --- a/code/datums/martial/plasma_fist.dm +++ b/code/datums/martial/plasma_fist.dm @@ -41,7 +41,7 @@ /datum/martial_art/plasma_fist/proc/Tornado(mob/living/attacker, mob/living/defender) attacker.say("TORNADO SWEEP!", forced="plasma fist") - dance_rotate(attacker, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), attacker, 'sound/weapons/punch1.ogg', 15, TRUE, -1)) + dance_rotate(attacker, CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), attacker, 'sound/items/weapons/punch1.ogg', 15, TRUE, -1)) tornado_spell.cast(attacker) log_combat(attacker, defender, "tornado sweeped (Plasma Fist)") return TRUE @@ -55,7 +55,7 @@ attacker, ) to_chat(attacker, span_danger("You hit [defender] with Plasma Punch!")) - playsound(defender, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 50, TRUE, -1) var/atom/throw_target = get_edge_target_turf(defender, get_dir(defender, get_step_away(defender, attacker))) defender.throw_at(throw_target, 200, 4,attacker) attacker.say("HYAH!", forced="plasma fist") @@ -66,7 +66,7 @@ var/hasclient = !!defender.client attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) - playsound(defender, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 50, TRUE, -1) attacker.say("PLASMA FIST!", forced="plasma fist") defender.visible_message( span_danger("[attacker] hits [defender] with THE PLASMA FIST TECHNIQUE!"), @@ -125,7 +125,7 @@ user.apply_damage(rand(50, 70), BRUTE, wound_bonus = CANT_WOUND) addtimer(CALLBACK(src, PROC_REF(Apotheosis_end), user), 6 SECONDS) - playsound(boomspot, 'sound/weapons/punch1.ogg', 50, TRUE, -1) + playsound(boomspot, 'sound/items/weapons/punch1.ogg', 50, TRUE, -1) explosion(user, devastation_range = plasma_power, heavy_impact_range = plasma_power*2, light_impact_range = plasma_power*4, ignorecap = TRUE, explosion_cause = src) plasma_power = 1 //just in case there is any clever way to cause it to happen again return TRUE diff --git a/code/datums/martial/psychotic_brawl.dm b/code/datums/martial/psychotic_brawl.dm index 454d23637f255..99c2b0e222464 100644 --- a/code/datums/martial/psychotic_brawl.dm +++ b/code/datums/martial/psychotic_brawl.dm @@ -67,7 +67,7 @@ attacker, ) to_chat(attacker, span_danger("You [atk_verb] [defender]!")) - playsound(defender, 'sound/weapons/punch1.ogg', 40, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 40, TRUE, -1) defender.apply_damage(defender_damage, attacker.get_attack_type(), BODY_ZONE_HEAD) attacker.apply_damage(rand(5, 10), attacker.get_attack_type(), BODY_ZONE_HEAD) if(iscarbon(defender)) diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 8116084127ecf..d2142b02a8bcf 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -9,7 +9,7 @@ help_verb = /mob/living/proc/sleeping_carp_help display_combos = TRUE /// List of traits applied to users of this martial art. - var/list/scarp_traits = list(TRAIT_NOGUNS, TRAIT_HARDLY_WOUNDED, TRAIT_NODISMEMBER, TRAIT_HEAVY_SLEEPER) + var/list/scarp_traits = list(TRAIT_NOGUNS, TRAIT_TOSS_GUN_HARD, TRAIT_HARDLY_WOUNDED, TRAIT_NODISMEMBER, TRAIT_HEAVY_SLEEPER) /datum/martial_art/the_sleeping_carp/on_teach(mob/living/new_holder) . = ..() @@ -53,7 +53,7 @@ attacker, ) to_chat(attacker, span_danger("You [atk_verb] [defender]!")) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) log_combat(attacker, defender, "strong punched (Sleeping Carp)") defender.apply_damage(20, attacker.get_attack_type(), affecting) return TRUE @@ -106,7 +106,7 @@ var/grab_log_description = "grabbed" attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) if(defender.stat != DEAD && !defender.IsUnconscious() && defender.getStaminaLoss() >= 80) //We put our target to sleep. defender.visible_message( span_danger("[attacker] carefully pinch a nerve in [defender]'s neck, knocking them out cold!"), @@ -161,7 +161,7 @@ ) to_chat(attacker, span_danger("You [atk_verb] [defender]!")) defender.apply_damage(final_damage, attacker.get_attack_type(), affecting, wound_bonus = CANT_WOUND) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) log_combat(attacker, defender, "punched (Sleeping Carp)") return MARTIAL_ATTACK_SUCCESS @@ -176,7 +176,7 @@ return MARTIAL_ATTACK_SUCCESS attacker.do_attack_animation(defender, ATTACK_EFFECT_PUNCH) - playsound(defender, 'sound/weapons/punch1.ogg', 25, TRUE, -1) + playsound(defender, 'sound/items/weapons/punch1.ogg', 25, TRUE, -1) defender.apply_damage(20, STAMINA) log_combat(attacker, defender, "disarmed (Sleeping Carp)") return MARTIAL_ATTACK_INVALID // normal disarm @@ -184,12 +184,11 @@ /datum/martial_art/the_sleeping_carp/proc/can_deflect(mob/living/carp_user) if(!can_use(carp_user) || !carp_user.combat_mode) return FALSE - if(carp_user.incapacitated(IGNORE_GRAB)) //NO STUN + if(INCAPACITATED_IGNORING(carp_user, INCAPABLE_GRAB)) //NO STUN return FALSE if(!(carp_user.mobility_flags & MOBILITY_USE)) //NO UNABLE TO USE return FALSE - var/datum/dna/dna = carp_user.has_dna() - if(dna?.check_mutation(/datum/mutation/human/hulk)) //NO HULK + if(HAS_TRAIT(carp_user, TRAIT_HULK)) //NO HULK return FALSE if(!isturf(carp_user.loc)) //NO MOTHERFLIPPIN MECHS! return FALSE @@ -205,7 +204,7 @@ span_danger("[carp_user] effortlessly swats [hitting_projectile] aside! [carp_user.p_They()] can block bullets with [carp_user.p_their()] bare hands!"), span_userdanger("You deflect [hitting_projectile]!"), ) - playsound(carp_user, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + playsound(carp_user, SFX_BULLET_MISS, 75, TRUE) hitting_projectile.firer = carp_user hitting_projectile.set_angle(rand(0, 360))//SHING return COMPONENT_BULLET_PIERCED @@ -264,11 +263,10 @@ AddComponent(/datum/component/two_handed, \ force_unwielded = 10, \ force_wielded = 24, \ - icon_wielded = "[base_icon_state]1", \ ) /obj/item/staff/bostaff/update_icon_state() - icon_state = "[base_icon_state]0" + icon_state = inhand_icon_state = "[base_icon_state][HAS_TRAIT(src, TRAIT_WIELDED)]" return ..() /obj/item/staff/bostaff/attack(mob/target, mob/living/user, params) diff --git a/code/datums/materials/_material.dm b/code/datums/materials/_material.dm index b340d95e90fbd..cff0ea0e6d1c5 100644 --- a/code/datums/materials/_material.dm +++ b/code/datums/materials/_material.dm @@ -13,12 +13,20 @@ Simple datum which is instanced once per type and is used for every object of sa /// What the material is indexed by in the SSmaterials.materials list. Defaults to the type of the material. var/id - ///Base color of the material, is used for greyscale. Item isn't changed in color if this is null. - ///Deprecated, use greyscale_color instead. + /** + * Base color of the material, for items that don't have greyscale configs nor are made of multiple materials. Item isn't changed in color if this is null. + * This can be a RGB or color matrix, but it cannot be RGBA as alpha is automatically filled in. + */ var/color - ///Determines the color palette of the material. Formatted the same as atom/var/greyscale_colors - var/greyscale_colors - ///Base alpha of the material, is used for greyscale icons. + /** + * If the color is a color matrix and either the item uses greyscale configs or is made of multiple colored materials. This will be used instead because + * neither greyscale configs nor BlendRGB() support color matrices. + * Also this has to be RRGGBB, six characters, no alpha channel as it's automatically filled in. + * + * Basically, set this if the color is a color matrix (list) + */ + var/greyscale_color + /// Base alpha of the material var/alpha = 255 ///Starlight color of the material ///This is the color of light it'll emit if its turf is transparent and over space. Defaults to COLOR_STARLIGHT if not set @@ -67,10 +75,12 @@ Simple datum which is instanced once per type and is used for every object of sa var/mineral_rarity = MATERIAL_RARITY_COMMON /// How many points per units of ore does this grant? var/points_per_unit = 1 + /// The slowdown that is added to items. + var/added_slowdown = 0 /** Handles initializing the material. * - * Arugments: + * Arguments: * - _id: The ID the material should use. Overrides the existing ID. */ /datum/material/proc/Initialize(_id, ...) @@ -85,84 +95,11 @@ Simple datum which is instanced once per type and is used for every object of sa return TRUE ///This proc is called when the material is added to an object. -/datum/material/proc/on_applied(atom/source, amount, material_flags) - if(material_flags & MATERIAL_COLOR) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example - if(color) //Do we have a custom color? - source.add_atom_colour(color, FIXED_COLOUR_PRIORITY) - if(alpha) - source.alpha = alpha - if(texture_layer_icon_state) - ADD_KEEP_TOGETHER(source, MATERIAL_SOURCE(src)) - source.add_filter("material_texture_[name]",1,layering_filter(icon=cached_texture_filter_icon,blend_mode=BLEND_INSET_OVERLAY)) - - if(material_flags & MATERIAL_GREYSCALE) - var/config_path = get_greyscale_config_for(source.greyscale_config) - source.set_greyscale(greyscale_colors, config_path) - - if(alpha < 255) - source.opacity = FALSE - if(material_flags & MATERIAL_ADD_PREFIX) - source.name = "[name] [source.name]" - - if(beauty_modifier) - source.AddElement(/datum/element/beauty, beauty_modifier * amount) - - if(isobj(source)) //objs - on_applied_obj(source, amount, material_flags) - - else if(istype(source, /turf)) //turfs - on_applied_turf(source, amount, material_flags) - - source.mat_update_desc(src) - -///This proc is called when a material updates an object's description -/atom/proc/mat_update_desc(datum/material/mat) +/datum/material/proc/on_applied(atom/source, mat_amount, multiplier) return -///This proc is called when the material is added to an object specifically. -/datum/material/proc/on_applied_obj(obj/o, amount, material_flags) - if(material_flags & MATERIAL_AFFECT_STATISTICS) - var/new_max_integrity = CEILING(o.max_integrity * integrity_modifier, 1) - o.modify_max_integrity(new_max_integrity) - o.force *= strength_modifier - o.throwforce *= strength_modifier - o.set_armor(o.get_armor().generate_new_with_multipliers(armor_modifiers)) - - if(!isitem(o)) - return - var/obj/item/item = o - - if(material_flags & MATERIAL_GREYSCALE) - var/worn_path = get_greyscale_config_for(item.greyscale_config_worn) - var/lefthand_path = get_greyscale_config_for(item.greyscale_config_inhand_left) - var/righthand_path = get_greyscale_config_for(item.greyscale_config_inhand_right) - item.set_greyscale( - new_worn_config = worn_path, - new_inhand_left = lefthand_path, - new_inhand_right = righthand_path - ) - - if(!item_sound_override) - return - item.hitsound = item_sound_override - item.usesound = item_sound_override - item.mob_throw_hit_sound = item_sound_override - item.equip_sound = item_sound_override - item.pickup_sound = item_sound_override - item.drop_sound = item_sound_override - -/datum/material/proc/on_applied_turf(turf/T, amount, material_flags) - if(isopenturf(T)) - if(turf_sound_override) - var/turf/open/O = T - O.footstep = turf_sound_override - O.barefootstep = turf_sound_override + "barefoot" - O.clawfootstep = turf_sound_override + "claw" - O.heavyfootstep = FOOTSTEP_GENERIC_HEAVY - if(alpha < 255) - T.AddElement(/datum/element/turf_z_transparency) - setup_glow(T) - T.rust_resistance = mat_rust_resistance +///This proc is called when the material becomes the one the object is composed of the most +/datum/material/proc/on_main_applied(atom/source, mat_amount, multiplier) return /datum/material/proc/setup_glow(turf/on) @@ -183,61 +120,13 @@ Simple datum which is instanced once per type and is used for every object of sa /datum/material/proc/lit_turf_deleted(turf/source) source.set_light(0, 0, null) -/datum/material/proc/get_greyscale_config_for(datum/greyscale_config/config_path) - if(!config_path) - return - for(var/datum/greyscale_config/path as anything in subtypesof(config_path)) - if(type != initial(path.material_skin)) - continue - return path - ///This proc is called when the material is removed from an object. /datum/material/proc/on_removed(atom/source, amount, material_flags) - if(material_flags & MATERIAL_COLOR) //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example - if(color) - source.remove_atom_colour(FIXED_COLOUR_PRIORITY, color) - if(texture_layer_icon_state) - source.remove_filter("material_texture_[name]") - REMOVE_KEEP_TOGETHER(source, MATERIAL_SOURCE(src)) - source.alpha = initial(source.alpha) - - if(material_flags & MATERIAL_GREYSCALE) - source.set_greyscale(initial(source.greyscale_colors), initial(source.greyscale_config)) - - if(material_flags & MATERIAL_ADD_PREFIX) - source.name = initial(source.name) - - if(beauty_modifier) - source.RemoveElement(/datum/element/beauty, beauty_modifier * amount) - - if(isobj(source)) //objs - on_removed_obj(source, amount, material_flags) - - if(istype(source, /turf)) //turfs - on_removed_turf(source, amount, material_flags) - -///This proc is called when the material is removed from an object specifically. -/datum/material/proc/on_removed_obj(obj/o, amount, material_flags) - if(material_flags & MATERIAL_AFFECT_STATISTICS) - var/new_max_integrity = initial(o.max_integrity) - o.modify_max_integrity(new_max_integrity) - o.force = initial(o.force) - o.throwforce = initial(o.throwforce) - - if(isitem(o) && (material_flags & MATERIAL_GREYSCALE)) - var/obj/item/item = o - item.set_greyscale( - new_worn_config = initial(item.greyscale_config_worn), - new_inhand_left = initial(item.greyscale_config_inhand_left), - new_inhand_right = initial(item.greyscale_config_inhand_right) - ) + return -/datum/material/proc/on_removed_turf(turf/T, amount, material_flags) - if(alpha < 255) - T.RemoveElement(/datum/element/turf_z_transparency) - // yeets glow - T.UnregisterSignal(SSdcs, COMSIG_STARLIGHT_COLOR_CHANGED) - T.set_light(0, 0, null) +///This proc is called when the material is no longer the one the object is composed by the most +/datum/material/proc/on_main_removed(atom/source, mat_amount, multiplier) + return /** * This proc is called when the mat is found in an item that's consumed by accident. see /obj/item/proc/on_accidental_consumption. @@ -258,3 +147,11 @@ Simple datum which is instanced once per type and is used for every object of sa /datum/material/proc/return_composition(amount = 1) // Yes we need the parenthesis, without them BYOND stringifies src into "src" and things break. return list((src) = amount) + +///Returns the list of armor modifiers, with each element having its assoc value multiplied by the multiplier arg +/datum/material/proc/get_armor_modifiers(multiplier) + SHOULD_NOT_OVERRIDE(TRUE) + var/list/return_list = list() + for(var/armor in armor_modifiers) + return_list[armor] = return_list[armor] * multiplier + return return_list diff --git a/code/datums/materials/alloys.dm b/code/datums/materials/alloys.dm index 8bfdf0b58d9fe..d13a88c49c3a2 100644 --- a/code/datums/materials/alloys.dm +++ b/code/datums/materials/alloys.dm @@ -27,31 +27,21 @@ name = "plasteel" desc = "The heavy duty result of infusing iron with plasma." color = "#706374" - greyscale_colors = "#706374" init_flags = MATERIAL_INIT_MAPLOAD value_per_unit = 0.135 strength_modifier = 1.25 integrity_modifier = 1.5 // Heavy duty. armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.1, ENERGY = 1.1, BOMB = 1.5, BIO = 1, FIRE = 1.1, ACID = 1) sheet_type = /obj/item/stack/sheet/plasteel - categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) composition = list(/datum/material/iron=1, /datum/material/plasma=1) mat_rust_resistance = RUST_RESISTANCE_REINFORCED - -/datum/material/alloy/plasteel/on_applied_obj(obj/item/target_item, amount, material_flags) - . = ..() - if(!istype(target_item)) - return - - target_item.slowdown += MATERIAL_SLOWDOWN_PLASTEEL * amount / SHEET_MATERIAL_AMOUNT - -/datum/material/alloy/plasteel/on_removed_obj(obj/item/target_item, amount, material_flags) - . = ..() - - if(!istype(target_item)) - return - - target_item.slowdown -= MATERIAL_SLOWDOWN_PLASTEEL * amount / SHEET_MATERIAL_AMOUNT + added_slowdown = 0.05 /** Plastitanium * @@ -61,14 +51,18 @@ name = "plastitanium" desc = "The extremely heat resistant result of infusing titanium with plasma." color = "#3a313a" - greyscale_colors = "#3a313a" init_flags = MATERIAL_INIT_MAPLOAD value_per_unit = 0.225 strength_modifier = 0.9 // It's a lightweight alloy. integrity_modifier = 1.3 armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.4, ENERGY = 1.4, BOMB = 1.1, BIO = 1.2, FIRE = 1.5, ACID = 1) sheet_type = /obj/item/stack/sheet/mineral/plastitanium - categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) composition = list(/datum/material/titanium=1, /datum/material/plasma=1) mat_rust_resistance = RUST_RESISTANCE_TITANIUM @@ -80,7 +74,6 @@ name = "plasmaglass" desc = "Plasma-infused silicate. It is much more durable and heat resistant than either of its component materials." color = "#ff80f4" - greyscale_colors = "#ff80f496" alpha = 150 starlight_color = COLOR_STRONG_MAGENTA init_flags = MATERIAL_INIT_MAPLOAD @@ -90,7 +83,12 @@ shard_type = /obj/item/shard/plasma debris_type = /obj/effect/decal/cleanable/glass/plasma value_per_unit = 0.075 - categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) composition = list(/datum/material/glass=1, /datum/material/plasma=0.5) /** Titaniumglass @@ -101,7 +99,6 @@ name = "titanium glass" desc = "A specialized silicate-titanium alloy that is commonly used in shuttle windows." color = "#cfbee0" - greyscale_colors = "#cfbee096" alpha = 150 starlight_color = COLOR_COMMAND_BLUE init_flags = MATERIAL_INIT_MAPLOAD @@ -110,7 +107,12 @@ shard_type = /obj/item/shard/titanium debris_type = /obj/effect/decal/cleanable/glass/titanium value_per_unit = 0.04 - categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) composition = list(/datum/material/glass=1, /datum/material/titanium=0.5) /** Plastitanium Glass @@ -121,7 +123,6 @@ name = "plastitanium glass" desc = "A specialized silicate-plastitanium alloy." color = "#5d3369" - greyscale_colors = "#5d336996" starlight_color = COLOR_CENTCOM_BLUE alpha = 150 init_flags = MATERIAL_INIT_MAPLOAD @@ -131,7 +132,12 @@ shard_type = /obj/item/shard/plastitanium debris_type = /obj/effect/decal/cleanable/glass/plastitanium value_per_unit = 0.125 - categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) composition = list(/datum/material/glass=1, /datum/material/alloy/plastitanium=0.5) /** Alien Alloy @@ -144,30 +150,27 @@ name = "alien alloy" desc = "An extremely dense alloy similar to plasteel in composition. It requires exotic metallurgical processes to create." color = "#6041aa" - greyscale_colors = "#6041aa" init_flags = MATERIAL_INIT_MAPLOAD strength_modifier = 1.5 // It's twice the density of plasteel and just as durable. Getting hit with it is going to HURT. integrity_modifier = 1.5 armor_modifiers = list(MELEE = 1.4, BULLET = 1.4, LASER = 1.2, ENERGY = 1.2, BOMB = 1.5, BIO = 1.2, FIRE = 1.2, ACID = 1.2) sheet_type = /obj/item/stack/sheet/mineral/abductor value_per_unit = 0.4 - categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) composition = list(/datum/material/iron=2, /datum/material/plasma=2) + added_slowdown = 0.1 -/datum/material/alloy/alien/on_applied_obj(obj/item/target_item, amount, material_flags) +/datum/material/alloy/alien/on_applied(atom/target, mat_amount, multiplier) . = ..() + if(isobj(target)) + target.AddElement(/datum/element/obj_regen, _rate=0.02) // 2% regen per tick. - target_item.AddElement(/datum/element/obj_regen, _rate=0.02) // 2% regen per tick. - if(!istype(target_item)) - return - - target_item.slowdown += MATERIAL_SLOWDOWN_ALIEN_ALLOY * amount / SHEET_MATERIAL_AMOUNT - -/datum/material/alloy/alien/on_removed_obj(obj/item/target_item, amount, material_flags) +/datum/material/alloy/alien/on_removed(atom/target, mat_amount, multiplier) . = ..() - - target_item.RemoveElement(/datum/element/obj_regen, _rate=0.02) - if(!istype(target_item)) - return - - target_item.slowdown -= MATERIAL_SLOWDOWN_ALIEN_ALLOY * amount / SHEET_MATERIAL_AMOUNT + if(isobj(target)) + target.RemoveElement(/datum/element/obj_regen, _rate=0.02) diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index 66f4bccbd6f7b..76d44c1f16455 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -3,8 +3,13 @@ name = "iron" desc = "Common iron ore often found in sedimentary and igneous layers of the crust." color = "#B6BEC2" - greyscale_colors = "#B6BEC2" - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/iron ore_type = /obj/item/stack/ore/iron value_per_unit = 5 / SHEET_MATERIAL_AMOUNT @@ -24,9 +29,14 @@ name = "glass" desc = "Glass forged by melting sand." color = "#6292AF" - greyscale_colors = "#6292AF" alpha = 150 - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) integrity_modifier = 0.1 sheet_type = /obj/item/stack/sheet/glass ore_type = /obj/item/stack/ore/glass/basalt @@ -46,15 +56,15 @@ victim.apply_damage(10, BRUTE, BODY_ZONE_HEAD, wound_bonus = 5, sharpness = TRUE) //cronch return TRUE -/datum/material/glass/on_applied_obj(atom/source, amount, material_flags) +/datum/material/glass/on_main_applied(atom/source, mat_amount, multiplier) . = ..() - if(!isstack(source)) - source.AddElement(/datum/element/can_shatter, shard_type, round(amount / SHEET_MATERIAL_AMOUNT), SFX_SHATTER) + if(isobj(source) && !isstack(source)) + source.AddElement(/datum/element/can_shatter, shard_type, round(mat_amount / SHEET_MATERIAL_AMOUNT * multiplier), SFX_SHATTER) -/datum/material/glass/on_removed(atom/source, amount, material_flags) +/datum/material/glass/on_main_removed(atom/source, mat_amount, multiplier) . = ..() - - source.RemoveElement(/datum/element/can_shatter, shard_type) + if(isobj(source) && !isstack(source)) + source.RemoveElement(/datum/element/can_shatter, shard_type, round(mat_amount / SHEET_MATERIAL_AMOUNT * multiplier), SFX_SHATTER) /* Color matrices are like regular colors but unlike with normal colors, you can go over 255 on a channel. @@ -66,8 +76,13 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "silver" desc = "Silver" color = "#B5BCBB" - greyscale_colors = "#B5BCBB" - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/silver ore_type = /obj/item/stack/ore/silver value_per_unit = 50 / SHEET_MATERIAL_AMOUNT @@ -87,9 +102,14 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "gold" desc = "Gold" color = "#E6BB45" - greyscale_colors = "#E6BB45" strength_modifier = 1.2 - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/gold ore_type = /obj/item/stack/ore/gold value_per_unit = 125 / SHEET_MATERIAL_AMOUNT @@ -110,8 +130,13 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "diamond" desc = "Highly pressurized carbon" color = "#C9D8F2" - greyscale_colors = "#C9D8F2" - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/diamond ore_type = /obj/item/stack/ore/diamond alpha = 132 @@ -133,8 +158,13 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "uranium" desc = "Uranium" color = "#2C992C" - greyscale_colors = "#2C992C" - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/uranium ore_type = /obj/item/stack/ore/uranium value_per_unit = 100 / SHEET_MATERIAL_AMOUNT @@ -145,7 +175,7 @@ Unless you know what you're doing, only use the first three numbers. They're in mineral_rarity = MATERIAL_RARITY_SEMIPRECIOUS points_per_unit = 30 / SHEET_MATERIAL_AMOUNT -/datum/material/uranium/on_applied(atom/source, amount, material_flags) +/datum/material/uranium/on_applied(atom/source, mat_amount, multiplier) . = ..() // Uranium structures should irradiate, but not items, because item irradiation is a lot more annoying. @@ -153,15 +183,15 @@ Unless you know what you're doing, only use the first three numbers. They're in if (isitem(source)) return - source.AddElement(/datum/element/radioactive) + source.AddElement(/datum/element/radioactive, chance = URANIUM_IRRADIATION_CHANCE * multiplier) -/datum/material/uranium/on_removed(atom/source, amount, material_flags) +/datum/material/uranium/on_removed(atom/source, mat_amount, multiplier) . = ..() if (isitem(source)) return - source.RemoveElement(/datum/element/radioactive) + source.RemoveElement(/datum/element/radioactive, chance = URANIUM_IRRADIATION_CHANCE * multiplier) /datum/material/uranium/on_accidental_mat_consumption(mob/living/carbon/victim, obj/item/source_item) victim.reagents.add_reagent(/datum/reagent/uranium, rand(4, 6)) @@ -173,8 +203,13 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "plasma" desc = "Isn't plasma a state of matter? Oh whatever." color = "#BA3692" - greyscale_colors = "#BA3692" - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/plasma ore_type = /obj/item/stack/ore/plasma value_per_unit = 200 / SHEET_MATERIAL_AMOUNT @@ -183,15 +218,15 @@ Unless you know what you're doing, only use the first three numbers. They're in mineral_rarity = MATERIAL_RARITY_PRECIOUS points_per_unit = 15 / SHEET_MATERIAL_AMOUNT -/datum/material/plasma/on_applied(atom/source, amount, material_flags) +/datum/material/plasma/on_applied(atom/source, mat_amount, multiplier) . = ..() if(ismovable(source)) - source.AddElement(/datum/element/firestacker, amount=1) - source.AddComponent(/datum/component/combustible_flooder, "plasma", amount*0.05) //Empty temp arg, fully dependent on whatever ignited it. + source.AddElement(/datum/element/firestacker, 1 * multiplier) + source.AddComponent(/datum/component/combustible_flooder, "plasma", mat_amount * 0.05 * multiplier) //Empty temp arg, fully dependent on whatever ignited it. -/datum/material/plasma/on_removed(atom/source, amount, material_flags) +/datum/material/plasma/on_removed(atom/source, mat_amount, multiplier) . = ..() - source.RemoveElement(/datum/element/firestacker, amount=1) + source.RemoveElement(/datum/element/firestacker, mat_amount = 1 * multiplier) qdel(source.GetComponent(/datum/component/combustible_flooder)) qdel(source.GetComponent(/datum/component/explodable)) @@ -205,10 +240,15 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "bluespace crystal" desc = "Crystals with bluespace properties" color = "#2E50B7" - greyscale_colors = "#2E50B7" alpha = 200 starlight_color = COLOR_BLUE - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_ITEM_MATERIAL = TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) beauty_modifier = 0.5 sheet_type = /obj/item/stack/sheet/bluespace_crystal ore_type = /obj/item/stack/ore/bluespace_crystal @@ -229,8 +269,14 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "bananium" desc = "Material with hilarious properties" color = list(460/255, 464/255, 0, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) //obnoxiously bright yellow //It's literally perfect I can't change it - greyscale_colors = "#FFF269" - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + greyscale_color = "#FFF269" + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/bananium ore_type = /obj/item/stack/ore/bananium value_per_unit = 1000 / SHEET_MATERIAL_AMOUNT @@ -239,12 +285,12 @@ Unless you know what you're doing, only use the first three numbers. They're in mineral_rarity = MATERIAL_RARITY_UNDISCOVERED points_per_unit = 60 / SHEET_MATERIAL_AMOUNT -/datum/material/bananium/on_applied(atom/source, amount, material_flags) +/datum/material/bananium/on_applied(atom/source, mat_amount, multiplier) . = ..() - source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50, falloff_exponent = 20) - source.AddComponent(/datum/component/slippery, min(amount / 10, 80)) + source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50 * multiplier, falloff_exponent = 20) + source.AddComponent(/datum/component/slippery, min(mat_amount / 10 * multiplier, 80 * multiplier)) -/datum/material/bananium/on_removed(atom/source, amount, material_flags) +/datum/material/bananium/on_removed(atom/source, mat_amount, multiplier) . = ..() qdel(source.GetComponent(/datum/component/slippery)) qdel(source.GetComponent(/datum/component/squeak)) @@ -259,9 +305,14 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "titanium" desc = "Titanium" color = "#EFEFEF" - greyscale_colors = "#EFEFEF" strength_modifier = 1.3 - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/titanium ore_type = /obj/item/stack/ore/titanium value_per_unit = 125 / SHEET_MATERIAL_AMOUNT @@ -281,9 +332,13 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "runite" desc = "Runite" color = "#526F77" - greyscale_colors = "#526F77" strength_modifier = 1.3 - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/runite value_per_unit = 600 / SHEET_MATERIAL_AMOUNT beauty_modifier = 0.5 @@ -300,11 +355,16 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "plastic" desc = "Plastic" color = "#BFB9AC" - greyscale_colors = "#BFB9AC" strength_modifier = 0.85 sheet_type = /obj/item/stack/sheet/plastic ore_type = /obj/item/stack/ore/slag //No plastic or coal ore, so we use slag. - categories = list(MAT_CATEGORY_SILO = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_SILO = TRUE, + MAT_CATEGORY_RIGID=TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) value_per_unit = 25 / SHEET_MATERIAL_AMOUNT beauty_modifier = -0.01 armor_modifiers = list(MELEE = 1.5, BULLET = 1.1, LASER = 0.3, ENERGY = 0.5, BOMB = 1, BIO = 1, FIRE = 1.1, ACID = 1) @@ -319,9 +379,8 @@ Unless you know what you're doing, only use the first three numbers. They're in ///Force decrease and mushy sound effect. (Not yet implemented) /datum/material/biomass name = "biomass" - desc = "Organic matter" + desc = "Organic matter." color = "#735b4d" - greyscale_colors = "#735b4d" strength_modifier = 0.8 value_per_unit = 50 / SHEET_MATERIAL_AMOUNT @@ -329,24 +388,28 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "wood" desc = "Flexible, durable, but flamable. Hard to come across in space." color = "#855932" - greyscale_colors = "#855932" strength_modifier = 0.5 sheet_type = /obj/item/stack/sheet/mineral/wood - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) value_per_unit = 20 / SHEET_MATERIAL_AMOUNT beauty_modifier = 0.1 armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 0.4, ENERGY = 0.4, BOMB = 1, BIO = 0.2, ACID = 0.3) texture_layer_icon_state = "woodgrain" -/datum/material/wood/on_applied_obj(obj/source, amount, material_flags) +/datum/material/wood/on_main_applied(atom/source, mat_amount, multiplier) . = ..() - if(material_flags & MATERIAL_AFFECT_STATISTICS) + if(source.material_flags & MATERIAL_AFFECT_STATISTICS && isobj(source)) var/obj/wooden = source wooden.resistance_flags |= FLAMMABLE -/datum/material/wood/on_removed_obj(obj/source, amount, material_flags) +/datum/material/wood/on_main_removed(atom/source, mat_amount, multiplier) . = ..() - if(material_flags & MATERIAL_AFFECT_STATISTICS) + if(source.material_flags & MATERIAL_AFFECT_STATISTICS && isobj(source)) var/obj/wooden = source wooden.resistance_flags &= ~FLAMMABLE @@ -362,9 +425,13 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "adamantine" desc = "A powerful material made out of magic, I mean science!" color = "#2B7A74" - greyscale_colors = "#2B7A74" strength_modifier = 1.5 - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/adamantine value_per_unit = 500 / SHEET_MATERIAL_AMOUNT beauty_modifier = 0.4 @@ -381,8 +448,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "mythril" desc = "How this even exists is byond me" color = "#f2d5d7" - greyscale_colors = "#f2d5d7" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/mythril value_per_unit = 1500 / SHEET_MATERIAL_AMOUNT strength_modifier = 1.2 @@ -391,13 +462,13 @@ Unless you know what you're doing, only use the first three numbers. They're in mineral_rarity = MATERIAL_RARITY_UNDISCOVERED //Doesn't naturally spawn on lavaland. points_per_unit = 100 / SHEET_MATERIAL_AMOUNT -/datum/material/mythril/on_applied_obj(atom/source, amount, material_flags) +/datum/material/mythril/on_applied(atom/source, mat_amount, multiplier) . = ..() if(isitem(source)) source.AddComponent(/datum/component/fantasy) ADD_TRAIT(source, TRAIT_INNATELY_FANTASTICAL_ITEM, REF(src)) // DO THIS LAST OR WE WILL NEVER GET OUR BONUSES!!! -/datum/material/mythril/on_removed_obj(atom/source, amount, material_flags) +/datum/material/mythril/on_removed(atom/source, mat_amount, multiplier) . = ..() if(isitem(source)) REMOVE_TRAIT(source, TRAIT_INNATELY_FANTASTICAL_ITEM, REF(src)) // DO THIS FIRST OR WE WILL NEVER GET OUR BONUSES DELETED!!! @@ -412,19 +483,23 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "hot ice" desc = "A weird kind of ice, feels warm to the touch" color = "#88cdf1" - greyscale_colors = "#88cdf196" alpha = 150 starlight_color = COLOR_BLUE_LIGHT - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/hot_ice value_per_unit = 400 / SHEET_MATERIAL_AMOUNT beauty_modifier = 0.2 -/datum/material/hot_ice/on_applied(atom/source, amount, material_flags) +/datum/material/hot_ice/on_applied(atom/source, mat_amount, multiplier) . = ..() - source.AddComponent(/datum/component/combustible_flooder, "plasma", amount*1.5, amount*0.2+300) + source.AddComponent(/datum/component/combustible_flooder, "plasma", mat_amount * 1.5 * multiplier, (mat_amount * 0.2 + 300) * multiplier) -/datum/material/hot_ice/on_removed(atom/source, amount, material_flags) +/datum/material/hot_ice/on_removed(atom/source, mat_amount, multiplier) qdel(source.GetComponent(/datum/component/combustible_flooder)) return ..() @@ -438,10 +513,14 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "Metal Hydrogen" desc = "Solid metallic hydrogen. Some say it should be impossible" color = "#62708A" - greyscale_colors = "#62708A" alpha = 150 starlight_color = COLOR_MODERATE_BLUE - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/metal_hydrogen value_per_unit = 700 / SHEET_MATERIAL_AMOUNT beauty_modifier = 0.35 @@ -457,8 +536,11 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "sand" desc = "You know, it's amazing just how structurally sound sand can be." color = "#EDC9AF" - greyscale_colors = "#EDC9AF" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/sandblock value_per_unit = 2 / SHEET_MATERIAL_AMOUNT strength_modifier = 0.5 @@ -477,8 +559,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "sandstone" desc = "Bialtaakid 'ant taerif ma hdha." color = "#ECD5A8" - greyscale_colors = "#ECD5A8" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/sandstone value_per_unit = 5 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 0.5, BULLET = 0.5, LASER = 1.25, ENERGY = 0.5, BOMB = 0.5, BIO = 0.25, FIRE = 1.5, ACID = 1.5) @@ -490,8 +576,11 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "snow" desc = "There's no business like snow business." color = COLOR_WHITE - greyscale_colors = COLOR_WHITE - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/snow value_per_unit = 5 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 0.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, FIRE = 0.25, ACID = 1.5) @@ -507,8 +596,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "runed metal" desc = "Mir'ntrath barhah Nar'sie." color = "#504742" - greyscale_colors = "#504742" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/runed_metal value_per_unit = 1500 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 1, ENERGY = 1, BOMB = 1.2, BIO = 1.2, FIRE = 1.5, ACID = 1.5) @@ -524,8 +617,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "bronze" desc = "Clock Cult? Never heard of it." color = "#876223" - greyscale_colors = "#876223" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/bronze value_per_unit = 50 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 1, BULLET = 1, LASER = 1, ENERGY = 1, BOMB = 1, BIO = 1, FIRE = 1.5, ACID = 1.5) @@ -535,8 +632,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "paper" desc = "Ten thousand folds of pure starchy power." color = "#E5DCD5" - greyscale_colors = "#E5DCD5" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/paperframes value_per_unit = 5 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 0.1, BULLET = 0.1, LASER = 0.1, ENERGY = 0.1, BOMB = 0.1, BIO = 0.1, ACID = 1.5) @@ -544,15 +645,15 @@ Unless you know what you're doing, only use the first three numbers. They're in turf_sound_override = FOOTSTEP_SAND texture_layer_icon_state = "paper" -/datum/material/paper/on_applied_obj(obj/source, amount, material_flags) +/datum/material/paper/on_main_applied(atom/source, mat_amount, multiplier) . = ..() - if(material_flags & MATERIAL_AFFECT_STATISTICS) + if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS) var/obj/paper = source paper.resistance_flags |= FLAMMABLE paper.obj_flags |= UNIQUE_RENAME -/datum/material/paper/on_removed_obj(obj/source, amount, material_flags) - if(material_flags & MATERIAL_AFFECT_STATISTICS) +/datum/material/paper/on_main_removed(atom/source, mat_amount, multiplier) + if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS) var/obj/paper = source paper.resistance_flags &= ~FLAMMABLE return ..() @@ -561,22 +662,26 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "cardboard" desc = "They say cardboard is used by hobos to make incredible things." color = "#5F625C" - greyscale_colors = "#5F625C" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/cardboard value_per_unit = 6 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 0.25, BULLET = 0.25, LASER = 0.25, ENERGY = 0.25, BOMB = 0.25, BIO = 0.25, ACID = 1.5) beauty_modifier = -0.1 -/datum/material/cardboard/on_applied_obj(obj/source, amount, material_flags) +/datum/material/cardboard/on_main_applied(atom/source, mat_amount, multiplier) . = ..() - if(material_flags & MATERIAL_AFFECT_STATISTICS) + if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS) var/obj/cardboard = source cardboard.resistance_flags |= FLAMMABLE cardboard.obj_flags |= UNIQUE_RENAME -/datum/material/cardboard/on_removed_obj(obj/source, amount, material_flags) - if(material_flags & MATERIAL_AFFECT_STATISTICS) +/datum/material/cardboard/on_main_removed(atom/source, mat_amount, multiplier) + if(isobj(source) && source.material_flags & MATERIAL_AFFECT_STATISTICS) var/obj/cardboard = source cardboard.resistance_flags &= ~FLAMMABLE return ..() @@ -585,8 +690,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "bone" desc = "Man, building with this will make you the coolest caveman on the block." color = "#e3dac9" - greyscale_colors = "#e3dac9" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/bone value_per_unit = 100 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 1.2, BULLET = 0.75, LASER = 0.75, ENERGY = 1.2, BOMB = 1, BIO = 1, FIRE = 1.5, ACID = 1.5) @@ -596,8 +705,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "bamboo" desc = "If it's good enough for pandas, it's good enough for you." color = "#87a852" - greyscale_colors = "#87a852" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/bamboo value_per_unit = 5 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 0.5, BULLET = 0.5, LASER = 0.5, ENERGY = 0.5, BOMB = 0.5, BIO = 0.51, FIRE = 0.5, ACID = 1.5) @@ -609,8 +722,12 @@ Unless you know what you're doing, only use the first three numbers. They're in name = "zaukerite" desc = "A light absorbing crystal" color = COLOR_ALMOST_BLACK - greyscale_colors = COLOR_ALMOST_BLACK - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/mineral/zaukerite value_per_unit = 900 / SHEET_MATERIAL_AMOUNT armor_modifiers = list(MELEE = 0.9, BULLET = 0.9, LASER = 1.75, ENERGY = 1.75, BOMB = 0.5, BIO = 1, FIRE = 0.1, ACID = 1) diff --git a/code/datums/materials/hauntium.dm b/code/datums/materials/hauntium.dm index 79e254417208d..b8eee26a08f36 100644 --- a/code/datums/materials/hauntium.dm +++ b/code/datums/materials/hauntium.dm @@ -2,10 +2,15 @@ name = "hauntium" desc = "very scary!" color = list(460/255, 464/255, 460/255, 0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0) - greyscale_colors = "#FFFFFF64" + greyscale_color = "#FFFFFF" alpha = 100 starlight_color = COLOR_ALMOST_BLACK - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/hauntium value_per_unit = 0.05 beauty_modifier = 0.25 @@ -13,10 +18,14 @@ strength_modifier = 1.2 armor_modifiers = list(MELEE = 1.1, BULLET = 1.1, LASER = 1.15, ENERGY = 1.15, BOMB = 1, BIO = 1, FIRE = 1, ACID = 0.7) -/datum/material/hauntium/on_applied_obj(obj/o, amount, material_flags) +/datum/material/hauntium/on_main_applied(atom/source, mat_amount, multiplier) . = ..() - o.make_haunted(INNATE_TRAIT, "#f8f8ff") + if(isobj(source)) + var/obj/obj = source + obj.make_haunted(INNATE_TRAIT, "#f8f8ff") -/datum/material/hauntium/on_removed_obj(obj/o, amount, material_flags) +/datum/material/hauntium/on_main_removed(atom/source, mat_amount, multiplier) . = ..() - o.remove_haunted(INNATE_TRAIT) + if(isobj(source)) + var/obj/obj = source + obj.remove_haunted(INNATE_TRAIT) diff --git a/code/datums/materials/meat.dm b/code/datums/materials/meat.dm index a742a9c71296e..008099a526e93 100644 --- a/code/datums/materials/meat.dm +++ b/code/datums/materials/meat.dm @@ -1,11 +1,15 @@ -///It's gross, gets the name of it's owner, and is all kinds of fucked up +///It's gross, gets the name of its owner, and is all kinds of fucked up /datum/material/meat name = "meat" desc = "Meat" id = /datum/material/meat // So the bespoke versions are categorized under this color = rgb(214, 67, 67) - greyscale_colors = rgb(214, 67, 67) - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/meat value_per_unit = 0.05 beauty_modifier = -0.3 @@ -15,33 +19,28 @@ turf_sound_override = FOOTSTEP_MEAT texture_layer_icon_state = "meat" -/datum/material/meat/on_removed(atom/source, amount, material_flags) +/datum/material/meat/on_main_applied(atom/source, mat_amount, multiplier) . = ..() - qdel(source.GetComponent(/datum/component/edible)) - qdel(source.GetComponent(/datum/component/blood_walk)) - qdel(source.GetComponent(/datum/component/bloody_spreader)) + if(!IS_EDIBLE(source)) + make_edible(source, mat_amount, multiplier) -/datum/material/meat/on_applied_obj(obj/O, amount, material_flags) +/datum/material/meat/on_applied(atom/source, mat_amount, multiplier) . = ..() - make_meaty(O, amount, material_flags) + if(IS_EDIBLE(source)) + make_edible(source, mat_amount, multiplier) -/datum/material/meat/on_applied_turf(turf/T, amount, material_flags) - . = ..() - make_meaty(T, amount, material_flags) - -/datum/material/meat/proc/make_meaty(atom/source, amount, material_flags) - var/nutriment_count = 3 * (amount / SHEET_MATERIAL_AMOUNT) - var/oil_count = 2 * (amount / SHEET_MATERIAL_AMOUNT) +/datum/material/meat/proc/make_edible(atom/source, mat_amount, multiplier) + var/nutriment_count = 3 * (mat_amount / SHEET_MATERIAL_AMOUNT) + var/oil_count = 2 * (mat_amount / SHEET_MATERIAL_AMOUNT) source.AddComponent(/datum/component/edible, \ initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/nutriment/fat/oil = oil_count), \ foodtypes = RAW | MEAT | GROSS, \ eat_time = 3 SECONDS, \ tastes = list("Meaty")) - source.AddComponent( /datum/component/bloody_spreader,\ - blood_left = (nutriment_count + oil_count) * 0.3,\ + blood_left = (nutriment_count + oil_count) * 0.3 * multiplier,\ blood_dna = list("meaty DNA" = "MT-"),\ diseases = null,\ ) @@ -54,9 +53,18 @@ /datum/component/blood_walk,\ blood_type = /obj/effect/decal/cleanable/blood,\ blood_spawn_chance = 35,\ - max_blood = (nutriment_count + oil_count) * 0.3,\ + max_blood = (nutriment_count + oil_count) * 0.3 * multiplier,\ ) +/datum/material/meat/on_removed(atom/source, mat_amount, multiplier) + . = ..() + qdel(source.GetComponent(/datum/component/blood_walk)) + qdel(source.GetComponent(/datum/component/bloody_spreader)) + +/datum/material/meat/on_main_removed(atom/source, mat_amount, multiplier) + . = ..() + qdel(source.GetComponent(/datum/component/edible)) + /datum/material/meat/mob_meat init_flags = MATERIAL_INIT_BESPOKE var/subjectname = "" diff --git a/code/datums/materials/pizza.dm b/code/datums/materials/pizza.dm index 588018576befe..1906e5786d238 100644 --- a/code/datums/materials/pizza.dm +++ b/code/datums/materials/pizza.dm @@ -2,8 +2,12 @@ name = "pizza" desc = "~Jamme, jamme, n'coppa, jamme ja! Jamme, jamme, n'coppa jamme ja, funi-culi funi-cala funi-culi funi-cala!! Jamme jamme ja funiculi funicula!~" color = "#FF9F23" - greyscale_colors = "#FF9F23" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) + categories = list( + MAT_CATEGORY_RIGID = TRUE, + MAT_CATEGORY_BASE_RECIPES = TRUE, + MAT_CATEGORY_ITEM_MATERIAL = TRUE, + MAT_CATEGORY_ITEM_MATERIAL_COMPLEMENTARY = TRUE, + ) sheet_type = /obj/item/stack/sheet/pizza value_per_unit = 0.05 beauty_modifier = 0.1 @@ -13,23 +17,25 @@ turf_sound_override = FOOTSTEP_MEAT texture_layer_icon_state = "pizza" -/datum/material/pizza/on_removed(atom/source, amount, material_flags) +/datum/material/pizza/on_main_applied(atom/source, mat_amount, multiplier) . = ..() - qdel(source.GetComponent(/datum/component/edible)) - -/datum/material/pizza/on_applied_obj(obj/O, amount, material_flags) - . = ..() - make_edible(O, amount, material_flags) + if(!IS_EDIBLE(source)) + make_edible(source, mat_amount) -/datum/material/pizza/on_applied_turf(turf/T, amount, material_flags) +/datum/material/pizza/on_applied(atom/source, mat_amount, multiplier) . = ..() - make_edible(T, amount, material_flags) + if(IS_EDIBLE(source)) + make_edible(source, mat_amount) -/datum/material/pizza/proc/make_edible(atom/source, amount, material_flags) - var/nutriment_count = 3 * (amount / SHEET_MATERIAL_AMOUNT) - var/oil_count = 2 * (amount / SHEET_MATERIAL_AMOUNT) +/datum/material/pizza/proc/make_edible(atom/source, mat_amount) + var/nutriment_count = 3 * (mat_amount / SHEET_MATERIAL_AMOUNT) + var/oil_count = 2 * (mat_amount / SHEET_MATERIAL_AMOUNT) source.AddComponent(/datum/component/edible, \ initial_reagents = list(/datum/reagent/consumable/nutriment = nutriment_count, /datum/reagent/consumable/nutriment/fat/oil = oil_count), \ foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES, \ eat_time = 3 SECONDS, \ tastes = list("crust", "tomato", "cheese", "meat")) + +/datum/material/pizza/on_main_removed(atom/source, mat_amount, multiplier) + . = ..() + qdel(source.GetComponent(/datum/component/edible)) diff --git a/code/datums/memory/general_memories.dm b/code/datums/memory/general_memories.dm index b8c44c6fca862..eca745d3283a6 100644 --- a/code/datums/memory/general_memories.dm +++ b/code/datums/memory/general_memories.dm @@ -162,6 +162,28 @@ "[protagonist_name] [mood_verb] as they lick off some of the pie", ) +/// Witnessed someone get splashed with squid ink. +/datum/memory/witnessed_inking + story_value = STORY_VALUE_OKAY + memory_flags = MEMORY_CHECK_BLINDNESS + // Protagonist - The mob that got pied + +/datum/memory/witnessed_inking/get_names() + return list("The inking of [protagonist_name].") + +/datum/memory/witnessed_inking/get_starts() + return list( + "[protagonist_name]'s face being covered in squid ink", + "[protagonist_name] getting squid-inked", + ) + +/datum/memory/witnessed_inking/get_moods() + return list( + "[protagonist_name] [mood_verb] as ink drips off their face", + "[protagonist_name] [mood_verb] because of their now expanded laundry task.", + "[protagonist_name] [mood_verb] as they wipe the ink off their face.", + ) + /// Got slipped by something. /datum/memory/was_slipped story_value = STORY_VALUE_MEH diff --git a/code/datums/memory/tattoo_kit.dm b/code/datums/memory/tattoo_kit.dm index 98d47eaa285d8..62b4d73be28ba 100644 --- a/code/datums/memory/tattoo_kit.dm +++ b/code/datums/memory/tattoo_kit.dm @@ -46,11 +46,11 @@ if(!tattoo_target) balloon_alert(tattoo_artist, "no limb to tattoo!") return - if(HAS_TRAIT_FROM(tattoo_target, TRAIT_NOT_ENGRAVABLE, INNATE_TRAIT)) - balloon_alert(tattoo_artist, "bodypart cannot be engraved!") + if(HAS_TRAIT_FROM(tattoo_target, TRAIT_NOT_ENGRAVABLE, ENGRAVED_TRAIT)) + balloon_alert(tattoo_artist, "bodypart already tattooed!") return - if(HAS_TRAIT_FROM(tattoo_target, TRAIT_NOT_ENGRAVABLE, TRAIT_GENERIC)) - balloon_alert(tattoo_artist, "bodypart has already been engraved!") + if(HAS_TRAIT(tattoo_target, TRAIT_NOT_ENGRAVABLE)) + balloon_alert(tattoo_artist, "bodypart cannot be tattooed!") return var/datum/memory/memory_to_tattoo = tattoo_artist.mind.select_memory("tattoo") if(!memory_to_tattoo || !tattoo_artist.Adjacent(tattoo_holder) || !tattoo_holder.get_bodypart(selected_zone)) diff --git a/code/datums/mind/_mind.dm b/code/datums/mind/_mind.dm index f7597da54cc48..397a1c5b13afa 100644 --- a/code/datums/mind/_mind.dm +++ b/code/datums/mind/_mind.dm @@ -64,7 +64,6 @@ ///If this mind's master is another mob (i.e. adamantine golems). Weakref of a /living. var/datum/weakref/enslaved_to - var/unconvertable = FALSE var/late_joiner = FALSE /// has this mind ever been an AI var/has_ever_been_ai = FALSE @@ -107,7 +106,7 @@ /datum/mind/New(_key) key = _key init_known_skills() - set_assigned_role(SSjob.GetJobType(/datum/job/unassigned)) // Unassigned by default. + set_assigned_role(SSjob.get_job_type(/datum/job/unassigned)) // Unassigned by default. /datum/mind/Destroy() SSticker.minds -= src @@ -252,7 +251,7 @@ var/new_role = input("Select new role", "Assigned role", assigned_role.title) as null|anything in sort_list(SSjob.name_occupations) if(isnull(new_role)) return - var/datum/job/new_job = SSjob.GetJob(new_role) + var/datum/job/new_job = SSjob.get_job(new_role) if (!new_job) to_chat(usr, span_warning("Job not found.")) return diff --git a/code/datums/mind/antag.dm b/code/datums/mind/antag.dm index 4aaab464f5e8f..ca10f3afe2071 100644 --- a/code/datums/mind/antag.dm +++ b/code/datums/mind/antag.dm @@ -214,9 +214,10 @@ N.nukeop_outfit = null add_antag_datum(N,converter.nuke_team) - enslaved_to = WEAKREF(creator) + SEND_SIGNAL(current, COMSIG_MOB_ENSLAVED_TO, creator) + current.faction |= creator.faction creator.faction |= "[REF(current)]" @@ -285,7 +286,7 @@ /datum/mind/proc/make_wizard() if(has_antag_datum(/datum/antagonist/wizard)) return - set_assigned_role(SSjob.GetJobType(/datum/job/space_wizard)) + set_assigned_role(SSjob.get_job_type(/datum/job/space_wizard)) special_role = ROLE_WIZARD add_antag_datum(/datum/antagonist/wizard) diff --git a/code/datums/mind/initialization.dm b/code/datums/mind/initialization.dm index eb622cc5af549..e3b3e8225dc7a 100644 --- a/code/datums/mind/initialization.dm +++ b/code/datums/mind/initialization.dm @@ -21,17 +21,17 @@ //AI /mob/living/silicon/ai/mind_initialize() . = ..() - mind.set_assigned_role(SSjob.GetJobType(/datum/job/ai)) + mind.set_assigned_role(SSjob.get_job_type(/datum/job/ai)) //BORG /mob/living/silicon/robot/mind_initialize() . = ..() - mind.set_assigned_role(SSjob.GetJobType(/datum/job/cyborg)) + mind.set_assigned_role(SSjob.get_job_type(/datum/job/cyborg)) //PAI /mob/living/silicon/pai/mind_initialize() . = ..() - mind.set_assigned_role(SSjob.GetJobType(/datum/job/personal_ai)) + mind.set_assigned_role(SSjob.get_job_type(/datum/job/personal_ai)) mind.special_role = "" diff --git a/code/datums/mood.dm b/code/datums/mood.dm index 8193f9c1c15c9..cffd955635817 100644 --- a/code/datums/mood.dm +++ b/code/datums/mood.dm @@ -288,7 +288,7 @@ if (SANITY_LEVEL_INSANE) mood_screen_object.color = "#f15d36" - if (!conflicting_moodies.len) // theres no special icons, use the normal icon states + if (!conflicting_moodies.len) // there's no special icons, use the normal icon states mood_screen_object.icon_state = "mood[mood_level]" return @@ -406,7 +406,7 @@ clear_mood_event(MOOD_CATEGORY_AREA_BEAUTY) return - if(HAS_TRAIT(mob_parent, TRAIT_MORBID)) + if(HAS_MIND_TRAIT(mob_parent, TRAIT_MORBID)) if(HAS_TRAIT(mob_parent, TRAIT_SNOB)) switch(area_to_beautify.beauty) if(BEAUTY_LEVEL_DECENT to BEAUTY_LEVEL_GOOD) diff --git a/code/datums/mood_events/dna_infuser_events.dm b/code/datums/mood_events/dna_infuser_events.dm index 6da7235cfc1da..26c07d76b111e 100644 --- a/code/datums/mood_events/dna_infuser_events.dm +++ b/code/datums/mood_events/dna_infuser_events.dm @@ -7,3 +7,11 @@ description = "There's a lot that could be on your mind right now. But this feeling of contentedness, a universal calling to simply sit back and observe is washing over you..." mood_change = 10 special_screen_obj = "mood_gondola" + +/datum/mood_event/fish_waterless + mood_change = -3 + description = "It sucks to be dry. I feel like a fish out of water." + +/datum/mood_event/fish_water + mood_change = 1 + description = "Glug glug!" diff --git a/code/datums/mood_events/food_events.dm b/code/datums/mood_events/food_events.dm index 7d33e7e57ce06..e64d975902ea7 100644 --- a/code/datums/mood_events/food_events.dm +++ b/code/datums/mood_events/food_events.dm @@ -49,3 +49,8 @@ /datum/mood_event/food/top quality = FOOD_QUALITY_TOP + +/datum/mood_event/pacifist_eating_fish_item + description = "I shouldn't be eating living creatures..." + mood_change = -1 //The disgusting food moodlet already has a pretty big negative value, this is just for context. + timeout = 4 MINUTES diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 6ad0580e5557c..30999a874b77b 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -33,6 +33,11 @@ mood_change = -2 timeout = 3 MINUTES +/datum/mood_event/inked + description = "I've been splashed with squid ink. Tastes like salt." + mood_change = -3 + timeout = 3 MINUTES + /datum/mood_event/slipped description = "I slipped. I should be more careful next time..." mood_change = -2 @@ -485,3 +490,19 @@ description = "I DIDN'T MEAN TO HURT THEM!" mood_change = -20 timeout = 10 MINUTES + +//Gained when you're hit over the head with wrapping paper or cardboard roll +/datum/mood_event/bapped + description = "Ow.. my head, I feel a bit foolish now!" + mood_change = -1 + timeout = 3 MINUTES + +/datum/mood_event/bapped/add_effects() + // Felinids apparently hate being hit over the head with cardboard + if(isfelinid(owner)) + mood_change = -2 + +/datum/mood_event/encountered_evil + description = "I didn't want to believe it, but there are people out there that are genuinely evil." + mood_change = -4 + timeout = 1 MINUTES diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 54b276fa71a3d..cdd28c1855ee8 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -333,9 +333,34 @@ /datum/mood_event/fishing description = "Fishing is relaxing." - mood_change = 5 + mood_change = 4 timeout = 3 MINUTES +/datum/mood_event/fish_released + description = "Go, fish, swim and be free!" + mood_change = 1 + timeout = 2 MINUTES + +/datum/mood_event/fish_released/add_effects(morbid, obj/item/fish/fish) + if(!morbid) + description = "Go, [fish.name], swim and be free!" + return + if(fish.status == FISH_DEAD) + description = "Some scavenger will surely find a use for the remains of [fish.name]. How pragmatic." + else + description = "Returned to the burden of the deep. But is this truly a mercy, [fish.name]? There will always be bigger fish..." + +/datum/mood_event/fish_petting + description = "It felt nice to pet the fish." + mood_change = 2 + timeout = 2 MINUTES + +/datum/mood_event/fish_petting/add_effects(obj/item/fish/fish, morbid) + if(!morbid) + description = "It felt nice to pet \the [fish]." + else + description = "I caress \the [fish] as [fish.p_they()] squirms under my touch, blissfully unaware of how cruel this world is." + /datum/mood_event/kobun description = "You are all loved by the Universe. I’m not alone, and you aren’t either." mood_change = 14 diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index dd5441476dcfb..93a8f186da6c2 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -76,6 +76,11 @@ mood_change = 4 timeout = 5 MINUTES +/datum/mood_event/shower_hater + description = "I hate being wet!" + mood_change = -2 + timeout = 3 MINUTES + /datum/mood_event/fresh_laundry description = "There's nothing like the feeling of a freshly laundered jumpsuit." mood_change = 2 diff --git a/code/datums/mutations/_combined.dm b/code/datums/mutations/_combined.dm index baa7c2c1215b5..399cbec53ed00 100644 --- a/code/datums/mutations/_combined.dm +++ b/code/datums/mutations/_combined.dm @@ -27,11 +27,11 @@ /datum/generecipe/cindikinesis required = "/datum/mutation/human/geladikinesis; /datum/mutation/human/fire_breath" - result = /datum/mutation/human/geladikinesis/ash + result = /datum/mutation/human/cindikinesis /datum/generecipe/pyrokinesis required = "/datum/mutation/human/cryokinesis; /datum/mutation/human/fire_breath" - result = /datum/mutation/human/cryokinesis/pyrokinesis + result = /datum/mutation/human/pyrokinesis /datum/generecipe/thermal_adaptation required = "/datum/mutation/human/adaptation/cold; /datum/mutation/human/adaptation/heat" @@ -52,3 +52,7 @@ /datum/generecipe/heckacious required = "/datum/mutation/human/wacky; /datum/mutation/human/stoner" result = /datum/mutation/human/heckacious + +/datum/generecipe/ork + required = "/datum/mutation/human/hulk; /datum/mutation/human/clumsy" + result = /datum/mutation/human/hulk/ork diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm index ba3c20a0cfe74..22988f5ebdd19 100644 --- a/code/datums/mutations/_mutations.dm +++ b/code/datums/mutations/_mutations.dm @@ -132,6 +132,7 @@ owner = acquirer dna = acquirer.dna dna.mutations += src + SEND_SIGNAL(src, COMSIG_MUTATION_GAINED, acquirer) if(text_gain_indication) to_chat(owner, text_gain_indication) if(visual_indicators.len) @@ -158,6 +159,7 @@ if(!istype(owner) || !(owner.dna.mutations.Remove(src))) return TRUE . = FALSE + SEND_SIGNAL(src, COMSIG_MUTATION_LOST, owner) if(text_lose_indication && owner.stat != DEAD) to_chat(owner, text_lose_indication) if(visual_indicators.len) diff --git a/code/datums/mutations/antenna.dm b/code/datums/mutations/antenna.dm index 5684b20c454f7..7730ab16d9cc9 100644 --- a/code/datums/mutations/antenna.dm +++ b/code/datums/mutations/antenna.dm @@ -96,6 +96,11 @@ to_chat(owner, span_warning("You plunge into your mind... Yep, it's your mind.")) return + if(HAS_TRAIT(cast_on, TRAIT_EVIL)) + to_chat(owner, span_warning("As you reach into [cast_on]'s mind, \ + you feel the overwhelming emptiness within. A truly evil being. \ + [HAS_TRAIT(owner, TRAIT_EVIL) ? "It's nice to find someone who is like-minded." : "What is wrong with this person?"]")) + to_chat(owner, span_boldnotice("You plunge into [cast_on]'s mind...")) if(prob(20)) // chance to alert the read-ee diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index f2db642261633..e09a8337b72a4 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -160,8 +160,7 @@ // This is specifically happening because they're not used to their new height and are stumbling around into machinery made for normal humans /datum/mutation/human/acromegaly/proc/head_bonk(mob/living/parent) SIGNAL_HANDLER - var/turf/airlock_turf = get_turf(parent) - var/atom/movable/whacked_by = locate(/obj/machinery/door/airlock) in airlock_turf || locate(/obj/machinery/door/firedoor) in airlock_turf || locate(/obj/structure/mineral_door) in airlock_turf + var/atom/movable/whacked_by = (locate(/obj/machinery/door/airlock) in parent.loc) || (locate(/obj/machinery/door/firedoor) in parent.loc) || (locate(/obj/structure/mineral_door) in parent.loc) if(!whacked_by || prob(100 - (8 * GET_MUTATION_SYNCHRONIZER(src)))) return to_chat(parent, span_danger("You hit your head on \the [whacked_by]'s header!")) @@ -258,8 +257,8 @@ /datum/mutation/human/race name = "Monkified" desc = "A strange genome, believing to be what differentiates monkeys from humans." - text_gain_indication = "You feel unusually monkey-like." - text_lose_indication = "You feel like your old self." + text_gain_indication = span_green("You feel unusually monkey-like.") + text_lose_indication = span_notice("You feel like your old self.") quality = NEGATIVE instability = NEGATIVE_STABILITY_MAJOR // mmmonky remove_on_aheal = FALSE @@ -269,18 +268,26 @@ var/original_name /datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner) - if(..()) + . = ..() + if(.) return - if(!ismonkey(owner)) - original_species = owner.dna.species.type - original_name = owner.real_name - owner.fully_replace_character_name(null, "monkey ([rand(1,999)])") - . = owner.monkeyize() + if(ismonkey(owner)) + return + original_species = owner.dna.species.type + original_name = owner.real_name + owner.monkeyize() /datum/mutation/human/race/on_losing(mob/living/carbon/human/owner) - if(!QDELETED(owner) && owner.stat != DEAD && (owner.dna.mutations.Remove(src)) && ismonkey(owner)) - owner.fully_replace_character_name(null, original_name) - . = owner.humanize(original_species) + if(owner.stat == DEAD) + return + . = ..() + if(.) + return + if(QDELETED(owner)) + return + + owner.fully_replace_character_name(null, original_name) + owner.humanize(original_species) /datum/mutation/human/glow name = "Glowy" @@ -467,7 +474,7 @@ if(prob(15)) owner.acid_act(rand(30, 50), 10) owner.visible_message(span_warning("[owner]'s skin bubbles and pops."), span_userdanger("Your bubbling flesh pops! It burns!")) - playsound(owner,'sound/weapons/sear.ogg', 50, TRUE) + playsound(owner,'sound/items/weapons/sear.ogg', 50, TRUE) /datum/mutation/human/spastic name = "Spastic" @@ -583,9 +590,9 @@ var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN) if(brain) - brain.Remove(owner, special = TRUE) + brain.Remove(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) brain.zone = BODY_ZONE_CHEST - brain.Insert(owner, special = TRUE) + brain.Insert(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) var/obj/item/bodypart/head/head = owner.get_bodypart(BODY_ZONE_HEAD) if(head) @@ -608,9 +615,9 @@ return TRUE var/obj/item/organ/internal/brain/brain = owner.get_organ_slot(ORGAN_SLOT_BRAIN) if(brain) - brain.Remove(owner, special = TRUE) + brain.Remove(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) brain.zone = initial(brain.zone) - brain.Insert(owner, special = TRUE) + brain.Insert(owner, special = TRUE, movement_flags = NO_ID_TRANSFER) owner.dna.species.regenerate_organs(owner, replace_current = FALSE, excluded_zones = list(BODY_ZONE_CHEST)) //replace_current needs to be FALSE to prevent weird adding and removing mutation healing owner.apply_damage(damage = 50, damagetype = BRUTE, def_zone = BODY_ZONE_HEAD) //and this to DISCOURAGE organ farming, or at least not make it free. diff --git a/code/datums/mutations/cold.dm b/code/datums/mutations/cold.dm index fd060bc8ca5e0..7916b4137238e 100644 --- a/code/datums/mutations/cold.dm +++ b/code/datums/mutations/cold.dm @@ -37,6 +37,7 @@ button_icon_state = "icebeam" base_icon_state = "icebeam" active_overlay_icon_state = "bg_spell_border_active_blue" + cast_range = 9 cooldown_time = 16 SECONDS spell_requirements = NONE antimagic_flags = NONE diff --git a/code/datums/mutations/fire_breath.dm b/code/datums/mutations/fire_breath.dm index 56915ff0130ea..d643bd98508d2 100644 --- a/code/datums/mutations/fire_breath.dm +++ b/code/datums/mutations/fire_breath.dm @@ -29,7 +29,7 @@ name = "Fire Breath" desc = "You breathe a cone of fire directly in front of you." button_icon_state = "fireball0" - sound = 'sound/magic/demon_dies.ogg' //horrifying lizard noises + sound = 'sound/effects/magic/demon_dies.ogg' //horrifying lizard noises school = SCHOOL_EVOCATION cooldown_time = 40 SECONDS diff --git a/code/datums/mutations/hot.dm b/code/datums/mutations/hot.dm index 574bc95d1e404..74fa42e1edd03 100644 --- a/code/datums/mutations/hot.dm +++ b/code/datums/mutations/hot.dm @@ -1,30 +1,48 @@ -/datum/mutation/human/geladikinesis/ash +/datum/mutation/human/cindikinesis name = "Cindikinesis" desc = "Allows the user to concentrate nearby heat into a pile of ash. Wow. Very interesting." + quality = POSITIVE text_gain_indication = span_notice("Your hand feels warm.") + instability = POSITIVE_INSTABILITY_MINOR + difficulty = 10 + synchronizer_coeff = 1 locked = TRUE - power_path = /datum/action/cooldown/spell/conjure_item/snow/ash + power_path = /datum/action/cooldown/spell/conjure_item/ash -/datum/action/cooldown/spell/conjure_item/snow/ash +/datum/action/cooldown/spell/conjure_item/ash name = "Create Ash" desc = "Concentrates pyrokinetic forces to create ash, useful for basically nothing." button_icon_state = "ash" + cooldown_time = 5 SECONDS + spell_requirements = NONE + item_type = /obj/effect/decal/cleanable/ash + delete_old = FALSE + delete_on_failure = FALSE -/datum/mutation/human/cryokinesis/pyrokinesis +/datum/mutation/human/pyrokinesis name = "Pyrokinesis" desc = "Draws positive energy from the surroundings to heat surrounding temperatures at subject's will." + quality = POSITIVE text_gain_indication = span_notice("Your hand feels hot!") + instability = POSITIVE_INSTABILITY_MODERATE + difficulty = 12 + synchronizer_coeff = 1 + energy_coeff = 1 locked = TRUE - power_path = /datum/action/cooldown/spell/pointed/projectile/cryo/pyro + power_path = /datum/action/cooldown/spell/pointed/projectile/pyro -/datum/action/cooldown/spell/pointed/projectile/cryo/pyro +/datum/action/cooldown/spell/pointed/projectile/pyro name = "Pyrobeam" desc = "This power fires a heated bolt at a target." button_icon_state = "firebeam" base_icon_state = "firebeam" + active_overlay_icon_state = "bg_spell_border_active_blue" + cast_range = 9 cooldown_time = 30 SECONDS + spell_requirements = NONE + antimagic_flags = NONE active_msg = "You focus your pyrokinesis!" deactive_msg = "You cool down." diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 7a09687ea40bc..66f4924512c1b 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -9,28 +9,35 @@ species_allowed = list(SPECIES_HUMAN) //no skeleton/lizard hulk health_req = 25 instability = POSITIVE_INSTABILITY_MAJOR + conflicts = list(/datum/mutation/human/hulk/ork) var/scream_delay = 50 var/last_scream = 0 + var/bodypart_color = COLOR_DARK_LIME /// List of traits to add/remove when someone gets this mutation. mutation_traits = list( TRAIT_CHUNKYFINGERS, TRAIT_HULK, - TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PUSHIMMUNE, TRAIT_STUNIMMUNE, ) +/datum/mutation/human/hulk/New(class, timer, datum/mutation/human/copymut) + . = ..() + add_speechmod() + +/datum/mutation/human/hulk/proc/add_speechmod() + AddComponent(/datum/component/speechmod, replacements = list("." = "!"), end_string = "!!", uppercase = TRUE) /datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) return for(var/obj/item/bodypart/part as anything in owner.bodyparts) - part.variable_color = COLOR_DARK_LIME + part.add_color_override(bodypart_color, LIMB_COLOR_HULK) owner.update_body_parts() owner.add_mood_event("hulk", /datum/mood_event/hulk) RegisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK, PROC_REF(on_attack_hand)) - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) RegisterSignal(owner, COMSIG_MOB_CLICKON, PROC_REF(check_swing)) + owner.add_movespeed_mod_immunities("hulk", /datum/movespeed_modifier/damage_slowdown) /datum/mutation/human/hulk/proc/on_attack_hand(mob/living/carbon/human/source, atom/target, proximity, modifiers) SIGNAL_HANDLER @@ -87,24 +94,12 @@ if(..()) return for(var/obj/item/bodypart/part as anything in owner.bodyparts) - part.variable_color = null + part.remove_color_override(LIMB_COLOR_HULK) owner.update_body_parts() owner.clear_mood_event("hulk") UnregisterSignal(owner, COMSIG_LIVING_EARLY_UNARMED_ATTACK) - UnregisterSignal(owner, COMSIG_MOB_SAY) UnregisterSignal(owner, COMSIG_MOB_CLICKON) - -/datum/mutation/human/hulk/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message) - message = "[replacetext(message, ".", "!")]!!" - speech_args[SPEECH_MESSAGE] = message - - // the reason we don't just uppertext(message) in this proc is so that our hulk speech - // can uppercase all other speech moidifiers after they are done (by returning COMPONENT_UPPERCASE_SPEECH) - return COMPONENT_UPPERCASE_SPEECH + owner.remove_movespeed_mod_immunities("hulk", /datum/movespeed_modifier/damage_slowdown) /// How many steps it takes to throw the mob #define HULK_TAILTHROW_STEPS 28 @@ -118,7 +113,7 @@ return if(!user.throw_mode || user.get_active_held_item() || user.zone_selected != BODY_ZONE_PRECISE_GROIN) return - if(user.grab_state < GRAB_NECK || !iscarbon(user.pulling) || user.buckled || user.incapacitated()) + if(user.grab_state < GRAB_NECK || !iscarbon(user.pulling) || user.buckled || user.incapacitated) return var/mob/living/carbon/possible_throwable = user.pulling @@ -171,7 +166,7 @@ * For each step of the swinging, with the delay getting shorter along the way. Checks to see we still have them in our grasp at each step. */ /datum/mutation/human/hulk/proc/swing_loop(mob/living/carbon/human/the_hulk, mob/living/carbon/yeeted_person, step, original_dir) - if(!yeeted_person || !the_hulk || the_hulk.incapacitated()) + if(!yeeted_person || !the_hulk || the_hulk.incapacitated) return if(get_dist(the_hulk, yeeted_person) > 1 || !isturf(the_hulk.loc) || !isturf(yeeted_person.loc)) to_chat(the_hulk, span_warning("You lose your grasp on [yeeted_person]!")) @@ -212,7 +207,7 @@ continue yeeted_person.adjustBruteLoss(step*0.5) - playsound(collateral_mob,'sound/weapons/punch1.ogg',50,TRUE) + playsound(collateral_mob,'sound/items/weapons/punch1.ogg',50,TRUE) log_combat(the_hulk, collateral_mob, "has smacked with tail swing victim") log_combat(the_hulk, yeeted_person, "has smacked this person into someone while tail swinging") // i have no idea how to better word this @@ -242,7 +237,7 @@ /// Time to toss the victim at high speed /datum/mutation/human/hulk/proc/finish_swing(mob/living/carbon/human/the_hulk, mob/living/carbon/yeeted_person, original_dir) - if(!yeeted_person || !the_hulk || the_hulk.incapacitated()) + if(!yeeted_person || !the_hulk || the_hulk.incapacitated) return if(get_dist(the_hulk, yeeted_person) > 1 || !isturf(the_hulk.loc) || !isturf(yeeted_person.loc)) to_chat(the_hulk, span_warning("You lose your grasp on [yeeted_person]!")) @@ -263,6 +258,7 @@ log_combat(the_hulk, yeeted_person, "has thrown by tail") /datum/mutation/human/hulk/wizardly + name = "Hulk (Magical)" species_allowed = null //yes skeleton/lizard hulk - note that species that dont have skintone changing (like skellies) get custom handling health_req = 0 instability = 0 @@ -270,19 +266,18 @@ /// List of traits to add/remove when someone gets this mutation. mutation_traits = list( TRAIT_HULK, - TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PUSHIMMUNE, TRAIT_STUNIMMUNE, ) // no chunk /datum/mutation/human/hulk/superhuman + name = "Hulk (Super)" health_req = 0 instability = 0 /// List of traits to add/remove when someone gets this mutation. mutation_traits = list( TRAIT_CHUNKYFINGERS, TRAIT_HULK, - TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_PUSHIMMUNE, @@ -293,4 +288,14 @@ /datum/mutation/human/hulk/superhuman/on_life(seconds_per_tick, times_fired) return +/datum/mutation/human/hulk/ork + name = "Ork" + desc = "A mutation caused by a mixup of hulk genes which severely impacts speech centers in owners' brains." + text_gain_indication = span_notice("You feel significantly dumber!") + bodypart_color = COLOR_ASSISTANT_OLIVE + conflicts = list(/datum/mutation/human/hulk) + +/datum/mutation/human/hulk/ork/add_speechmod() + AddComponent(/datum/component/speechmod, replacements = strings("ork_replacement.json", "ork"), end_string = "!!", uppercase = TRUE) + #undef HULK_TAILTHROW_STEPS diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index 3aceb3e7d8ad2..d3627167cb507 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -110,7 +110,7 @@ ///X-ray Vision lets you see through walls. /datum/mutation/human/xray name = "X Ray Vision" - desc = "A strange genome that allows the user to see between the spaces of walls." //actual x-ray would mean you'd constantly be blasting rads, wich might be fun for later //hmb + desc = "A strange genome that allows the user to see between the spaces of walls." //actual x-ray would mean you'd constantly be blasting rads, which might be fun for later //hmb text_gain_indication = span_notice("The walls suddenly disappear!") instability = POSITIVE_INSTABILITY_MAJOR locked = TRUE @@ -167,13 +167,13 @@ return to_chat(source, span_warning("You shoot with your laser eyes!")) source.changeNext_move(CLICK_CD_RANGE) - source.newtonian_move(get_dir(target, source)) + source.newtonian_move(get_angle(source, target)) var/obj/projectile/beam/laser/laser_eyes/LE = new(source.loc) LE.firer = source LE.def_zone = ran_zone(source.zone_selected) LE.preparePixelProjectile(target, source, modifiers) INVOKE_ASYNC(LE, TYPE_PROC_REF(/obj/projectile, fire)) - playsound(source, 'sound/weapons/taser2.ogg', 75, TRUE) + playsound(source, 'sound/items/weapons/taser2.ogg', 75, TRUE) ///Projectile type used by laser eyes /obj/projectile/beam/laser/laser_eyes diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index 98560bb252679..f487ac56c1330 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -2,9 +2,6 @@ //Individual ones aren't commented since their functions should be evident at a glance // no they arent bro -#define ALPHABET list("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z") -#define VOWELS list("a", "e", "i", "o", "u") -#define CONSONANTS (ALPHABET - VOWELS) /datum/mutation/human/nervousness name = "Nervousness" @@ -82,7 +79,7 @@ // Used to replace the original later var/og_word = editing_word // Iterating through each replaceable-string in the .json - var/list/static/super_wacky_words = strings("heckacious.json", "heckacious") + var/static/list/super_wacky_words = strings("heckacious.json", "heckacious") // If the word doesn't get replaced we might do something with it later var/word_edited @@ -177,30 +174,11 @@ quality = MINOR_NEGATIVE text_gain_indication = span_notice("You feel Swedish, however that works.") text_lose_indication = span_notice("The feeling of Swedishness passes.") + var/static/list/language_mutilation = list("w" = "v", "j" = "y", "bo" = "bjo", "a" = list("å","ä","æ","a"), "o" = list("ö","ø","o")) -/datum/mutation/human/swedish/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/mutation/human/swedish/on_losing(mob/living/carbon/human/owner) - if(..()) - return - UnregisterSignal(owner, COMSIG_MOB_SAY) - -/datum/mutation/human/swedish/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message) - message = replacetext(message,"w","v") - message = replacetext(message,"j","y") - message = replacetext(message,"a",pick("å","ä","æ","a")) - message = replacetext(message,"bo","bjo") - message = replacetext(message,"o",pick("ö","ø","o")) - if(prob(30)) - message += " Bork[pick("",", bork",", bork, bork")]!" - speech_args[SPEECH_MESSAGE] = trim(message) +/datum/mutation/human/swedish/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = language_mutilation, end_string = list("",", bork",", bork, bork"), end_string_chance = 30) /datum/mutation/human/chav name = "Chav" @@ -210,35 +188,9 @@ text_gain_indication = span_notice("Ye feel like a reet prat like, innit?") text_lose_indication = span_notice("You no longer feel like being rude and sassy.") -/datum/mutation/human/chav/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/mutation/human/chav/on_losing(mob/living/carbon/human/owner) - if(..()) - return - UnregisterSignal(owner, COMSIG_MOB_SAY) - -/datum/mutation/human/chav/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = " [message]" - var/list/chav_words = strings("chav_replacement.json", "chav") - - for(var/key in chav_words) - var/value = chav_words[key] - if(islist(value)) - value = pick(value) - - message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]") - message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]") - message = replacetextEx(message, " [key]", " [value]") - if(prob(30)) - message += ", mate" - speech_args[SPEECH_MESSAGE] = trim(message) +/datum/mutation/human/chav/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("chav_replacement.json", "chav"), end_string = ", mate", end_string_chance = 30) /datum/mutation/human/elvis name = "Elvis" @@ -248,6 +200,10 @@ text_gain_indication = span_notice("You feel pretty good, honeydoll.") text_lose_indication = span_notice("You feel a little less conversation would be great.") +/datum/mutation/human/chav/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = strings("elvis_replacement.json", "elvis")) + /datum/mutation/human/elvis/on_life(seconds_per_tick, times_fired) switch(pick(1,2)) if(1) @@ -259,34 +215,6 @@ if(SPT_PROB(7.5, seconds_per_tick)) owner.visible_message("[owner] [pick("jiggles their hips", "rotates their hips", "gyrates their hips", "taps their foot", "dances to an imaginary song", "jiggles their legs", "snaps their fingers")]!") -/datum/mutation/human/elvis/on_acquiring(mob/living/carbon/human/owner) - if(..()) - return - RegisterSignal(owner, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/mutation/human/elvis/on_losing(mob/living/carbon/human/owner) - if(..()) - return - UnregisterSignal(owner, COMSIG_MOB_SAY) - -/datum/mutation/human/elvis/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - var/message = speech_args[SPEECH_MESSAGE] - if(message) - message = " [message] " - message = replacetext(message," i'm not "," I ain't ") - message = replacetext(message," girl ",pick(" honey "," baby "," baby doll ")) - message = replacetext(message," man ",pick(" son "," buddy "," brother"," pal "," friendo ")) - message = replacetext(message," out of "," outta ") - message = replacetext(message," thank you "," thank you, thank you very much ") - message = replacetext(message," thanks "," thank you, thank you very much ") - message = replacetext(message," what are you "," whatcha ") - message = replacetext(message," yes ",pick(" sure", "yea ")) - message = replacetext(message," muh valids "," my kicks ") - speech_args[SPEECH_MESSAGE] = trim(message) - - /datum/mutation/human/stoner name = "Stoner" desc = "A common mutation that severely decreases intelligence." @@ -369,7 +297,3 @@ var/spoken_message = speech_args[SPEECH_MESSAGE] spoken_message = piglatin_sentence(spoken_message) speech_args[SPEECH_MESSAGE] = spoken_message - -#undef ALPHABET -#undef VOWELS -#undef CONSONANTS diff --git a/code/datums/mutations/touch.dm b/code/datums/mutations/touch.dm index 98d3d18807fea..6296e8fbf72f0 100644 --- a/code/datums/mutations/touch.dm +++ b/code/datums/mutations/touch.dm @@ -28,7 +28,7 @@ name = "Shock Touch" desc = "Channel electricity to your hand to shock people with." button_icon_state = "zap" - sound = 'sound/weapons/zapbang.ogg' + sound = 'sound/items/weapons/zapbang.ogg' cooldown_time = 12 SECONDS invocation_type = INVOCATION_NONE spell_requirements = NONE @@ -51,7 +51,7 @@ /datum/action/cooldown/spell/touch/shock/cast_on_hand_hit(obj/item/melee/touch_attack/hand, atom/victim, mob/living/carbon/caster) if(iscarbon(victim)) var/mob/living/carbon/carbon_victim = victim - if(carbon_victim.electrocute_act(15, caster, 1, SHOCK_NOGLOVES | SHOCK_NOSTUN))//doesnt stun. never let this stun + if(carbon_victim.electrocute_act(15, caster, 1, SHOCK_NOGLOVES | SHOCK_NOSTUN))//doesn't stun. never let this stun carbon_victim.dropItemToGround(carbon_victim.get_active_held_item()) carbon_victim.dropItemToGround(carbon_victim.get_inactive_held_item()) carbon_victim.adjust_confusion(15 SECONDS) @@ -114,10 +114,11 @@ /datum/action/cooldown/spell/touch/lay_on_hands name = "Mending Touch" - desc = "You can now lay your hands on other people to transfer a small amount of their physical injuries to yourself." + desc = "You can now lay your hands on other people to transfer a small amount of their physical injuries to yourself. \ + For some reason, this power does not play nicely with the undead, or people with strange ideas about morality." button_icon = 'icons/mob/actions/actions_genetic.dmi' button_icon_state = "mending_touch" - sound = 'sound/magic/staff_healing.ogg' + sound = 'sound/effects/magic/staff_healing.ogg' cooldown_time = 12 SECONDS school = SCHOOL_RESTORATION invocation_type = INVOCATION_NONE @@ -156,9 +157,20 @@ heal_multiplier = initial(heal_multiplier) * power_coefficient pain_multiplier = initial(pain_multiplier) * synchronizer_coefficient - // Message to show on a succesful heal if the healer has a special pacifism interaction with the mutation. + // Message to show on a successful heal if the healer has a special pacifism interaction with the mutation. var/peaceful_message = null + var/success + + var/hurt_this_guy = determine_if_this_hurts_instead(mendicant, hurtguy) + + if (hurt_this_guy && HAS_TRAIT(mendicant, TRAIT_PACIFISM) || hurt_this_guy && !mendicant.combat_mode) //Returns if we're a pacifist and we'd hurt them, or we're not in combat mode and we'll hurt them + mendicant.balloon_alert(mendicant, "[hurtguy] would be hurt!") + return FALSE + + if(hurt_this_guy) + return by_gods_light_i_smite_you(mendicant, hurtguy, heal_multiplier) + // Heal more, hurt a bit more. // If you crunch the numbers it sounds crazy good, // but I think that's a fair reward for combining the efforts of Genetics, Medbay, and Mining to reach a hidden mechanic. @@ -177,7 +189,6 @@ heal_multiplier *= 1.75 peaceful_message = span_boldnotice("Your peaceful nature helps you guide all the pain to yourself.") - var/success if(iscarbon(hurtguy)) success = do_complicated_heal(mendicant, hurtguy, heal_multiplier, pain_multiplier) else @@ -338,9 +349,80 @@ else to_chat(mendicant, span_notice("Your veins swell!")) + +/datum/action/cooldown/spell/touch/lay_on_hands/proc/determine_if_this_hurts_instead(mob/living/carbon/mendicant, mob/living/hurtguy) + var/hurt_this_guy = FALSE + + if(HAS_TRAIT(mendicant, TRAIT_PACIFISM)) + return FALSE //always return false if we're pacifist + + if(hurtguy.mob_biotypes & MOB_UNDEAD && mendicant.mob_biotypes & MOB_UNDEAD) + return FALSE //always return false if we're both undead //undead solidarity + + if(hurtguy.mob_biotypes & MOB_UNDEAD && !HAS_TRAIT(mendicant, TRAIT_EVIL)) //Is the mob undead and we're not evil? If so, hurt. + hurt_this_guy = TRUE + + else if(HAS_TRAIT(hurtguy, TRAIT_EVIL) && !HAS_TRAIT(mendicant, TRAIT_EVIL)) //Is the guy evil and we're not evil? If so, hurt. + hurt_this_guy = TRUE + + else if(!(hurtguy.mob_biotypes & MOB_UNDEAD) && HAS_TRAIT(hurtguy, TRAIT_EMPATH) && HAS_TRAIT(mendicant, TRAIT_EVIL)) //Is the guy not undead, they're an empath and we're evil? If so, hurt. + hurt_this_guy = TRUE + + return hurt_this_guy + +///If our target was undead or evil, we blast them with a firey beam rather than healing them. For, you know, 'holy' reasons. When did genes become so morally uptight? + +/datum/action/cooldown/spell/touch/lay_on_hands/proc/by_gods_light_i_smite_you(mob/living/carbon/smiter, mob/living/motherfucker_to_hurt, smite_multiplier) + var/our_smite_multiplier = smite_multiplier + var/evil_smite = HAS_TRAIT(smiter, TRAIT_EVIL) ? TRUE : FALSE + var/divine_champion = smiter.mind?.holy_role >= HOLY_ROLE_PRIEST ? TRUE : FALSE + var/smite_text_to_target = "lays hands on you" + + if(divine_champion || HAS_TRAIT(smiter, TRAIT_SPIRITUAL)) + + // Defaults for possible deity. You know, just in case. + var/possible_deity = evil_smite ? "Satan" : "God" + + var/mob/living/carbon/human/human_smiter = smiter + + // If we have a client, check their deity pref and use that instead of our chaps god if our smiter is a spiritualist + var/client/smiter_client = smiter.client + + if(smiter_client && HAS_TRAIT(smiter, TRAIT_SPIRITUAL)) + possible_deity = smiter_client.prefs?.read_preference(/datum/preference/name/deity) + else if (GLOB.deity) + possible_deity = GLOB.deity + + if(ishuman(human_smiter)) + human_smiter.force_say() + if(evil_smite) + human_smiter.say("in [possible_deity]'s dark name, I COMMAND YOU TO PERISH!!!", forced = "compelled by the power of their deity") + else + human_smiter.say("By [possible_deity]'s might, I SMITE YOU!!!", forced = "compelled by the power of their deity") + our_smite_multiplier *= divine_champion ? 5 : 1 //good luck surviving this if they're a chap + + if(evil_smite) + motherfucker_to_hurt.visible_message(span_warning("[smiter] snaps [smiter.p_their()] fingers in front of [motherfucker_to_hurt]'s face, and [motherfucker_to_hurt]'s body twists violently from an unseen force!")) + motherfucker_to_hurt.apply_damage(10 * our_smite_multiplier, BRUTE, spread_damage = TRUE, wound_bonus = 5 * our_smite_multiplier) + motherfucker_to_hurt.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * our_smite_multiplier, 25 SECONDS) + smiter.emote("snap") + smite_text_to_target = "crushes you psychically with a snap of [smiter.p_their()] fingers" + else + motherfucker_to_hurt.visible_message(span_warning("[smiter] lays hands on [motherfucker_to_hurt], but it shears [motherfucker_to_hurt.p_them()] with a brilliant energy!")) + motherfucker_to_hurt.apply_damage(10 * our_smite_multiplier, BURN, spread_damage = TRUE, wound_bonus = 5 * our_smite_multiplier) + motherfucker_to_hurt.adjust_fire_stacks(3 * our_smite_multiplier) + motherfucker_to_hurt.ignite_mob() + + motherfucker_to_hurt.update_damage_overlays() + + to_chat(motherfucker_to_hurt, span_bolddanger("[smiter] [smite_text_to_target], hurting you!")) + motherfucker_to_hurt.emote("scream") + new /obj/effect/temp_visual/explosion(get_turf(motherfucker_to_hurt), evil_smite ? LIGHT_COLOR_BLOOD_MAGIC : LIGHT_COLOR_HOLY_MAGIC) + . = TRUE + /obj/item/melee/touch_attack/lay_on_hands name = "mending touch" - desc = "Unlike in your favorite tabletop games, you sadly can't cast this on yourself, so you can't use that as a Scapegoat." // mayus is reference. if you get it youre cool + desc = "Unlike in your favorite tabletop games, you sadly can't cast this on yourself, so you can't use that as a Scapegoat." // mayus is reference. if you get it you're cool icon = 'icons/obj/weapons/hand.dmi' icon_state = "greyscale" color = COLOR_VERY_PALE_LIME_GREEN diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index e427b2994f066..542d0d6504672 100644 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -49,6 +49,13 @@ /// Type path of item to go in belt slot var/belt = null + /** + * list of items that should go in the belt of the user + * + * Format of this list should be: list(path=count,otherpath=count) + */ + var/list/belt_contents = null + /// Type path of item to go in ears slot var/ears = null @@ -252,6 +259,14 @@ for(var/i in 1 to number) EQUIP_OUTFIT_ITEM(path, ITEM_SLOT_BACKPACK) + if(belt_contents) + for(var/path in belt_contents) + var/number = belt_contents[path] + if(!isnum(number))//Default to 1 + number = 1 + for(var/i in 1 to number) + EQUIP_OUTFIT_ITEM(path, ITEM_SLOT_BELTPACK) + post_equip(user, visualsOnly) if(!visualsOnly) @@ -354,8 +369,18 @@ preload += suit_store preload += back //Load in backpack gear and shit - for(var/datum/type_to_load in backpack_contents) - for(var/i in 1 to backpack_contents[type_to_load]) + for(var/type_to_load in backpack_contents) + var/num_to_load = backpack_contents[type_to_load] + if(!isnum(num_to_load)) + num_to_load = 1 + for(var/i in 1 to num_to_load) + preload += type_to_load + //Load in belt gear and shit + for(var/type_to_load in belt_contents) + var/num_to_load = belt_contents[type_to_load] + if(!isnum(num_to_load)) + num_to_load = 1 + for(var/i in 1 to num_to_load) preload += type_to_load preload += belt preload += ears @@ -403,6 +428,7 @@ .["l_hand"] = l_hand .["internals_slot"] = internals_slot .["backpack_contents"] = backpack_contents + .["belt_contents"] = belt_contents .["box"] = box .["implants"] = implants .["accessory"] = accessory @@ -430,6 +456,7 @@ l_hand = target.l_hand internals_slot = target.internals_slot backpack_contents = target.backpack_contents + belt_contents = target.belt_contents box = target.box implants = target.implants accessory = target.accessory @@ -473,6 +500,12 @@ var/itype = text2path(item) if(itype) backpack_contents[itype] = backpack[item] + var/list/beltpack = outfit_data["belt_contents"] + belt_contents = list() + for(var/item in beltpack) + var/itype = text2path(item) + if(itype) + belt_contents[itype] = belt[item] box = text2path(outfit_data["box"]) var/list/impl = outfit_data["implants"] implants = list() diff --git a/code/datums/pod_style.dm b/code/datums/pod_style.dm new file mode 100644 index 0000000000000..8888048980cda --- /dev/null +++ b/code/datums/pod_style.dm @@ -0,0 +1,151 @@ +/// Datum holding information about pod type visuals, VFX, name and description +/// These are not created anywhere and thus should not be assigned procs, only being used as data storage +/datum/pod_style + /// Name that pods of this style will be named by default + var/name = "supply pod" + /// Name that is displayed to admins in pod config panel + var/ui_name = "Standard" + /// Description assigned to droppods of this style + var/desc = "A Nanotrasen supply drop pod." + /// Determines if this pod can use animations/masking/overlays + var/shape = POD_SHAPE_NORMAL + /// Base icon state assigned to this pod + var/icon_state = "pod" + /// Whenever this pod should have a door overlay added to it. Uses [icon_state]_door sprite + var/has_door = TRUE + /// Decals added to this pod, if any + var/decal_icon = "default" + /// Color that this pod glows when landing + var/glow_color = "yellow" + /// Type of rubble that this pod creates upon landing + var/rubble_type = RUBBLE_NORMAL + /// ID for TGUI data + var/id = "standard" + +/datum/pod_style/advanced + name = "bluespace supply pod" + ui_name = "Advanced" + desc = "A Nanotrasen Bluespace supply pod. Teleports back to CentCom after delivery." + decal_icon = "bluespace" + glow_color = "blue" + id = "bluespace" + +/datum/pod_style/centcom + name = "\improper CentCom supply pod" + ui_name = "Nanotrasen" + desc = "A Nanotrasen supply pod, this one has been marked with Central Command's designations. Teleports back to CentCom after delivery." + decal_icon = "centcom" + glow_color = "blue" + id = "centcom" + +/datum/pod_style/syndicate + name = "blood-red supply pod" + ui_name = "Syndicate" + desc = "An intimidating supply pod, covered in the blood-red markings of the Syndicate. It's probably best to stand back from this." + icon_state = "darkpod" + decal_icon = "syndicate" + glow_color = "red" + id = "syndicate" + +/datum/pod_style/deathsquad + name = "\improper Deathsquad drop pod" + ui_name = "Deathsquad" + desc = "A Nanotrasen drop pod. This one has been marked the markings of Nanotrasen's elite strike team." + icon_state = "darkpod" + decal_icon = "deathsquad" + glow_color = "blue" + id = "deathsquad" + +/datum/pod_style/cultist + name = "bloody supply pod" + ui_name = "Cultist" + desc = "A Nanotrasen supply pod covered in scratch-marks, blood, and strange runes." + decal_icon = "cultist" + glow_color = "red" + id = "cultist" + +/datum/pod_style/missile + name = "cruise missile" + ui_name = "Missile" + desc = "A big ass missile that didn't seem to fully detonate. It was likely launched from some far-off deep space missile silo. There appears to be an auxiliary payload hatch on the side, though manually opening it is likely impossible." + shape = POD_SHAPE_OTHER + icon_state = "missile" + has_door = FALSE + decal_icon = null + glow_color = null + rubble_type = RUBBLE_THIN + id = "missile" + +/datum/pod_style/missile/syndicate + name = "\improper Syndicate cruise missile" + ui_name = "Syndie Missile" + desc = "A big ass, blood-red missile that didn't seem to fully detonate. It was likely launched from some deep space Syndicate missile silo. There appears to be an auxiliary payload hatch on the side, though manually opening it is likely impossible." + icon_state = "smissile" + id = "syndie_missile" + +/datum/pod_style/box + name = "\improper Aussec supply crate" + ui_name = "Supply Box" + desc = "An incredibly sturdy supply crate, designed to withstand orbital re-entry. Has 'Aussec Armory - 2532' engraved on the side." + shape = POD_SHAPE_OTHER + icon_state = "box" + decal_icon = null + glow_color = null + rubble_type = RUBBLE_WIDE + id = "supply_box" + +/datum/pod_style/clown + name = "\improper HONK pod" + ui_name = "Clown Pod" + desc = "A brightly-colored supply pod. It likely originated from the Clown Federation." + icon_state = "clownpod" + decal_icon = "clown" + glow_color = "green" + id = "clown" + +/datum/pod_style/orange + name = "\improper Orange" + ui_name = "Fruit" + desc = "An angry orange." + shape = POD_SHAPE_OTHER + icon_state = "orange" + decal_icon = null + glow_color = null + rubble_type = RUBBLE_WIDE + id = "orange" + +/datum/pod_style/invisible + name = "\improper S.T.E.A.L.T.H. pod MKVII" + ui_name = "Invisible" + desc = "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?" + shape = POD_SHAPE_OTHER + has_door = FALSE + icon_state = null + decal_icon = null + glow_color = null + rubble_type = RUBBLE_NONE + id = "invisible" + +/datum/pod_style/gondola + name = "gondola" + ui_name = "Gondola" + desc = "The silent walker. This one seems to be part of a delivery agency." + shape = POD_SHAPE_OTHER + icon_state = "gondola" + has_door = FALSE + decal_icon = null + glow_color = null + rubble_type = RUBBLE_NONE + id = "gondola" + +/datum/pod_style/seethrough + name = null + ui_name = "Seethrough" + desc = null + shape = POD_SHAPE_OTHER + has_door = FALSE + icon_state = null + decal_icon = null + glow_color = null + rubble_type = RUBBLE_NONE + id = "seethrough" diff --git a/code/datums/position_point_vector.dm b/code/datums/position_point_vector.dm index c963d0ad76025..b8b697c053bca 100644 --- a/code/datums/position_point_vector.dm +++ b/code/datums/position_point_vector.dm @@ -91,9 +91,9 @@ /datum/point/proc/initialize_location(tile_x, tile_y, tile_z, p_x = 0, p_y = 0) if(!isnull(tile_x)) - x = ((tile_x - 1) * world.icon_size) + world.icon_size * 0.5 + p_x + 1 + x = ((tile_x - 1) * ICON_SIZE_X) + ICON_SIZE_X * 0.5 + p_x + 1 if(!isnull(tile_y)) - y = ((tile_y - 1) * world.icon_size) + world.icon_size * 0.5 + p_y + 1 + y = ((tile_y - 1) * ICON_SIZE_Y) + ICON_SIZE_Y * 0.5 + p_y + 1 if(!isnull(tile_z)) z = tile_z @@ -107,23 +107,23 @@ AM.pixel_y = return_py() /datum/point/proc/return_turf() - return locate(CEILING(x / world.icon_size, 1), CEILING(y / world.icon_size, 1), z) + return locate(CEILING(x / ICON_SIZE_X, 1), CEILING(y / ICON_SIZE_Y, 1), z) /datum/point/proc/return_coordinates() //[turf_x, turf_y, z] - return list(CEILING(x / world.icon_size, 1), CEILING(y / world.icon_size, 1), z) + return list(CEILING(x / ICON_SIZE_X, 1), CEILING(y / ICON_SIZE_Y, 1), z) /datum/point/proc/return_position() return new /datum/position(src) /datum/point/proc/return_px() - return MODULUS(x, world.icon_size) - 16 - 1 + return MODULUS(x, ICON_SIZE_X) - (ICON_SIZE_X/2) - 1 /datum/point/proc/return_py() - return MODULUS(y, world.icon_size) - 16 - 1 + return MODULUS(y, ICON_SIZE_Y) - (ICON_SIZE_Y/2) - 1 /datum/point/vector /// Pixels per iteration - var/speed = 32 + var/speed = ICON_SIZE_ALL var/iteration = 0 var/angle = 0 /// Calculated x movement amounts to prevent having to do trig every step. @@ -149,9 +149,9 @@ /// Same effect as initiliaze_location, but without setting the starting_x/y/z /datum/point/vector/proc/set_location(tile_x, tile_y, tile_z, p_x = 0, p_y = 0) if(!isnull(tile_x)) - x = ((tile_x - 1) * world.icon_size) + world.icon_size * 0.5 + p_x + 1 + x = ((tile_x - 1) * ICON_SIZE_X) + ICON_SIZE_X * 0.5 + p_x + 1 if(!isnull(tile_y)) - y = ((tile_y - 1) * world.icon_size) + world.icon_size * 0.5 + p_y + 1 + y = ((tile_y - 1) * ICON_SIZE_Y) + ICON_SIZE_Y * 0.5 + p_y + 1 if(!isnull(tile_z)) z = tile_z diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index b560a67aa6c90..676cf455bfc51 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -69,8 +69,8 @@ continue progress_bar.listindex-- - progress_bar.bar.pixel_y = world.icon_size + offset_y + (PROGRESSBAR_HEIGHT * (progress_bar.listindex - 1)) - var/dist_to_travel = world.icon_size + offset_y + (PROGRESSBAR_HEIGHT * (progress_bar.listindex - 1)) - PROGRESSBAR_HEIGHT + progress_bar.bar.pixel_y = ICON_SIZE_Y + offset_y + (PROGRESSBAR_HEIGHT * (progress_bar.listindex - 1)) + var/dist_to_travel = ICON_SIZE_Y + offset_y + (PROGRESSBAR_HEIGHT * (progress_bar.listindex - 1)) - PROGRESSBAR_HEIGHT animate(progress_bar.bar, pixel_y = dist_to_travel, time = PROGRESSBAR_ANIMATION_TIME, easing = SINE_EASING) LAZYREMOVEASSOC(user.progressbars, bar_loc, src) @@ -123,7 +123,7 @@ bar.pixel_y = 0 bar.alpha = 0 user_client.images += bar - animate(bar, pixel_y = world.icon_size + offset_y + (PROGRESSBAR_HEIGHT * (listindex - 1)), alpha = 255, time = PROGRESSBAR_ANIMATION_TIME, easing = SINE_EASING) + animate(bar, pixel_y = ICON_SIZE_Y + offset_y + (PROGRESSBAR_HEIGHT * (listindex - 1)), alpha = 255, time = PROGRESSBAR_ANIMATION_TIME, easing = SINE_EASING) ///Updates the progress bar image visually. diff --git a/code/datums/proximity_monitor/field.dm b/code/datums/proximity_monitor/field.dm index 03e7c054d0908..3ba3017bed0a5 100644 --- a/code/datums/proximity_monitor/field.dm +++ b/code/datums/proximity_monitor/field.dm @@ -40,7 +40,7 @@ var/list/old_edge_turfs = edge_turfs field_turfs = new_turfs[FIELD_TURFS_KEY] edge_turfs = new_turfs[EDGE_TURFS_KEY] - if(!full_recalc) + if(full_recalc) field_turfs = list() edge_turfs = list() @@ -62,12 +62,11 @@ for(var/turf/new_turf as anything in field_turfs - old_field_turfs) if(QDELETED(src)) return - field_turfs += new_turf setup_field_turf(new_turf) + for(var/turf/new_turf as anything in edge_turfs - old_edge_turfs) if(QDELETED(src)) return - edge_turfs += new_turf setup_edge_turf(new_turf) /datum/proximity_monitor/advanced/on_initialized(turf/location, atom/created, init_flags) @@ -168,6 +167,7 @@ /obj/item/multitool/field_debug name = "strange multitool" desc = "Seems to project a colored field!" + apc_scanner = FALSE var/operating = FALSE var/range_to_use = 5 var/datum/proximity_monitor/advanced/debug/current = null diff --git a/code/datums/proximity_monitor/fields/gravity.dm b/code/datums/proximity_monitor/fields/gravity.dm index b7e22840041dc..745072d69e10a 100644 --- a/code/datums/proximity_monitor/fields/gravity.dm +++ b/code/datums/proximity_monitor/fields/gravity.dm @@ -63,3 +63,63 @@ /datum/proximity_monitor/advanced/gravity/warns_on_entrance/proc/clear_recent_warning(mob_ref_key) LAZYREMOVE(recently_warned, mob_ref_key) + +/obj/gravity_fluff_field + icon = 'icons/obj/smooth_structures/grav_field.dmi' + icon_state = "grav_field-0" + base_icon_state = "grav_field" + obj_flags = NONE + anchored = TRUE + move_resist = INFINITY + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + pass_flags_self = LETPASSCLICKS + smoothing_flags = SMOOTH_BITMASK + smoothing_groups = SMOOTH_GROUP_GRAV_FIELD + canSmoothWith = SMOOTH_GROUP_GRAV_FIELD + alpha = 200 + /// our emissive appearance + var/mutable_appearance/emissive + +/obj/gravity_fluff_field/Initialize(mapload, strength) + . = ..() + if(isnull(strength)) + return INITIALIZE_HINT_QDEL + QUEUE_SMOOTH(src) + QUEUE_SMOOTH_NEIGHBORS(src) + switch(strength) + if(2 to INFINITY) + particles = new /particles/grav_field_down/strong() + if(1 to 2) + particles = new /particles/grav_field_down() + if(0 to 1) + particles = new /particles/grav_field_float() + if(-INFINITY to -1) + particles = new /particles/grav_field_up() + color = particles.color + RegisterSignal(src, COMSIG_ATOM_SMOOTHED_ICON, PROC_REF(smoothed)) + +/obj/gravity_fluff_field/Destroy(force) + . = ..() + QDEL_NULL(particles) + emissive = null + +/obj/gravity_fluff_field/proc/smoothed(datum/source) + SIGNAL_HANDLER + cut_overlay(emissive) + // because it uses a different name + emissive = emissive_appearance('icons/obj/smooth_structures/grav_field_emissive.dmi', "grav_field_emissive-[splittext(icon_state, "-")[2]]", src) + add_overlay(emissive) + +// Subtype which adds a subtle overlay to all turfs +/datum/proximity_monitor/advanced/gravity/subtle_effect + +/datum/proximity_monitor/advanced/gravity/subtle_effect/setup_field_turf(turf/target) + . = ..() + if(!isopenturf(target)) + return + new /obj/gravity_fluff_field(target, gravity_value) + +/datum/proximity_monitor/advanced/gravity/subtle_effect/cleanup_field_turf(turf/target) + . = ..() + qdel(locate(/obj/gravity_fluff_field) in target) diff --git a/code/datums/proximity_monitor/fields/timestop.dm b/code/datums/proximity_monitor/fields/timestop.dm index 79996dee2dd36..3b8001426a03c 100644 --- a/code/datums/proximity_monitor/fields/timestop.dm +++ b/code/datums/proximity_monitor/fields/timestop.dm @@ -45,13 +45,13 @@ /obj/effect/timestop/Destroy() QDEL_NULL(chronofield) if(!hidden) - playsound(src, 'sound/magic/timeparadox2.ogg', 75, TRUE, frequency = -1) //reverse! + playsound(src, 'sound/effects/magic/timeparadox2.ogg', 75, TRUE, frequency = -1) //reverse! return ..() /obj/effect/timestop/proc/timestop() target = get_turf(src) if(!hidden) - playsound(src, 'sound/magic/timeparadox2.ogg', 75, TRUE, -1) + playsound(src, 'sound/effects/magic/timeparadox2.ogg', 75, TRUE, -1) chronofield = new (src, freezerange, TRUE, immune, antimagic_flags, channelled) if(!channelled) QDEL_IN(src, duration) diff --git a/code/datums/proximity_monitor/fields/void_storm.dm b/code/datums/proximity_monitor/fields/void_storm.dm new file mode 100644 index 0000000000000..c9e3bbbbcff91 --- /dev/null +++ b/code/datums/proximity_monitor/fields/void_storm.dm @@ -0,0 +1,37 @@ +/*! + * Void storm for the void heretic ascension + * + * Follows the heretic around and acts like an aura with damaging effects for non-heretics + */ +/datum/proximity_monitor/advanced/void_storm + edge_is_a_field = TRUE + // lazylist that keeps track of the overlays added + var/list/turf_effects + var/static/image/storm_overlay = image('icons/effects/weather_effects.dmi', "snow_storm") + +/datum/proximity_monitor/advanced/void_storm/New(atom/_host, range, _ignore_if_not_on_turf) + . = ..() + recalculate_field(full_recalc = TRUE) + +/datum/proximity_monitor/advanced/void_storm/recalculate_field(full_recalc) + full_recalc = TRUE // We always perform a full recalc because we need to update ALL the sprites + return ..() + +/datum/proximity_monitor/advanced/void_storm/cleanup_field_turf(turf/target) + . = ..() + var/obj/effect/abstract/effect = LAZYACCESS(turf_effects, target) + LAZYREMOVE(turf_effects, target) + if(effect) + qdel(effect) + +/datum/proximity_monitor/advanced/void_storm/setup_field_turf(turf/target) + . = ..() + var/obj/effect/abstract/effect = new(target) // Makes the field visible to players. + effect.alpha = 255 - get_dist(target, host.loc) * 23 + effect.color = COLOR_BLACK + effect.icon = storm_overlay.icon + effect.icon_state = storm_overlay.icon_state + effect.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + effect.layer = ABOVE_ALL_MOB_LAYER + SET_PLANE(effect, ABOVE_GAME_PLANE, target) + LAZYSET(turf_effects, target, effect) diff --git a/code/datums/quirks/_quirk.dm b/code/datums/quirks/_quirk.dm index 7fb8e9a5cc237..12396387e9e1c 100644 --- a/code/datums/quirks/_quirk.dm +++ b/code/datums/quirks/_quirk.dm @@ -124,10 +124,10 @@ * Used when the quirk has been gained and no client is attached to the mob. */ /datum/quirk/proc/on_quirk_holder_first_login(mob/living/source) - SIGNAL_HANDLER + SIGNAL_HANDLER - UnregisterSignal(source, COMSIG_MOB_LOGIN) - post_add() + UnregisterSignal(source, COMSIG_MOB_LOGIN) + post_add() /// Any effect that should be applied every single time the quirk is added to any mob, even when transferred. /datum/quirk/proc/add(client/client_source) diff --git a/code/datums/quirks/_quirk_constant_data.dm b/code/datums/quirks/_quirk_constant_data.dm index 1984acecec06e..34bde6d9883f2 100644 --- a/code/datums/quirks/_quirk_constant_data.dm +++ b/code/datums/quirks/_quirk_constant_data.dm @@ -35,7 +35,7 @@ GLOBAL_LIST_INIT_TYPED(all_quirk_constant_data, /datum/quirk_constant_data, gene /datum/quirk_constant_data/New() . = ..() - ASSERT(abstract_type != type && !isnull(associated_typepath), "associated_typepath null - please set it! occured on: [src.type]") + ASSERT(abstract_type != type && !isnull(associated_typepath), "associated_typepath null - please set it! occurred on: [src.type]") /// Returns a list of savefile_keys derived from the preference typepaths in [customization_options]. Used in quirks middleware to supply the preferences to render. /datum/quirk_constant_data/proc/get_customization_data() @@ -47,7 +47,7 @@ GLOBAL_LIST_INIT_TYPED(all_quirk_constant_data, /datum/quirk_constant_data, gene var/datum/preference/pref_instance = GLOB.preference_entries[pref_type] if (isnull(pref_instance)) stack_trace("get_customization_data was called before instantiation of [pref_type]!") - continue // just in case its a fluke and its only this one thats not instantiated, we'll check the other pref entries + continue // just in case its a fluke and its only this one that's not instantiated, we'll check the other pref entries customization_data += pref_instance.savefile_key diff --git a/code/datums/quirks/negative_quirks/all_nighter.dm b/code/datums/quirks/negative_quirks/all_nighter.dm index f5288b8221560..cb11ba0d5fa73 100644 --- a/code/datums/quirks/negative_quirks/all_nighter.dm +++ b/code/datums/quirks/negative_quirks/all_nighter.dm @@ -56,15 +56,12 @@ return bodypart_overlay = new() //creates our overlay face.add_bodypart_overlay(bodypart_overlay) - sleepy_head.update_body_parts() //make sure to update icon ///removes the bag overlay /datum/quirk/all_nighter/proc/remove_bags() var/mob/living/carbon/human/sleepy_head = quirk_holder var/obj/item/bodypart/head/face = sleepy_head?.get_bodypart(BODY_ZONE_HEAD) - if(face) - face.remove_bodypart_overlay(bodypart_overlay) - sleepy_head.update_body_parts() + face?.remove_bodypart_overlay(bodypart_overlay) QDEL_NULL(bodypart_overlay) /** diff --git a/code/datums/quirks/negative_quirks/blindness.dm b/code/datums/quirks/negative_quirks/blindness.dm index d0af915dc32b0..54a4f1544740c 100644 --- a/code/datums/quirks/negative_quirks/blindness.dm +++ b/code/datums/quirks/negative_quirks/blindness.dm @@ -1,7 +1,7 @@ /datum/quirk/item_quirk/blindness name = "Blind" desc = "You are completely blind, nothing can counteract this." - icon = FA_ICON_EYE_SLASH + icon = FA_ICON_BLIND value = -16 gain_text = span_danger("You can't see anything.") lose_text = span_notice("You miraculously gain back your vision.") diff --git a/code/datums/quirks/negative_quirks/indebted.dm b/code/datums/quirks/negative_quirks/indebted.dm index 1e30e7800d6d3..eac2cdf5192dd 100644 --- a/code/datums/quirks/negative_quirks/indebted.dm +++ b/code/datums/quirks/negative_quirks/indebted.dm @@ -30,7 +30,7 @@ quirk_holder.client.give_award(/datum/award/achievement/misc/debt_extinguished, quirk_holder) podspawn(list( "target" = get_turf(quirk_holder), - "style" = STYLE_BLUESPACE, + "style" = /datum/pod_style/advanced, "spawn" = /obj/item/clothing/accessory/debt_payer_pin, )) diff --git a/code/datums/quirks/negative_quirks/paraplegic.dm b/code/datums/quirks/negative_quirks/paraplegic.dm index 58e1c4ba31e87..1cbb2dbac1017 100644 --- a/code/datums/quirks/negative_quirks/paraplegic.dm +++ b/code/datums/quirks/negative_quirks/paraplegic.dm @@ -9,6 +9,10 @@ hardcore_value = 15 mail_goodies = list(/obj/vehicle/ridden/wheelchair/motorized) //yes a fullsized unfolded motorized wheelchair does fit +/datum/quirk_constant_data/paraplegic + associated_typepath = /datum/quirk/paraplegic + customization_options = list(/datum/preference/choiced/paraplegic) + /datum/quirk/paraplegic/add_unique(client/client_source) if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. quirk_holder.buckled.unbuckle_mob(quirk_holder) @@ -32,6 +36,16 @@ if(dropped_item.fingerprintslast == quirk_holder.ckey) quirk_holder.put_in_hands(dropped_item) + // Finally, removes their legs if they have opted as such, deleting the shoes + var/amputee = GLOB.paraplegic_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/paraplegic)] + if(amputee) + delete_legs(quirk_holder) + +/datum/quirk/paraplegic/proc/delete_legs(mob/living/carbon/human/human_holder) + qdel(human_holder.get_item_by_slot(ITEM_SLOT_FEET)) + qdel(human_holder.get_bodypart(BODY_ZONE_L_LEG)) + qdel(human_holder.get_bodypart(BODY_ZONE_R_LEG)) + /datum/quirk/paraplegic/add(client/client_source) var/mob/living/carbon/human/human_holder = quirk_holder human_holder.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic, TRAUMA_RESILIENCE_ABSOLUTE) diff --git a/code/datums/quirks/negative_quirks/prosopagnosia.dm b/code/datums/quirks/negative_quirks/prosopagnosia.dm index 8634e13bf638c..9b41713e6cef9 100644 --- a/code/datums/quirks/negative_quirks/prosopagnosia.dm +++ b/code/datums/quirks/negative_quirks/prosopagnosia.dm @@ -7,3 +7,19 @@ medical_record_text = "Patient suffers from prosopagnosia and cannot recognize faces." hardcore_value = 5 mail_goodies = list(/obj/item/skillchip/appraiser) // bad at recognizing faces but good at recognizing IDs + +/datum/quirk/prosopagnosia/add(client/client_source) + RegisterSignal(quirk_holder, COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER, PROC_REF(screentip_name_override)) + quirk_holder.mob_flags |= MOB_HAS_SCREENTIPS_NAME_OVERRIDE + +/datum/quirk/prosopagnosia/remove() + UnregisterSignal(quirk_holder, COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER) + +/datum/quirk/prosopagnosia/proc/screentip_name_override(datum/source, list/returned_name, obj/item/held_item, atom/hovered) + SIGNAL_HANDLER + + if(!ishuman(hovered)) + return NONE + + returned_name[1] = "Unknown" + return SCREENTIP_NAME_SET diff --git a/code/datums/quirks/negative_quirks/prosthetic_organ.dm b/code/datums/quirks/negative_quirks/prosthetic_organ.dm index cd7ca2a801481..4a377699b40ac 100644 --- a/code/datums/quirks/negative_quirks/prosthetic_organ.dm +++ b/code/datums/quirks/negative_quirks/prosthetic_organ.dm @@ -60,9 +60,9 @@ medical_record_text = "During physical examination, patient was found to have a low-budget prosthetic [slot_string]. \ Removal of these organs is known to be dangerous to the patient as well as the practitioner." old_organ = human_holder.get_organ_slot(organ_slot) - if(prosthetic.Insert(human_holder, special = TRUE)) - old_organ.moveToNullspace() - STOP_PROCESSING(SSobj, old_organ) + prosthetic.Insert(human_holder, special = TRUE) + old_organ.moveToNullspace() + STOP_PROCESSING(SSobj, old_organ) /datum/quirk/prosthetic_organ/post_add() to_chat(quirk_holder, span_boldannounce("Your [slot_string] has been replaced with a surplus organ. It is weak and highly unstable. \ diff --git a/code/datums/quirks/negative_quirks/scarred_eye.dm b/code/datums/quirks/negative_quirks/scarred_eye.dm new file mode 100644 index 0000000000000..49628545cfa0d --- /dev/null +++ b/code/datums/quirks/negative_quirks/scarred_eye.dm @@ -0,0 +1,63 @@ +/datum/quirk/item_quirk/scarred_eye + name = "Scarred Eye" + desc = "An accident in your past has cost you one of your eyes, but you got a cool eyepatch. Yarr!" + icon = FA_ICON_EYE_SLASH + value = -2 + gain_text = span_danger("After all this time, your eye still stings a bit...") + lose_text = span_notice("Your peripherial vision grows by about thirty percent.") + medical_record_text = "Patient has severe scarring on one of their eyes, resulting in partial vision loss." + hardcore_value = 2 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE + mail_goodies = list(/obj/item/reagent_containers/cup/glass/bottle/rum, /obj/item/clothing/mask/bandana/red) + +/datum/quirk_constant_data/eye_scarring + associated_typepath = /datum/quirk/item_quirk/scarred_eye + customization_options = list(/datum/preference/choiced/scarred_eye) + +/datum/quirk/item_quirk/scarred_eye/add_unique(client/client_source) + if (client_source?.prefs.read_preference(/datum/preference/choiced/scarred_eye) == "Double") + give_item_to_holder(new /obj/item/clothing/glasses/blindfold/white(get_turf(quirk_holder)), list( + LOCATION_EYES = ITEM_SLOT_EYES, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + )) + return + + var/mob/living/carbon/human/human_holder = quirk_holder + var/obj/item/clothing/glasses/eyepatch/eyepatch = new(get_turf(quirk_holder)) + if (human_holder.get_eye_scars() & LEFT_EYE_SCAR) + eyepatch.flip_eyepatch() + give_item_to_holder(eyepatch, list( + LOCATION_EYES = ITEM_SLOT_EYES, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + )) + +/datum/quirk/item_quirk/scarred_eye/add(client/client_source) + var/mob/living/carbon/human/human_owner = quirk_holder + var/obj/item/organ/internal/eyes/eyes = human_owner.get_organ_slot(ORGAN_SLOT_EYES) + if (isnull(eyes)) + return + + var/eye_side = client_source?.prefs.read_preference(/datum/preference/choiced/scarred_eye) || "Random" + + if (eye_side == "Double") + eyes.apply_scar(RIGHT_EYE_SCAR) + eyes.apply_scar(LEFT_EYE_SCAR) + return + + switch (eye_side) + if ("Random") + eye_side = pick(RIGHT_EYE_SCAR, LEFT_EYE_SCAR) + if ("Right Eye") + eye_side = RIGHT_EYE_SCAR + if ("Left Eye") + eye_side = LEFT_EYE_SCAR + eyes.apply_scar(eye_side) + +/datum/quirk/item_quirk/scarred_eye/remove() + var/mob/living/carbon/human/human_owner = quirk_holder + var/obj/item/organ/internal/eyes/eyes = human_owner.get_organ_slot(ORGAN_SLOT_EYES) + if (!isnull(eyes)) + eyes.fix_scar(RIGHT_EYE_SCAR) + eyes.fix_scar(LEFT_EYE_SCAR) diff --git a/code/datums/quirks/neutral_quirks/evil.dm b/code/datums/quirks/neutral_quirks/evil.dm new file mode 100644 index 0000000000000..6753a7d034cfd --- /dev/null +++ b/code/datums/quirks/neutral_quirks/evil.dm @@ -0,0 +1,12 @@ +/datum/quirk/evil + name = "Fundamentally Evil" + desc = "Where you would have a soul is but an ink-black void. While you are committed to maintaining your social standing, \ + anyone who stares too long into your cold, uncaring eyes will know the truth. You are truly evil. There is nothing \ + wrong with you. You chose to be evil, committed to it. Your ambitions come first above all." + icon = FA_ICON_HAND_MIDDLE_FINGER + value = 0 + mob_trait = TRAIT_EVIL + gain_text = span_notice("You shed what little remains of your humanity. You have work to do.") + lose_text = span_notice("You suddenly care more about others and their needs.") + medical_record_text = "Patient has passed all our social fitness tests with flying colours, but had trouble on the empathy tests." + mail_goodies = list(/obj/item/food/grown/citrus/lemon) diff --git a/code/datums/quirks/neutral_quirks/monochromatic.dm b/code/datums/quirks/neutral_quirks/monochromatic.dm index dd66220cb56a9..ef6735df25d93 100644 --- a/code/datums/quirks/neutral_quirks/monochromatic.dm +++ b/code/datums/quirks/neutral_quirks/monochromatic.dm @@ -17,7 +17,7 @@ /datum/quirk/monochromatic/post_add() if(is_detective_job(quirk_holder.mind.assigned_role)) to_chat(quirk_holder, span_boldannounce("Mmm. Nothing's ever clear on this station. It's all shades of gray...")) - quirk_holder.playsound_local(quirk_holder, 'sound/ambience/ambidet1.ogg', 50, FALSE) + quirk_holder.playsound_local(quirk_holder, 'sound/ambience/security/ambidet1.ogg', 50, FALSE) /datum/quirk/monochromatic/remove() quirk_holder.remove_client_colour(/datum/client_colour/monochrome) diff --git a/code/datums/quirks/neutral_quirks/transhumanist.dm b/code/datums/quirks/neutral_quirks/transhumanist.dm index ea6494a6b327b..aa8ae075df395 100644 --- a/code/datums/quirks/neutral_quirks/transhumanist.dm +++ b/code/datums/quirks/neutral_quirks/transhumanist.dm @@ -127,10 +127,10 @@ else if(isorgan(new_part)) var/obj/item/organ/new_organ = new_part old_part = human_holder.get_organ_slot(new_organ.slot) - if(new_organ.Insert(human_holder, special = TRUE)) - old_part.moveToNullspace() - STOP_PROCESSING(SSobj, old_part) - slot_string = new_organ.name + new_organ.Insert(human_holder, special = TRUE) + old_part.moveToNullspace() + STOP_PROCESSING(SSobj, old_part) + slot_string = new_organ.name /datum/quirk/transhumanist/post_add() if(!slot_string) diff --git a/code/datums/quirks/neutral_quirks/vegetarian.dm b/code/datums/quirks/neutral_quirks/vegetarian.dm index 0ade72acafe57..0568e2f1e2293 100644 --- a/code/datums/quirks/neutral_quirks/vegetarian.dm +++ b/code/datums/quirks/neutral_quirks/vegetarian.dm @@ -7,17 +7,4 @@ lose_text = span_notice("You feel like eating meat isn't that bad.") medical_record_text = "Patient reports a vegetarian diet." mail_goodies = list(/obj/effect/spawner/random/food_or_drink/salad) - -/datum/quirk/vegetarian/add(client/client_source) - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.liked_foodtypes &= ~MEAT - tongue.disliked_foodtypes |= MEAT - -/datum/quirk/vegetarian/remove() - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.liked_foodtypes = initial(tongue.liked_foodtypes) - tongue.disliked_foodtypes = initial(tongue.disliked_foodtypes) + mob_trait = TRAIT_VEGETARIAN diff --git a/code/datums/quirks/positive_quirks/chip_connector.dm b/code/datums/quirks/positive_quirks/chip_connector.dm new file mode 100644 index 0000000000000..c12809bbfd2ef --- /dev/null +++ b/code/datums/quirks/positive_quirks/chip_connector.dm @@ -0,0 +1,28 @@ +/datum/quirk/chip_connector + name = "Chip Connector" + desc = "You had a device installed that lets you manually add and remove skillchips! Just try not to get near any electromagnetic pulses." + icon = FA_ICON_PLUG + value = 4 + gain_text = span_notice("You feel CONNECTED.") + lose_text = span_danger("You don't feel so CONNECTED anymore.") + medical_record_text = "Patient has a cybernetic implant on their back of their head that lets them install and remove skillchips at will. Gross." + mail_goodies = list() + var/obj/item/organ/internal/cyberimp/brain/connector/connector + +/datum/quirk/chip_connector/New() + . = ..() + mail_goodies = assoc_to_keys(GLOB.quirk_chipped_choice) + /datum/quirk/chipped::mail_goodies + +/datum/quirk/chip_connector/add_unique(client/client_source) + . = ..() + var/mob/living/carbon/carbon_holder = quirk_holder + if(!iscarbon(quirk_holder)) + return + connector = new() + connector.Insert(carbon_holder, special = TRUE) + +/datum/quirk/chip_connector/post_add() + to_chat(quirk_holder, span_boldannounce(desc)) // efficiency is clever laziness + +/datum/quirk/chip_connector/remove() + qdel(connector) diff --git a/code/datums/quirks/positive_quirks/chipped.dm b/code/datums/quirks/positive_quirks/chipped.dm new file mode 100644 index 0000000000000..30c226c130031 --- /dev/null +++ b/code/datums/quirks/positive_quirks/chipped.dm @@ -0,0 +1,57 @@ +/datum/quirk/chipped + name = "Chipped" + desc = "You got caught up in the skillchip craze a few years back, and had one of the commercially available chips implanted into yourself." + icon = FA_ICON_MICROCHIP + value = 2 + gain_text = span_notice("The chip in your head itches a bit.") + lose_text = span_danger("You don't feel so chipped anymore..") + medical_record_text = "Patient explained how they got caught up in 'the skillchip chase' recently, and now the chip in they head itches every so often. Dumbass." + mail_goodies = list( + /obj/item/skillchip/matrix_taunt, + /obj/item/skillchip/big_pointer, + /obj/item/skillchip/acrobatics, + /obj/item/storage/pill_bottle/mannitol/braintumor, + ) + /// Variable that holds the chip, used on removal. + var/obj/item/skillchip/installed_chip + var/datum/callback/itchy_timer + +/datum/quirk_constant_data/chipped + associated_typepath = /datum/quirk/chipped + customization_options = list(/datum/preference/choiced/chipped) + +/datum/quirk/chipped/add_to_holder(mob/living/new_holder, quirk_transfer, client/client_source) + var/obj/item/skillchip/chip_pref = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)] + + if(!chip_pref) + return ..() + + gain_text = span_notice("The [chip_pref] in your head itches a bit.") + lose_text = span_notice("Your head stops itching so much.") + return ..() + +/datum/quirk/chipped/add_unique(client/client_source) + + var/preferred_chip = GLOB.quirk_chipped_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/chipped)] + if(isnull(preferred_chip)) //Client is gone or they chose a random chip + preferred_chip = GLOB.quirk_chipped_choice[pick(GLOB.quirk_chipped_choice)] + + var/mob/living/carbon/quirk_holder_carbon = quirk_holder + if(iscarbon(quirk_holder)) + installed_chip = new preferred_chip() + quirk_holder_carbon.implant_skillchip(installed_chip, force = TRUE) + installed_chip.try_activate_skillchip(silent = FALSE, force = TRUE) + + var/obj/item/organ/internal/brain/itchy_brain = quirk_holder.get_organ_by_type(ORGAN_SLOT_BRAIN) + itchy_timer = addtimer(CALLBACK(src, PROC_REF(cause_itchy), itchy_brain), rand(5 SECONDS, 10 MINUTES)) // they get The Itch from a poor quality install every so often + +/datum/quirk/chipped/remove() + qdel(installed_chip) + deltimer(itchy_timer) + . = ..() + +/datum/quirk/chipped/proc/cause_itchy(obj/item/organ/internal/brain/itchy_brain) + + itchy_brain.apply_organ_damage(rand(1, 5), maximum = itchy_brain.maxHealth * 0.3) + to_chat(itchy_brain.owner, span_warning("Your [itchy_brain] itches.")) + itchy_timer = addtimer(CALLBACK(itchy_brain, PROC_REF(cause_itchy)), rand(5 SECONDS, 10 MINUTES)) // it will never end diff --git a/code/datums/quirks/positive_quirks/friendly.dm b/code/datums/quirks/positive_quirks/friendly.dm index 8ab0003639bc3..943bc2c4b8457 100644 --- a/code/datums/quirks/positive_quirks/friendly.dm +++ b/code/datums/quirks/positive_quirks/friendly.dm @@ -9,3 +9,15 @@ quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED medical_record_text = "Patient demonstrates low-inhibitions for physical contact and well-developed arms. Requesting another doctor take over this case." mail_goodies = list(/obj/item/storage/box/hug) + +/datum/quirk/friendly/add_unique(client/client_source) + var/mob/living/carbon/human/human_quirkholder = quirk_holder + var/obj/item/organ/internal/heart/holder_heart = human_quirkholder.get_organ_slot(ORGAN_SLOT_HEART) + if(isnull(holder_heart) || isnull(holder_heart.reagents)) + return + holder_heart.reagents.maximum_volume = 20 + // We have a bigger heart full of love! + holder_heart.reagents.add_reagent(/datum/reagent/love, 2.5) + // Like, physically bigger. + holder_heart.reagents.add_reagent(/datum/reagent/consumable/nutriment, 5) + holder_heart.transform = holder_heart.transform.Scale(1.5) diff --git a/code/datums/quirks/positive_quirks/spacer.dm b/code/datums/quirks/positive_quirks/spacer.dm index 4be27fe16b2e2..344462703e906 100644 --- a/code/datums/quirks/positive_quirks/spacer.dm +++ b/code/datums/quirks/positive_quirks/spacer.dm @@ -4,7 +4,7 @@ /datum/quirk/spacer_born name = "Spacer" desc = "You were born in space, and have never known the comfort of a planet's gravity. Your body has adapted to this. \ - You are more comfortable in zero and artifical gravity and are more resistant to the effects of space, \ + You are more comfortable in zero and artificial gravity and are more resistant to the effects of space, \ but travelling to a planet's surface for an extended period of time will make you feel sick." gain_text = span_notice("You feel at home in space.") lose_text = span_danger("You feel homesick.") @@ -43,7 +43,7 @@ check_z(quirk_holder, skip_timers = TRUE) // drift slightly faster through zero G - quirk_holder.inertia_move_delay *= 0.8 + quirk_holder.inertia_move_multiplier *= 0.8 var/mob/living/carbon/human/human_quirker = quirk_holder human_quirker.set_mob_height(modded_height) @@ -73,7 +73,7 @@ if(QDELING(quirk_holder)) return - quirk_holder.inertia_move_delay /= 0.8 + quirk_holder.inertia_move_multiplier /= 0.8 quirk_holder.clear_mood_event("spacer") quirk_holder.remove_movespeed_modifier(/datum/movespeed_modifier/spacer) quirk_holder.remove_status_effect(/datum/status_effect/spacer) diff --git a/code/datums/records/crime.dm b/code/datums/records/crime.dm index a22ce7c816ad2..729b85c56b8e3 100644 --- a/code/datums/records/crime.dm +++ b/code/datums/records/crime.dm @@ -12,6 +12,8 @@ var/time /// Whether the crime is active or not var/valid = TRUE + /// Player that marked the crime as invalid + var/voider /datum/crime/New(name = "Crime", details = "No details provided.", author = "Anonymous") src.author = author diff --git a/code/datums/records/manifest.dm b/code/datums/records/manifest.dm index fc2bb30ce8d32..afc5cef6aa4ec 100644 --- a/code/datums/records/manifest.dm +++ b/code/datums/records/manifest.dm @@ -31,7 +31,7 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new) var/name = target.name var/rank = target.rank // user-visible job var/trim = target.trim // internal jobs by trim type - var/datum/job/job = SSjob.GetJob(trim) + var/datum/job/job = SSjob.get_job(trim) if(!job || !(job.job_flags & JOB_CREW_MANIFEST) || !LAZYLEN(job.departments_list)) // In case an unlawful custom rank is added. var/list/misc_list = manifest_out[DEPARTMENT_UNASSIGNED] misc_list[++misc_list.len] = list( diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index 14909ab0861f5..ef241d61127ba 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -61,10 +61,16 @@ description = "Moffuchi's Family Pizzeria chain has a reputation for providing affordable artisanal meals of questionable edibility. This particular pizzeria seems to have been abandoned for some time." suffix = "icemoon_surface_pizza.dmm" +/datum/map_template/ruin/icemoon/Lodge + name = "Ice-Ruin Hunters Lodge" + id = "lodge" + description = "An old hunting hunting lodge. I wonder if anyone is still home?" + suffix = "icemoon_surface_lodge.dmm" + /datum/map_template/ruin/icemoon/frozen_phonebooth name = "Ice-Ruin Frozen Phonebooth" id = "frozen_phonebooth" - description = "A venture by nanotrasen to help popularize the use of holopads. This one was sent to a icemoon." + description = "A venture by Nanotrasen to help popularize the use of holopads. This one was sent to a icemoon." suffix = "icemoon_surface_phonebooth.dmm" /datum/map_template/ruin/icemoon/smoking_room @@ -160,6 +166,12 @@ description = "This is where all of your paychecks went. Signed, the management." suffix = "icemoon_underground_mailroom.dmm" +/datum/map_template/ruin/icemoon/underground/biodome + name = "Ice-Ruin Syndicate Bio-Dome" + id = "biodome" + description = "Unchecked experimention gone awry." + suffix = "icemoon_underground_syndidome.dmm" + /datum/map_template/ruin/icemoon/underground/frozen_comms name = "Ice-Ruin Frozen Communicatons Outpost" id = "frozen_comms" @@ -167,11 +179,17 @@ suffix = "icemoon_underground_frozen_comms.dmm" /datum/map_template/ruin/icemoon/underground/comms_agent - name = "Icemoon Listening Post" + name = "Ice-Ruin Listening Post" id = "icemoon_comms_agent" description = "Radio signals are being detected and the source is this completely innocent pile of snow." suffix = "icemoon_underground_comms_agent.dmm" +/datum/map_template/ruin/icemoon/underground/syndie_lab + name = "Ice-Ruin Syndicate Lab" + id = "syndie_lab" + description = "A small laboratory and living space for Syndicate agents." + suffix = "icemoon_underground_syndielab.dmm" + //TODO: Bottom-Level ONLY Spawns after Refactoring Related Code /datum/map_template/ruin/icemoon/underground/plasma_facility name = "Ice-Ruin Abandoned Plasma Facility" diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 2cde66f187d14..fb2d1d44c0c08 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -278,7 +278,7 @@ /datum/map_template/ruin/lavaland/lava_phonebooth name = "Lava-Ruin Phonebooth" id = "lava_phonebooth" - description = "A venture by nanotrasen to help popularize the use of holopads. This one somehow made its way here." + description = "A venture by Nanotrasen to help popularize the use of holopads. This one somehow made its way here." suffix = "lavaland_surface_phonebooth.dmm" allow_duplicates = FALSE cost = 5 @@ -323,3 +323,10 @@ description = "Not every shuttle makes it back to CentCom." suffix = "lavaland_surface_shuttle_wreckage.dmm" allow_duplicates = FALSE + +/datum/map_template/ruin/lavaland/crashsite + name = "Lava-Ruin Pod Crashsite" + id = "crashsite" + description = "They launched too early" + suffix = "lavaland_surface_crashsite.dmm" + allow_duplicates = FALSE diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 76ac14cef5c92..f2d76d9b86e6e 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -49,7 +49,7 @@ id = "asteroid6" suffix = "asteroid6.dmm" name = "Space-Ruin Asteroid 6" - description = "This asteroid has brittle bone disease, so it is fortunate asteroids dont have bones." + description = "This asteroid has brittle bone disease, so it is fortunate asteroids don't have bones." /datum/map_template/ruin/space/deep_storage id = "deep-storage" @@ -70,7 +70,7 @@ suffix = "derelict_construction.dmm" name = "Space-Ruin Derelict Construction" description = "Construction supplies are in high demand due to non-trivial damage routinely sustained by most space stations in this sector. \ - Space pirates who dont attempt to rob corporate research stations with only 3 collaborators live long enough to sell captured construction \ + Space pirates who don't attempt to rob corporate research stations with only 3 collaborators live long enough to sell captured construction \ equipment back to the highest bidder." /datum/map_template/ruin/space/derelict_sulaco @@ -181,7 +181,7 @@ id = "spacehotel" suffix = "spacehotel.dmm" name = "Space-Ruin The Twin-Nexus Hotel" - description = "An interstellar hotel, where the weary spaceman can rest their head and relax, assured that the residental staff will not murder them in their sleep. Probably." + description = "An interstellar hotel, where the weary spaceman can rest their head and relax, assured that the residential staff will not murder them in their sleep. Probably." /datum/map_template/ruin/space/turreted_outpost id = "turreted-outpost" @@ -470,7 +470,7 @@ id = "Space_phonebooth" suffix = "phonebooth.dmm" name = "Space-Ruin Phonebooth" - description = "A venture by nanotrasen to help popularize the use of holopads." + description = "A venture by Nanotrasen to help popularize the use of holopads." /datum/map_template/ruin/space/the_outlet id = "the_outlet" @@ -500,7 +500,7 @@ id = "garbagetruck3" suffix = "garbagetruck3.dmm" name = "Space-Ruin Decommissioned Garbage Truck NX3" - description = "An NX-760 interstellar transport barge. At the end of their life cycle, they are often filled with trash and launched into unexplored space to become someone else's problem. This one is full of industrial garbage, and a russian drug den." + description = "An NX-760 interstellar transport barge. At the end of their life cycle, they are often filled with trash and launched into unexplored space to become someone else's problem. This one is full of industrial garbage, and a Russian drug den." /datum/map_template/ruin/space/garbagetruck4 id = "garbagetruck4" @@ -508,3 +508,30 @@ name = "Space-Ruin Decommissioned Garbage Truck NX4" description = "An NX-760 interstellar transport barge. At the end of their life cycle, they are often filled with trash and launched into unexplored space to become someone else's problem. This one is full of commercial trash, and spiders." +/datum/map_template/ruin/space/hauntedtradingpost + id = "hauntedtradingpost" + suffix = "hauntedtradingpost.dmm" + name = "Space-Ruin Donk Co. Interstellar Trading Post 6016" + description = "A small station for trading ships to dock at. It's been abandoned for some time, but its security systems have kept looters away. Rumored to be haunted." + +/datum/map_template/ruin/space/commsbuoy + id = "commsbuoy" + suffix = "commsbuoy_lowtech.dmm" + name = "Kosmokomm Communications Buoy" + description = "One of the SSC's many Comms Buoys, acting as a broadcaster, receiver and relay for interstellar communications. Due to the \ + shoddy tech available, it does not enable local communications." + +/datum/map_template/ruin/space/commsbuoy_pirate + id = "commsbuoy_pirate" + suffix = "commsbuoy_pirate.dmm" + name = "Pirated Communications Buoy" + description = "A Comms Buoy satellite that has been hijacked by local criminal elements, acting as a broadcaster, receiver and relay for \ + evil interstellar communications. Due to the shoddy tech available, it does not enable local communications." + +/datum/map_template/ruin/space/commsbuoy_nt + id = "commsbuoy_nt" + suffix = "commsbuoy_nt.dmm" + name = "Nanotrasen Model-7 Communications Buoy" + description = "One of Nanotrasen's highly advanced Communication Buoys. Besides acting as a broadcaster, receiver and relay for interstellar \ + communications, the satellite also includes a Local-Network array and two multi-function satellite dishes, providing the local sector with \ + connectivity - as long as you have your Employee ID handy. Though, this one has been reported to have some recent malfunctions." diff --git a/code/datums/shuttles/_shuttle.dm b/code/datums/shuttles/_shuttle.dm index 0100a3d85da3d..94c20d41b7365 100644 --- a/code/datums/shuttles/_shuttle.dm +++ b/code/datums/shuttles/_shuttle.dm @@ -14,7 +14,7 @@ var/description /// The recommended occupancy limit for the shuttle (count chairs, beds, and benches then round to 5) var/occupancy_limit - /// Description of the prerequisition that has to be achieved for the shuttle to be purchased + /// Description of the prerequisite that has to be achieved for the shuttle to be purchased var/prerequisites /// Shuttle warnings and hazards to the admin who spawns the shuttle var/admin_notes @@ -40,7 +40,7 @@ . = ..() /datum/map_template/shuttle/preload_size(path, cache) - . = ..(path, TRUE) // Done this way because we still want to know if someone actualy wanted to cache the map + . = ..(path, TRUE) // Done this way because we still want to know if someone actually wanted to cache the map if(!cached_map) return diff --git a/code/datums/shuttles/arrival.dm b/code/datums/shuttles/arrival.dm index 376de809afa23..645147ee5ba67 100644 --- a/code/datums/shuttles/arrival.dm +++ b/code/datums/shuttles/arrival.dm @@ -26,10 +26,6 @@ suffix = "pubby" name = "arrival shuttle (Pubby)" -/datum/map_template/shuttle/arrival/omega - suffix = "omega" - name = "arrival shuttle (Omega)" - /datum/map_template/shuttle/arrival/northstar suffix = "northstar" name = "arrival shuttle (North Star)" diff --git a/code/datums/shuttles/cargo.dm b/code/datums/shuttles/cargo.dm index a18b7a4ac9af7..8f5d83619f416 100644 --- a/code/datums/shuttles/cargo.dm +++ b/code/datums/shuttles/cargo.dm @@ -11,10 +11,6 @@ suffix = "birdboat" name = "supply shuttle (Birdboat)" -/datum/map_template/shuttle/cargo/donut - suffix = "donut" - name = "supply shuttle (Donut)" - /datum/map_template/shuttle/cargo/pubby suffix = "pubby" name = "supply shuttle (Pubby)" diff --git a/code/datums/shuttles/emergency.dm b/code/datums/shuttles/emergency.dm index 0f45a0c6a08b4..3662727fa5c9a 100644 --- a/code/datums/shuttles/emergency.dm +++ b/code/datums/shuttles/emergency.dm @@ -31,13 +31,13 @@ mobile.event_list.Cut() if(use_all_events) for(var/path in events) - mobile.event_list.Add(new path(mobile)) + mobile.add_shuttle_event(path) events -= path else for(var/i in 1 to event_amount) var/path = pick_weight(events) events -= path - mobile.event_list.Add(new path(mobile)) + mobile.add_shuttle_event(path) /datum/map_template/shuttle/emergency/backup suffix = "backup" @@ -90,7 +90,7 @@ suffix = "bar" name = "The Emergency Escape Bar" description = "Features include sentient bar staff (a Bardrone and a Barmaid), bathroom, a quality lounge for the heads, and a large gathering table." - admin_notes = "Bardrone and Barmaid are GODMODE, will be automatically sentienced by the fun balloon at 60 seconds before arrival. \ + admin_notes = "Bardrone and Barmaid have TRAIT_GODMODE (basically invincibility), will be automatically sentienced by the fun balloon at 60 seconds before arrival. \ Has medical facilities." credit_cost = CARGO_CRATE_VALUE * 10 occupancy_limit = "30" @@ -164,7 +164,7 @@ /datum/map_template/shuttle/emergency/arena suffix = "arena" name = "The Arena" - description = "The crew must pass through an otherworldy arena to board this shuttle. Expect massive casualties." + description = "The crew must pass through an otherworldly arena to board this shuttle. Expect massive casualties." prerequisites = "The source of the Bloody Signal must be tracked down and eliminated to unlock this shuttle." admin_notes = "RIP AND TEAR." credit_cost = CARGO_CRATE_VALUE * 20 @@ -241,7 +241,7 @@ suffix = "kilo" name = "Kilo Station Emergency Shuttle" credit_cost = CARGO_CRATE_VALUE * 10 - description = "A fully functional shuttle including a complete infirmary, storage facilties and regular amenities." + description = "A fully functional shuttle including a complete infirmary, storage facilities and regular amenities." occupancy_limit = "55" /datum/map_template/shuttle/emergency/mini @@ -400,15 +400,15 @@ /datum/map_template/shuttle/emergency/monkey suffix = "nature" name = "Dynamic Environmental Interaction Shuttle" - description = "A large shuttle with a center biodome that is flourishing with life. Frolick with the monkeys! (Extra monkeys are stored on the bridge.)" - admin_notes = "Pretty freakin' large, almost as big as Raven or Cere. Excercise caution with it." + description = "A large shuttle with a center biodome that is flourishing with life. Frolic with the monkeys! (Extra monkeys are stored on the bridge.)" + admin_notes = "Pretty freakin' large, almost as big as Raven or Cere. Exercise caution with it." credit_cost = CARGO_CRATE_VALUE * 16 occupancy_limit = "45" /datum/map_template/shuttle/emergency/casino suffix = "casino" name = "Lucky Jackpot Casino Shuttle" - description = "A luxurious casino packed to the brim with everything you need to start new gambling addicitions!" + description = "A luxurious casino packed to the brim with everything you need to start new gambling addictions!" admin_notes = "The ship is a bit chunky, so watch where you park it." credit_cost = 7777 occupancy_limit = "85" @@ -424,7 +424,7 @@ /datum/map_template/shuttle/emergency/fish suffix = "fish" name = "Angler's Choice Emergency Shuttle" - description = "Trades such amenities as 'storage space' and 'sufficient seating' for an artifical environment ideal for fishing, plus ample supplies (also for fishing)." + description = "Trades such amenities as 'storage space' and 'sufficient seating' for an artificial environment ideal for fishing, plus ample supplies (also for fishing)." admin_notes = "There's a chasm in it, it has railings but that won't stop determined players." credit_cost = CARGO_CRATE_VALUE * 10 occupancy_limit = "35" @@ -432,7 +432,7 @@ /datum/map_template/shuttle/emergency/lance suffix = "lance" name = "The Lance Crew Evacuation System" - description = "A brand new shuttle by Nanotrasen's finest in shuttle-engineering, it's designed to tactically slam into a destroyed station, dispatching threats and saving crew at the same time! Be careful to stay out of it's path." + description = "A brand new shuttle by Nanotrasen's finest in shuttle-engineering, it's designed to tactically slam into a destroyed station, dispatching threats and saving crew at the same time! Be careful to stay out of its path." admin_notes = "WARNING: This shuttle is designed to crash into the station. It has turrets, similar to the raven." credit_cost = CARGO_CRATE_VALUE * 70 occupancy_limit = "50" diff --git a/code/datums/shuttles/ferry.dm b/code/datums/shuttles/ferry.dm index e4f540992ff06..a0d3eac82d971 100644 --- a/code/datums/shuttles/ferry.dm +++ b/code/datums/shuttles/ferry.dm @@ -33,8 +33,3 @@ suffix = "kilo" name = "kilo transport ferry" description = "Standard issue CentCom Ferry for Kilo pattern stations. Includes additional equipment and rechargers." - -/datum/map_template/shuttle/ferry/northstar - suffix = "northstar" - name = "north star transport ferry" - description = "In the very depths of the frontier, you'll need a rugged shuttle capable of delivering crew, this is that." diff --git a/code/datums/signals.dm b/code/datums/signals.dm index 01ca02e41c264..4a3b9448e22f4 100644 --- a/code/datums/signals.dm +++ b/code/datums/signals.dm @@ -4,7 +4,7 @@ * This sets up a listening relationship such that when the target object emits a signal * the source datum this proc is called upon, will receive a callback to the given proctype * Use PROC_REF(procname), TYPE_PROC_REF(type,procname) or GLOBAL_PROC_REF(procname) macros to validate the passed in proc at compile time. - * PROC_REF for procs defined on current type or it's ancestors, TYPE_PROC_REF for procs defined on unrelated type and GLOBAL_PROC_REF for global procs. + * PROC_REF for procs defined on current type or its ancestors, TYPE_PROC_REF for procs defined on unrelated type and GLOBAL_PROC_REF for global procs. * Return values from procs registered must be a bitfield * * Arguments: diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index b8438c67927ca..30acf90381f03 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -78,7 +78,7 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) return podspawn(list( "target" = get_turf(mind.current), - "style" = STYLE_BLUESPACE, + "style" = /datum/pod_style/advanced, "spawn" = skill_item_path, "delays" = list(POD_TRANSIT = 150, POD_FALLING = 4, POD_OPENING = 30, POD_LEAVING = 30) )) diff --git a/code/datums/skills/fishing.dm b/code/datums/skills/fishing.dm index cfd14a4ce3ba6..93c1a57d44175 100644 --- a/code/datums/skills/fishing.dm +++ b/code/datums/skills/fishing.dm @@ -6,16 +6,22 @@ name = "Fishing" title = "Angler" desc = "How empty and alone you are on this barren Earth." - modifiers = list(SKILL_VALUE_MODIFIER = list(1, 1, 0, -1, -2, -4, -6)) + modifiers = list(SKILL_VALUE_MODIFIER = list(1, 0, -1, -3, -5, -7, -10)) skill_item_path = /obj/item/clothing/head/soft/fishing_hat /datum/skill/fishing/New() . = ..() + levelUpMessages[SKILL_LEVEL_NOVICE] = span_nicegreen("I'm starting to figure out what [name] really is! I can guess a fish size and weight at a glance.") + levelUpMessages[SKILL_LEVEL_APPRENTICE] = span_nicegreen("I'm getting a little better at [name]! I can tell if a fish is hungry, dying and otherwise.") levelUpMessages[SKILL_LEVEL_JOURNEYMAN] = span_nicegreen("I feel like I've become quite proficient at [name]! I can tell what fishes I can catch at any given fishing spot.") levelUpMessages[SKILL_LEVEL_MASTER] = span_nicegreen("I've begun to truly understand the surprising depth behind [name]. As a master [title], I can guess what I'm going to catch now!") /datum/skill/fishing/level_gained(datum/mind/mind, new_level, old_level, silent) . = ..() + if(new_level >= SKILL_LEVEL_NOVICE && old_level < SKILL_LEVEL_NOVICE) + ADD_TRAIT(mind, TRAIT_EXAMINE_FISH, SKILL_TRAIT) + if(new_level >= SKILL_LEVEL_APPRENTICE && old_level < SKILL_LEVEL_APPRENTICE) + ADD_TRAIT(mind, TRAIT_EXAMINE_DEEPER_FISH, SKILL_TRAIT) if(new_level >= SKILL_LEVEL_JOURNEYMAN && old_level < SKILL_LEVEL_JOURNEYMAN) ADD_TRAIT(mind, TRAIT_EXAMINE_FISHING_SPOT, SKILL_TRAIT) if(new_level >= SKILL_LEVEL_MASTER && old_level < SKILL_LEVEL_MASTER) @@ -27,3 +33,7 @@ REMOVE_TRAIT(mind, TRAIT_REVEAL_FISH, SKILL_TRAIT) if(old_level >= SKILL_LEVEL_JOURNEYMAN && new_level < SKILL_LEVEL_JOURNEYMAN) REMOVE_TRAIT(mind, TRAIT_EXAMINE_FISHING_SPOT, SKILL_TRAIT) + if(old_level >= SKILL_LEVEL_APPRENTICE && new_level < SKILL_LEVEL_APPRENTICE) + REMOVE_TRAIT(mind, TRAIT_EXAMINE_DEEPER_FISH, SKILL_TRAIT) + if(old_level >= SKILL_LEVEL_NOVICE && new_level < SKILL_LEVEL_NOVICE) + REMOVE_TRAIT(mind, TRAIT_EXAMINE_FISH, SKILL_TRAIT) diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm index 5c7f99daf7e25..97a2c08644cfa 100644 --- a/code/datums/sprite_accessories.dm +++ b/code/datums/sprite_accessories.dm @@ -34,8 +34,6 @@ * 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/color_src = MUTANT_COLOR - /// Decides if this sprite has an "inner" part, such as the fleshy parts on ears. - var/hasinner = FALSE /// Is this part locked from roundstart selection? Used for parts that apply effects. var/locked = FALSE /// Should we center the sprite? @@ -51,7 +49,7 @@ var/natural_spawn = TRUE /datum/sprite_accessory/blank - name = "None" + name = SPRITE_ACCESSORY_NONE icon_state = "None" ////////////////////// @@ -661,6 +659,10 @@ name = "Short Bangs" icon_state = "hair_shortbangs" +/datum/sprite_accessory/hair/shortbangs2 + name = "Short Bangs 2" + icon_state = "hair_shortbangs2" + /datum/sprite_accessory/hair/short name = "Short Hair" icon_state = "hair_a" @@ -831,7 +833,7 @@ var/gradient_category = GRADIENT_APPLIES_TO_HAIR|GRADIENT_APPLIES_TO_FACIAL_HAIR /datum/sprite_accessory/gradient/none - name = "None" + name = SPRITE_ACCESSORY_NONE icon_state = "none" /datum/sprite_accessory/gradient/full @@ -1722,10 +1724,6 @@ /datum/sprite_accessory/lizard_markings icon = 'icons/mob/human/species/lizard/lizard_markings.dmi' -/datum/sprite_accessory/lizard_markings/none - name = "None" - icon_state = "none" - /datum/sprite_accessory/lizard_markings/dtiger name = "Dark Tiger Body" icon_state = "dtiger" @@ -1746,10 +1744,32 @@ /// Describes which tail spine sprites to use, if any. var/spine_key = NONE +///Used for fish-infused tails, which come in different flavors. +/datum/sprite_accessory/tails/fish + icon = 'icons/mob/human/fish_features.dmi' + color_src = HAIR_COLOR + +/datum/sprite_accessory/tails/fish/default + name = "Fish" + icon_state = "fish" + +/datum/sprite_accessory/tails/fish/shark + name = "Shark" + icon_state = "shark" + +/datum/sprite_accessory/tails/fish/orca + name = "Orca" + icon_state = "orca" + /datum/sprite_accessory/tails/lizard icon = 'icons/mob/human/species/lizard/lizard_tails.dmi' spine_key = SPINE_KEY_LIZARD +/datum/sprite_accessory/tails/lizard/none + name = SPRITE_ACCESSORY_NONE + icon_state = "none" + natural_spawn = FALSE + /datum/sprite_accessory/tails/lizard/smooth name = "Smooth" icon_state = "smooth" @@ -1771,12 +1791,19 @@ icon_state = "short" spine_key = NONE -/datum/sprite_accessory/tails/human/cat +/datum/sprite_accessory/tails/felinid/cat name = "Cat" icon = 'icons/mob/human/cat_features.dmi' icon_state = "default" color_src = HAIR_COLOR +/datum/sprite_accessory/tails/monkey + +/datum/sprite_accessory/tails/monkey/none + name = SPRITE_ACCESSORY_NONE + icon_state = "none" + natural_spawn = FALSE + /datum/sprite_accessory/tails/monkey/default name = "Monkey" icon = 'icons/mob/human/species/monkey/monkey_tail.dmi' @@ -1851,10 +1878,6 @@ icon = 'icons/mob/human/species/lizard/lizard_misc.dmi' em_block = TRUE -/datum/sprite_accessory/horns/none - name = "None" - icon_state = "none" - /datum/sprite_accessory/horns/simple name = "Simple" icon_state = "simple" @@ -1879,14 +1902,9 @@ icon = 'icons/mob/human/cat_features.dmi' em_block = TRUE -/datum/sprite_accessory/ears/none - name = "None" - icon_state = "none" - /datum/sprite_accessory/ears/cat name = "Cat" icon_state = "cat" - hasinner = TRUE color_src = HAIR_COLOR /datum/sprite_accessory/ears/cat/big @@ -1913,14 +1931,9 @@ icon = 'icons/mob/human/fox_features.dmi' name = "Fox" icon_state = "fox" - hasinner = TRUE color_src = HAIR_COLOR locked = TRUE -/datum/sprite_accessory/wings/none - name = "None" - icon_state = "none" - /datum/sprite_accessory/wings icon = 'icons/mob/human/species/wings.dmi' em_block = TRUE @@ -2064,10 +2077,6 @@ /datum/sprite_accessory/frills icon = 'icons/mob/human/species/lizard/lizard_misc.dmi' -/datum/sprite_accessory/frills/none - name = "None" - icon_state = "none" - /datum/sprite_accessory/frills/simple name = "Simple" icon_state = "simple" @@ -2088,14 +2097,6 @@ icon = 'icons/mob/human/species/lizard/lizard_spines.dmi' em_block = TRUE -/datum/sprite_accessory/spines/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/tail_spines/none - name = "None" - icon_state = "none" - /datum/sprite_accessory/spines/short name = "Short" icon_state = "short" @@ -2136,16 +2137,6 @@ name = "Aquatic" icon_state = "aqua" -/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them. - icon = null //These datums exist for selecting legs on preference, and little else - em_block = TRUE - -/datum/sprite_accessory/legs/none - name = "Normal Legs" - -/datum/sprite_accessory/legs/digitigrade_lizard - name = DIGITIGRADE_LEGS - /datum/sprite_accessory/caps icon = 'icons/mob/human/species/mush_cap.dmi' color_src = HAIR_COLOR @@ -2356,10 +2347,6 @@ icon = 'icons/mob/human/species/moth/moth_markings.dmi' color_src = null -/datum/sprite_accessory/moth_markings/none - name = "None" - icon_state = "none" - /datum/sprite_accessory/moth_markings/reddish name = "Reddish" icon_state = "reddish" diff --git a/code/datums/station_alert.dm b/code/datums/station_alert.dm index 5b969afb00513..4c5f3ca7c51c5 100644 --- a/code/datums/station_alert.dm +++ b/code/datums/station_alert.dm @@ -61,7 +61,7 @@ data["alarms"] += list(nominal_category) return data -/datum/station_alert/ui_act(action, params) +/datum/station_alert/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/datums/station_traits/_station_trait.dm b/code/datums/station_traits/_station_trait.dm index 174b127b2d474..ddd8bc20a9110 100644 --- a/code/datums/station_traits/_station_trait.dm +++ b/code/datums/station_traits/_station_trait.dm @@ -33,10 +33,10 @@ GLOBAL_LIST_EMPTY(lobby_station_traits) var/list/lobby_buttons = list() /// The ID that we look for in dynamic.json. Not synced with 'name' because I can already see this go wrong var/dynamic_threat_id - /// If ran during dynamic, do we reduce the total threat? Will be overriden by config if set + /// If ran during dynamic, do we reduce the total threat? Will be overridden by config if set var/threat_reduction = 0 - /// Which ruleset flags to allow dynamic to use. null to disregard - var/dynamic_category = null + /// Which ruleset flags to allow dynamic to use. NONE to disregard + var/dynamic_category = NONE /// Trait should not be instantiated in a round if its type matches this type var/abstract_type = /datum/station_trait @@ -51,15 +51,19 @@ GLOBAL_LIST_EMPTY(lobby_station_traits) GLOB.dynamic_ruleset_categories = dynamic_category if(sign_up_button) GLOB.lobby_station_traits += src + if(SSstation.initialized) + SSstation.display_lobby_traits() if(trait_processes) START_PROCESSING(SSstation, src) if(trait_to_give) ADD_TRAIT(SSstation, trait_to_give, STATION_TRAIT) /datum/station_trait/Destroy() - SSstation.station_traits -= src - GLOB.dynamic_station_traits.Remove(src) destroy_lobby_buttons() + SSstation.station_traits -= src + GLOB.lobby_station_traits -= src + GLOB.dynamic_station_traits -= src + REMOVE_TRAIT(SSstation, trait_to_give, STATION_TRAIT) return ..() /// Returns the type of info the centcom report has on this trait, if any. @@ -95,6 +99,7 @@ GLOBAL_LIST_EMPTY(lobby_station_traits) /// Apply any additional handling we need to our lobby button /datum/station_trait/proc/setup_lobby_button(atom/movable/screen/lobby/button/sign_up/lobby_button) SHOULD_CALL_PARENT(TRUE) + lobby_button.name = name lobby_buttons |= lobby_button RegisterSignal(lobby_button, COMSIG_ATOM_UPDATE_ICON, PROC_REF(on_lobby_button_update_icon)) RegisterSignal(lobby_button, COMSIG_SCREEN_ELEMENT_CLICK, PROC_REF(on_lobby_button_click)) @@ -124,13 +129,15 @@ GLOBAL_LIST_EMPTY(lobby_station_traits) /// Remove all of our active lobby buttons /datum/station_trait/proc/destroy_lobby_buttons() for (var/atom/movable/screen/button as anything in lobby_buttons) - var/mob/hud_owner = button.get_mob() - qdel(button) + var/mob/dead/new_player/hud_owner = button.get_mob() if (QDELETED(hud_owner)) + qdel(button) + continue + var/datum/hud/new_player/using_hud = hud_owner.hud_used + if(!using_hud) + qdel(button) continue - var/datum/hud/using_hud = hud_owner.hud_used - using_hud?.show_hud(using_hud?.hud_version) - lobby_buttons = list() + using_hud.remove_station_trait_button(src) /// Called when overriding a pulsar star command report message. /datum/station_trait/proc/get_pulsar_message() diff --git a/code/datums/station_traits/job_traits.dm b/code/datums/station_traits/job_traits.dm index 42e5f680786b3..3e8171d99c57b 100644 --- a/code/datums/station_traits/job_traits.dm +++ b/code/datums/station_traits/job_traits.dm @@ -41,6 +41,10 @@ else LAZYADD(lobby_candidates, user) +/datum/station_trait/job/on_lobby_button_destroyed(atom/movable/screen/lobby/button/sign_up/lobby_button) + . = ..() + LAZYREMOVE(lobby_candidates, lobby_button.get_mob()) + /datum/station_trait/job/on_lobby_button_update_icon(atom/movable/screen/lobby/button/sign_up/lobby_button, updates) if (LAZYFIND(lobby_candidates, lobby_button.get_mob())) lobby_button.base_icon_state = "signup_on" @@ -61,7 +65,7 @@ if (isnull(signee) || !signee.client || !signee.mind || signee.ready != PLAYER_READY_TO_PLAY) LAZYREMOVE(lobby_candidates, signee) - var/datum/job/our_job = SSjob.GetJobType(job_to_add) + var/datum/job/our_job = SSjob.get_job_type(job_to_add) our_job.total_positions = position_amount our_job.spawn_positions = position_amount while(length(lobby_candidates) && position_amount > 0) @@ -73,14 +77,14 @@ lobby_candidates = null /datum/station_trait/job/can_display_lobby_button(client/player) - var/datum/job/our_job = SSjob.GetJobType(job_to_add) + var/datum/job/our_job = SSjob.get_job_type(job_to_add) return our_job.player_old_enough(player) && ..() /// Adds a gorilla to the cargo department, replacing the sloth and the mech /datum/station_trait/job/cargorilla name = "Cargo Gorilla" button_desc = "Sign up to become the Cargo Gorilla, a peaceful shepherd of boxes." - weight = 1 + weight = 0 show_in_report = FALSE // Selective attention test. Did you spot the gorilla? can_roll_antag = CAN_ROLL_NEVER job_to_add = /datum/job/cargo_gorilla @@ -205,8 +209,7 @@ SIGNAL_HANDLER var/datum/job_department/department = SSjob.joinable_departments_by_type[/datum/job_department/silicon] department.remove_job(/datum/job/ai) - var/datum/station_trait/triple_ai/triple_ais = locate() in SSstation.station_traits - if(triple_ais) + if(GLOB.triple_ai_controller) position_amount = 3 /// Gives the AI SAT a fax machine if it doesn't have one. This is copy pasted from Bridge Assistant's coffee maker. @@ -244,6 +247,27 @@ qdel(thing_on_table) new /obj/machinery/fax/auto_name(picked_turf) +/datum/station_trait/job/pun_pun + name = "Pun Pun is a Crewmember" + button_desc = "Ook ook ah ah, sign up to play as the bartender's monkey." + weight = 0 //Unrollable by default, available all day during monkey day. + report_message = "We've evaluated the bartender's monkey to have the mental capacity of the average crewmember. As such, we made them one." + show_in_report = TRUE + can_roll_antag = CAN_ROLL_ALWAYS + job_to_add = /datum/job/pun_pun + +/datum/station_trait/job/pun_pun/New() + . = ..() + //Make sure we don't have two Pun Puns if loaded before the start of the round. + if(SSticker.HasRoundStarted() || !GLOB.the_one_and_only_punpun) + return + new /obj/effect/landmark/start/pun_pun(GLOB.the_one_and_only_punpun.loc) + qdel(GLOB.the_one_and_only_punpun) + +/datum/station_trait/job/pun_pun/on_lobby_button_update_overlays(atom/movable/screen/lobby/button/sign_up/lobby_button, list/overlays) + . = ..() + overlays += LAZYFIND(lobby_candidates, lobby_button.get_mob()) ? "pun_pun_on" : "pun_pun_off" + #undef CAN_ROLL_ALWAYS #undef CAN_ROLL_PROTECTED #undef CAN_ROLL_NEVER diff --git a/code/datums/station_traits/negative_traits.dm b/code/datums/station_traits/negative_traits.dm index 266725cf337fc..b113589b70226 100644 --- a/code/datums/station_traits/negative_traits.dm +++ b/code/datums/station_traits/negative_traits.dm @@ -26,7 +26,7 @@ report_message = "Due to an ongoing strike announced by the postal workers union, mail won't be delivered this shift." /datum/station_trait/mail_blocked/on_round_start() - //This is either a holiday or sunday... well then, let's flip the situation. + //This is either a holiday or Sunday... well then, let's flip the situation. if(SSeconomy.mail_blocked) name = "Postal system overtime" report_message = "Despite being a day off, the postal system is working overtime today. Mail will be delivered this shift." @@ -185,6 +185,22 @@ for(var/mob/living/found_bot as anything in GLOB.bots_list) found_bot.randomize_language_if_on_station() +/datum/station_trait/machine_languages + name = "Machine Language Matrix Malfunction" + trait_type = STATION_TRAIT_NEGATIVE + weight = 2 + cost = STATION_TRAIT_COST_FULL + show_in_report = TRUE + report_message = "Your station's machines have had their language matrix fried due to an event, \ + resulting in some strange and unfamiliar speech patterns." + trait_to_give = STATION_TRAIT_MACHINES_GLITCHED + +/datum/station_trait/machine_languages/New() + . = ..() + // What "caused" our machines to go haywire (fluff) + var/event_source = pick("an ion storm", "a malfunction", "a software update", "a power surge", "a computer virus", "a subdued machine uprising", "a clown's prank") + report_message = "Your station's machinery have had their language matrix fried due to [event_source], resulting in some strange and unfamiliar speech patterns." + /datum/station_trait/revenge_of_pun_pun name = "Revenge of Pun Pun" trait_type = STATION_TRAIT_NEGATIVE @@ -230,6 +246,9 @@ weapon?.add_mob_blood(punpun) punpun.add_mob_blood(punpun) + if(!isnull(punpun.ai_controller)) // In case punpun somehow lacks AI + QDEL_NULL(punpun.ai_controller) + new /datum/ai_controller/monkey/angry(punpun) var/area/place = get_area(punpun) @@ -324,7 +343,7 @@ /datum/station_trait/random_event_weight_modifier/dust_storms name = "Dust Stormfront" - report_message = "The space around your station is clouded by heavy pockets of space dust. Expect an increased likelyhood of space dust storms damaging the station hull." + report_message = "The space around your station is clouded by heavy pockets of space dust. Expect an increased likelihood of space dust storms damaging the station hull." trait_type = STATION_TRAIT_NEGATIVE weight = 2 cost = STATION_TRAIT_COST_LOW @@ -595,12 +614,18 @@ //Send a nebula shielding unit to engineering var/datum/supply_pack/supply_pack_shielding = new /datum/supply_pack/engineering/rad_nebula_shielding_kit() if(!send_supply_pod_to_area(supply_pack_shielding.generate(null), /area/station/engineering/main, /obj/structure/closet/supplypod/centcompod)) - //if engineering isnt valid, just send it to the bridge + //if engineering isn't valid, just send it to the bridge send_supply_pod_to_area(supply_pack_shielding.generate(null), /area/station/command/bridge, /obj/structure/closet/supplypod/centcompod) - // Let medical know resistence is futile - send_fax_to_area(new /obj/item/paper/fluff/radiation_nebula_virologist(), /area/station/medical/virology, "NT Virology Department", \ - force = TRUE, force_pod_type = /obj/structure/closet/supplypod/centcompod) + // Let medical know resistance is futile + if (/area/station/medical/virology in GLOB.areas_by_type) + send_fax_to_area( + new /obj/item/paper/fluff/radiation_nebula_virologist, + /area/station/medical/virology, + "NT Virology Department", + force = TRUE, + force_pod_type = /obj/structure/closet/supplypod/centcompod, + ) //Disables radstorms, they don't really make sense since we already have the nebula causing storms var/datum/round_event_control/modified_event = locate(/datum/round_event_control/radiation_storm) in SSevents.control @@ -631,7 +656,7 @@ if(!istype(get_area(spawned_mob), radioactive_areas)) //only if you're spawned in the radioactive areas return - if(!isliving(spawned_mob)) // Dynamic shouldnt spawn non-living but uhhhhhhh why not + if(!isliving(spawned_mob)) // Dynamic shouldn't spawn non-living but uhhhhhhh why not return var/mob/living/spawnee = spawned_mob @@ -671,7 +696,7 @@ /datum/station_trait/nebula/hostile/radiation/send_instructions() var/obj/machinery/nebula_shielding/shielder = /obj/machinery/nebula_shielding/radiation var/obj/machinery/gravity_generator/main/innate_shielding = /obj/machinery/gravity_generator/main - //How long do we have untill the first shielding unit needs to be up? + //How long do we have until the first shielding unit needs to be up? var/deadline = "[(initial(innate_shielding.radioactive_nebula_shielding) * intensity_increment_time) / (1 MINUTES)] minute\s" //For how long each shielding unit will protect for var/shielder_time = "[(initial(shielder.shielding_strength) * intensity_increment_time) / (1 MINUTES)] minute\s" @@ -688,7 +713,7 @@ Every shielding unit will provide an additional [shielder_time] of protection, fully protecting the station with [max_shielders] shielding units. "} - priority_announce(announcement, sound = 'sound/misc/notice1.ogg') + priority_announce(announcement, sound = 'sound/announcer/notice/notice1.ogg') //Set the display screens to the radiation alert var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS) @@ -731,4 +756,13 @@ advisory_string += "The ongoing blizzard has interfered with our surveillance equipment, and we cannot provide an accurate threat summary at this time. We advise you to stay safe and avoid traversing the area around the station." return advisory_string +/datum/station_trait/spiked_drinks + name = "Spiked Drinks" + trait_type = STATION_TRAIT_NEGATIVE + weight = 3 + cost = STATION_TRAIT_COST_LOW + show_in_report = TRUE + report_message = "Due to a mishap at the Robust Softdrinks Megafactory, some drinks may contain traces of ethanol or psychoactive chemicals." + trait_to_give = STATION_TRAIT_SPIKED_DRINKS + #undef GLOW_NEBULA diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm index 0ecb49f96a063..7d83439b6d494 100644 --- a/code/datums/station_traits/neutral_traits.dm +++ b/code/datums/station_traits/neutral_traits.dm @@ -383,63 +383,19 @@ /datum/station_trait/linked_closets/on_round_start() . = ..() - var/list/roundstart_non_secure_closets = GLOB.roundstart_station_closets.Copy() - for(var/obj/structure/closet/closet in roundstart_non_secure_closets) - if(closet.secure) - roundstart_non_secure_closets -= closet + var/list/roundstart_closets = GLOB.roundstart_station_closets.Copy() /** - * The number of links to perform. - * Combined with 50/50 the probability of the link being triangular, the boundaries of any given - * on-station, non-secure closet being linked are as high as 1 in 7/8 and as low as 1 in 16-17, - * nearing an a mean of 1 in 9 to 11/12 the more repetitions are done. - * - * There are more than 220 roundstart closets on meta, around 150 of which aren't secure, - * so, about 13 to 17 closets will be affected by this most of the times. + * The number of links to perform. the chance of a closet being linked are about 1 in 10 + * There are more than 220 roundstart closets on meta, so, about 22 closets will be affected on average. */ - var/number_of_links = round(length(roundstart_non_secure_closets) * (rand(350, 450)*0.0001), 1) + var/number_of_links = round(length(roundstart_closets) * (rand(400, 430)*0.0001), 1) for(var/repetition in 1 to number_of_links) - var/closets_left = length(roundstart_non_secure_closets) - if(closets_left < 2) - return var/list/targets = list() - for(var/how_many in 1 to min(closets_left, rand(2,3))) - targets += pick_n_take(roundstart_non_secure_closets) - if(closets_left == 1) //there's only one closet left. Let's not leave it alone. - targets += roundstart_non_secure_closets[1] + for(var/how_many in 1 to rand(2,3)) + targets += pick_n_take(roundstart_closets) GLOB.eigenstate_manager.create_new_link(targets) -/datum/station_trait/triple_ai - name = "AI Triumvirate" - trait_type = STATION_TRAIT_NEUTRAL - trait_flags = parent_type::trait_flags | STATION_TRAIT_REQUIRES_AI - show_in_report = TRUE - weight = 1 - report_message = "Your station has been instated with three Nanotrasen Artificial Intelligence models." - -/datum/station_trait/triple_ai/New() - . = ..() - RegisterSignal(SSjob, COMSIG_OCCUPATIONS_SETUP, PROC_REF(on_occupations_setup)) - -/datum/station_trait/triple_ai/revert() - UnregisterSignal(SSjob, COMSIG_OCCUPATIONS_SETUP) - return ..() - -/datum/station_trait/triple_ai/proc/on_occupations_setup(datum/controller/subsystem/job/source) - SIGNAL_HANDLER - - //allows for latejoining AIs - for(var/obj/effect/landmark/start/ai/secondary/secondary_ai_spawn in GLOB.start_landmarks_list) - secondary_ai_spawn.latejoin_active = TRUE - - var/datum/station_trait/job/human_ai/ai_trait = locate() in SSstation.station_traits - //human AI quirk will handle adding its own job positions, but for now don't allow more AI slots. - if(ai_trait) - return - for(var/datum/job/ai/ai_datum in SSjob.joinable_occupations) - ai_datum.spawn_positions = 3 - ai_datum.total_positions = 3 - #define PRO_SKUB "pro-skub" #define ANTI_SKUB "anti-skub" @@ -523,7 +479,7 @@ return if((skub_stance == RANDOM_SKUB && prob(50)) || skub_stance == PRO_SKUB) - var/obj/item/storage/box/skub/boxie = new(spawned.loc) + var/obj/item/storage/box/stickers/skub/boxie = new(spawned.loc) spawned.equip_to_slot_if_possible(boxie, ITEM_SLOT_BACKPACK, indirect_action = TRUE) if(ishuman(spawned)) var/obj/item/clothing/suit/costume/wellworn_shirt/skub/shirt = new(spawned.loc) @@ -540,24 +496,28 @@ shirt.forceMove(boxie) /// A box containing a skub, for easier carry because skub is a bulky item. -/obj/item/storage/box/skub - name = "skub box" - desc = "A box to store your skub and pro-skub shirt in. A label on the back reads: \"Skubtide, Stationwide\"." - icon_state = "hugbox" - illustration = "skub" - -/obj/item/storage/box/skub/Initialize(mapload) +/obj/item/storage/box/stickers/skub + name = "skub fan pack" + desc = "A vinyl pouch to store your skub and pro-skub shirt in. A label on the back reads: \"Skubtide, Stationwide\"." + icon_state = "skubpack" + illustration = "label_skub" + w_class = WEIGHT_CLASS_SMALL + +/obj/item/storage/box/stickers/skub/Initialize(mapload) . = ..() + atom_storage.max_slots = 3 atom_storage.exception_hold = typecacheof(list(/obj/item/skub, /obj/item/clothing/suit/costume/wellworn_shirt/skub)) -/obj/item/storage/box/skub/PopulateContents() +/obj/item/storage/box/stickers/skub/PopulateContents() new /obj/item/skub(src) new /obj/item/sticker/skub(src) new /obj/item/sticker/skub(src) /obj/item/storage/box/stickers/anti_skub - name = "anti-skub stickers box" - desc = "The enemy may have been given a skub and a shirt, but I've more stickers! Plus the box can hold my anti-skub shirt." + name = "anti-skub stickers pack" + desc = "The enemy may have been given a skub and a shirt, but I've got more stickers! Plus the pack can hold my anti-skub shirt." + icon_state = "skubpack" + illustration = "label_anti_skub" /obj/item/storage/box/stickers/anti_skub/Initialize(mapload) . = ..() @@ -584,3 +544,47 @@ dynamic_category = RULESET_CATEGORY_NO_WITTING_CREW_ANTAGONISTS threat_reduction = 15 dynamic_threat_id = "Background Checks" + + +/datum/station_trait/pet_day + name = "Bring Your Pet To Work Day" + trait_type = STATION_TRAIT_NEUTRAL + show_in_report = FALSE + weight = 2 + sign_up_button = TRUE + +/datum/station_trait/pet_day/New() + . = ..() + RegisterSignal(SSdcs, COMSIG_GLOB_JOB_AFTER_SPAWN, PROC_REF(on_job_after_spawn)) + +/datum/station_trait/pet_day/setup_lobby_button(atom/movable/screen/lobby/button/sign_up/lobby_button) + lobby_button.desc = "Want to bring your innocent pet to a giant metal deathtrap? Click here to customize it!" + RegisterSignal(lobby_button, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(on_lobby_button_update_overlays)) + return ..() + +/datum/station_trait/pet_day/can_display_lobby_button(client/player) + return sign_up_button + +/datum/station_trait/pet_day/on_round_start() + return + +/datum/station_trait/pet_day/on_lobby_button_click(atom/movable/screen/lobby/button/sign_up/lobby_button, updates) + var/mob/our_player = lobby_button.get_mob() + var/client/player_client = our_player.client + if(isnull(player_client)) + return + var/datum/pet_customization/customization = GLOB.customized_pets[REF(player_client)] + if(isnull(customization)) + customization = new(player_client) + INVOKE_ASYNC(customization, TYPE_PROC_REF(/datum, ui_interact), our_player) + +/datum/station_trait/pet_day/proc/on_job_after_spawn(datum/source, datum/job/job, mob/living/spawned, client/player_client) + SIGNAL_HANDLER + + var/datum/pet_customization/customization = GLOB.customized_pets[REF(player_client)] + if(isnull(customization)) + return + INVOKE_ASYNC(customization, TYPE_PROC_REF(/datum/pet_customization, create_pet), spawned, player_client) + +/datum/station_trait/pet_day/proc/on_lobby_button_update_overlays(atom/movable/screen/lobby/button/sign_up/lobby_button, list/overlays) + overlays += "select_pet" diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index 1af74533775fa..c7f8869c405a3 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -20,15 +20,23 @@ COOLDOWN_START(src, party_cooldown, rand(PARTY_COOLDOWN_LENGTH_MIN, PARTY_COOLDOWN_LENGTH_MAX)) - var/area/area_to_spawn_in = pick(GLOB.bar_areas) - var/turf/T = pick(area_to_spawn_in.contents) - - var/obj/structure/closet/supplypod/centcompod/toLaunch = new() - var/obj/item/pizzabox/pizza_to_spawn = pick(list(/obj/item/pizzabox/margherita, /obj/item/pizzabox/mushroom, /obj/item/pizzabox/meat, /obj/item/pizzabox/vegetable, /obj/item/pizzabox/pineapple)) - new pizza_to_spawn(toLaunch) - for(var/i in 1 to 6) - new /obj/item/reagent_containers/cup/glass/bottle/beer(toLaunch) - new /obj/effect/pod_landingzone(T, toLaunch) + var/pizza_type_to_spawn = pick(list( + /obj/item/pizzabox/margherita, + /obj/item/pizzabox/mushroom, + /obj/item/pizzabox/meat, + /obj/item/pizzabox/vegetable, + /obj/item/pizzabox/pineapple + )) + + var/area/bar_area = pick(GLOB.bar_areas) + podspawn(list( + "target" = pick(bar_area.contents), + "path" = /obj/structure/closet/supplypod/centcompod, + "spawn" = list( + pizza_type_to_spawn, + /obj/item/reagent_containers/cup/glass/bottle/beer = 6 + ) + )) #undef PARTY_COOLDOWN_LENGTH_MIN #undef PARTY_COOLDOWN_LENGTH_MAX @@ -264,7 +272,7 @@ /datum/job/clown = /obj/item/organ/internal/cyberimp/brain/anti_stun, //HONK! /datum/job/cook = /obj/item/organ/internal/cyberimp/chest/nutriment/plus, /datum/job/coroner = /obj/item/organ/internal/tongue/bone, //hes got a bone to pick with you - /datum/job/curator = /obj/item/organ/internal/eyes/robotic/glow, + /datum/job/curator = /obj/item/organ/internal/cyberimp/brain/connector, /datum/job/detective = /obj/item/organ/internal/lungs/cybernetic/tier3, /datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/surgery, /datum/job/geneticist = /obj/item/organ/internal/fly, //we don't care about implants, we have cancer. @@ -277,6 +285,7 @@ /datum/job/paramedic = /obj/item/organ/internal/cyberimp/eyes/hud/medical, /datum/job/prisoner = /obj/item/organ/internal/eyes/robotic/shield, /datum/job/psychologist = /obj/item/organ/internal/ears/cybernetic/whisper, + /datum/job/pun_pun = /obj/item/organ/internal/cyberimp/arm/strongarm, /datum/job/quartermaster = /obj/item/organ/internal/stomach/cybernetic/tier3, /datum/job/research_director = /obj/item/organ/internal/cyberimp/bci, /datum/job/roboticist = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic, diff --git a/code/datums/status_effects/_status_effect_helpers.dm b/code/datums/status_effects/_status_effect_helpers.dm index f887afd91428e..a5743d2e93ad7 100644 --- a/code/datums/status_effects/_status_effect_helpers.dm +++ b/code/datums/status_effects/_status_effect_helpers.dm @@ -65,7 +65,7 @@ /** * Checks if this mob has a status effect that shares the passed effect's ID * - * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath * * Returns an instance of a status effect, or NULL if none were found. */ @@ -99,7 +99,7 @@ * Checks if this mob has a status effect that shares the passed effect's ID * and has the passed sources are in its list of sources (ONLY works for grouped efects!) * - * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath * * Returns an instance of a status effect, or NULL if none were found. */ @@ -128,7 +128,7 @@ /** * Returns a list of all status effects that share the passed effect type's ID * - * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not it's typepath + * checked_effect - TYPEPATH of a status effect to check for. Checks for its ID, not its typepath * * Returns a list */ diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 04ab2ee8f1783..7a6b263d5893e 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -84,7 +84,7 @@ icon_state = "blooddrunk" /datum/status_effect/blooddrunk/on_apply() - ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, BLOODDRUNK_TRAIT) + owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) if(ishuman(owner)) var/mob/living/carbon/human/human_owner = owner human_owner.physiology.brute_mod *= 0.1 @@ -104,7 +104,7 @@ human_owner.physiology.tox_mod *= 10 human_owner.physiology.oxy_mod *= 10 human_owner.physiology.stamina_mod *= 10 - REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, BLOODDRUNK_TRAIT) + owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) owner.remove_stun_absorption(id) //Used by changelings to rapidly heal @@ -306,26 +306,12 @@ newRod.activated() if(!itemUser.has_hand_for_held_index(hand)) //If user does not have the corresponding hand anymore, give them one and return the rod to their hand - if(((hand % 2) == 0)) - var/obj/item/bodypart/L = itemUser.newBodyPart(BODY_ZONE_R_ARM, FALSE, FALSE) - if(L.try_attach_limb(itemUser)) - L.update_limb(is_creating = TRUE) - itemUser.update_body_parts() - itemUser.put_in_hand(newRod, hand, forced = TRUE) - else - qdel(L) - consume_owner() //we can't regrow, abort abort - return + var/zone = (hand % 2) ? BODY_ZONE_L_ARM : BODY_ZONE_R_ARM + if(itemUser.regenerate_limb(zone, FALSE)) + itemUser.put_in_hand(newRod, hand, forced = TRUE) else - var/obj/item/bodypart/L = itemUser.newBodyPart(BODY_ZONE_L_ARM, FALSE, FALSE) - if(L.try_attach_limb(itemUser)) - L.update_limb(is_creating = TRUE) - itemUser.update_body_parts() - itemUser.put_in_hand(newRod, hand, forced = TRUE) - else - qdel(L) - consume_owner() //see above comment - return + consume_owner() //we can't regrow, abort abort + return to_chat(itemUser, span_notice("Your arm suddenly grows back with the Rod of Asclepius still attached!")) else //Otherwise get rid of whatever else is in their hand and return the rod to said hand @@ -383,7 +369,7 @@ show_duration = TRUE /datum/status_effect/regenerative_core/on_apply() - ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, STATUS_EFFECT_TRAIT) + owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) owner.adjustBruteLoss(-25) owner.adjustFireLoss(-25) owner.fully_heal(HEAL_CC_STATUS) @@ -394,7 +380,7 @@ return TRUE /datum/status_effect/regenerative_core/on_remove() - REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, STATUS_EFFECT_TRAIT) + owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) /datum/status_effect/lightningorb id = "Lightning Orb" @@ -426,7 +412,7 @@ /datum/status_effect/mayhem/on_apply() . = ..() to_chat(owner, "RIP AND TEAR") - SEND_SOUND(owner, sound('sound/hallucinations/veryfar_noise.ogg')) + SEND_SOUND(owner, sound('sound/effects/hallucinations/veryfar_noise.ogg')) owner.cause_hallucination( \ /datum/hallucination/delusion/preset/demon, \ "[id] status effect", \ @@ -570,8 +556,9 @@ owner.AddElement(/datum/element/forced_gravity, 0) owner.AddElement(/datum/element/simple_flying) owner.add_stun_absorption(source = id, priority = 4) - owner.add_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_FREE_HYPERSPACE_MOVEMENT), MAD_WIZARD_TRAIT) - owner.playsound_local(get_turf(owner), 'sound/chemistry/ahaha.ogg', vol = 100, vary = TRUE, use_reverb = TRUE) + owner.add_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) + ADD_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, id) + owner.playsound_local(get_turf(owner), 'sound/effects/chemistry/ahaha.ogg', vol = 100, vary = TRUE, use_reverb = TRUE) return TRUE /datum/status_effect/blessing_of_insanity/on_remove() @@ -587,7 +574,8 @@ owner.RemoveElement(/datum/element/forced_gravity, 0) owner.RemoveElement(/datum/element/simple_flying) owner.remove_stun_absorption(id) - owner.remove_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_FREE_HYPERSPACE_MOVEMENT), MAD_WIZARD_TRAIT) + owner.remove_movespeed_mod_immunities(id, /datum/movespeed_modifier/damage_slowdown) + REMOVE_TRAIT(owner, TRAIT_FREE_HYPERSPACE_MOVEMENT, id) /// Gives you a brief period of anti-gravity /datum/status_effect/jump_jet @@ -622,3 +610,30 @@ name = "Radiation shielding" desc = "You're immune to radiation, get settled quick!" icon_state = "radiation_shield" + +/// Heal in darkness and potentially trigger other effects, persists for a short duration after leaving +/datum/status_effect/shadow_regeneration + id = "shadow_regeneration" + duration = 2 SECONDS + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/shadow_regeneration + +/datum/status_effect/shadow_regeneration/on_apply() + . = ..() + if (!.) + return FALSE + heal_owner() + return TRUE + +/datum/status_effect/shadow_regeneration/refresh(effect) + . = ..() + heal_owner() + +/// Regenerate health whenever this status effect is applied or reapplied +/datum/status_effect/shadow_regeneration/proc/heal_owner() + owner.heal_overall_damage(brute = 1, burn = 1, required_bodytype = BODYTYPE_ORGANIC) + +/atom/movable/screen/alert/status_effect/shadow_regeneration + name = "Shadow Regeneration" + desc = "Bathed in soothing darkness, you will slowly heal yourself." + icon_state = "lightless" diff --git a/code/datums/status_effects/buffs/food/_food_effect.dm b/code/datums/status_effects/buffs/food/_food_effect.dm new file mode 100644 index 0000000000000..fe63df29e3a8a --- /dev/null +++ b/code/datums/status_effects/buffs/food/_food_effect.dm @@ -0,0 +1,23 @@ +/// Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity. +/datum/status_effect/food + id = "food_effect" + duration = 5 MINUTES // Same as food mood buffs + status_type = STATUS_EFFECT_REPLACE // Only one food buff allowed + alert_type = /atom/movable/screen/alert/status_effect/food + show_duration = TRUE + /// Buff power equal to food complexity (1 to 5) + var/strength + +/datum/status_effect/food/on_creation(mob/living/new_owner, timeout_mod = 1, strength = 1) + . = ..() + src.strength = strength + if(isnum(timeout_mod)) + duration *= timeout_mod + if(istype(linked_alert, /atom/movable/screen/alert/status_effect/food)) + linked_alert.icon_state = "[linked_alert.base_icon_state]_[strength]" + +/atom/movable/screen/alert/status_effect/food + name = "Hand-crafted meal" + desc = "Eating it made me feel better." + icon_state = "food_buff_1" + base_icon_state = "food_buff" diff --git a/code/datums/status_effects/buffs/food/food_traits.dm b/code/datums/status_effects/buffs/food/food_traits.dm deleted file mode 100644 index dfd0b888aa096..0000000000000 --- a/code/datums/status_effects/buffs/food/food_traits.dm +++ /dev/null @@ -1,7 +0,0 @@ -/datum/status_effect/food/trait/shockimmune - alert_type = /atom/movable/screen/alert/status_effect/food/trait_shockimmune - trait = TRAIT_SHOCKIMMUNE - -/atom/movable/screen/alert/status_effect/food/trait_shockimmune - name = "Grounded" - desc = "That meal made me feel like a superconductor..." diff --git a/code/datums/status_effects/buffs/food/grant_trait.dm b/code/datums/status_effects/buffs/food/grant_trait.dm new file mode 100644 index 0000000000000..f25be3b0b3bfd --- /dev/null +++ b/code/datums/status_effects/buffs/food/grant_trait.dm @@ -0,0 +1,56 @@ +/// Makes you gain a trait +/datum/status_effect/food/trait + var/trait = TRAIT_DUMB // You need to override this + +/datum/status_effect/food/trait/on_apply() + if(!HAS_TRAIT_FROM(owner, trait, type)) // Check if trait was already applied + ADD_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/be_replaced() + REMOVE_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/on_remove() + REMOVE_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/shockimmune + alert_type = /atom/movable/screen/alert/status_effect/shockimmune + trait = TRAIT_SHOCKIMMUNE + +/atom/movable/screen/alert/status_effect/shockimmune + name = "Grounded" + desc = "That meal made me feel like a superconductor..." + icon_state = "shock_immune" + +/datum/status_effect/food/trait/mute + alert_type = /atom/movable/screen/alert/status_effect/mute + trait = TRAIT_MUTE + +/atom/movable/screen/alert/status_effect/mute + name = "..." + desc = "..." + icon_state = "mute" + +/datum/status_effect/food/trait/ashstorm_immune + alert_type = /atom/movable/screen/alert/status_effect/ashstorm_immune + trait = TRAIT_ASHSTORM_IMMUNE + +/atom/movable/screen/alert/status_effect/ashstorm_immune + name = "Ashstorm-proof" + desc = "That meal makes me feel born on Lavaland." + icon_state = "ashstorm_immune" + +/datum/status_effect/food/trait/waddle + alert_type = /atom/movable/screen/alert/status_effect/waddle + trait = TRAIT_WADDLING + +/datum/status_effect/food/trait/waddle/on_apply() + owner.AddElementTrait(trait, type, /datum/element/waddling) + return ..() + +/atom/movable/screen/alert/status_effect/waddle + name = "Waddling" + desc = "That meal makes me want to joke around." + icon_state = "waddle" diff --git a/code/datums/status_effects/buffs/food/speech.dm b/code/datums/status_effects/buffs/food/speech.dm new file mode 100644 index 0000000000000..634fd739709b3 --- /dev/null +++ b/code/datums/status_effects/buffs/food/speech.dm @@ -0,0 +1,45 @@ +///Temporary modifies the speech using the /datum/component/speechmod +/datum/status_effect/food/speech + +/datum/status_effect/food/speech/italian + alert_type = /atom/movable/screen/alert/status_effect/italian_speech + +/datum/status_effect/food/speech/italian/on_apply() + AddComponent( \ + /datum/component/speechmod, \ + replacements = strings("italian_replacement.json", "italian"), \ + end_string = list( + " Ravioli, ravioli, give me the formuoli!", + " Mamma-mia!", + " Mamma-mia! That's a spicy meat-ball!", + " La la la la la funiculi funicula!" + ), \ + end_string_chance = 3 \ + ) + return ..() + +/atom/movable/screen/alert/status_effect/italian_speech + name = "Linguini Embrace" + desc = "You feel a sudden urge to gesticulate wildly." + icon_state = "food_italian" + +/datum/status_effect/food/speech/french + alert_type = /atom/movable/screen/alert/status_effect/french_speech + +/datum/status_effect/food/speech/french/on_apply() + AddComponent( \ + /datum/component/speechmod, \ + replacements = strings("french_replacement.json", "french"), \ + end_string = list( + " Honh honh honh!", + " Honh!", + " Zut Alors!" + ), \ + end_string_chance = 3, \ + ) + return ..() + +/atom/movable/screen/alert/status_effect/french_speech + name = "Café Chic" + desc = "Suddenly, everything seems worthy of a passionate debate." + icon_state = "food_french" diff --git a/code/datums/status_effects/debuffs/blindness.dm b/code/datums/status_effects/debuffs/blindness.dm index e36f2e45dfaba..fb87d2fde8580 100644 --- a/code/datums/status_effects/debuffs/blindness.dm +++ b/code/datums/status_effects/debuffs/blindness.dm @@ -13,7 +13,7 @@ /// Static list of signals that, when received, we force an update to our nearsighted overlay var/static/list/update_signals = list(SIGNAL_ADDTRAIT(TRAIT_NEARSIGHTED_CORRECTED), SIGNAL_REMOVETRAIT(TRAIT_NEARSIGHTED_CORRECTED)) /// How severe is our nearsightedness right now - var/overlay_severity = 1 + var/overlay_severity = 2 /datum/status_effect/grouped/nearsighted/on_apply() RegisterSignals(owner, update_signals, PROC_REF(update_nearsightedness)) @@ -33,6 +33,10 @@ /// Checks if we should be nearsighted currently, or if we should clear the overlay /datum/status_effect/grouped/nearsighted/proc/should_be_nearsighted() + if (ishuman(owner)) + var/mob/living/carbon/human/human_owner = owner + if (human_owner.get_eye_scars()) + return TRUE return !HAS_TRAIT(owner, TRAIT_NEARSIGHTED_CORRECTED) /// Updates our nearsightd overlay, either removing it if we have the trait or adding it if we don't diff --git a/code/datums/status_effects/debuffs/choke.dm b/code/datums/status_effects/debuffs/choke.dm index c16b946aa02bd..9113c8a1a023e 100644 --- a/code/datums/status_effects/debuffs/choke.dm +++ b/code/datums/status_effects/debuffs/choke.dm @@ -217,7 +217,7 @@ var/obj/item/bodypart/chest = carbon_victim.get_bodypart(BODY_ZONE_CHEST) carbon_victim.cause_wound_of_type_and_severity(WOUND_BLUNT, chest, WOUND_SEVERITY_SEVERE, wound_source = "human force to the chest") - playsound(owner, 'sound/creatures/crack_vomit.ogg', 120, extrarange = 5, falloff_exponent = 4) + playsound(owner, 'sound/mobs/humanoids/human/gag_vomit/crack_vomit.ogg', 120, extrarange = 5, falloff_exponent = 4) vomit_up() /datum/status_effect/choke/proc/mirror_dir(atom/source, old_dir, new_dir) diff --git a/code/datums/status_effects/debuffs/cyborg.dm b/code/datums/status_effects/debuffs/cyborg.dm index 0f95b494197a4..30cea1af74552 100644 --- a/code/datums/status_effects/debuffs/cyborg.dm +++ b/code/datums/status_effects/debuffs/cyborg.dm @@ -1,22 +1,31 @@ -/// Reduce a cyborg's speed when you throw things at it -/datum/status_effect/borg_throw_slow - id = "borg_throw_slowdown" - alert_type = /atom/movable/screen/alert/status_effect/borg_throw_slow +/// Slows down a cyborg for a short time. +/datum/status_effect/borg_slow + id = "borg_slowdown" + alert_type = null duration = 3 SECONDS - status_type = STATUS_EFFECT_REPLACE + status_type = STATUS_EFFECT_REFRESH + remove_on_fullheal = TRUE + heal_flag_necessary = HEAL_CC_STATUS + /// Amount of slowdown being applied + var/slowdown = 1 -/datum/status_effect/borg_throw_slow/on_apply() - . = ..() - owner.add_movespeed_modifier(/datum/movespeed_modifier/borg_throw, update = TRUE) +/datum/status_effect/borg_slow/on_creation(mob/living/new_owner, slowdown = 1) + src.slowdown = slowdown + return ..() -/datum/status_effect/borg_throw_slow/on_remove() - . = ..() - owner.remove_movespeed_modifier(/datum/movespeed_modifier/borg_throw, update = TRUE) +/datum/status_effect/borg_slow/on_apply() + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown, multiplicative_slowdown = slowdown) + return TRUE -/atom/movable/screen/alert/status_effect/borg_throw_slow - name = "Percussive Maintenance" - desc = "A sudden impact has triggered your collision avoidance routines, reducing movement speed." - icon_state = "weaken" +/datum/status_effect/borg_slow/on_remove() + owner.remove_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown) + +/datum/status_effect/borg_slow/refresh(mob/living/new_owner, slowdown = 1) + . = ..() + if(src.slowdown <= slowdown) + return + src.slowdown = slowdown + owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/borg_slowdown, multiplicative_slowdown = src.slowdown) -/datum/movespeed_modifier/borg_throw - multiplicative_slowdown = 0.9 +/datum/movespeed_modifier/borg_slowdown + variable = TRUE diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm index 83d99461fce57..5dab783eb37a0 100644 --- a/code/datums/status_effects/debuffs/debuffs.dm +++ b/code/datums/status_effects/debuffs/debuffs.dm @@ -1,11 +1,11 @@ /// The damage healed per tick while sleeping without any modifiers #define HEALING_SLEEP_DEFAULT 0.2 -/// The sleep healing multipler for organ passive healing (since organs heal slowly) +/// The sleep healing multiplier for organ passive healing (since organs heal slowly) #define HEALING_SLEEP_ORGAN_MULTIPLIER 5 -/// The sleep multipler for fitness xp conversion +/// The sleep multiplier for fitness xp conversion #define SLEEP_QUALITY_WORKOUT_MULTIPLER 10 -//Largely negative status effects go here, even if they have small benificial effects +//Largely negative status effects go here, even if they have small beneficial effects //STUN EFFECTS /datum/status_effect/incapacitating tick_interval = -1 @@ -245,7 +245,7 @@ var/mob/living/carbon/carbon_owner = owner carbon_owner.handle_dreams() - if(prob(2) && owner.health > owner.crit_threshold) + if(prob(8) && owner.health > owner.crit_threshold) owner.emote("snore") /atom/movable/screen/alert/status_effect/asleep @@ -345,20 +345,18 @@ /datum/status_effect/crusher_mark id = "crusher_mark" duration = 300 //if you leave for 30 seconds you lose the mark, deal with it - status_type = STATUS_EFFECT_MULTIPLE + status_type = STATUS_EFFECT_REFRESH alert_type = null var/mutable_appearance/marked_underlay - var/obj/item/kinetic_crusher/hammer_synced - + var/boosted = FALSE -/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, obj/item/kinetic_crusher/new_hammer_synced) +/datum/status_effect/crusher_mark/on_creation(mob/living/new_owner, was_boosted) . = ..() - if(.) - hammer_synced = new_hammer_synced + boosted = was_boosted /datum/status_effect/crusher_mark/on_apply() if(owner.mob_size >= MOB_SIZE_LARGE) - marked_underlay = mutable_appearance('icons/effects/effects.dmi', "shield2") + marked_underlay = mutable_appearance('icons/effects/effects.dmi', boosted ? "shield" : "shield2") marked_underlay.pixel_x = -owner.pixel_x marked_underlay.pixel_y = -owner.pixel_y owner.underlays += marked_underlay @@ -366,16 +364,11 @@ return FALSE /datum/status_effect/crusher_mark/Destroy() - hammer_synced = null if(owner) owner.underlays -= marked_underlay QDEL_NULL(marked_underlay) return ..() -//we will only clear ourselves if the crusher is the one that owns us. -/datum/status_effect/crusher_mark/before_remove(obj/item/kinetic_crusher/attacking_hammer) - return (attacking_hammer == hammer_synced) - /datum/status_effect/stacking/saw_bleed id = "saw_bleed" tick_interval = 0.6 SECONDS @@ -495,7 +488,7 @@ wasting_effect.transform = owner.transform //if the owner has been stunned the overlay should inherit that position wasting_effect.alpha = 255 animate(wasting_effect, alpha = 0, time = 32) - playsound(owner, 'sound/effects/curse5.ogg', 20, TRUE, -1) + playsound(owner, 'sound/effects/curse/curse5.ogg', 20, TRUE, -1) owner.adjustFireLoss(0.75) if(effect_last_activation <= world.time) effect_last_activation = world.time + effect_cooldown @@ -518,7 +511,7 @@ /datum/status_effect/necropolis_curse/proc/grasp(turf/spawn_turf) set waitfor = FALSE new/obj/effect/temp_visual/dir_setting/curse/grasp_portal(spawn_turf, owner.dir) - playsound(spawn_turf, 'sound/effects/curse2.ogg', 80, TRUE, -1) + playsound(spawn_turf, 'sound/effects/curse/curse2.ogg', 80, TRUE, -1) var/obj/projectile/curse_hand/C = new (spawn_turf) C.preparePixelProjectile(owner, spawn_turf) C.fire() @@ -613,7 +606,7 @@ alert_type = null /datum/status_effect/spasms/tick(seconds_between_ticks) - if(owner.stat >= UNCONSCIOUS || owner.incapacitated() || HAS_TRAIT(owner, TRAIT_HANDS_BLOCKED) || HAS_TRAIT(owner, TRAIT_IMMOBILIZED)) + if(owner.stat >= UNCONSCIOUS || owner.incapacitated || HAS_TRAIT(owner, TRAIT_HANDS_BLOCKED) || HAS_TRAIT(owner, TRAIT_IMMOBILIZED)) return if(!prob(15)) return @@ -739,7 +732,7 @@ status_type = STATUS_EFFECT_REPLACE tick_interval = 0.2 SECONDS alert_type = null - var/msg_stage = 0//so you dont get the most intense messages immediately + var/msg_stage = 0//so you don't get the most intense messages immediately /datum/status_effect/fake_virus/on_apply() if(HAS_TRAIT(owner, TRAIT_VIRUSIMMUNE)) diff --git a/code/datums/status_effects/debuffs/fire_stacks.dm b/code/datums/status_effects/debuffs/fire_stacks.dm index 46c31c4578d1d..a575d2619fe7d 100644 --- a/code/datums/status_effects/debuffs/fire_stacks.dm +++ b/code/datums/status_effects/debuffs/fire_stacks.dm @@ -136,6 +136,12 @@ /// Type of mob light emitter we use when on fire var/moblight_type = /obj/effect/dummy/lighting_obj/moblight/fire +/datum/status_effect/fire_handler/fire_stacks/get_examine_text() + if(owner.on_fire) + return + + return "[owner.p_They()] [owner.p_are()] covered in something flammable." + /datum/status_effect/fire_handler/fire_stacks/proc/owner_touched_sparks() SIGNAL_HANDLER @@ -221,8 +227,9 @@ amount_to_heat = amount_to_heat ** (BODYTEMP_FIRE_TEMP_SOFTCAP / owner.bodytemperature) victim.adjust_bodytemperature(amount_to_heat) - victim.add_mood_event("on_fire", /datum/mood_event/on_fire) - victim.add_mob_memory(/datum/memory/was_burning) + if (!(HAS_TRAIT(victim, TRAIT_RESISTHEAT))) + victim.add_mood_event("on_fire", /datum/mood_event/on_fire) + victim.add_mob_memory(/datum/memory/was_burning) /** * Handles mob ignition, should be the only way to set on_fire to TRUE @@ -293,9 +300,45 @@ enemy_types = list(/datum/status_effect/fire_handler/fire_stacks) stack_modifier = -1 + ///If the mob has the TRAIT_SLIPPERY_WHEN_WET trait, the mob gets this component while it's wet + var/datum/component/slippery/slipperiness + +/datum/status_effect/fire_handler/wet_stacks/on_apply() + . = ..() + RegisterSignals(owner, list(SIGNAL_ADDTRAIT(TRAIT_WET_FOR_LONGER), SIGNAL_REMOVETRAIT(TRAIT_WET_FOR_LONGER)), PROC_REF(update_wet_stack_modifier)) + update_wet_stack_modifier() + RegisterSignal(owner, SIGNAL_ADDTRAIT(TRAIT_SLIPPERY_WHEN_WET), PROC_REF(become_slippery)) + RegisterSignal(owner, SIGNAL_REMOVETRAIT(TRAIT_SLIPPERY_WHEN_WET), PROC_REF(no_longer_slippery)) + if(HAS_TRAIT(owner, TRAIT_SLIPPERY_WHEN_WET)) + become_slippery() + ADD_TRAIT(owner, TRAIT_IS_WET, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/fire_handler/wet_stacks/on_remove() + . = ..() + REMOVE_TRAIT(owner, TRAIT_IS_WET, TRAIT_STATUS_EFFECT(id)) + if(HAS_TRAIT(owner, TRAIT_SLIPPERY_WHEN_WET)) + no_longer_slippery() + +/datum/status_effect/fire_handler/wet_stacks/proc/update_wet_stack_modifier() + SIGNAL_HANDLER + stack_modifier = HAS_TRAIT(owner, TRAIT_WET_FOR_LONGER) ? -3.5 : -1 + +/datum/status_effect/fire_handler/wet_stacks/proc/become_slippery() + SIGNAL_HANDLER + slipperiness = owner.AddComponent(/datum/component/slippery, 5 SECONDS, lube_flags = SLIPPERY_WHEN_LYING_DOWN) + ADD_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/fire_handler/wet_stacks/proc/no_longer_slippery() + SIGNAL_HANDLER + QDEL_NULL(slipperiness) + REMOVE_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id)) + +/datum/status_effect/fire_handler/wet_stacks/get_examine_text() + return "[owner.p_They()] look[owner.p_s()] a little soaked." /datum/status_effect/fire_handler/wet_stacks/tick(seconds_between_ticks) - adjust_stacks(-0.5 * seconds_between_ticks) + var/decay = HAS_TRAIT(owner, TRAIT_WET_FOR_LONGER) ? -0.035 : -0.5 + adjust_stacks(decay * seconds_between_ticks) if(stacks <= 0) qdel(src) diff --git a/code/datums/status_effects/debuffs/genetic_damage.dm b/code/datums/status_effects/debuffs/genetic_damage.dm index 9a6944090775e..21b6f1db2185c 100644 --- a/code/datums/status_effects/debuffs/genetic_damage.dm +++ b/code/datums/status_effects/debuffs/genetic_damage.dm @@ -34,7 +34,7 @@ /datum/status_effect/genetic_damage/tick(seconds_between_ticks) if(ismonkey(owner) && total_damage >= GORILLA_MUTATION_MINIMUM_DAMAGE && SPT_PROB(GORILLA_MUTATION_CHANCE_PER_SECOND, seconds_between_ticks)) var/mob/living/carbon/carbon_owner = owner - carbon_owner.gorillize() + carbon_owner.gorillize(genetics_gorilla = TRUE) qdel(src) return @@ -46,15 +46,20 @@ qdel(src) return -/datum/status_effect/genetic_damage/proc/on_healthscan(datum/source, list/render_list, advanced) +/datum/status_effect/genetic_damage/proc/on_healthscan(datum/source, list/render_list, advanced, mob/user, mode, tochat) SIGNAL_HANDLER + var/message = "" if(advanced) - render_list += "Genetic damage: [round(total_damage / minimum_before_tox_damage * 100, 0.1)]%\n" + message = "Genetic damage: [round(total_damage / minimum_before_tox_damage * 100, 0.1)]%" else if(total_damage >= minimum_before_tox_damage) - render_list += "Severe genetic damage detected.\n" + message = "Severe genetic damage detected." else - render_list += "Minor genetic damage detected.\n" + message = "Minor genetic damage detected." + + if(message) + render_list += conditional_tooltip("[message]", "Irreparable under normal circumstances - will decay over time.", tochat) + render_list += "
" #undef GORILLA_MUTATION_CHANCE_PER_SECOND #undef GORILLA_MUTATION_MINIMUM_DAMAGE diff --git a/code/datums/status_effects/debuffs/hallucination.dm b/code/datums/status_effects/debuffs/hallucination.dm index 5d67acc789ed3..22c74f72cbd93 100644 --- a/code/datums/status_effects/debuffs/hallucination.dm +++ b/code/datums/status_effects/debuffs/hallucination.dm @@ -38,13 +38,13 @@ )) /// Signal proc for [COMSIG_LIVING_HEALTHSCAN]. Show we're hallucinating to (advanced) scanners. -/datum/status_effect/hallucination/proc/on_health_scan(datum/source, list/render_list, advanced, mob/user, mode) +/datum/status_effect/hallucination/proc/on_health_scan(datum/source, list/render_list, advanced, mob/user, mode, tochat) SIGNAL_HANDLER if(!advanced) return - - render_list += "Subject is hallucinating.\n" + render_list += conditional_tooltip("Subject is hallucinating.", "Supply antipsychotic medication, such as [/datum/reagent/medicine/haloperidol::name] or [/datum/reagent/medicine/synaptizine::name].", tochat) + render_list += "
" /// Signal proc for [COMSIG_CARBON_CHECKING_BODYPART], /// checking bodyparts while hallucinating can cause them to appear more damaged than they are @@ -84,6 +84,9 @@ status_type = STATUS_EFFECT_REFRESH duration = -1 // This lasts "forever", only goes away with sanity gain +/datum/status_effect/hallucination/sanity/on_health_scan(datum/source, list/render_list, advanced, mob/user, mode, tochat) + return + /datum/status_effect/hallucination/sanity/on_apply() if(!owner.mob_mood) return FALSE diff --git a/code/datums/status_effects/debuffs/slime/slime_food.dm b/code/datums/status_effects/debuffs/slime/slime_food.dm index aa711bb878f75..538e62e27c597 100644 --- a/code/datums/status_effects/debuffs/slime/slime_food.dm +++ b/code/datums/status_effects/debuffs/slime/slime_food.dm @@ -54,12 +54,3 @@ /datum/status_effect/slime_food/on_remove() feeder = null - -/datum/status_effect/slime_food/update_particles() - if(particle_effect) - return - - particle_effect = new(owner, /particles/pollen) - - //particle coloured like the "pheromones" of the feeder - particle_effect.particles.color = "[feeder.chat_color]a0" diff --git a/code/datums/status_effects/debuffs/slime/slime_leech.dm b/code/datums/status_effects/debuffs/slime/slime_leech.dm index 49bd0f7b82c84..78ccacc89d8cb 100644 --- a/code/datums/status_effects/debuffs/slime/slime_leech.dm +++ b/code/datums/status_effects/debuffs/slime/slime_leech.dm @@ -66,7 +66,7 @@ if(need_mob_update) owner.updatehealth() - if(totaldamage >= 0) // AdjustBruteLoss returns a negative value on succesful damage adjustment + if(totaldamage >= 0) // AdjustBruteLoss returns a negative value on successful damage adjustment our_slime.balloon_alert(our_slime, "not food!") our_slime.stop_feeding() return diff --git a/code/datums/status_effects/debuffs/slime/slimed.dm b/code/datums/status_effects/debuffs/slime/slimed.dm index 6c2c0fb5be342..2540c4df5136c 100644 --- a/code/datums/status_effects/debuffs/slime/slimed.dm +++ b/code/datums/status_effects/debuffs/slime/slimed.dm @@ -101,17 +101,6 @@ )) to_chat(owner, span_userdanger("[feedback_text] as the layer of slime eats away at you!")) -/datum/status_effect/slimed/update_particles() - if(particle_effect) - return - - // taste the rainbow - var/particle_type = rainbow ? /particles/slime/rainbow : /particles/slime - particle_effect = new(owner, particle_type) - - if(!rainbow) - particle_effect.particles.color = "[slime_color]a0" - /datum/status_effect/slimed/get_examine_text() return span_warning("[owner.p_They()] [owner.p_are()] covered in bubbling slime!") diff --git a/code/datums/status_effects/debuffs/staggered.dm b/code/datums/status_effects/debuffs/staggered.dm index 9db72e1fd06ee..88dd91c00e0d2 100644 --- a/code/datums/status_effects/debuffs/staggered.dm +++ b/code/datums/status_effects/debuffs/staggered.dm @@ -4,7 +4,7 @@ /// Staggered can occur most often via shoving, but can also occur in other places too. /datum/status_effect/staggered id = "staggered" - tick_interval = 0.5 SECONDS + tick_interval = 0.8 SECONDS alert_type = null remove_on_fullheal = TRUE @@ -24,8 +24,6 @@ /datum/status_effect/staggered/on_remove() UnregisterSignal(owner, COMSIG_LIVING_DEATH) owner.remove_movespeed_modifier(/datum/movespeed_modifier/staggered) - // Resetting both X on remove so we're back to normal - owner.pixel_x = owner.base_pixel_x /// Signal proc that self deletes our staggered effect /datum/status_effect/staggered/proc/clear_staggered(datum/source) @@ -40,13 +38,17 @@ return if(HAS_TRAIT(owner, TRAIT_FAKEDEATH)) return - owner.do_stagger_animation() + INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living, do_stagger_animation)) /// Helper proc that causes the mob to do a stagger animation. /// Doesn't change significantly, just meant to represent swaying back and forth /mob/living/proc/do_stagger_animation() - animate(src, pixel_x = 4, time = 0.2 SECONDS, loop = 6, flags = ANIMATION_RELATIVE|ANIMATION_PARALLEL) - animate(pixel_x = -4, time = 0.2 SECONDS, flags = ANIMATION_RELATIVE) + var/normal_pos = base_pixel_x + body_position_pixel_x_offset + var/jitter_right = normal_pos + 4 + var/jitter_left = normal_pos - 4 + animate(src, pixel_x = jitter_left, 0.2 SECONDS, flags = ANIMATION_PARALLEL) + animate(pixel_x = jitter_right, time = 0.4 SECONDS) + animate(pixel_x = normal_pos, time = 0.2 SECONDS) /// Status effect specifically for instances where someone is vulnerable to being stunned when shoved. /datum/status_effect/next_shove_stuns diff --git a/code/datums/status_effects/debuffs/stamcrit.dm b/code/datums/status_effects/debuffs/stamcrit.dm index 05433244df09c..c0359c7ddf3b1 100644 --- a/code/datums/status_effects/debuffs/stamcrit.dm +++ b/code/datums/status_effects/debuffs/stamcrit.dm @@ -28,6 +28,8 @@ return FALSE if(owner.check_stun_immunity(CANKNOCKDOWN)) return FALSE + if(SEND_SIGNAL(owner, COMSIG_LIVING_ENTER_STAMCRIT) & STAMCRIT_CANCELLED) + return FALSE . = ..() if(!.) diff --git a/code/datums/status_effects/debuffs/strandling.dm b/code/datums/status_effects/debuffs/strandling.dm index 6050a3df304da..0ce0ad4188221 100644 --- a/code/datums/status_effects/debuffs/strandling.dm +++ b/code/datums/status_effects/debuffs/strandling.dm @@ -57,7 +57,7 @@ * tool - the tool the user's using to remove the strange. Can be null. */ /datum/status_effect/strandling/proc/try_remove_effect(mob/user, obj/item/tool) - if(user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) + if(user.incapacitated || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) return user.visible_message( diff --git a/code/datums/status_effects/debuffs/temperature_over_time.dm b/code/datums/status_effects/debuffs/temperature_over_time.dm new file mode 100644 index 0000000000000..cb1a73cc2ae50 --- /dev/null +++ b/code/datums/status_effects/debuffs/temperature_over_time.dm @@ -0,0 +1,88 @@ +/** + * Affects temperature over time. + * I don't know how this wasn't a thing already. + + * Incidentally: Thermal insulation is actually really bad for this, since it traps the temperature inside. + * If you're going to use this in a situation where it'd make sense for insulation to hinder its effects, + * you should to check for it manually. + */ + +/datum/status_effect/temperature_over_time + id = "temp_ot" + alert_type = null // no alert. you do the sprite + remove_on_fullheal = TRUE + on_remove_on_mob_delete = TRUE + tick_interval = 1 SECONDS + + duration = 60 SECONDS + + /// How much to change temperature per second. + var/temperature_value = 10 + /// How much to remove from above variable per second. + var/temperature_decay = 1 + /// Cap of temperature, won't apply the effect above this. + var/capped_temperature_hot = BODYTEMP_HEAT_WARNING_2 + /// Cap of temperature, won't apply the effect below this. + var/capped_temperature_cold = BODYTEMP_COLD_WARNING_2 + /// Effect removed outright at this temperature or above. + var/removal_temperature_hot = BODYTEMP_HEAT_WARNING_3 + /// Effect removed outright at this temperature or below. + var/removal_temperature_cold = BODYTEMP_COLD_WARNING_3 + +/datum/status_effect/temperature_over_time/on_creation(mob/living/new_owner, duration = 10 SECONDS) + src.duration = duration + return ..() + +/datum/status_effect/temperature_over_time/on_apply() + . = ..() + if((HAS_TRAIT(owner, TRAIT_RESISTHEAT) && temperature_value > 1)) + qdel(src) // git out + else if((HAS_TRAIT(owner, TRAIT_RESISTCOLD) && temperature_value < 1)) + qdel(src) // git out + +/datum/status_effect/temperature_over_time/on_remove() + return ..() + +/datum/status_effect/temperature_over_time/get_examine_text() + + if(temperature_value > 0) + return "[owner.p_They()] [owner.p_are()] sweating bullets!" + + return "[owner.p_They()] [owner.p_are()] shivering!" + +/datum/status_effect/temperature_over_time/tick(seconds_between_ticks) + if((TRAIT_RESISTHEAT && temperature_value > 1) || (TRAIT_RESISTCOLD && temperature_value < 1)) + qdel(src) // git out + return + temperaturetion(seconds_between_ticks) + +/datum/status_effect/temperature_over_time/proc/temperaturetion(seconds_per_tick) + + // I feel like there should be an easier way to do this but I am a fool + if(capped_temperature_hot && owner.bodytemperature > capped_temperature_hot) + return + if(capped_temperature_cold && owner.bodytemperature < capped_temperature_cold) + return + + owner.adjust_bodytemperature(temperature_value * seconds_per_tick) // note that this has no softcap reduction, unlike fire + temperature_value += temperature_decay + if(temperature_value == 0) + qdel(src) + + if(removal_temperature_hot && owner.bodytemperature > removal_temperature_hot) + qdel(src) + return + if(removal_temperature_cold && owner.bodytemperature < removal_temperature_cold) + qdel(src) + return + +/datum/status_effect/temperature_over_time/chip_overheat + id = "temp_ot_chip" + temperature_value = 15 + temperature_decay = -0.5 + duration = 15 SECONDS + capped_temperature_hot = BODYTEMP_HEAT_WARNING_3 + removal_temperature_cold = BODYTEMP_COLD_WARNING_1 // internal cooling... + + removal_temperature_hot = null + capped_temperature_cold = null diff --git a/code/datums/status_effects/debuffs/terrified.dm b/code/datums/status_effects/debuffs/terrified.dm index 6ed79372d01aa..61a6ecd4eda3b 100644 --- a/code/datums/status_effects/debuffs/terrified.dm +++ b/code/datums/status_effects/debuffs/terrified.dm @@ -55,7 +55,7 @@ owner.adjust_jitter_up_to(10 SECONDS * seconds_between_ticks, 10 SECONDS) if(terror_buildup >= TERROR_PANIC_THRESHOLD) //If you reach this amount of buildup in an engagement, it's time to start looking for a way out. - owner.playsound_local(get_turf(owner), 'sound/health/slowbeat.ogg', 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) + owner.playsound_local(get_turf(owner), 'sound/effects/health/slowbeat.ogg', 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) owner.add_fov_trait(id, FOV_270_DEGREES) //Terror induced tunnel vision owner.adjust_eye_blur_up_to(10 SECONDS * seconds_between_ticks, 10 SECONDS) if(prob(5)) //We have a little panic attack. Consider it GENTLE ENCOURAGEMENT to start running away. diff --git a/code/datums/status_effects/debuffs/tower_of_babel.dm b/code/datums/status_effects/debuffs/tower_of_babel.dm index b3c1ae0c477c7..a56ea1ac6d9a9 100644 --- a/code/datums/status_effects/debuffs/tower_of_babel.dm +++ b/code/datums/status_effects/debuffs/tower_of_babel.dm @@ -41,7 +41,7 @@ return owner.emote("mumble") - owner.playsound_local(get_turf(owner), 'sound/magic/magic_block_mind.ogg', 75, vary = TRUE) // sound of creepy whispers + owner.playsound_local(get_turf(owner), 'sound/effects/magic/magic_block_mind.ogg', 75, vary = TRUE) // sound of creepy whispers to_chat(owner, span_reallybig(span_hypnophrase("You feel a magical force affecting your speech patterns!"))) /datum/status_effect/tower_of_babel/magical/on_remove() diff --git a/code/datums/status_effects/drug_effects.dm b/code/datums/status_effects/drug_effects.dm index 1d37c8f0e43eb..bb86e2b014bf3 100644 --- a/code/datums/status_effects/drug_effects.dm +++ b/code/datums/status_effects/drug_effects.dm @@ -52,7 +52,7 @@ owner.set_jitter_if_lower(100 SECONDS) owner.Paralyze(duration) owner.visible_message(span_warning("[owner] drops to the ground as [owner.p_they()] start seizing up."), \ - span_warning("[pick("You can't collect your thoughts...", "You suddenly feel extremely dizzy...", "You cant think straight...","You can't move your face properly anymore...")]")) + span_warning("[pick("You can't collect your thoughts...", "You suddenly feel extremely dizzy...", "You can't think straight...","You can't move your face properly anymore...")]")) return TRUE /atom/movable/screen/alert/status_effect/seizure diff --git a/code/datums/status_effects/food_effects.dm b/code/datums/status_effects/food_effects.dm deleted file mode 100644 index f36f1e2034d9c..0000000000000 --- a/code/datums/status_effects/food_effects.dm +++ /dev/null @@ -1,40 +0,0 @@ -/// Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity. -/datum/status_effect/food - id = "food_buff" - duration = 5 MINUTES // Same as food mood buffs - status_type = STATUS_EFFECT_REPLACE // Only one food buff allowed - alert_type = /atom/movable/screen/alert/status_effect/food - show_duration = TRUE - /// Buff power - var/strength - -/datum/status_effect/food/on_creation(mob/living/new_owner, timeout_mod = 1, strength = 1) - src.strength = strength - //Generate alert when not specified - if(isnum(timeout_mod)) - duration *= timeout_mod - . = ..() - if(istype(linked_alert, /atom/movable/screen/alert/status_effect/food)) - linked_alert.icon_state = "[linked_alert.base_icon_state]_[strength]" - -/atom/movable/screen/alert/status_effect/food - name = "Hand-crafted meal" - desc = "Eating it made me feel better." - icon_state = "food_buff_1" - base_icon_state = "food_buff" - -/// Makes you gain a trait -/datum/status_effect/food/trait - var/trait = TRAIT_DUMB // You need to override this - -/datum/status_effect/food/trait/on_apply() - ADD_TRAIT(owner, trait, type) - return ..() - -/datum/status_effect/food/trait/be_replaced() - REMOVE_TRAIT(owner, trait, type) - return ..() - -/datum/status_effect/food/trait/on_remove() - REMOVE_TRAIT(owner, trait, type) - return ..() diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index 3d4bd7e93655c..a6607cd7797e2 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -119,7 +119,7 @@ /datum/status_effect/bounty/on_apply() to_chat(owner, span_boldnotice("You hear something behind you talking... \"You have been marked for death by [rewarded]. If you die, they will be rewarded.\"")) - playsound(owner, 'sound/weapons/gun/shotgun/rack.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/gun/shotgun/rack.ogg', 75, FALSE) return ..() /datum/status_effect/bounty/tick(seconds_between_ticks) @@ -130,7 +130,7 @@ /datum/status_effect/bounty/proc/rewards() if(rewarded && rewarded.mind && rewarded.stat != DEAD) to_chat(owner, span_boldnotice("You hear something behind you talking... \"Bounty claimed.\"")) - playsound(owner, 'sound/weapons/gun/shotgun/shot.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/gun/shotgun/shot.ogg', 75, FALSE) to_chat(rewarded, span_greentext("You feel a surge of mana flow into you!")) for(var/datum/action/cooldown/spell/spell in rewarded.actions) spell.reset_spell_cooldown() @@ -609,3 +609,41 @@ /datum/status_effect/gutted/proc/stop_gutting() SIGNAL_HANDLER qdel(src) + +/atom/movable/screen/alert/status_effect/shower_regen + name = "Washing" + desc = "A good wash fills me with energy!" + icon_state = "shower_regen" + +/atom/movable/screen/alert/status_effect/shower_regen/hater + name = "Washing" + desc = "Waaater... Fuck this WATER!!" + icon_state = "shower_regen_catgirl" + +/datum/status_effect/shower_regen + id = "shower_regen" + duration = -1 + status_type = STATUS_EFFECT_UNIQUE + alert_type = /atom/movable/screen/alert/status_effect/shower_regen + /// How many heals from washing. + var/stamina_heal_per_tick = 4 + +/datum/status_effect/shower_regen/on_apply() + . = ..() + if(HAS_TRAIT(owner, TRAIT_WATER_HATER) && !HAS_TRAIT(owner, TRAIT_WATER_ADAPTATION)) + alert_type = /atom/movable/screen/alert/status_effect/shower_regen/hater + +/datum/status_effect/shower_regen/tick(seconds_between_ticks) + . = ..() + var/water_adaptation = HAS_TRAIT(owner, TRAIT_WATER_ADAPTATION) + var/heal_or_deal = HAS_TRAIT(owner, TRAIT_WATER_HATER) && !water_adaptation ? 1 : -1 + var/healed = 0 + if(water_adaptation) //very mild healing for those with the water adaptation trait (fish infusion) + healed += owner.adjustOxyLoss(-1.5 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) + healed += owner.adjustFireLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) + healed += owner.adjustToxLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_biotype = MOB_ORGANIC) + healed += owner.adjustBruteLoss(-1 * seconds_between_ticks, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC) + heal_or_deal *= 1.5 + healed += owner.adjustStaminaLoss(stamina_heal_per_tick * heal_or_deal * seconds_between_ticks, updating_stamina = FALSE) + if(healed) + owner.updatehealth() diff --git a/code/datums/status_effects/song_effects.dm b/code/datums/status_effects/song_effects.dm index f61253c987d77..d846f47f169db 100644 --- a/code/datums/status_effects/song_effects.dm +++ b/code/datums/status_effects/song_effects.dm @@ -25,7 +25,7 @@ /datum/status_effect/song/antimagic/on_apply() ADD_TRAIT(owner, TRAIT_ANTIMAGIC, MAGIC_TRAIT) - playsound(owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) return ..() /datum/status_effect/song/antimagic/on_remove() @@ -45,7 +45,7 @@ /datum/status_effect/song/light/on_apply() mob_light_obj = owner.mob_light(3, 1.5, color = LIGHT_COLOR_DIM_YELLOW) - playsound(owner, 'sound/weapons/fwoosh.ogg', 75, FALSE) + playsound(owner, 'sound/items/weapons/fwoosh.ogg', 75, FALSE) return TRUE /datum/status_effect/song/light/on_remove() diff --git a/code/datums/status_effects/stacking_effect.dm b/code/datums/status_effects/stacking_effect.dm index 98dd1c3ad14e7..b0d00a92ba0c2 100644 --- a/code/datums/status_effects/stacking_effect.dm +++ b/code/datums/status_effects/stacking_effect.dm @@ -8,7 +8,7 @@ /// How many stacks are currently accumulated. /// Also, the default stacks number given on application. var/stacks = 0 - // Deciseconds until ticks start occuring, which removes stacks + // Deciseconds until ticks start occurring, which removes stacks /// (first stack will be removed at this time plus tick_interval) var/delay_before_decay /// How many stacks are lost per tick (decay trigger) @@ -31,11 +31,11 @@ /// Put the state name without the number in these state vars var/overlay_state /// Icon state for underlays applied when the status effect is applied - /// The number is concatonated onto the string based on the number of stacks to get the correct state name. + /// The number is concatenated onto the string based on the number of stacks to get the correct state name. var/underlay_state /// A reference to our overlay appearance var/mutable_appearance/status_overlay - /// A referenceto our underlay appearance + /// A reference to our underlay appearance var/mutable_appearance/status_underlay /// Effects that occur when the stack count crosses stack_threshold @@ -90,7 +90,7 @@ owner.underlays -= status_underlay stacks += stacks_added if(stacks > 0) - if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occuring if changing from above threshold to still above threshold + if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occurring if changing from above threshold to still above threshold threshold_crossed = TRUE on_threshold_cross() if(consumed_on_threshold) @@ -123,9 +123,9 @@ var/icon_height = I.Height() status_overlay.pixel_x = -owner.pixel_x status_overlay.pixel_y = FLOOR(icon_height * 0.25, 1) - status_overlay.transform = matrix() * (icon_height/world.icon_size) //scale the status's overlay size based on the target's icon size + status_overlay.transform = matrix() * (icon_height/ICON_SIZE_Y) //scale the status's overlay size based on the target's icon size status_underlay.pixel_x = -owner.pixel_x - status_underlay.transform = matrix() * (icon_height/world.icon_size) * 3 + status_underlay.transform = matrix() * (icon_height/ICON_SIZE_Y) * 3 status_underlay.alpha = 40 owner.add_overlay(status_overlay) owner.underlays += status_underlay diff --git a/code/datums/status_effects/wound_effects.dm b/code/datums/status_effects/wound_effects.dm index fc3f3140593ea..30361dc9cf1a1 100644 --- a/code/datums/status_effects/wound_effects.dm +++ b/code/datums/status_effects/wound_effects.dm @@ -124,19 +124,6 @@ //////// WOUNDS ///////// ///////////////////////// -// wound alert -/atom/movable/screen/alert/status_effect/wound - name = "Wounded" - desc = "Your body has sustained serious damage, click here to inspect yourself." - -/atom/movable/screen/alert/status_effect/wound/Click() - . = ..() - if(!.) - return - - var/mob/living/carbon/carbon_owner = owner - carbon_owner.check_self_for_injuries() - // wound status effect base /datum/status_effect/wound id = "wound" diff --git a/code/datums/stock_market_events.dm b/code/datums/stock_market_events.dm index 4907bf784f63a..b29e52ab0ee11 100644 --- a/code/datums/stock_market_events.dm +++ b/code/datums/stock_market_events.dm @@ -23,7 +23,7 @@ /// When this event is ongoing, what direction will the price trend in? var/trend_value - /// When this event is triggered, for how long will it's effects last? + /// When this event is triggered, for how long will its effects last? var/trend_duration /** diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index 8c98d7d56bd16..feda199d67071 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -43,7 +43,13 @@ /// Determines whether we play a rustle animation when inserting/removing items. var/animated = TRUE /// Determines whether we play a rustle sound when inserting/removing items. - var/rustle_sound = TRUE + var/do_rustle = TRUE + var/rustle_vary = TRUE + /// Path for the item's rustle sound. + var/rustle_sound = SFX_RUSTLE + /// The sound to play when we open/access the storage + var/open_sound + var/open_sound_vary = TRUE /// The maximum amount of items that can be inserted into this storage. var/max_slots = 7 @@ -183,20 +189,19 @@ /// Set the passed atom as the parent /datum/storage/proc/set_parent(atom/new_parent) - PRIVATE_PROC(TRUE) + PROTECTED_PROC(TRUE) ASSERT(isnull(parent)) parent = new_parent + ADD_TRAIT(parent, TRAIT_COMBAT_MODE_SKIP_INTERACTION, REF(src)) // a few of theses should probably be on the real_location rather than the parent - RegisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION, PROC_REF(on_item_interact)) RegisterSignals(parent, list(COMSIG_ATOM_ATTACK_PAW, COMSIG_ATOM_ATTACK_HAND), PROC_REF(on_attack)) RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, PROC_REF(on_mousedrop_onto)) RegisterSignal(parent, COMSIG_MOUSEDROPPED_ONTO, PROC_REF(on_mousedropped_onto)) RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, PROC_REF(on_preattack)) RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(mass_empty)) RegisterSignals(parent, list(COMSIG_ATOM_ATTACK_GHOST, COMSIG_ATOM_ATTACK_HAND_SECONDARY), PROC_REF(open_storage_on_signal)) - RegisterSignal(parent, COMSIG_ATOM_ITEM_INTERACTION_SECONDARY, PROC_REF(on_item_interact_secondary)) RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(close_distance)) RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(update_actions)) RegisterSignal(parent, COMSIG_TOPIC, PROC_REF(topic_handle)) @@ -383,7 +388,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) user.balloon_alert(user, "no room!") return FALSE - var/can_hold_it = isnull(can_hold) || is_type_in_typecache(to_insert, can_hold) + var/can_hold_it = isnull(can_hold) || is_type_in_typecache(to_insert, can_hold) || is_type_in_typecache(to_insert, exception_hold) var/cant_hold_it = is_type_in_typecache(to_insert, cant_hold) var/trait_says_no = HAS_TRAIT(to_insert, TRAIT_NO_STORAGE_INSERT) if(!can_hold_it || cant_hold_it || trait_says_no) @@ -444,13 +449,40 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(!can_insert(to_insert, user, messages = messages, force = force)) return FALSE - SEND_SIGNAL(parent, COMSIG_STORAGE_STORED_ITEM, to_insert, user, force) + SEND_SIGNAL(parent, COMSIG_ATOM_STORED_ITEM, to_insert, user, force) SEND_SIGNAL(src, COMSIG_STORAGE_STORED_ITEM, to_insert, user, force) + RegisterSignal(to_insert, COMSIG_MOUSEDROPPED_ONTO, PROC_REF(mousedrop_receive)) to_insert.forceMove(real_location) item_insertion_feedback(user, to_insert, override) parent.update_appearance() return TRUE +/// Since items inside storages ignore transparency for QOL reasons, we're tracking when things are dropped onto them instead of our UI elements +/datum/storage/proc/mousedrop_receive(atom/dropped_onto, atom/movable/target, mob/user, params) + SIGNAL_HANDLER + + if (src != user.active_storage) + return + + if (!user.can_perform_action(parent, FORBID_TELEKINESIS_REACH)) + return + + if (target.loc != real_location) // what even + UnregisterSignal(target, COMSIG_MOUSEDROPPED_ONTO) + return + + if(numerical_stacking) + return + + var/drop_index = real_location.contents.Find(dropped_onto) + real_location.contents -= target + // Use an empty list if we're dropping onto the last item + var/list/to_move = real_location.contents.len >= drop_index ? real_location.contents.Copy(drop_index) : list() + real_location.contents -= to_move + real_location.contents += target + real_location.contents += to_move + refresh_views() + /** * Inserts every item in a given list, with a progress bar * @@ -499,8 +531,8 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(silent) return - if(rustle_sound) - playsound(parent, SFX_RUSTLE, 50, TRUE, -5) + if(do_rustle) + playsound(parent, rustle_sound, 50, rustle_vary, -5) if(!silent_for_user) to_chat(user, span_notice("You put [thing] [insert_preposition]to [parent].")) @@ -530,7 +562,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) reset_item(thing) thing.forceMove(remove_to_loc) - if(rustle_sound && !silent) + if(do_rustle && !silent) playsound(parent, SFX_RUSTLE, 50, TRUE, -5) else thing.moveToNullspace() @@ -541,6 +573,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) refresh_views() parent.update_appearance() + UnregisterSignal(thing, COMSIG_MOUSEDROPPED_ONTO) SEND_SIGNAL(parent, COMSIG_ATOM_REMOVED_ITEM, thing, remove_to_loc, silent) SEND_SIGNAL(src, COMSIG_STORAGE_REMOVED_ITEM, thing, remove_to_loc, silent) return TRUE @@ -704,7 +737,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) /datum/storage/proc/on_mousedrop_onto(datum/source, atom/over_object, mob/user) SIGNAL_HANDLER - if(ismecha(user.loc) || !user.canUseStorage()) + if(ismecha(user.loc) || user.incapacitated || !user.canUseStorage()) return if(istype(over_object, /atom/movable/screen/inventory/hand)) @@ -716,7 +749,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) parent.add_fingerprint(user) return COMPONENT_CANCEL_MOUSEDROP_ONTO - else if(ismob(over_object)) + if(ismob(over_object)) if(over_object != user || !user.can_perform_action(parent, FORBID_TELEKINESIS_REACH | ALLOW_RESTING)) return @@ -724,13 +757,24 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) INVOKE_ASYNC(src, PROC_REF(open_storage), user) return COMPONENT_CANCEL_MOUSEDROP_ONTO - else if(!istype(over_object, /atom/movable/screen)) - if(!user.can_perform_action(over_object, FORBID_TELEKINESIS_REACH)) - return + if(istype(over_object, /atom/movable/screen)) + return - parent.add_fingerprint(user) - INVOKE_ASYNC(src, PROC_REF(dump_content_at), over_object, user) - return COMPONENT_CANCEL_MOUSEDROP_ONTO + if(!user.can_perform_action(over_object, FORBID_TELEKINESIS_REACH)) + return + + parent.add_fingerprint(user) + + var/atom/dump_loc = over_object.get_dumping_location() + if(isnull(dump_loc)) + return + + /// Don't dump *onto* objects in the same storage as ourselves + if (over_object.loc == parent.loc && !isnull(parent.loc.atom_storage) && isnull(over_object.atom_storage)) + return + + INVOKE_ASYNC(src, PROC_REF(dump_content_at), over_object, dump_loc, user) + return COMPONENT_CANCEL_MOUSEDROP_ONTO /** * Dumps all of our contents at a specific location. @@ -738,7 +782,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) * @param atom/dest_object where to dump to * @param mob/user the user who is dumping the contents */ -/datum/storage/proc/dump_content_at(atom/dest_object, mob/user) +/datum/storage/proc/dump_content_at(atom/dest_object, dump_loc, mob/user) if(locked) user.balloon_alert(user, "closed!") return @@ -752,7 +796,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(dest_object.atom_storage) to_chat(user, span_notice("You dump the contents of [parent] into [dest_object].")) - if(rustle_sound) + if(do_rustle) playsound(parent, SFX_RUSTLE, 50, TRUE, -5) for(var/obj/item/to_dump in real_location) @@ -761,10 +805,6 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) SEND_SIGNAL(src, COMSIG_STORAGE_DUMP_POST_TRANSFER, dest_object, user) return - var/atom/dump_loc = dest_object.get_dumping_location() - if(isnull(dump_loc)) - return - // Storage to loc transfer requires a do_after to_chat(user, span_notice("You start dumping out the contents of [parent] onto [dest_object]...")) if(!do_after(user, 2 SECONDS, target = dest_object)) @@ -786,23 +826,12 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) return if(!iscarbon(user) && !isdrone(user)) return - attempt_insert(dropping, user) return COMPONENT_CANCEL_MOUSEDROPPED_ONTO -/// Signal handler for whenever we're attacked by an object. -/datum/storage/proc/on_item_interact(datum/source, mob/user, obj/item/thing, params) - SIGNAL_HANDLER - - if(!insert_on_attack) - return NONE - if(!thing.storage_insert_on_interaction(src, parent, user)) - return NONE - if(!parent.storage_insert_on_interacted_with(src, thing, user)) - return NONE - if(SEND_SIGNAL(parent, COMSIG_ATOM_STORAGE_ITEM_INTERACT_INSERT, thing, user) & BLOCK_STORAGE_INSERT) - return NONE - +/// Called directly from the attack chain if [insert_on_attack] is TRUE. +/// Handles inserting an item into the storage when clicked. +/datum/storage/proc/item_interact_insert(mob/living/user, obj/item/thing) if(iscyborg(user)) return ITEM_INTERACT_BLOCKING @@ -853,18 +882,6 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) return toreturn -/// Signal handler for when we get attacked with secondary click by an item. -/datum/storage/proc/on_item_interact_secondary(datum/source, mob/user, atom/weapon) - SIGNAL_HANDLER - - if(istype(weapon, /obj/item/chameleon)) - var/obj/item/chameleon/chameleon_weapon = weapon - chameleon_weapon.make_copy(source, user) - - if(open_storage_on_signal(source, user)) - return ITEM_INTERACT_BLOCKING - return NONE - /// Signal handler to open up the storage when we receive a signal. /datum/storage/proc/open_storage_on_signal(datum/source, mob/to_show) SIGNAL_HANDLER @@ -919,8 +936,8 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(animated) animate_parent() - if(rustle_sound) - playsound(parent, SFX_RUSTLE, 50, TRUE, -5) + if(do_rustle && !silent) + playsound(parent, (open_sound ? open_sound : SFX_RUSTLE), 50, open_sound_vary, -5) return TRUE @@ -957,7 +974,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(user.active_storage == src && user.client) seeing += user else - is_using -= user + hide_contents(user) return seeing /** @@ -1015,8 +1032,6 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) * * mob/to_hide - the mob to hide the storage from */ /datum/storage/proc/hide_contents(mob/to_hide) - if(!to_hide.client) - return TRUE if(to_hide.active_storage == src) to_hide.active_storage = null @@ -1024,13 +1039,14 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) var/atom/movable/movable_loc = real_location movable_loc.lose_active_storage(src) - if (isnull(storage_interfaces[to_hide])) + if (!length(storage_interfaces) || isnull(storage_interfaces[to_hide])) return TRUE is_using -= to_hide - to_hide.client.screen -= storage_interfaces[to_hide].list_ui_elements() - to_hide.client.screen -= real_location.contents + if(to_hide.client) + to_hide.client.screen -= storage_interfaces[to_hide].list_ui_elements() + to_hide.client.screen -= real_location.contents QDEL_NULL(storage_interfaces[to_hide]) storage_interfaces -= to_hide @@ -1061,7 +1077,9 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) var/columns = clamp(max_slots, 1, screen_max_columns) var/rows = clamp(CEILING(adjusted_contents / columns, 1) + additional_row, 1, screen_max_rows) - for (var/ui_user in storage_interfaces) + for (var/mob/ui_user as anything in storage_interfaces) + if (isnull(storage_interfaces[ui_user])) + continue storage_interfaces[ui_user].update_position(screen_start_x, screen_pixel_x, screen_start_y, screen_pixel_y, columns, rows) var/current_x = screen_start_x diff --git a/code/datums/storage/storage_interface.dm b/code/datums/storage/storage_interface.dm index cd28b9eb3f7a1..c0cab0dd7952c 100644 --- a/code/datums/storage/storage_interface.dm +++ b/code/datums/storage/storage_interface.dm @@ -2,7 +2,7 @@ /datum/storage_interface /// UI elements for this theme var/atom/movable/screen/close/closer - var/atom/movable/screen/storage/cells + var/atom/movable/screen/storage/cell/cells var/atom/movable/screen/storage/corner/corner_top_left var/atom/movable/screen/storage/corner/top_right/corner_top_right var/atom/movable/screen/storage/corner/bottom_left/corner_bottom_left diff --git a/code/datums/storage/subtypes/bag_of_holding.dm b/code/datums/storage/subtypes/bag_of_holding.dm index aa812f5d1e007..4028d4f789c6b 100644 --- a/code/datums/storage/subtypes/bag_of_holding.dm +++ b/code/datums/storage/subtypes/bag_of_holding.dm @@ -16,6 +16,7 @@ return ..() /datum/storage/bag_of_holding/proc/recursive_insertion(obj/item/to_insert, mob/living/user) + var/area/bag_area = get_area(user) var/safety = tgui_alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [to_insert.name]?", list("Proceed", "Abort")) if(safety != "Proceed" \ || QDELETED(to_insert) \ @@ -24,6 +25,7 @@ || QDELETED(user) \ || !user.can_perform_action(parent, NEED_DEXTERITY) \ || !can_insert(to_insert, user) \ + || (bag_area.area_flags & NO_BOH) \ ) return diff --git a/code/datums/storage/subtypes/drone.dm b/code/datums/storage/subtypes/drone.dm new file mode 100644 index 0000000000000..2df8f4c627966 --- /dev/null +++ b/code/datums/storage/subtypes/drone.dm @@ -0,0 +1,26 @@ +/datum/storage/drone + max_total_storage = 40 + max_specific_storage = WEIGHT_CLASS_NORMAL + max_slots = 10 + do_rustle = FALSE + +/datum/storage/drone/New(atom/parent, max_slots, max_specific_storage, max_total_storage) + . = ..() + + var/static/list/drone_builtins = list( + /obj/item/crowbar/drone, + /obj/item/screwdriver/drone, + /obj/item/wrench/drone, + /obj/item/weldingtool/drone, + /obj/item/wirecutters/drone, + /obj/item/multitool/drone, + /obj/item/pipe_dispenser/drone, + /obj/item/t_scanner/drone, + /obj/item/analyzer/drone, + /obj/item/soap/drone, + ) + + set_holdable(drone_builtins) + +/datum/storage/drone/dump_content_at(atom/dest_object, dump_loc, mob/user) + return //no dumping of contents allowed diff --git a/code/datums/storage/subtypes/extract_inventory.dm b/code/datums/storage/subtypes/extract_inventory.dm index 9d75b6eb1d336..621e44654511c 100644 --- a/code/datums/storage/subtypes/extract_inventory.dm +++ b/code/datums/storage/subtypes/extract_inventory.dm @@ -5,7 +5,7 @@ attack_hand_interact = FALSE quickdraw = FALSE locked = STORAGE_FULLY_LOCKED - rustle_sound = FALSE + do_rustle = FALSE silent = TRUE // Snowflake so you can feed it insert_on_attack = FALSE diff --git a/code/datums/storage/subtypes/fish_case.dm b/code/datums/storage/subtypes/fish_case.dm index 82733d37ad985..47103e931b1f8 100644 --- a/code/datums/storage/subtypes/fish_case.dm +++ b/code/datums/storage/subtypes/fish_case.dm @@ -1,6 +1,6 @@ /datum/storage/fish_case max_slots = 1 - max_specific_storage = WEIGHT_CLASS_HUGE + max_specific_storage = WEIGHT_CLASS_GIGANTIC can_hold_description = "Fish and aquarium equipment" /datum/storage/fish_case/can_insert(obj/item/to_insert, mob/user, messages, force) @@ -13,11 +13,13 @@ return FALSE return . +/datum/storage/fish_case/adjust_size + /* * Change the size of the storage item to match the inserted item's * Because of that, we also check if conditions to keep it inside another storage or pockets are still met. */ -/datum/storage/fish_case/handle_enter(datum/source, obj/item/arrived) +/datum/storage/fish_case/adjust_size/handle_enter(datum/source, obj/item/arrived) . = ..() if(!isitem(parent) || !istype(arrived)) return @@ -26,7 +28,7 @@ return item_parent.update_weight_class(arrived.w_class) -/datum/storage/fish_case/handle_exit(datum/source, obj/item/gone) +/datum/storage/fish_case/adjust_size/handle_exit(datum/source, obj/item/gone) . = ..() if(!isitem(parent) || !istype(gone)) return diff --git a/code/datums/storage/subtypes/pockets.dm b/code/datums/storage/subtypes/pockets.dm index edf3816c274ee..4e0e233121a28 100644 --- a/code/datums/storage/subtypes/pockets.dm +++ b/code/datums/storage/subtypes/pockets.dm @@ -2,7 +2,7 @@ max_slots = 2 max_specific_storage = WEIGHT_CLASS_SMALL max_total_storage = 50 - rustle_sound = FALSE + do_rustle = FALSE /datum/storage/pockets/attempt_insert(obj/item/to_insert, mob/user, override, force, messages) . = ..() diff --git a/code/datums/storage/subtypes/portable_chem_mixer.dm b/code/datums/storage/subtypes/portable_chem_mixer.dm new file mode 100644 index 0000000000000..fcf5c6ec412bc --- /dev/null +++ b/code/datums/storage/subtypes/portable_chem_mixer.dm @@ -0,0 +1,16 @@ +/datum/storage/portable_chem_mixer + max_total_storage = 200 + max_slots = 50 + +/datum/storage/portable_chem_mixer/New(atom/parent, max_slots, max_specific_storage, max_total_storage) + . = ..() + + var/static/list/obj/item/reagent_containers/containers = list( + /obj/item/reagent_containers/cup/beaker, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/cup/tube, + /obj/item/reagent_containers/cup/glass/waterbottle, + /obj/item/reagent_containers/condiment, + ) + + set_holdable(containers) diff --git a/code/datums/view.dm b/code/datums/view.dm index 19ba66c390040..702550a4e1874 100644 --- a/code/datums/view.dm +++ b/code/datums/view.dm @@ -1,19 +1,19 @@ //This is intended to be a full wrapper. DO NOT directly modify its values ///Container for client viewsize /datum/view_data - /// Width offset to apply to the default view string if we're not supressed for some reason + /// Width offset to apply to the default view string if we're not suppressed for some reason var/width = 0 /// Height offset to apply to the default view string, see above var/height = 0 /// This client's current "default" view, in the format "WidthxHeight" /// We add/remove from this when we want to change their window size var/default = "" - /// This client's current zoom level, if it's not being supressed + /// This client's current zoom level, if it's not being suppressed /// If it's 0, we autoscale to the size of the window. Otherwise it's treated as the ratio between /// the pixels on the map and output pixels. Only looks proper nice in increments of whole numbers (iirc) /// Stored here so other parts of the code have a non blocking way of getting a user's functional zoom var/zoom = 0 - /// If the view is currently being supressed by some other "monitor" + /// If the view is currently being suppressed by some other "monitor" /// For when you want to own the client's eye without fucking with their viewport /// Doesn't make sense for a binocoler to effect your view in a camera console var/is_suppressed = FALSE @@ -73,7 +73,7 @@ apply() /datum/view_data/proc/setTo(toAdd) - var/list/shitcode = getviewsize(toAdd) //Backward compatability to account + var/list/shitcode = getviewsize(toAdd) //Backward compatibility to account width = shitcode[1] //for a change in how sizes get calculated. we used to include world.view in height = shitcode[2] //this, but it was jank, so I had to move it apply() @@ -134,7 +134,7 @@ _y = -offset if(WEST) _x = -offset - animate(chief, pixel_x = world.icon_size*_x, pixel_y = world.icon_size*_y, 0, FALSE, LINEAR_EASING, ANIMATION_END_NOW) + animate(chief, pixel_x = ICON_SIZE_X*_x, pixel_y = ICON_SIZE_Y*_y, 0, FALSE, LINEAR_EASING, ANIMATION_END_NOW) //Ready for this one? setTo(radius) diff --git a/code/datums/votes/map_vote.dm b/code/datums/votes/map_vote.dm index abe452ce4fedf..b4f938a42e451 100644 --- a/code/datums/votes/map_vote.dm +++ b/code/datums/votes/map_vote.dm @@ -2,29 +2,18 @@ name = "Map" default_message = "Vote for next round's map!" count_method = VOTE_COUNT_METHOD_SINGLE - winner_method = VOTE_WINNER_METHOD_WEIGHTED_RANDOM + winner_method = VOTE_WINNER_METHOD_NONE display_statistics = FALSE /datum/vote/map_vote/New() . = ..() - - default_choices = list() - - // Fill in our default choices with all of the maps in our map config, if they are votable and not blocked. - var/list/maps = shuffle(global.config.maplist) - for(var/map in maps) - var/datum/map_config/possible_config = config.maplist[map] - if(!possible_config.votable || (possible_config.map_name in SSpersistence.blocked_maps)) - continue - - default_choices += possible_config.map_name + default_choices = SSmap_vote.get_valid_map_vote_choices() /datum/vote/map_vote/create_vote() . = ..() if(!.) return FALSE - choices -= get_choices_invalid_for_population() if(length(choices) == 1) // Only one choice, no need to vote. Let's just auto-rotate it to the only remaining map because it would just happen anyways. var/datum/map_config/change_me_out = global.config.maplist[choices[1]] finalize_vote(choices[1])// voted by not voting, very sad. @@ -48,35 +37,16 @@ . = ..() if(. != VOTE_AVAILABLE) return . - if(forced) - return VOTE_AVAILABLE - var/num_choices = length(default_choices - get_choices_invalid_for_population()) + + var/num_choices = length(default_choices) if(num_choices <= 1) return "There [num_choices == 1 ? "is only one map" : "are no maps"] to choose from." - if(SSmapping.map_vote_rocked) - return VOTE_AVAILABLE - if(SSmapping.map_voted) + if(SSmap_vote.next_map_config) return "The next map has already been selected." return VOTE_AVAILABLE -/// Returns a list of all map options that are invalid for the current population. -/datum/vote/map_vote/proc/get_choices_invalid_for_population() - var/filter_threshold = 0 - if(SSticker.HasRoundStarted()) - filter_threshold = get_active_player_count(alive_check = FALSE, afk_check = TRUE, human_check = FALSE) - else - filter_threshold = GLOB.clients.len - - var/list/invalid_choices = list() - for(var/map in default_choices) - var/datum/map_config/possible_config = config.maplist[map] - if(possible_config.config_min_users > 0 && filter_threshold < possible_config.config_min_users) - invalid_choices += map - - else if(possible_config.config_max_users > 0 && filter_threshold > possible_config.config_max_users) - invalid_choices += map - - return invalid_choices +/datum/vote/map_vote/get_result_text(list/all_winners, real_winner, list/non_voters) + return null /datum/vote/map_vote/get_vote_result(list/non_voters) // Even if we have default no vote off, @@ -97,20 +67,4 @@ return ..() /datum/vote/map_vote/finalize_vote(winning_option) - var/datum/map_config/winning_map = global.config.maplist[winning_option] - if(!istype(winning_map)) - CRASH("[type] wasn't passed a valid winning map choice. (Got: [winning_option || "null"] - [winning_map || "null"])") - - SSmapping.changemap(winning_map) - SSmapping.map_voted = TRUE - if(SSmapping.map_vote_rocked) - SSmapping.map_vote_rocked = FALSE - -/proc/revert_map_vote() - var/datum/map_config/override_map = SSmapping.config - if(isnull(override_map)) - return - - SSmapping.changemap(override_map) - log_game("The next map has been reset to [override_map.map_name].") - send_to_playing_players(span_boldannounce("The next map is: [override_map.map_name].")) + SSmap_vote.finalize_map_vote(src) diff --git a/code/datums/votes/restart_vote.dm b/code/datums/votes/restart_vote.dm index 3c74d7e518e28..ba0fdf78083b1 100644 --- a/code/datums/votes/restart_vote.dm +++ b/code/datums/votes/restart_vote.dm @@ -57,10 +57,10 @@ return // If there was a previous map vote, we revert the change. - if(!isnull(SSmapping.next_map_config)) + if(!isnull(SSmap_vote.next_map_config)) log_game("The next map has been reset due to successful restart vote.") send_to_playing_players(span_boldannounce("The next map has been reset due to successful restart vote.")) - revert_map_vote() + SSmap_vote.revert_next_map() SSticker.force_ending = FORCE_END_ROUND log_game("End round forced by successful restart vote.") diff --git a/code/datums/votes/rock_the_vote.dm b/code/datums/votes/rock_the_vote.dm deleted file mode 100644 index 6c7ac4ff2572e..0000000000000 --- a/code/datums/votes/rock_the_vote.dm +++ /dev/null @@ -1,62 +0,0 @@ -#define CHOICE_TO_ROCK "Yes, re-do the map vote." -#define CHOICE_NOT_TO_ROCK "No, keep the currently selected map." - -/// If a map vote is called before the emergency shuttle leaves the station, the players can call another vote to re-run the vote on the shuttle leaving. -/datum/vote/rock_the_vote - name = "Rock the Vote" - override_question = "Rock the Vote?" - contains_vote_in_name = TRUE //lol - default_choices = list( - CHOICE_TO_ROCK, - CHOICE_NOT_TO_ROCK, - ) - default_message = "Override the current map vote." - /// The number of times we have rocked the vote thus far. - var/rocking_votes = 0 - -/datum/vote/rock_the_vote/toggle_votable() - CONFIG_SET(flag/allow_rock_the_vote, !CONFIG_GET(flag/allow_rock_the_vote)) - -/datum/vote/rock_the_vote/is_config_enabled() - return CONFIG_GET(flag/allow_rock_the_vote) - -/datum/vote/rock_the_vote/can_be_initiated(forced) - . = ..() - if(. != VOTE_AVAILABLE) - return . - - if(SSticker.current_state == GAME_STATE_FINISHED) - return "The game is finished, no map votes can be initiated." - - if(rocking_votes >= CONFIG_GET(number/max_rocking_votes)) - return "The maximum number of times to rock the vote has been reached." - - if(SSmapping.map_vote_rocked) - return "The vote has already been rocked! Initiate a map vote!" - - if(!SSmapping.map_voted) - return "Rocking the vote is disabled because no map has been voted on yet!" - - if(SSmapping.map_force_chosen) - return "Rocking the vote is disabled because an admin has forcibly set the map!" - - if(EMERGENCY_ESCAPED_OR_ENDGAMED && SSmapping.map_voted) - return "The emergency shuttle has already left the station and the next map has already been chosen!" - - return VOTE_AVAILABLE - -/datum/vote/rock_the_vote/finalize_vote(winning_option) - rocking_votes++ - if(winning_option == CHOICE_NOT_TO_ROCK) - return - - if(winning_option == CHOICE_TO_ROCK) - to_chat(world, span_boldannounce("The vote has been rocked! Players are now able to re-run the map vote once more.")) - message_admins("The players have successfully rocked the vote.") - SSmapping.map_vote_rocked = TRUE - return - - CRASH("[type] wasn't passed a valid winning choice. (Got: [winning_option || "null"])") - -#undef CHOICE_TO_ROCK -#undef CHOICE_NOT_TO_ROCK diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm index 16ffb326f8a86..85e5e74b02fba 100644 --- a/code/datums/weather/weather.dm +++ b/code/datums/weather/weather.dm @@ -13,7 +13,7 @@ /// description of weather var/desc = "Heavy gusts of wind blanket the area, periodically knocking down anyone caught in the open." /// The message displayed in chat to foreshadow the weather's beginning - var/telegraph_message = "The wind begins to pick up." + var/telegraph_message = span_warning("The wind begins to pick up.") /// In deciseconds, how long from the beginning of the telegraph until the weather begins var/telegraph_duration = 300 /// The sound file played to everyone on an affected z-level @@ -22,7 +22,7 @@ var/telegraph_overlay /// Displayed in chat once the weather begins in earnest - var/weather_message = "The wind begins to blow ferociously!" + var/weather_message = span_userdanger("The wind begins to blow ferociously!") /// In deciseconds, how long the weather lasts once it begins var/weather_duration = 1200 /// See above - this is the lowest possible duration @@ -37,7 +37,7 @@ var/weather_color = null /// Displayed once the weather is over - var/end_message = "The wind relents its assault." + var/end_message = span_danger("The wind relents its assault.") /// In deciseconds, how long the "wind-down" graphic will appear before vanishing entirely var/end_duration = 300 /// Sound that plays while weather is ending @@ -59,7 +59,7 @@ /// Since it's above everything else, this is the layer used by default. var/overlay_layer = AREA_LAYER /// Plane for the overlay - var/overlay_plane = AREA_PLANE + var/overlay_plane = WEATHER_PLANE /// If the weather has no purpose other than looks var/aesthetic = FALSE /// Used by mobs (or movables containing mobs, such as enviro bags) to prevent them from being affected by the weather. @@ -99,7 +99,7 @@ /datum/weather/proc/telegraph() if(stage == STARTUP_STAGE) return - SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_TELEGRAPH(type)) + SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_TELEGRAPH(type), src) stage = STARTUP_STAGE var/list/affectareas = list() for(var/V in get_areas(area_type)) @@ -129,14 +129,14 @@ /datum/weather/proc/start() if(stage >= MAIN_STAGE) return - SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_START(type)) + SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_START(type), src) stage = MAIN_STAGE update_areas() send_alert(weather_message, weather_sound) if(!perpetual) addtimer(CALLBACK(src, PROC_REF(wind_down)), weather_duration) for(var/area/impacted_area as anything in impacted_areas) - SEND_SIGNAL(impacted_area, COMSIG_WEATHER_BEGAN_IN_AREA(type)) + SEND_SIGNAL(impacted_area, COMSIG_WEATHER_BEGAN_IN_AREA(type), src) /** * Weather enters the winding down phase, stops effects @@ -148,7 +148,7 @@ /datum/weather/proc/wind_down() if(stage >= WIND_DOWN_STAGE) return - SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_WINDDOWN(type)) + SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_WINDDOWN(type), src) stage = WIND_DOWN_STAGE update_areas() send_alert(end_message, end_sound) @@ -164,12 +164,12 @@ /datum/weather/proc/end() if(stage == END_STAGE) return - SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_END(type)) + SEND_GLOBAL_SIGNAL(COMSIG_WEATHER_END(type), src) stage = END_STAGE SSweather.processing -= src update_areas() for(var/area/impacted_area as anything in impacted_areas) - SEND_SIGNAL(impacted_area, COMSIG_WEATHER_ENDED_IN_AREA(type)) + SEND_SIGNAL(impacted_area, COMSIG_WEATHER_ENDED_IN_AREA(type), src) // handles sending all alerts /datum/weather/proc/send_alert(alert_msg, alert_sfx) @@ -260,12 +260,12 @@ // I prefer it to creating 2 extra plane masters however, so it's a cost I'm willing to pay // LU if(use_glow) - var/mutable_appearance/glow_overlay = mutable_appearance('icons/effects/glow_weather.dmi', weather_state, overlay_layer, null, ABOVE_LIGHTING_PLANE, 100, offset_const = offset) + var/mutable_appearance/glow_overlay = mutable_appearance('icons/effects/glow_weather.dmi', weather_state, overlay_layer, null, WEATHER_GLOW_PLANE, 100, offset_const = offset) glow_overlay.color = weather_color gen_overlay_cache += glow_overlay - var/mutable_appearance/weather_overlay = mutable_appearance('icons/effects/weather_effects.dmi', weather_state, overlay_layer, plane = overlay_plane, offset_const = offset) - weather_overlay.color = weather_color - gen_overlay_cache += weather_overlay + var/mutable_appearance/new_weather_overlay = mutable_appearance('icons/effects/weather_effects.dmi', weather_state, overlay_layer, plane = overlay_plane, offset_const = offset) + new_weather_overlay.color = weather_color + gen_overlay_cache += new_weather_overlay return gen_overlay_cache diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index bb4e5af63f3ad..7d432c1e488da 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -3,16 +3,16 @@ name = "ash storm" desc = "An intense atmospheric storm lifts ash off of the planet's surface and billows it down across the area, dealing intense fire damage to the unprotected." - telegraph_message = "An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter." + telegraph_message = span_boldwarning("An eerie moan rises on the wind. Sheets of burning ash blacken the horizon. Seek shelter.") telegraph_duration = 300 telegraph_overlay = "light_ash" - weather_message = "Smoldering clouds of scorching ash billow down around you! Get inside!" + weather_message = span_userdanger("Smoldering clouds of scorching ash billow down around you! Get inside!") weather_duration_lower = 600 weather_duration_upper = 1200 weather_overlay = "ash_storm" - end_message = "The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now." + end_message = span_boldannounce("The shrieking wind whips away the last of the ash and falls to its usual murmur. It should be safe to go outside now.") end_duration = 300 end_overlay = "light_ash" @@ -81,10 +81,10 @@ name = "emberfall" desc = "A passing ash storm blankets the area in harmless embers." - weather_message = "Gentle embers waft down around you like grotesque snow. The storm seems to have passed you by..." + weather_message = span_notice("Gentle embers waft down around you like grotesque snow. The storm seems to have passed you by...") weather_overlay = "light_ash" - end_message = "The emberfall slows, stops. Another layer of hardened soot to the basalt beneath your feet." + end_message = span_notice("The emberfall slows, stops. Another layer of hardened soot to the basalt beneath your feet.") end_sound = null aesthetic = TRUE diff --git a/code/datums/weather/weather_types/floor_is_lava.dm b/code/datums/weather/weather_types/floor_is_lava.dm index 03ed0c68c311a..25037d433b5eb 100644 --- a/code/datums/weather/weather_types/floor_is_lava.dm +++ b/code/datums/weather/weather_types/floor_is_lava.dm @@ -3,15 +3,15 @@ name = "the floor is lava" desc = "The ground turns into surprisingly cool lava, lightly damaging anything on the floor." - telegraph_message = "You feel the ground beneath you getting hot. Waves of heat distort the air." + telegraph_message = span_warning("You feel the ground beneath you getting hot. Waves of heat distort the air.") telegraph_duration = 150 - weather_message = "The floor is lava! Get on top of something!" + weather_message = span_userdanger("The floor is lava! Get on top of something!") weather_duration_lower = 300 weather_duration_upper = 600 weather_overlay = "lava" - end_message = "The ground cools and returns to its usual form." + end_message = span_danger("The ground cools and returns to its usual form.") end_duration = 0 area_type = /area diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index a20b552df4f04..8acf8be4b9e66 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -4,23 +4,23 @@ desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected." telegraph_duration = 400 - telegraph_message = "The air begins to grow warm." + telegraph_message = span_danger("The air begins to grow warm.") - weather_message = "You feel waves of heat wash over you! Find shelter!" + weather_message = span_userdanger("You feel waves of heat wash over you! Find shelter!") weather_overlay = "ash_storm" weather_duration_lower = 600 weather_duration_upper = 1500 weather_color = "green" - weather_sound = 'sound/misc/bloblarm.ogg' + weather_sound = 'sound/announcer/alarm/bloblarm.ogg' end_duration = 100 - end_message = "The air seems to be cooling off again." + end_message = span_notice("The air seems to be cooling off again.") area_type = /area protected_areas = list(/area/station/maintenance, /area/station/ai_monitored/turret_protected/ai_upload, /area/station/ai_monitored/turret_protected/ai_upload_foyer, /area/station/ai_monitored/turret_protected/aisat/maint, /area/station/ai_monitored/command/storage/satellite, /area/station/ai_monitored/turret_protected/ai, /area/station/commons/storage/emergency/starboard, /area/station/commons/storage/emergency/port, - /area/shuttle, /area/station/security/prison/safe, /area/station/security/prison/toilet, /area/icemoon/underground, /area/ruin/comms_agent/maint) + /area/shuttle, /area/station/security/prison/safe, /area/station/security/prison/toilet, /area/mine/maintenance, /area/icemoon/underground, /area/ruin/comms_agent/maint) target_trait = ZTRAIT_STATION immunity_type = TRAIT_RADSTORM_IMMUNE @@ -34,28 +34,28 @@ status_alarm(TRUE) -/datum/weather/rad_storm/weather_act(mob/living/L) +/datum/weather/rad_storm/weather_act(mob/living/living) if(!prob(mutate_chance)) return - if(!ishuman(L)) + if(!ishuman(living) || HAS_TRAIT(living, TRAIT_GODMODE)) return - var/mob/living/carbon/human/H = L - if(!H.can_mutate() || H.status_flags & GODMODE) + var/mob/living/carbon/human/human = living + if(!human.can_mutate()) return - if(HAS_TRAIT(H, TRAIT_RADIMMUNE)) + if(HAS_TRAIT(human, TRAIT_RADIMMUNE)) return - if (SSradiation.wearing_rad_protected_clothing(H)) + if (SSradiation.wearing_rad_protected_clothing(human)) return - H.random_mutate_unique_identity() - H.random_mutate_unique_features() + human.random_mutate_unique_identity() + human.random_mutate_unique_features() if(prob(50)) - do_mutate(L) + do_mutate(human) /datum/weather/rad_storm/end() if(..()) diff --git a/code/datums/weather/weather_types/snow_storm.dm b/code/datums/weather/weather_types/snow_storm.dm index c98ee9636a7aa..2b749cdbc84d1 100644 --- a/code/datums/weather/weather_types/snow_storm.dm +++ b/code/datums/weather/weather_types/snow_storm.dm @@ -3,18 +3,18 @@ desc = "Harsh snowstorms roam the topside of this arctic planet, burying any area unfortunate enough to be in its path." probability = 90 - telegraph_message = "Drifting particles of snow begin to dust the surrounding area.." + telegraph_message = span_warning("Drifting particles of snow begin to dust the surrounding area..") telegraph_duration = 300 telegraph_overlay = "light_snow" - weather_message = "Harsh winds pick up as dense snow begins to fall from the sky! Seek shelter!" + weather_message = span_userdanger("Harsh winds pick up as dense snow begins to fall from the sky! Seek shelter!") weather_overlay = "snow_storm" weather_duration_lower = 600 weather_duration_upper = 1500 use_glow = FALSE end_duration = 100 - end_message = "The snowfall dies down, it should be safe to go outside again." + end_message = span_boldannounce("The snowfall dies down, it should be safe to go outside again.") area_type = /area protect_indoors = TRUE diff --git a/code/datums/weather/weather_types/void_storm.dm b/code/datums/weather/weather_types/void_storm.dm index 4d3638c582711..617e3ff0230fd 100644 --- a/code/datums/weather/weather_types/void_storm.dm +++ b/code/datums/weather/weather_types/void_storm.dm @@ -6,7 +6,7 @@ telegraph_overlay = "light_snow" weather_message = span_hypnophrase("You feel the air around you getting colder... and void's sweet embrace...") - weather_overlay = "snow_storm" + weather_overlay = "light_snow" weather_color = COLOR_BLACK weather_duration_lower = 60 SECONDS weather_duration_upper = 120 SECONDS @@ -19,31 +19,5 @@ protect_indoors = FALSE target_trait = ZTRAIT_VOIDSTORM - immunity_type = TRAIT_VOIDSTORM_IMMUNE - barometer_predictable = FALSE perpetual = TRUE - - /// List of areas that were once impacted areas but are not anymore. Used for updating the weather overlay based whether the ascended heretic is in the area. - var/list/former_impacted_areas = list() - -/datum/weather/void_storm/can_weather_act(mob/living/mob_to_check) - . = ..() - if(IS_HERETIC_OR_MONSTER(mob_to_check)) - return FALSE - -/datum/weather/void_storm/weather_act(mob/living/victim) - var/need_mob_update = FALSE - victim.adjustFireLoss(1, updating_health = FALSE) - victim.adjustOxyLoss(rand(1, 3), updating_health = FALSE) - if(need_mob_update) - victim.updatehealth() - victim.adjust_eye_blur(rand(0 SECONDS, 2 SECONDS)) - victim.adjust_bodytemperature(-30 * TEMPERATURE_DAMAGE_COEFFICIENT) - -// Goes through former_impacted_areas and sets the overlay of each back to the telegraph overlay, to indicate the ascended heretic is no longer in that area. -/datum/weather/void_storm/update_areas() - for(var/area/former_area as anything in former_impacted_areas) - former_area.icon_state = telegraph_overlay - former_impacted_areas -= former_area - return ..() diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index c3c8a1c0e93e1..73bdc511ee4ba 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -348,7 +348,7 @@ data["proper_name"] = (proper_name != "Unknown") ? proper_name : null return data -/datum/wires/ui_act(action, params) +/datum/wires/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(. || !interactable(usr)) return diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 8049f08d8dcf4..584e862eb5d51 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -126,7 +126,7 @@ A.update_appearance() if(WIRE_IDSCAN) // Pulse to disable emergency access and flash the red lights. if(A.hasPower() && A.density) - A.do_animate("deny") + A.run_animation(DOOR_DENY_ANIMATION) if(A.emergency) A.emergency = FALSE A.update_appearance() diff --git a/code/datums/wires/mecha.dm b/code/datums/wires/mecha.dm index 4e11eda65f7f6..2fe8f19517403 100644 --- a/code/datums/wires/mecha.dm +++ b/code/datums/wires/mecha.dm @@ -95,12 +95,13 @@ if(mecha.Adjacent(target) && !TIMER_COOLDOWN_RUNNING(mecha, COOLDOWN_MECHA_MELEE_ATTACK) && target.mech_melee_attack(mecha)) TIMER_COOLDOWN_START(mecha, COOLDOWN_MECHA_MELEE_ATTACK, mecha.melee_cooldown) -/datum/wires/mecha/ui_act(action, params) +/datum/wires/mecha/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return + var/mob/user = ui.user var/obj/vehicle/sealed/mecha/mecha = holder - if(!HAS_SILICON_ACCESS(usr) && mecha.internal_damage & MECHA_INT_SHORT_CIRCUIT && mecha.shock(usr)) + if(!HAS_SILICON_ACCESS(user) && mecha.internal_damage & MECHA_INT_SHORT_CIRCUIT && mecha.shock(usr)) return FALSE /datum/wires/mecha/can_reveal_wires(mob/user) diff --git a/code/datums/wires/mod.dm b/code/datums/wires/mod.dm index 00d836a52eba4..8250bc45f69c9 100644 --- a/code/datums/wires/mod.dm +++ b/code/datums/wires/mod.dm @@ -50,9 +50,10 @@ if(WIRE_INTERFACE) mod.interface_break = !mend -/datum/wires/mod/ui_act(action, params) +/datum/wires/mod/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) var/obj/item/mod/control/mod = holder - if(!HAS_SILICON_ACCESS(usr) && mod.seconds_electrified && mod.shock(usr)) + var/mob/user = ui.user + if(!HAS_SILICON_ACCESS(user) && mod.seconds_electrified && mod.shock(user)) return FALSE return ..() diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm index fa939d5b5607c..d7f98f07debd9 100644 --- a/code/datums/wires/syndicatebomb.dm +++ b/code/datums/wires/syndicatebomb.dm @@ -48,7 +48,7 @@ if(WIRE_PROCEED) holder.visible_message(span_danger("[icon2html(B, viewers(holder))] The bomb buzzes ominously!")) - playsound(B, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(B, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) var/seconds = B.seconds_remaining() if(seconds >= 61) // Long fuse bombs can suddenly become more dangerous if you tinker with them. B.detonation_timer = world.time + 600 diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 873d092e4f622..37ed5ab5caef7 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -15,7 +15,7 @@ var/datum/language_holder/vending_languages = vending_machine.get_language_holder() if(!length(vending_languages.spoken_languages)) - CRASH("Vending machine [vending_machine] does not have any spoken languages in it's language holder.") + CRASH("Vending machine [vending_machine] does not have any spoken languages in its language holder.") // synch the current language to the language_iterator for(var/i in vending_languages.spoken_languages) diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index f2bf896bb10b3..a9971f6068c98 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -212,7 +212,7 @@ .["admins"] = presentmins.len + afkmins.len //equivalent to the info gotten from adminwho .["gamestate"] = SSticker.current_state - .["map_name"] = SSmapping.config?.map_name || "Loading..." + .["map_name"] = SSmapping.current_map.map_name || "Loading..." if(key_valid) .["active_players"] = get_active_player_count() diff --git a/code/datums/wounds/_wound_static_data.dm b/code/datums/wounds/_wound_static_data.dm index f996bb258c795..adc0923ee4f0a 100644 --- a/code/datums/wounds/_wound_static_data.dm +++ b/code/datums/wounds/_wound_static_data.dm @@ -1,6 +1,6 @@ // This datum is merely a singleton instance that allows for custom "can be applied" behaviors without instantiating a wound instance. // For example: You can make a pregen_data subtype for your wound that overrides can_be_applied_to to only apply to specifically slimeperson limbs. -// Without this, youre stuck with very static initial variables. +// Without this, you're stuck with very static initial variables. /// A singleton datum that holds pre-gen and static data about a wound. Each wound datum should have a corresponding wound_pregen_data. /datum/wound_pregen_data @@ -56,9 +56,9 @@ if (!abstract) if (required_limb_biostate == null) - stack_trace("required_limb_biostate null - please set it! occured on: [src.type]") + stack_trace("required_limb_biostate null - please set it! occurred on: [src.type]") if (wound_path_to_generate == null) - stack_trace("wound_path_to_generate null - please set it! occured on: [src.type]") + stack_trace("wound_path_to_generate null - please set it! occurred on: [src.type]") scar_priorities = generate_scar_priorities() @@ -82,8 +82,8 @@ * * random_roll = FALSE: If this is in the context of a random wound generation, and this wound wasn't specifically checked. * * Returns: - * FALSE if the limb cannot be wounded, if the wounding types dont match ours (via wounding_types_valid()), if we have a higher severity wound already in our series, - * if we have a biotype mismatch, if the limb isnt in a viable zone, or if theres any duplicate wound types. + * FALSE if the limb cannot be wounded, if the wounding types don't match ours (via wounding_types_valid()), if we have a higher severity wound already in our series, + * if we have a biotype mismatch, if the limb isn't in a viable zone, or if there's any duplicate wound types. * TRUE otherwise. */ /datum/wound_pregen_data/proc/can_be_applied_to(obj/item/bodypart/limb, list/suggested_wounding_types = required_wounding_types, datum/wound/old_wound, random_roll = FALSE, duplicates_allowed = src.duplicates_allowed, care_about_existing_wounds = TRUE) @@ -95,7 +95,7 @@ if (random_roll && !can_be_randomly_generated) return FALSE - if (HAS_TRAIT(limb.owner, TRAIT_NEVER_WOUNDED) || (limb.owner.status_flags & GODMODE)) + if (HAS_TRAIT(limb.owner, TRAIT_NEVER_WOUNDED) || HAS_TRAIT(limb.owner, TRAIT_GODMODE)) return FALSE if (!wounding_types_valid(suggested_wounding_types)) diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm index f713819c81786..fdecc89680a54 100644 --- a/code/datums/wounds/_wounds.dm +++ b/code/datums/wounds/_wounds.dm @@ -23,6 +23,8 @@ var/desc = "" /// The basic treatment suggested by health analyzers var/treat_text = "" + /// Even more basic treatment + var/treat_text_short = "" /// What the limb looks like on a cursory examine var/examine_desc = "is badly hurt" @@ -127,7 +129,7 @@ return ..() -/// If we should have an actionspeed_mod, ensures we do and updates its slowdown. Otherwise, ensures we dont have one +/// If we should have an actionspeed_mod, ensures we do and updates its slowdown. Otherwise, ensures we don't have one /// by qdeleting any existing modifier. /datum/wound/proc/update_actionspeed_modifier() if (should_have_actionspeed_modifier()) @@ -201,8 +203,7 @@ if(status_effect_type) victim.apply_status_effect(status_effect_type, src) SEND_SIGNAL(victim, COMSIG_CARBON_GAIN_WOUND, src, limb) - if(!victim.alerts[ALERT_WOUNDED]) // only one alert is shared between all of the wounds - victim.throw_alert(ALERT_WOUNDED, /atom/movable/screen/alert/status_effect/wound) + victim.update_health_hud() var/demoted if(old_wound) @@ -323,7 +324,7 @@ SIGNAL_HANDLER qdel(src) -/// Remove the wound from whatever it's afflicting, and cleans up whateverstatus effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim +/// Remove the wound from whatever it's afflicting, and cleans up whatever status effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim /datum/wound/proc/remove_wound(ignore_limb, replaced = FALSE) //TODO: have better way to tell if we're getting removed without replacement (full heal) scar stuff var/old_victim = victim @@ -341,18 +342,18 @@ if(limb && !ignore_limb) set_limb(null, replaced) // since we're removing limb's ref to us, we should do the same - // if you want to keep the ref, do it externally, theres no reason for us to remember it + // if you want to keep the ref, do it externally, there's no reason for us to remember it if (ismob(old_victim)) var/mob/mob_victim = old_victim SEND_SIGNAL(mob_victim, COMSIG_CARBON_POST_LOSE_WOUND, src, old_limb, ignore_limb, replaced) + if(!replaced && !limb) + mob_victim.update_health_hud() /datum/wound/proc/remove_wound_from_victim() if(!victim) return LAZYREMOVE(victim.all_wounds, src) - if(!victim.all_wounds) - victim.clear_alert(ALERT_WOUNDED) SEND_SIGNAL(victim, COMSIG_CARBON_LOSE_WOUND, src, limb) /** @@ -498,7 +499,7 @@ // check if we have a valid treatable tool if(potential_treater.tool_behaviour in treatable_tools) return TRUE - if(TOOL_CAUTERY in treatable_tools && potential_treater.get_temperature() && user == victim) // allow improvised cauterization on yourself without an aggro grab + if((TOOL_CAUTERY in treatable_tools) && potential_treater.get_temperature() && (user == victim)) // allow improvised cauterization on yourself without an aggro grab return TRUE // failing that, see if we're aggro grabbing them and if we have an item that works for aggro grabs only if(user.pulling == victim && user.grab_state >= GRAB_AGGRESSIVE && check_grab_treatments(potential_treater, user)) @@ -643,22 +644,42 @@ return span_bold("[desc]!") return "[desc]." +/** + * Prints the details about the wound for the wound scanner on simple mode + */ /datum/wound/proc/get_scanner_description(mob/user) - return "Type: [name]\nSeverity: [severity_text(simple = FALSE)]\nDescription: [desc]\nRecommended Treatment: [treat_text]" + return "Type: [name]
\ + Severity: [severity_text()]
\ + Description: [desc]
\ + Recommended Treatment: [treat_text]" +/** + * Prints the details about the wound for the wound scanner on complex mode + */ /datum/wound/proc/get_simple_scanner_description(mob/user) - return "[name] detected!\nRisk: [severity_text(simple = TRUE)]\nDescription: [simple_desc ? simple_desc : desc]\nTreatment Guide: [simple_treat_text]\nHomemade Remedies: [homemade_treat_text]" + var/severity_text_formatted = severity_text() + for(var/i in 1 to severity) + severity_text_formatted += "!" -/datum/wound/proc/severity_text(simple = FALSE) + return "[name] detected!
\ + Risk: [severity_text_formatted]
\ + Description: [simple_desc || desc]
\ + Treatment Guide: [simple_treat_text]
\ + Homemade Remedies: [homemade_treat_text]" + +/** + * Returns what text describes this wound + */ +/datum/wound/proc/severity_text() switch(severity) if(WOUND_SEVERITY_TRIVIAL) return "Trivial" if(WOUND_SEVERITY_MODERATE) - return "Moderate" + (simple ? "!" : "") + return "Moderate" if(WOUND_SEVERITY_SEVERE) - return "Severe" + (simple ? "!!" : "") + return "Severe" if(WOUND_SEVERITY_CRITICAL) - return "Critical" + (simple ? "!!!" : "") + return "Critical" /// Returns TRUE if our limb is the head or chest, FALSE otherwise. /// Essential in the sense of "we cannot live without it". @@ -688,13 +709,13 @@ /datum/wound/proc/get_limb_examine_description() return -/// Gets the flat percentage chance increment of a dismember occuring, if a dismember is attempted (requires mangled flesh and bone). returning 15 = +15%. +/// Gets the flat percentage chance increment of a dismember occurring, if a dismember is attempted (requires mangled flesh and bone). returning 15 = +15%. /datum/wound/proc/get_dismember_chance_bonus(existing_chance) SHOULD_BE_PURE(TRUE) var/datum/wound_pregen_data/pregen_data = get_pregen_data() - if (WOUND_BLUNT in pregen_data.required_wounding_types && severity >= WOUND_SEVERITY_CRITICAL) + if ((WOUND_BLUNT in pregen_data.required_wounding_types) && severity >= WOUND_SEVERITY_CRITICAL) return WOUND_CRITICAL_BLUNT_DISMEMBER_BONUS // we only require mangled bone (T2 blunt), but if there's a critical blunt, we'll add 15% more /// Returns our pregen data, which is practically guaranteed to exist, so this proc can safely be used raw. diff --git a/code/datums/wounds/bones.dm b/code/datums/wounds/bones.dm index 43385b47180ae..667684c0f9f15 100644 --- a/code/datums/wounds/bones.dm +++ b/code/datums/wounds/bones.dm @@ -147,14 +147,26 @@ if(1 to 6) victim.bleed(blood_bled, TRUE) if(7 to 13) - victim.visible_message("A thin stream of blood drips from [victim]'s mouth from the blow to [victim.p_their()] chest.", span_danger("You cough up a bit of blood from the blow to your chest."), vision_distance=COMBAT_MESSAGE_RANGE) + victim.visible_message( + span_smalldanger("A thin stream of blood drips from [victim]'s mouth from the blow to [victim.p_their()] chest."), + span_danger("You cough up a bit of blood from the blow to your chest."), + vision_distance = COMBAT_MESSAGE_RANGE, + ) victim.bleed(blood_bled, TRUE) if(14 to 19) - victim.visible_message("Blood spews out of [victim]'s mouth from the blow to [victim.p_their()] chest!", span_danger("You spit out a string of blood from the blow to your chest!"), vision_distance=COMBAT_MESSAGE_RANGE) + victim.visible_message( + span_smalldanger("Blood spews out of [victim]'s mouth from the blow to [victim.p_their()] chest!"), + span_danger("You spit out a string of blood from the blow to your chest!"), + vision_distance = COMBAT_MESSAGE_RANGE, + ) new /obj/effect/temp_visual/dir_setting/bloodsplatter(victim.loc, victim.dir) victim.bleed(blood_bled) if(20 to INFINITY) - victim.visible_message(span_danger("Blood spurts out of [victim]'s mouth from the blow to [victim.p_their()] chest!"), span_danger("You choke up on a spray of blood from the blow to your chest!"), vision_distance=COMBAT_MESSAGE_RANGE) + victim.visible_message( + span_danger("Blood spurts out of [victim]'s mouth from the blow to [victim.p_their()] chest!"), + span_bolddanger("You choke up on a spray of blood from the blow to your chest!"), + vision_distance = COMBAT_MESSAGE_RANGE, + ) victim.bleed(blood_bled) new /obj/effect/temp_visual/dir_setting/bloodsplatter(victim.loc, victim.dir) victim.add_splatter_floor(get_step(victim.loc, victim.dir)) @@ -187,7 +199,9 @@ /datum/wound/blunt/bone/moderate name = "Joint Dislocation" desc = "Patient's limb has been unset from socket, causing pain and reduced motor function." - treat_text = "Recommended application of bonesetter to affected limb, though manual relocation by applying an aggressive grab to the patient and helpfully interacting with afflicted limb may suffice." + treat_text = "Apply Bonesetter to the affected limb. \ + Manual relocation by via an aggressive grab and a tight hug to the affected limb may also suffice." + treat_text_short = "Apply Bonesetter, or manually relocate the limb." examine_desc = "is awkwardly janked out of place" occur_text = "janks violently and becomes unseated" severity = WOUND_SEVERITY_MODERATE @@ -322,7 +336,9 @@ /datum/wound/blunt/bone/severe name = "Hairline Fracture" desc = "Patient's bone has suffered a crack in the foundation, causing serious pain and reduced limb functionality." - treat_text = "Recommended light surgical application of bone gel, though a sling of medical gauze will prevent worsening situation." + treat_text = "Repair surgically. In the event of an emergency, an application of bone gel over the affected area will fix over time. \ + A splint or sling of medical gauze can also be used to prevent the fracture from worsening." + treat_text_short = "Repair surgically, or apply bone gel. A splint or gauze sling can also be used." examine_desc = "appears grotesquely swollen, jagged bumps hinting at chips in the bone" occur_text = "sprays chips of bone and develops a nasty looking bruise" @@ -355,8 +371,11 @@ /// Compound Fracture (Critical Blunt) /datum/wound/blunt/bone/critical name = "Compound Fracture" - desc = "Patient's bones have suffered multiple gruesome fractures, causing significant pain and near uselessness of limb." - treat_text = "Immediate binding of affected limb, followed by surgical intervention ASAP." + desc = "Patient's bones have suffered multiple fractures, \ + couped with a break in the skin, causing significant pain and near uselessness of limb." + treat_text = "Immediately bind the affected limb with gauze or a splint. Repair surgically. \ + In the event of an emergency, bone gel and surgical tape can be applied to the affected area to fix over a long period of time." + treat_text_short = "Repair surgically, or apply bone gel and surgical tape. A splint or gauze sling should also be used." examine_desc = "is thoroughly pulped and cracked, exposing shards of bone to open air" occur_text = "cracks apart, exposing broken bones to open air" diff --git a/code/datums/wounds/burns.dm b/code/datums/wounds/burns.dm index 394486fef9a24..a4ef3bd7b7df7 100644 --- a/code/datums/wounds/burns.dm +++ b/code/datums/wounds/burns.dm @@ -41,7 +41,7 @@ return . = ..() - if(strikes_to_lose_limb == 0) // we've already hit sepsis, nothing more to do + if(strikes_to_lose_limb <= 0) // we've already hit sepsis, nothing more to do victim.adjustToxLoss(0.25 * seconds_per_tick) if(SPT_PROB(0.5, seconds_per_tick)) victim.visible_message(span_danger("The infection on the remnants of [victim]'s [limb.plaintext_zone] shift and bubble nauseatingly!"), span_warning("You can feel the infection on the remnants of your [limb.plaintext_zone] coursing through your veins!"), vision_distance = COMBAT_MESSAGE_RANGE) @@ -135,6 +135,13 @@ threshold_penalty = 120 // piss easy to destroy set_disabling(TRUE) +/datum/wound/burn/flesh/set_disabling(new_value) + . = ..() + if(new_value && strikes_to_lose_limb <= 0) + treat_text_short = "Amputate or augment limb immediately, or place the patient into cryogenics." + else + treat_text_short = initial(treat_text_short) + /datum/wound/burn/flesh/get_wound_description(mob/user) if(strikes_to_lose_limb <= 0) return span_deadsay("[victim.p_Their()] [limb.plaintext_zone] has locked up completely and is non-functional.") @@ -168,9 +175,25 @@ return "[condition.Join()]" +/datum/wound/burn/flesh/severity_text(simple = FALSE) + . = ..() + . += " Burn / " + switch(infestation) + if(-INFINITY to WOUND_INFECTION_MODERATE) + . += "No" + if(WOUND_INFECTION_MODERATE to WOUND_INFECTION_SEVERE) + . += "Moderate" + if(WOUND_INFECTION_SEVERE to WOUND_INFECTION_CRITICAL) + . += "Severe" + if(WOUND_INFECTION_CRITICAL to WOUND_INFECTION_SEPTIC) + . += "Critical" + if(WOUND_INFECTION_SEPTIC to INFINITY) + . += "Total" + . += " Infection" + /datum/wound/burn/flesh/get_scanner_description(mob/user) if(strikes_to_lose_limb <= 0) // Unclear if it can go below 0, best to not take the chance - var/oopsie = "Type: [name]\nSeverity: [severity_text()]" + var/oopsie = "Type: [name]
Severity: [severity_text()]" oopsie += "
Infection Level: [span_deadsay("The body part has suffered complete sepsis and must be removed. Amputate or augment limb immediately, or place the patient in a cryotube.")]
" return oopsie @@ -249,7 +272,7 @@ // people complained about burns not healing on stasis beds, so in addition to checking if it's cured, they also get the special ability to very slowly heal on stasis beds if they have the healing effects stored /datum/wound/burn/flesh/on_stasis(seconds_per_tick, times_fired) . = ..() - if(strikes_to_lose_limb == 0) // we've already hit sepsis, nothing more to do + if(strikes_to_lose_limb <= 0) // we've already hit sepsis, nothing more to do if(SPT_PROB(0.5, seconds_per_tick)) victim.visible_message(span_danger("The infection on the remnants of [victim]'s [limb.plaintext_zone] shift and bubble nauseatingly!"), span_warning("You can feel the infection on the remnants of your [limb.plaintext_zone] coursing through your veins!"), vision_distance = COMBAT_MESSAGE_RANGE) return @@ -280,7 +303,8 @@ /datum/wound/burn/flesh/moderate name = "Second Degree Burns" desc = "Patient is suffering considerable burns with mild skin penetration, weakening limb integrity and increased burning sensations." - treat_text = "Recommended application of topical ointment or regenerative mesh to affected region." + treat_text = "Apply topical ointment or regenerative mesh to the wound." + treat_text_short = "Apply healing aid such as regenerative mesh." examine_desc = "is badly burned and breaking out in blisters" occur_text = "breaks out with violent red burns" severity = WOUND_SEVERITY_MODERATE @@ -304,7 +328,11 @@ /datum/wound/burn/flesh/severe name = "Third Degree Burns" desc = "Patient is suffering extreme burns with full skin penetration, creating serious risk of infection and greatly reduced limb integrity." - treat_text = "Recommended immediate disinfection and excision of any infected skin, followed by bandaging and ointment. If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text = "Swiftly apply healing aids such as Synthflesh or regenerative mesh to the wound. \ + Disinfect the wound and surgically debride any infected skin, and wrap in clean gauze / use ointment to prevent further infection. \ + If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text_short = "Apply healing aid such as regenerative mesh, Synthflesh, or cryogenics and disinfect / debride. \ + Clean gauze or ointment will slow infection rate." examine_desc = "appears seriously charred, with aggressive red splotches" occur_text = "chars rapidly, exposing ruined tissue and spreading angry red burns" severity = WOUND_SEVERITY_SEVERE @@ -330,7 +358,11 @@ /datum/wound/burn/flesh/critical name = "Catastrophic Burns" desc = "Patient is suffering near complete loss of tissue and significantly charred muscle and bone, creating life-threatening risk of infection and negligible limb integrity." - treat_text = "Immediate surgical debriding of any infected skin, followed by potent tissue regeneration formula and bandaging. If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text = "Immediately apply healing aids such as Synthflesh or regenerative mesh to the wound. \ + Disinfect the wound and surgically debride any infected skin, and wrap in clean gauze / use ointment to prevent further infection. \ + If the limb has locked up, it must be amputated, augmented or treated with cryogenics." + treat_text_short = "Apply healing aid such as regenerative mesh, Synthflesh, or cryogenics and disinfect / debride. \ + Clean gauze or ointment will slow infection rate." examine_desc = "is a ruined mess of blanched bone, melted fat, and charred tissue" occur_text = "vaporizes as flesh, bone, and fat melt together in a horrifying mess" severity = WOUND_SEVERITY_CRITICAL diff --git a/code/datums/wounds/cranial_fissure.dm b/code/datums/wounds/cranial_fissure.dm index 0b7c00dee7e32..8feebe8d2b624 100644 --- a/code/datums/wounds/cranial_fissure.dm +++ b/code/datums/wounds/cranial_fissure.dm @@ -29,7 +29,8 @@ /datum/wound/cranial_fissure name = "Cranial Fissure" desc = "Patient's crown is agape, revealing severe damage to the skull." - treat_text = "Immediate surgical reconstruction of the skull." + treat_text = "Surgical reconstruction of the skull is necessary." + treat_text_short = "Surgical reconstruction required." examine_desc = "is split open" occur_text = "is split into two separated chunks" @@ -81,7 +82,7 @@ ) /datum/wound/cranial_fissure/try_handling(mob/living/user) - if (user.usable_hands <= 0) + if (user.usable_hands <= 0 || user.combat_mode) return FALSE if(!isnull(user.hud_used?.zone_select) && (user.zone_selected != BODY_ZONE_HEAD && user.zone_selected != BODY_ZONE_PRECISE_EYES)) @@ -95,7 +96,7 @@ victim.balloon_alert(user, "no eyes to take!") return TRUE - playsound(victim, 'sound/surgery/organ2.ogg', 50, TRUE) + playsound(victim, 'sound/items/handling/surgery/organ2.ogg', 50, TRUE) victim.balloon_alert(user, "pulling out eyes...") user.visible_message( span_boldwarning("[user] reaches inside [victim]'s skull..."), @@ -115,7 +116,7 @@ log_combat(user, victim, "pulled out the eyes of") - playsound(victim, 'sound/surgery/organ1.ogg', 75, TRUE) + playsound(victim, 'sound/items/handling/surgery/organ1.ogg', 75, TRUE) user.visible_message( span_boldwarning("[user] rips out [victim]'s eyes!"), span_boldwarning("You rip out [victim]'s eyes!"), diff --git a/code/datums/wounds/pierce.dm b/code/datums/wounds/pierce.dm index c6aaffe8483ab..7a0fa12f4473e 100644 --- a/code/datums/wounds/pierce.dm +++ b/code/datums/wounds/pierce.dm @@ -6,7 +6,7 @@ /datum/wound/pierce/bleed name = "Piercing Wound" - sound_effect = 'sound/weapons/slice.ogg' + sound_effect = 'sound/items/weapons/slice.ogg' processes = TRUE treatable_by = list(/obj/item/stack/medical/suture) treatable_tools = list(TOOL_CAUTERY) @@ -42,20 +42,32 @@ if(1 to 6) victim.bleed(blood_bled, TRUE) if(7 to 13) - victim.visible_message("Blood droplets fly from the hole in [victim]'s [limb.plaintext_zone].", span_danger("You cough up a bit of blood from the blow to your [limb.plaintext_zone]."), vision_distance=COMBAT_MESSAGE_RANGE) + victim.visible_message( + span_smalldanger("Blood droplets fly from the hole in [victim]'s [limb.plaintext_zone]."), + span_danger("You cough up a bit of blood from the blow to your [limb.plaintext_zone]."), + vision_distance = COMBAT_MESSAGE_RANGE, + ) victim.bleed(blood_bled, TRUE) if(14 to 19) - victim.visible_message("A small stream of blood spurts from the hole in [victim]'s [limb.plaintext_zone]!", span_danger("You spit out a string of blood from the blow to your [limb.plaintext_zone]!"), vision_distance=COMBAT_MESSAGE_RANGE) + victim.visible_message( + span_smalldanger("A small stream of blood spurts from the hole in [victim]'s [limb.plaintext_zone]!"), + span_danger("You spit out a string of blood from the blow to your [limb.plaintext_zone]!"), + vision_distance = COMBAT_MESSAGE_RANGE, + ) new /obj/effect/temp_visual/dir_setting/bloodsplatter(victim.loc, victim.dir) victim.bleed(blood_bled) if(20 to INFINITY) - victim.visible_message(span_danger("A spray of blood streams from the gash in [victim]'s [limb.plaintext_zone]!"), span_danger("You choke up on a spray of blood from the blow to your [limb.plaintext_zone]!"), vision_distance=COMBAT_MESSAGE_RANGE) + victim.visible_message( + span_danger("A spray of blood streams from the gash in [victim]'s [limb.plaintext_zone]!"), + span_bolddanger("You choke up on a spray of blood from the blow to your [limb.plaintext_zone]!"), + vision_distance = COMBAT_MESSAGE_RANGE, + ) victim.bleed(blood_bled) new /obj/effect/temp_visual/dir_setting/bloodsplatter(victim.loc, victim.dir) victim.add_splatter_floor(get_step(victim.loc, victim.dir)) /datum/wound/pierce/bleed/get_bleed_rate_of_change() - //basically if a species doesn't bleed, the wound is stagnant and will not heal on it's own (nor get worse) + //basically if a species doesn't bleed, the wound is stagnant and will not heal on its own (nor get worse) if(!limb.can_bleed()) return BLOOD_FLOW_STEADY if(HAS_TRAIT(victim, TRAIT_BLOODY_MESS)) @@ -180,7 +192,10 @@ /datum/wound/pierce/bleed/moderate name = "Minor Skin Breakage" desc = "Patient's skin has been broken open, causing severe bruising and minor internal bleeding in affected area." - treat_text = "Treat affected site with bandaging or exposure to extreme cold. In dire cases, brief exposure to vacuum may suffice." // space is cold in ss13, so it's like an ice pack! + treat_text = "Apply bandaging or suturing to the wound, make use of blood clotting agents, \ + cauterization, or in extreme circumstances, exposure to extreme cold or vaccuum. \ + Follow with food and a rest period." + treat_text_short = "Apply bandaging or suturing." examine_desc = "has a small, circular hole, gently bleeding" occur_text = "spurts out a thin stream of blood" sound_effect = 'sound/effects/wounds/pierce1.ogg' @@ -211,7 +226,10 @@ /datum/wound/pierce/bleed/severe name = "Open Puncture" desc = "Patient's internal tissue is penetrated, causing sizeable internal bleeding and reduced limb stability." - treat_text = "Repair punctures in skin by suture or cautery, extreme cold may also work." + treat_text = "Swiftly apply bandaging or suturing to the wound, make use of blood clotting agents or saline-glucose, \ + cauterization, or in extreme circumstances, exposure to extreme cold or vaccuum. \ + Follow with iron supplements and a rest period." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "is pierced clear through, with bits of tissue obscuring the open hole" occur_text = "looses a violent spray of blood, revealing a pierced wound" sound_effect = 'sound/effects/wounds/pierce2.ogg' @@ -238,10 +256,56 @@ if(!limb.can_bleed()) occur_text = "tears a hole open" +/datum/wound/pierce/bleed/severe/eye + name = "Eyeball Puncture" + desc = "Patient's eye has sustained extreme damage, causing severe bleeding from the ocular cavity." + occur_text = "looses a violent spray of blood, revealing a crushed eyeball" + var/right_side = FALSE + +/datum/wound/pierce/bleed/severe/eye/apply_wound(obj/item/bodypart/limb, silent, datum/wound/old_wound, smited, attack_direction, wound_source, replacing, right_side) + var/obj/item/organ/internal/eyes/eyes = locate() in limb + if (!istype(eyes)) + return FALSE + . = ..() + src.right_side = right_side + examine_desc = "has its [right_side ? "right" : "left"] eye pierced clean through, blood spewing from the cavity" + RegisterSignal(limb, COMSIG_BODYPART_UPDATE_WOUND_OVERLAY, PROC_REF(wound_overlay)) + limb.update_part_wound_overlay() + +/datum/wound/pierce/bleed/severe/eye/remove_wound(ignore_limb, replaced) + if (!isnull(limb)) + UnregisterSignal(limb, COMSIG_BODYPART_UPDATE_WOUND_OVERLAY) + return ..() + +/datum/wound/pierce/bleed/severe/eye/proc/wound_overlay(obj/item/bodypart/source, limb_bleed_rate) + SIGNAL_HANDLER + + if (limb_bleed_rate <= BLEED_OVERLAY_LOW || limb_bleed_rate > BLEED_OVERLAY_GUSH) + return + + if (blood_flow <= BLEED_OVERLAY_LOW) + return + + source.bleed_overlay_icon = right_side ? "r_eye" : "l_eye" + return COMPONENT_PREVENT_WOUND_OVERLAY_UPDATE + +/datum/wound_pregen_data/flesh_pierce/open_puncture/eye + wound_path_to_generate = /datum/wound/pierce/bleed/severe/eye + viable_zones = list(BODY_ZONE_HEAD) + can_be_randomly_generated = FALSE + +/datum/wound_pregen_data/flesh_pierce/open_puncture/eye/can_be_applied_to(obj/item/bodypart/limb, list/suggested_wounding_types, datum/wound/old_wound, random_roll, duplicates_allowed, care_about_existing_wounds) + if (isnull(locate(/obj/item/organ/internal/eyes) in limb)) + return FALSE + return ..() + /datum/wound/pierce/bleed/critical name = "Ruptured Cavity" desc = "Patient's internal tissue and circulatory system is shredded, causing significant internal bleeding and damage to internal organs." - treat_text = "Surgical repair of puncture wound, followed by supervised resanguination." + treat_text = "Immediately apply bandaging or suturing to the wound, make use of blood clotting agents or saline-glucose, \ + cauterization, or in extreme circumstances, exposure to extreme cold or vaccuum. \ + Follow with supervised resanguination." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "is ripped clear through, barely held together by exposed bone" occur_text = "blasts apart, sending chunks of viscera flying in all directions" sound_effect = 'sound/effects/wounds/pierce3.ogg' diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm index e8f77e603be99..fd3cb4bd7b2b1 100644 --- a/code/datums/wounds/slash.dm +++ b/code/datums/wounds/slash.dm @@ -5,7 +5,7 @@ /datum/wound/slash name = "Slashing (Cut) Wound" - sound_effect = 'sound/weapons/slice.ogg' + sound_effect = 'sound/items/weapons/slice.ogg' /datum/wound_pregen_data/flesh_slash abstract = TRUE @@ -122,7 +122,7 @@ return bleed_amt /datum/wound/slash/flesh/get_bleed_rate_of_change() - //basically if a species doesn't bleed, the wound is stagnant and will not heal on it's own (nor get worse) + //basically if a species doesn't bleed, the wound is stagnant and will not heal on its own (nor get worse) if(!limb.can_bleed()) return BLOOD_FLOW_STEADY if(HAS_TRAIT(victim, TRAIT_BLOODY_MESS)) @@ -137,7 +137,7 @@ if (!victim || HAS_TRAIT(victim, TRAIT_STASIS)) return - // in case the victim has the NOBLOOD trait, the wound will simply not clot on it's own + // in case the victim has the NOBLOOD trait, the wound will simply not clot on its own if(limb.can_bleed()) set_blood_flow(min(blood_flow, WOUND_SLASH_MAX_BLOODFLOW)) @@ -321,7 +321,9 @@ /datum/wound/slash/flesh/moderate name = "Rough Abrasion" desc = "Patient's skin has been badly scraped, generating moderate blood loss." - treat_text = "Application of clean bandages or first-aid grade sutures, followed by food and rest." + treat_text = "Apply bandaging or suturing to the wound. \ + Follow up with food and a rest period." + treat_text_short = "Apply bandaging or suturing." examine_desc = "has an open cut" occur_text = "is cut open, slowly leaking blood" sound_effect = 'sound/effects/wounds/blood1.ogg' @@ -350,7 +352,10 @@ /datum/wound/slash/flesh/severe name = "Open Laceration" desc = "Patient's skin is ripped clean open, allowing significant blood loss." - treat_text = "Speedy application of first-aid grade sutures and clean bandages, followed by vitals monitoring to ensure recovery." + treat_text = "Swiftly apply bandaging or suturing to the wound, \ + or make use of blood clotting agents or cauterization. \ + Follow up with iron supplements or saline-glucose and a rest period." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "has a severe cut" occur_text = "is ripped open, veins spurting blood" sound_effect = 'sound/effects/wounds/blood2.ogg' @@ -380,7 +385,10 @@ /datum/wound/slash/flesh/critical name = "Weeping Avulsion" desc = "Patient's skin is completely torn open, along with significant loss of tissue. Extreme blood loss will lead to quick death without intervention." - treat_text = "Immediate bandaging and either suturing or cauterization, followed by supervised resanguination." + treat_text = "Immediately apply bandaging or suturing to the wound, \ + or make use of blood clotting agents or cauterization. \ + Follow up supervised resanguination." + treat_text_short = "Apply bandaging, suturing, clotting agents, or cauterization." examine_desc = "is carved down to the bone, spraying blood wildly" occur_text = "is torn open, spraying blood wildly" sound_effect = 'sound/effects/wounds/blood3.ogg' diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 0c6847e7db348..b988fa0b6daa8 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -91,7 +91,7 @@ ///Does this area immediately play an ambience track upon enter? var/forced_ambience = FALSE ///The background droning loop that plays 24/7 - var/ambient_buzz = 'sound/ambience/shipambience.ogg' + var/ambient_buzz = 'sound/ambience/general/shipambience.ogg' ///The volume of the ambient buzz var/ambient_buzz_vol = 35 ///Used to decide what the minimum time between ambience is @@ -128,7 +128,7 @@ * A list of teleport locations * * Adding a wizard area teleport list because motherfucking lag -- Urist - * I am far too lazy to make it a proper list of areas so I'll just make it run the usual telepot routine at the start of the game + * I am far too lazy to make it a proper list of areas so I'll just make it run the usual teleport routine at the start of the game */ GLOBAL_LIST_EMPTY(teleportlocs) @@ -168,9 +168,9 @@ GLOBAL_LIST_EMPTY(teleportlocs) return ..() /* - * Initalize this area + * Initialize this area * - * intializes the dynamic area lighting and also registers the area with the z level via + * initializes the dynamic area lighting and also registers the area with the z level via * reg_in_areas_in_z * * returns INITIALIZE_HINT_LATELOAD @@ -414,7 +414,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** * Update the icon state of the area * - * Im not sure what the heck this does, somethign to do with weather being able to set icon + * I'm not sure what the heck this does, something to do with weather being able to set icon * states on areas?? where the heck would that even display? */ /area/update_icon_state() @@ -439,7 +439,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /** * Returns int 1 or 0 if the area has power for the given channel * - * evalutes a mixture of variables mappers can set, requires_power, always_unpowered and then + * evaluates a mixture of variables mappers can set, requires_power, always_unpowered and then * per channel power_equip, power_light, power_environ */ /area/proc/powered(chan) // return true if the area has power to given channel diff --git a/code/game/area/areas/ai_monitored.dm b/code/game/area/areas/ai_monitored.dm index a6964d70f6ae0..4e63479987e85 100644 --- a/code/game/area/areas/ai_monitored.dm +++ b/code/game/area/areas/ai_monitored.dm @@ -23,9 +23,9 @@ // Turret protected /area/station/ai_monitored/turret_protected - ambientsounds = list('sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') + ambientsounds = list('sound/ambience/engineering/ambitech.ogg', 'sound/ambience/engineering/ambitech2.ogg', 'sound/ambience/engineering/ambiatmos.ogg', 'sound/ambience/engineering/ambiatmos2.ogg') ///Some sounds (like the space jam) are terrible when on loop. We use this variable to add it to other AI areas, but override it to keep it from the AI's core. - var/ai_will_not_hear_this = list('sound/ambience/ambimalf.ogg') + var/ai_will_not_hear_this = list('sound/ambience/misc/ambimalf.ogg') airlock_wires = /datum/wires/airlock/ai /area/station/ai_monitored/turret_protected/Initialize(mapload) diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm index ded38af6201ab..5ff0143c0a1a9 100644 --- a/code/game/area/areas/away_content.dm +++ b/code/game/area/areas/away_content.dm @@ -13,16 +13,6 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30" sound_environment = SOUND_ENVIRONMENT_ROOM area_flags = UNIQUE_AREA -/area/awaymission/beach - name = "Beach" - icon_state = "away" - static_lighting = FALSE - base_lighting_alpha = 255 - base_lighting_color = "#FFFFCC" - requires_power = FALSE - has_gravity = STANDARD_GRAVITY - ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg','sound/ambience/ambiodd.ogg','sound/ambience/ambinice.ogg') - /area/awaymission/museum name = "Nanotrasen Museum" icon_state = "awaycontent28" @@ -33,7 +23,7 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30" base_lighting_alpha = 200 base_lighting_color = "#FFF4AA" sound_environment = SOUND_ENVIRONMENT_PLAIN - ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/ambiodd.ogg','sound/ambience/ambinice.ogg') + ambientsounds = list('sound/ambience/beach/shore.ogg', 'sound/ambience/misc/ambiodd.ogg','sound/ambience/medical/ambinice.ogg') /area/awaymission/museum/cafeteria name = "Nanotrasen Museum Cafeteria" diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index 012e7a170f726..28b3496c4e18a 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -124,6 +124,7 @@ /area/centcom/tdome/arena name = "Thunderdome Arena" icon_state = "thunder" + area_flags = parent_type::area_flags | UNLIMITED_FISHING //for possible testing purposes /area/centcom/tdome/tdome1 name = "Thunderdome (Team 1)" diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index ff8e22b17b8fa..be6db4e077fec 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -4,7 +4,7 @@ icon_state = "mining" has_gravity = STANDARD_GRAVITY area_flags = VALID_TERRITORY | UNIQUE_AREA | FLORA_ALLOWED | CULT_PERMITTED - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/mine/lobby name = "Mining Station" @@ -18,6 +18,10 @@ name = "Mining Station Public Storage" icon_state = "mining_storage" +/area/mine/lobby/raptor + name = "Nanotrasen Raptor Farm" + icon_state = "mining_storage" + /area/mine/production name = "Mining Station Production Wing" icon_state = "mining_production" @@ -130,7 +134,7 @@ flags_1 = NONE area_flags = VALID_TERRITORY | UNIQUE_AREA | FLORA_ALLOWED sound_environment = SOUND_AREA_LAVALAND - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/lavaland/surface name = "Lavaland" @@ -191,7 +195,7 @@ area_flags = UNIQUE_AREA | FLORA_ALLOWED ambience_index = AMBIENCE_ICEMOON sound_environment = SOUND_AREA_ICEMOON - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/icemoon/surface name = "Icemoon" diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index fd983f763a3a2..69d1e5abf4d5a 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -44,7 +44,7 @@ mood_message = "I feel like I am being watched..." /area/ruin/bughabitat - name = "\improper Entemology Outreach Center" + name = "\improper Entomology Outreach Center" mood_bonus = 1 mood_message = "This place seems strangely serene." @@ -54,9 +54,24 @@ /area/ruin/pizzeria/kitchen name = "\improper Moffuchi's Kitchen" + +/area/ruin/syndibiodome + name = "\improper Syndicate Biodome" + sound_environment = SOUND_AREA_SMALL_ENCLOSED + ambience_index = AMBIENCE_DANGER + area_flags = NOTELEPORT + mood_bonus = -10 + mood_message = "What the fuck." + + /area/ruin/planetengi name = "\improper Engineering Outpost" +/area/ruin/huntinglodge + name = "\improper Hunting Lodge" + mood_bonus = -5 + mood_message = "Something feels off..." + /area/ruin/smoking_room/house name = "\improper Tobacco House" sound_environment = SOUND_ENVIRONMENT_CITY @@ -75,3 +90,7 @@ /area/ruin/powered/hermit name = "\improper Hermit's Cabin" +/area/ruin/syndielab + name = "\improper Syndicate Lab" + ambience_index = AMBIENCE_DANGER + sound_environment = SOUND_ENVIRONMENT_CAVE diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index f9c57510132f6..4e806bf1c1030 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -8,7 +8,7 @@ /area/ruin/powered/clownplanet name = "\improper Clown Biodome" - ambientsounds = list('sound/ambience/clown.ogg') + ambientsounds = list('sound/music/lobby_music/clown.ogg') /area/ruin/unpowered/gaia name = "\improper Patch of Eden" @@ -38,7 +38,7 @@ /area/ruin/syndicate_lava_base name = "\improper Secret Base" ambience_index = AMBIENCE_DANGER - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/ruin/unpowered/cultaltar name = "\improper Cult Altar" @@ -49,7 +49,7 @@ name = "\improper The Lizard's Gas" icon_state = "lizardgas" sound_environment = SOUND_ENVIRONMENT_ROOM - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' //Syndicate lavaland base @@ -94,11 +94,11 @@ power_environ = FALSE power_equip = FALSE power_light = FALSE - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' //ash walker nest /area/ruin/unpowered/ash_walkers - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' /area/ruin/unpowered/ratvar outdoors = TRUE - ambient_buzz = 'sound/ambience/magma.ogg' + ambient_buzz = 'sound/ambience/lavaland/magma.ogg' diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index ceb8cac18c009..ac687d6024a88 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -55,7 +55,7 @@ /area/ruin/space/has_grav/powered/aesthetic name = "Aesthetic" - ambientsounds = list('sound/ambience/ambivapor1.ogg') + ambientsounds = list('sound/ambience/misc/ambivapor1.ogg') //Ruin of Hotel @@ -335,7 +335,7 @@ /area/ruin/space/ancientstation/delta/ai name = "\improper Delta Station AI Core" icon_state = "os_delta_ai" - ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') + ambientsounds = list('sound/ambience/misc/ambimalf.ogg', 'sound/ambience/engineering/ambitech.ogg', 'sound/ambience/engineering/ambitech2.ogg', 'sound/ambience/engineering/ambiatmos.ogg', 'sound/ambience/engineering/ambiatmos2.ogg') /area/ruin/space/ancientstation/delta/storage name = "\improper Delta Station Storage" @@ -546,14 +546,14 @@ /area/ruin/space/abandoned_tele name = "\improper Abandoned Teleporter" - ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/signal.ogg') + ambientsounds = list('sound/ambience/misc/ambimalf.ogg', 'sound/ambience/misc/signal.ogg') //OLD AI SAT /area/ruin/space/tcommsat_oldaisat // Since tcommsat was moved to /area/station/, this turf doesn't inhereit its properties anymore name = "\improper Abandoned Satellite" - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen9.ogg', 'sound/ambience/ambitech.ogg',\ - 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg', 'sound/ambience/ambimystery.ogg') + ambientsounds = list('sound/ambience/engineering/ambisin2.ogg', 'sound/ambience/misc/signal.ogg', 'sound/ambience/misc/signal.ogg', 'sound/ambience/general/ambigen9.ogg', 'sound/ambience/engineering/ambitech.ogg',\ + 'sound/ambience/engineering/ambitech2.ogg', 'sound/ambience/engineering/ambitech3.ogg', 'sound/ambience/misc/ambimystery.ogg') airlock_wires = /datum/wires/airlock/engineering // CRASHED PRISON SHUTTLE @@ -592,7 +592,7 @@ // The planet of the clowns /area/ruin/space/has_grav/powered/clownplanet name = "\improper Clown Planet" - ambientsounds = list('sound/ambience/clown.ogg') + ambientsounds = list('sound/music/lobby_music/clown.ogg') //DERELICT SULACO /area/ruin/space/has_grav/derelictsulaco @@ -671,7 +671,7 @@ icon = 'icons/area/areas_ruins.dmi' icon_state = "ruins" requires_power = FALSE - ambientsounds = list('sound/ambience/ambigen12.ogg','sound/ambience/ambigen13.ogg','sound/ambience/ambinice.ogg') + ambientsounds = list('sound/ambience/general/ambigen12.ogg','sound/ambience/general/ambigen13.ogg','sound/ambience/medical/ambinice.ogg') // the outlet /area/ruin/space/has_grav/the_outlet/storefront @@ -695,7 +695,71 @@ name = "Decommissioned Garbage Truck" sound_environment = SOUND_AREA_SMALL_ENCLOSED ambience_index = AMBIENCE_MAINT + /area/ruin/space/has_grav/garbagetruck/foodwaste + /area/ruin/space/has_grav/garbagetruck/medicalwaste + /area/ruin/space/has_grav/garbagetruck/squat + /area/ruin/space/has_grav/garbagetruck/toystore + +//Donk Co trading outpost +/area/ruin/space/has_grav/hauntedtradingpost + name = "\improper Donk Co. Trading Outpost" + icon_state = "donk_public" + sound_environment = SOUND_AREA_STANDARD_STATION + +/area/ruin/space/has_grav/hauntedtradingpost/public + name = "\improper Donk Co. Trading Outpost Public Meeting Area And Cafeteria" + +/area/ruin/space/has_grav/hauntedtradingpost/public/corridor + name = "\improper Donk Co. Trading Outpost Public Docks And Corridors" + sound_environment = SOUND_AREA_LARGE_ENCLOSED + +/area/ruin/space/has_grav/hauntedtradingpost/employees + name = "\improper Donk Co. Trading Outpost Employees Lounge" + icon_state = "donk_employees" + airlock_wires = /datum/wires/airlock/engineering + sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR + +/area/ruin/space/has_grav/hauntedtradingpost/employees/workstation + name = "\improper Donk Co. Trading Outpost Engineering Station" + +/area/ruin/space/has_grav/hauntedtradingpost/employees/corridor + name = "\improper Donk Co. Trading Outpost Secure Corridor" + icon_state = "donk_command" + +/area/ruin/space/has_grav/hauntedtradingpost/employees/breakroom + name = "\improper Donk Co. Trading Outpost Break Room" + +/area/ruin/space/has_grav/hauntedtradingpost/maint + name = "\improper Donk Co. Trading Outpost Auxiliary Storage Room" + icon_state = "donk_maints" + airlock_wires = /datum/wires/airlock/maint + sound_environment = SOUND_AREA_TUNNEL_ENCLOSED + ambience_index = AMBIENCE_MAINT + +/area/ruin/space/has_grav/hauntedtradingpost/maint/toolstorage + +/area/ruin/space/has_grav/hauntedtradingpost/maint/toystorage + +/area/ruin/space/has_grav/hauntedtradingpost/maint/disposals + name = "\improper Donk Co. Trading Outpost Waste Management Station" + sound_environment = SOUND_AREA_SMALL_ENCLOSED + +/area/ruin/space/has_grav/hauntedtradingpost/office + name = "\improper Donk Co. Trading Outpost Captains Office" + icon_state = "donk_command" + airlock_wires = /datum/wires/airlock/cargo + sound_environment = SOUND_ENVIRONMENT_ROOM + +/area/ruin/space/has_grav/hauntedtradingpost/office/meetingroom + name = "\improper Donk Co. Trading Outpost Board Room" + +/area/ruin/space/has_grav/hauntedtradingpost/aicore + name = "\improper Cybersun AI Core" + icon_state = "donk_command" + airlock_wires = /datum/wires/airlock/security + sound_environment = SOUND_AREA_SMALL_ENCLOSED + ambience_index = AMBIENCE_DANGER diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 504efe0742ad1..f128805924fe8 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -123,7 +123,7 @@ if(SSshuttle.arrivals?.mode == SHUTTLE_CALL) var/atom/movable/screen/splash/Spl = new(null, boarder.client, TRUE) Spl.Fade(TRUE) - boarder.playsound_local(get_turf(boarder), 'sound/voice/ApproachingTG.ogg', 25) + boarder.playsound_local(get_turf(boarder), 'sound/announcer/ApproachingTG.ogg', 25) boarder.update_parallax_teleport() diff --git a/code/game/area/areas/station/command.dm b/code/game/area/areas/station/command.dm index 23f2c7c61c0fc..ee4325d94aef8 100644 --- a/code/game/area/areas/station/command.dm +++ b/code/game/area/areas/station/command.dm @@ -2,7 +2,7 @@ name = "Command" icon_state = "command" ambientsounds = list( - 'sound/ambience/signal.ogg', + 'sound/ambience/misc/signal.ogg', ) airlock_wires = /datum/wires/airlock/command sound_environment = SOUND_AREA_STANDARD_STATION diff --git a/code/game/area/areas/station/maintenance.dm b/code/game/area/areas/station/maintenance.dm index 53e6da606d085..5e636719e7a09 100644 --- a/code/game/area/areas/station/maintenance.dm +++ b/code/game/area/areas/station/maintenance.dm @@ -5,7 +5,7 @@ airlock_wires = /datum/wires/airlock/maint sound_environment = SOUND_AREA_TUNNEL_ENCLOSED forced_ambience = TRUE - ambient_buzz = 'sound/ambience/source_corridor2.ogg' + ambient_buzz = 'sound/ambience/maintenance/source_corridor2.ogg' ambient_buzz_vol = 20 /* diff --git a/code/game/area/areas/station/medical.dm b/code/game/area/areas/station/medical.dm index fc6c6ff3a7564..b45a1492b290f 100644 --- a/code/game/area/areas/station/medical.dm +++ b/code/game/area/areas/station/medical.dm @@ -11,7 +11,7 @@ name = "\improper Abandoned Medbay" icon_state = "abandoned_medbay" ambientsounds = list( - 'sound/ambience/signal.ogg', + 'sound/ambience/misc/signal.ogg', ) sound_environment = SOUND_AREA_SMALL_ENCLOSED @@ -124,5 +124,5 @@ mood_bonus = 3 mood_message = "I feel at ease here." ambientsounds = list( - 'sound/ambience/aurora_caelus_short.ogg', + 'sound/ambience/aurora_caelus/aurora_caelus_short.ogg', ) diff --git a/code/game/area/areas/station/security.dm b/code/game/area/areas/station/security.dm index 93629f35628c2..ca158e69df87b 100644 --- a/code/game/area/areas/station/security.dm +++ b/code/game/area/areas/station/security.dm @@ -79,8 +79,8 @@ name = "\improper Detective's Office" icon_state = "detective" ambientsounds = list( - 'sound/ambience/ambidet1.ogg', - 'sound/ambience/ambidet2.ogg', + 'sound/ambience/security/ambidet1.ogg', + 'sound/ambience/security/ambidet2.ogg', ) /area/station/security/detectives_office/private_investigators_office diff --git a/code/game/area/areas/station/telecomm.dm b/code/game/area/areas/station/telecomm.dm index 78ec16a59bf29..02101c28c1a90 100644 --- a/code/game/area/areas/station/telecomm.dm +++ b/code/game/area/areas/station/telecomm.dm @@ -5,14 +5,14 @@ /area/station/tcommsat icon_state = "tcomsatcham" ambientsounds = list( - 'sound/ambience/ambisin2.ogg', - 'sound/ambience/signal.ogg', - 'sound/ambience/signal.ogg', - 'sound/ambience/ambigen9.ogg', - 'sound/ambience/ambitech.ogg', - 'sound/ambience/ambitech2.ogg', - 'sound/ambience/ambitech3.ogg', - 'sound/ambience/ambimystery.ogg', + 'sound/ambience/engineering/ambisin2.ogg', + 'sound/ambience/misc/signal.ogg', + 'sound/ambience/misc/signal.ogg', + 'sound/ambience/general/ambigen9.ogg', + 'sound/ambience/engineering/ambitech.ogg', + 'sound/ambience/engineering/ambitech2.ogg', + 'sound/ambience/engineering/ambitech3.ogg', + 'sound/ambience/misc/ambimystery.ogg', ) airlock_wires = /datum/wires/airlock/engineering diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index 4a398a635a73c..7f43cc2c6ee8c 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -166,6 +166,9 @@ if(atom_storage) QDEL_NULL(atom_storage) + if(wires) + QDEL_NULL(wires) + orbiters = null // The component is attached to us normaly and will be deleted elsewhere // Checking length(overlays) before cutting has significant speed benefits @@ -183,6 +186,13 @@ if(smoothing_flags & SMOOTH_QUEUED) SSicon_smooth.remove_from_queues(src) + // These lists cease existing when src does, so we need to clear any lua refs to them that exist. + if(!(datum_flags & DF_STATIC_OBJECT)) + DREAMLUAU_CLEAR_REF_USERDATA(contents) + DREAMLUAU_CLEAR_REF_USERDATA(filters) + DREAMLUAU_CLEAR_REF_USERDATA(overlays) + DREAMLUAU_CLEAR_REF_USERDATA(underlays) + return ..() /atom/proc/handle_ricochet(obj/projectile/ricocheting_projectile) @@ -680,10 +690,10 @@ created_atoms.Add(created_atom) to_chat(user, span_notice("You manage to create [amount_to_create] [initial(atom_to_create.gender) == PLURAL ? "[initial(atom_to_create.name)]" : "[initial(atom_to_create.name)][plural_s(initial(atom_to_create.name))]"] from [src].")) SEND_SIGNAL(src, COMSIG_ATOM_PROCESSED, user, process_item, created_atoms) - UsedforProcessing(user, process_item, chosen_option) + UsedforProcessing(user, process_item, chosen_option, created_atoms) return -/atom/proc/UsedforProcessing(mob/living/user, obj/item/used_item, list/chosen_option) +/atom/proc/UsedforProcessing(mob/living/user, obj/item/used_item, list/chosen_option, list/created_atoms) qdel(src) return @@ -860,17 +870,24 @@ active_hud.screentip_text.maptext = "" return - active_hud.screentip_text.maptext_y = 10 // 10px lines us up with the action buttons top left corner var/lmb_rmb_line = "" var/ctrl_lmb_ctrl_rmb_line = "" var/alt_lmb_alt_rmb_line = "" var/shift_lmb_ctrl_shift_lmb_line = "" var/extra_lines = 0 var/extra_context = "" + var/used_name = name if(isliving(user) || isovermind(user) || isaicamera(user) || (ghost_screentips && isobserver(user))) var/obj/item/held_item = user.get_active_held_item() + if (user.mob_flags & MOB_HAS_SCREENTIPS_NAME_OVERRIDE) + var/list/returned_name = list(used_name) + + var/name_override_returns = SEND_SIGNAL(user, COMSIG_MOB_REQUESTING_SCREENTIP_NAME_FROM_USER, returned_name, held_item, src) + if (name_override_returns & SCREENTIP_NAME_SET) + used_name = returned_name[1] + if (flags_1 & HAS_CONTEXTUAL_SCREENTIPS_1 || held_item?.item_flags & ITEM_HAS_CONTEXTUAL_SCREENTIPS) var/list/context = list() @@ -930,14 +947,26 @@ if(extra_lines) extra_context = "
[lmb_rmb_line][ctrl_lmb_ctrl_rmb_line][alt_lmb_alt_rmb_line][shift_lmb_ctrl_shift_lmb_line]" - //first extra line pushes atom name line up 11px, subsequent lines push it up 9px, this offsets that and keeps the first line in the same place - active_hud.screentip_text.maptext_y = -1 + (extra_lines - 1) * -9 + var/new_maptext if (screentips_enabled == SCREENTIP_PREFERENCE_CONTEXT_ONLY && extra_context == "") - active_hud.screentip_text.maptext = "" + new_maptext = "" else //We inline a MAPTEXT() here, because there's no good way to statically add to a string like this - active_hud.screentip_text.maptext = "[name][extra_context]" + new_maptext = "[used_name][extra_context]" + + if (length(used_name) * 10 > active_hud.screentip_text.maptext_width) + INVOKE_ASYNC(src, PROC_REF(set_hover_maptext), client, active_hud, new_maptext) + return + + active_hud.screentip_text.maptext = new_maptext + active_hud.screentip_text.maptext_y = 10 - (extra_lines > 0 ? 11 + 9 * (extra_lines - 1): 0) + +/atom/proc/set_hover_maptext(client/client, datum/hud/active_hud, new_maptext) + var/map_height + WXH_TO_HEIGHT(client.MeasureText(new_maptext, null, active_hud.screentip_text.maptext_width), map_height) + active_hud.screentip_text.maptext = new_maptext + active_hud.screentip_text.maptext_y = 26 - map_height /** * This proc is used for telling whether something can pass by this atom in a given direction, for use by the pathfinding system. diff --git a/code/game/atom/alternate_appearance.dm b/code/game/atom/alternate_appearance.dm index 228462f7936a4..8c50760ea45ea 100644 --- a/code/game/atom/alternate_appearance.dm +++ b/code/game/atom/alternate_appearance.dm @@ -35,20 +35,51 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) GLOB.active_alternate_appearances += src for(var/mob in GLOB.player_list) - if(mobShouldSee(mob)) - show_to(mob) + apply_to_new_mob(mob) /datum/atom_hud/alternate_appearance/Destroy() GLOB.active_alternate_appearances -= src return ..() -/datum/atom_hud/alternate_appearance/proc/onNewMob(mob/M) - if(mobShouldSee(M)) - show_to(M) +/// Wrapper for applying this alt hud to the passed mob (if they should see it) +/datum/atom_hud/alternate_appearance/proc/apply_to_new_mob(mob/applying_to) + if(mobShouldSee(applying_to)) + if(!hud_users_all_z_levels[applying_to]) + show_to(applying_to) + return TRUE + return FALSE +/// Checks if the passed mob should be seeing this hud /datum/atom_hud/alternate_appearance/proc/mobShouldSee(mob/M) return FALSE +/datum/atom_hud/alternate_appearance/show_to(mob/new_viewer) + . = ..() + if(!new_viewer) + return + track_mob(new_viewer) + +/// Registers some signals to track the mob's state to determine if they should be seeing the hud still +/datum/atom_hud/alternate_appearance/proc/track_mob(mob/new_viewer) + return + +/datum/atom_hud/alternate_appearance/hide_from(mob/former_viewer, absolute) + . = ..() + if(!former_viewer || hud_atoms_all_z_levels[former_viewer] >= 1) + return + untrack_mob(former_viewer) + +/// Unregisters the signals that were tracking the mob's state +/datum/atom_hud/alternate_appearance/proc/untrack_mob(mob/former_viewer) + return + +/datum/atom_hud/alternate_appearance/proc/check_hud(mob/source) + SIGNAL_HANDLER + // Attempt to re-apply the hud entirely + if(!apply_to_new_mob(source)) + // If that failed, probably shouldn't be seeing it at all, so nuke it + hide_from(source, absolute = TRUE) + /datum/atom_hud/alternate_appearance/add_atom_to_hud(atom/A, image/I) . = ..() if(.) @@ -99,6 +130,22 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) if(ghost_appearance) QDEL_NULL(ghost_appearance) +/datum/atom_hud/alternate_appearance/basic/track_mob(mob/new_viewer) + RegisterSignals(new_viewer, list( + COMSIG_MOB_ANTAGONIST_REMOVED, + COMSIG_MOB_GHOSTIZED, + COMSIG_MOB_MIND_TRANSFERRED_INTO, + COMSIG_MOB_MIND_TRANSFERRED_OUT_OF, + ), PROC_REF(check_hud), override = TRUE) + +/datum/atom_hud/alternate_appearance/basic/untrack_mob(mob/former_viewer) + UnregisterSignal(former_viewer, list( + COMSIG_MOB_ANTAGONIST_REMOVED, + COMSIG_MOB_GHOSTIZED, + COMSIG_MOB_MIND_TRANSFERRED_INTO, + COMSIG_MOB_MIND_TRANSFERRED_OUT_OF, + )) + /datum/atom_hud/alternate_appearance/basic/add_atom_to_hud(atom/A) LAZYINITLIST(A.hud_list) A.hud_list[appearance_key] = image @@ -136,16 +183,10 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) /datum/atom_hud/alternate_appearance/basic/noncult /datum/atom_hud/alternate_appearance/basic/noncult/mobShouldSee(mob/M) - if(!IS_CULTIST(M)) - return TRUE - return FALSE + return !IS_CULTIST(M) -/datum/atom_hud/alternate_appearance/basic/cult - -/datum/atom_hud/alternate_appearance/basic/cult/mobShouldSee(mob/M) - if(IS_CULTIST(M)) - return TRUE - return FALSE +/datum/atom_hud/alternate_appearance/basic/has_antagonist/cult + antag_datum_type = /datum/antagonist/cult /datum/atom_hud/alternate_appearance/basic/blessed_aware @@ -171,3 +212,10 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) return ..() /datum/atom_hud/alternate_appearance/basic/food_demands + +/datum/atom_hud/alternate_appearance/basic/heretic + +/datum/atom_hud/alternate_appearance/basic/heretic/mobShouldSee(mob/M) + if(IS_HERETIC(M)) + return TRUE + return FALSE diff --git a/code/game/atom/atom_act.dm b/code/game/atom/atom_act.dm index acd33976e51b6..7b69f02340c87 100644 --- a/code/game/atom/atom_act.dm +++ b/code/game/atom/atom_act.dm @@ -115,11 +115,15 @@ * Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is * deleted shortly after hitting something (during explosions or other massive events that * throw lots of items around - singularity being a notable example) + * + * Worth of note: If hitby returns TRUE, it means the object has been blocked or catched by src. + * So far, this is only possible for living mobs and carbons, who can hold shields and catch thrown items. */ /atom/proc/hitby(atom/movable/hitting_atom, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) SEND_SIGNAL(src, COMSIG_ATOM_HITBY, hitting_atom, skipcatch, hitpush, blocked, throwingdatum) if(density && !has_gravity(hitting_atom)) //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), hitting_atom), 0.2 SECONDS) + return FALSE /** * We have have actually hit the passed in atom @@ -208,7 +212,7 @@ ///wrapper proc that passes our mob's rust_strength to the target we are rusting /mob/living/proc/do_rust_heretic_act(atom/target) - var/datum/antagonist/heretic/heretic_data = IS_HERETIC(src) + var/datum/antagonist/heretic/heretic_data = GET_HERETIC(src) target.rust_heretic_act(heretic_data?.rust_strength) /mob/living/basic/heretic_summon/rust_walker/do_rust_heretic_act(atom/target) diff --git a/code/game/atom/atom_defense.dm b/code/game/atom/atom_defense.dm index 4a762e4de8b49..ce31eb81246f1 100644 --- a/code/game/atom/atom_defense.dm +++ b/code/game/atom/atom_defense.dm @@ -108,11 +108,11 @@ switch(damage_type) if(BRUTE) if(damage_amount) - playsound(src, 'sound/weapons/smash.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/smash.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) ///Called to get the damage that hulks will deal to the atom. /atom/proc/hulk_damage() diff --git a/code/game/atom/atom_examine.dm b/code/game/atom/atom_examine.dm index ad1d832227780..fee219f7b4b50 100644 --- a/code/game/atom/atom_examine.dm +++ b/code/game/atom/atom_examine.dm @@ -1,32 +1,38 @@ /atom - ///If non-null, overrides a/an/some in all cases + /// If non-null, overrides a/an/some in all cases var/article + /// Text that appears preceding the name in examine() + var/examine_thats = "That's" + +/mob/living/carbon/human + examine_thats = "This is" + +/mob/living/silicon/robot + examine_thats = "This is" /** * Called when a mob examines (shift click or verb) this atom * - * Default behaviour is to get the name and icon of the object and it's reagents where + * Default behaviour is to get the name and icon of the object and its reagents where * the [TRANSPARENT] flag is set on the reagents holder * * Produces a signal [COMSIG_ATOM_EXAMINE] */ /atom/proc/examine(mob/user) - var/examine_string = get_examine_string(user, thats = TRUE) - if(examine_string) - . = list("[examine_string].") - else - . = list() - + . = list() . += get_name_chaser(user) if(desc) - . += desc + . += "[desc]" - if(custom_materials) - var/list/materials_list = list() - for(var/custom_material in custom_materials) - var/datum/material/current_material = GET_MATERIAL_REF(custom_material) - materials_list += "[current_material.name]" - . += "It is made out of [english_list(materials_list)]." + var/list/tags_list = examine_tags(user) + if (length(tags_list)) + var/tag_string = list() + for (var/atom_tag in tags_list) + tag_string += (isnull(tags_list[atom_tag]) ? atom_tag : span_tooltip(tags_list[atom_tag], atom_tag)) + // Weird bit but ensures that if the final element has its own "and" we don't add another one + tag_string = english_list(tag_string, and_text = (findtext(tag_string[length(tag_string)], " and ")) ? ", " : " and ") + var/post_descriptor = examine_post_descriptor(user) + . += "[p_They()] [p_are()] a [tag_string] [examine_descriptor(user)][length(post_descriptor) ? " [jointext(post_descriptor, " ")]" : ""]." if(reagents) var/user_sees_reagents = user.can_see_reagents() @@ -52,6 +58,34 @@ SEND_SIGNAL(src, COMSIG_ATOM_EXAMINE, user, .) +/* + * A list of "tags" displayed after atom's description in examine. + * This should return an assoc list of tags -> tooltips for them. If item if null, then no tooltip is assigned. + * For example: + * list("small" = "This is a small size class item.", "fireproof" = "This item is impervious to fire.") + * will result in + * This is a small, fireproof item. + * where "item" is pulled from examine_descriptor() proc + */ +/atom/proc/examine_tags(mob/user) + . = list() + SEND_SIGNAL(src, COMSIG_ATOM_EXAMINE_TAGS, user, .) + +/// What this atom should be called in examine tags +/atom/proc/examine_descriptor(mob/user) + return "object" + +/// Returns a list of strings to be displayed after the descriptor +/atom/proc/examine_post_descriptor(mob/user) + . = list() + if(!custom_materials) + return + var/mats_list = list() + for(var/custom_material in custom_materials) + var/datum/material/current_material = GET_MATERIAL_REF(custom_material) + mats_list += span_tooltip("It is made out of [current_material.name].", current_material.name) + . += "made of [english_list(mats_list)]" + /** * Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_WINDOW (default 1 second) * @@ -75,7 +109,7 @@ * [COMSIG_ATOM_GET_EXAMINE_NAME] signal */ /atom/proc/get_examine_name(mob/user) - var/list/override = list(article, null, "[name]") + var/list/override = list(article, null, "[get_visible_name()]") SEND_SIGNAL(src, COMSIG_ATOM_GET_EXAMINE_NAME, user, override) if(!isnull(override[EXAMINE_POSITION_ARTICLE])) @@ -84,11 +118,24 @@ if(!isnull(override[EXAMINE_POSITION_BEFORE])) override -= null // There is no article, don't try to join it return "\a [jointext(override, " ")]" - return "\a [src]" + return "\a [src]" + +/mob/living/get_examine_name(mob/user) + return get_visible_name() + +/// Icon displayed in examine +/atom/proc/get_examine_icon(mob/user) + return icon2html(src, user) -///Generate the full examine string of this atom (including icon for goonchat) -/atom/proc/get_examine_string(mob/user, thats = FALSE) - return "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]" +/** + * Formats the atom's name into a string for use in examine (as the "title" of the atom) + * + * * user - the mob examining the atom + * * thats - whether to include "That's", or similar (mobs use "This is") before the name + */ +/atom/proc/examine_title(mob/user, thats = FALSE) + var/examine_icon = get_examine_icon(user) + return "[examine_icon ? "[examine_icon] " : ""][thats ? "[examine_thats] ":""][get_examine_name(user)]" /** * Returns an extended list of examine strings for any contained ID cards. @@ -98,12 +145,12 @@ */ /atom/proc/get_id_examine_strings(mob/user) . = list() - return ///Used to insert text after the name but before the description in examine() /atom/proc/get_name_chaser(mob/user, list/name_chaser = list()) return name_chaser /// Used by mobs to determine the name for someone wearing a mask, or with a disfigured or missing face. By default just returns the atom's name. add_id_name will control whether or not we append "(as [id_name])". -/atom/proc/get_visible_name(add_id_name) +/// force_real_name will always return real_name and add (as face_name/id_name) if it doesn't match their appearance +/atom/proc/get_visible_name(add_id_name, force_real_name) return name diff --git a/code/game/atom/atom_materials.dm b/code/game/atom/atom_materials.dm index 345a8486dd60a..cb88c83f3eb8c 100644 --- a/code/game/atom/atom_materials.dm +++ b/code/game/atom/atom_materials.dm @@ -7,23 +7,276 @@ ///Modifier that raises/lowers the effect of the amount of a material, prevents small and easy to get items from being death machines. var/material_modifier = 1 -/// Sets the custom materials for an item. +/// Sets the custom materials for an atom. This is what you want to call, since most of the ones below are mainly internal. /atom/proc/set_custom_materials(list/materials, multiplier = 1) - if(custom_materials && material_flags & MATERIAL_EFFECTS) //Only runs if custom materials existed at first and affected src. - for(var/current_material in custom_materials) - var/datum/material/custom_material = GET_MATERIAL_REF(current_material) - custom_material.on_removed(src, OPTIMAL_COST(custom_materials[current_material] * material_modifier), material_flags) //Remove the current materials + SHOULD_NOT_OVERRIDE(TRUE) + if(length(custom_materials)) + remove_material_effects() if(!length(materials)) custom_materials = null return - if(material_flags & MATERIAL_EFFECTS) + initialize_materials(materials, multiplier) + +/** + * The second part of set_custom_materials(), which handles applying the new materials + * It is a separate proc because Initialize calls may make use of this since they should've no prior materials to remove. + */ +/atom/proc/initialize_materials(list/materials, multiplier = 1) + SHOULD_NOT_OVERRIDE(TRUE) + if(multiplier != 1) + materials = materials.Copy() //avoid editing the list that was originally used as argument if it's ever going to be used again. for(var/current_material in materials) - var/datum/material/custom_material = GET_MATERIAL_REF(current_material) - custom_material.on_applied(src, OPTIMAL_COST(materials[current_material] * multiplier * material_modifier), material_flags) + materials[current_material] *= multiplier + + apply_material_effects(materials) + custom_materials = SSmaterials.FindOrCreateMaterialCombo(materials) + +///proc responsible for applying material effects when setting materials. +/atom/proc/apply_material_effects(list/materials) + SHOULD_CALL_PARENT(TRUE) + if(!materials || !(material_flags & MATERIAL_EFFECTS)) + return + var/list/material_effects = get_material_effects_list(materials) + finalize_material_effects(material_effects) + +/// Proc responsible for removing material effects when setting materials. +/atom/proc/remove_material_effects() + SHOULD_CALL_PARENT(TRUE) + //Only runs if custom materials existed at first and affected src. + if(!custom_materials || !(material_flags & MATERIAL_EFFECTS)) + return + var/list/material_effects = get_material_effects_list(custom_materials) + finalize_remove_material_effects(material_effects) + +/atom/proc/get_material_effects_list(list/materials) + SHOULD_NOT_OVERRIDE(TRUE) + var/list/material_effects = list() + var/index = 1 + for(var/current_material in materials) + var/datum/material/material = GET_MATERIAL_REF(current_material) + material_effects[material] = list( + MATERIAL_LIST_OPTIMAL_AMOUNT = OPTIMAL_COST(materials[current_material] * material_modifier), + MATERIAL_LIST_MULTIPLIER = get_material_multiplier(material, materials, index), + ) + index++ + return material_effects + +/** + * A proc that can be used to selectively control the stat changes and effects from a material without affecting the others. + * + * For example, we can have items made of two different materials, with the primary contributing a good 1.2 multiplier + * and the second a meager 0.3. + * + * The GET_MATERIAL_MODIFIER macro will handles some modifications where the minimum should be 1 if above 1 and the maximum + * be 1 if below 1. Just don't return negative values. + */ +/atom/proc/get_material_multiplier(datum/material/custom_material, list/materials, index) + return 1/length(materials) + +///Called by apply_material_effects(). It ACTUALLY handles applying effects common to all atoms (depending on material flags) +/atom/proc/finalize_material_effects(list/materials) + SHOULD_CALL_PARENT(TRUE) + var/total_alpha = 0 + var/list/colors = list() + var/mat_length = length(materials) + var/datum/material/main_material //the material with the highest amount (after calculations) + var/main_mat_amount + var/main_mat_mult + for(var/datum/material/custom_material as anything in materials) + var/list/deets = materials[custom_material] + var/mat_amount = deets[MATERIAL_LIST_OPTIMAL_AMOUNT] + var/multiplier = deets[MATERIAL_LIST_MULTIPLIER] + if(mat_amount > main_mat_amount) + main_material = custom_material + main_mat_amount = mat_amount + main_mat_mult = multiplier + + apply_single_mat_effect(custom_material, mat_amount, multiplier) + custom_material.on_applied(src, mat_amount, multiplier) + + //Prevent changing things with pre-set colors, to keep colored toolboxes their looks for example + if(material_flags & (MATERIAL_COLOR|MATERIAL_GREYSCALE)) + gather_material_color(custom_material, colors, mat_amount, multicolor = mat_length > 1) + var/added_alpha = custom_material.alpha * (custom_material.alpha / 255) + total_alpha += GET_MATERIAL_MODIFIER(added_alpha, multiplier) + if(custom_material.beauty_modifier) + AddElement(/datum/element/beauty, custom_material.beauty_modifier * mat_amount) + + apply_main_material_effects(main_material, main_mat_amount, main_mat_mult) + + if(material_flags & (MATERIAL_COLOR|MATERIAL_GREYSCALE)) + var/init_alpha = initial(alpha) + var/alpha_value = (total_alpha / length(materials)) * init_alpha + + if(alpha_value < init_alpha * 0.9) + opacity = FALSE + + if(material_flags & MATERIAL_GREYSCALE) + var/config_path = get_material_greyscale_config(main_material.type, greyscale_config) + //Make sure that we've no less than the expected amount + //expected_colors is zero for paths, the value is assigned when reading the json files. + var/datum/greyscale_config/config = SSgreyscale.configurations["[config_path || greyscale_config]"] + var/colors_len = length(colors) + if(config.expected_colors > colors_len) + var/list/filled_colors = colors.Copy() + for(var/index in colors_len to config.expected_colors - 1) + filled_colors += pick(colors) + colors = filled_colors + set_greyscale(colors, config_path) + else if(length(colors)) + mix_material_colors(colors) + + if(material_flags & MATERIAL_ADD_PREFIX) + var/prefixes = get_material_prefixes(materials) + name = "[prefixes] [name]" + +/** + * A proc used by both finalize_material_effects() and finalize_remove_material_effects() to get the colors + * that will later be applied to or removed from the atom + */ +/atom/proc/gather_material_color(datum/material/material, list/colors, amount, multicolor = FALSE) + SHOULD_CALL_PARENT(TRUE) + if(!material.color) //the material has no color. Nevermind + return + var/color_to_add = material.color + var/istext = istext(color_to_add) + if(istext) + if(material.alpha != 255) + color_to_add += num2hex(material.alpha, 2) + else + if(multicolor || material_flags & MATERIAL_GREYSCALE) + color_to_add = material.greyscale_color || color_matrix2color_hex(material.color) + if(material.greyscale_color) + color_to_add += num2hex(material.alpha, 2) + else + color_to_add = color_to_full_rgba_matrix(color_to_add) + color_to_add[20] *= (material.alpha / 255) // multiply the constant alpha of the color matrix + + colors[color_to_add] += amount + +/// Manages mixing, adding or removing the material colors from the atom in absence of the MATERIAL_GREYSCALE flag. +/atom/proc/mix_material_colors(list/colors, remove = FALSE) + SHOULD_NOT_OVERRIDE(TRUE) + var/color_len = length(colors) + if(!color_len) + return + var/mixcolor = colors[1] + var/amount_divisor = colors[mixcolor] + for(var/i in 2 to length(colors)) + var/color_to_add = colors[i] + if(islist(color_to_add)) + color_to_add = color_matrix2color_hex(color_to_add) + var/mix_amount = colors[color_to_add] + amount_divisor += mix_amount + mixcolor = BlendRGB(mixcolor, color_to_add, mix_amount/amount_divisor) + if(remove) + remove_atom_colour(FIXED_COLOUR_PRIORITY, mixcolor) + else + add_atom_colour(mixcolor, FIXED_COLOUR_PRIORITY) + +///Returns the prefixes to attach to the atom when setting materials, from a list argument. +/atom/proc/get_material_prefixes(list/materials) + var/list/mat_names = list() + for(var/datum/material/material as anything in materials) + mat_names |= material.name + return mat_names.Join("-") + +///Returns a string like "plasma, paper and glass" from a list of materials +/atom/proc/get_material_english_list(list/materials) + var/list/mat_names = list() + for(var/datum/material/material as anything in materials) + mat_names += material.name + return english_list(mat_names) + +///Searches for a subtype of config_type that is to be used in its place for specific materials (like shimmering gold for cleric maces) +/atom/proc/get_material_greyscale_config(mat_type, config_type) + SHOULD_NOT_OVERRIDE(TRUE) + if(!config_type) + return + for(var/datum/greyscale_config/path as anything in subtypesof(config_type)) + if(mat_type != initial(path.material_skin)) + continue + return path + +///Apply material effects of a single material. +/atom/proc/apply_single_mat_effect(datum/material/custom_material, amount, multipier) + SHOULD_CALL_PARENT(TRUE) + return + +///A proc for material effects that only the main material (which the atom's primarly composed of) should apply. +/atom/proc/apply_main_material_effects(datum/material/main_material, amount, multipier) + SHOULD_CALL_PARENT(TRUE) + if(main_material.texture_layer_icon_state && material_flags & MATERIAL_COLOR) + ADD_KEEP_TOGETHER(src, MATERIAL_SOURCE(main_material)) + add_filter("material_texture_[main_material.name]", 1, layering_filter(icon = main_material.cached_texture_filter_icon, blend_mode = BLEND_INSET_OVERLAY)) + + main_material.on_main_applied(src, amount, multipier) + +///Called by remove_material_effects(). It ACTUALLY handles removing effects common to all atoms (depending on material flags) +/atom/proc/finalize_remove_material_effects(list/materials) + var/list/colors = list() + var/datum/material/main_material = get_master_material() + var/mat_length = length(materials) + var/main_mat_amount + var/main_mat_mult + for(var/datum/material/custom_material as anything in materials) + var/list/deets = materials[custom_material] + var/mat_amount = deets[MATERIAL_LIST_OPTIMAL_AMOUNT] + var/multiplier = deets[MATERIAL_LIST_MULTIPLIER] + if(custom_material == main_material) + main_mat_amount = mat_amount + main_mat_mult = multiplier + + remove_single_mat_effect(custom_material, mat_amount, multiplier) + custom_material.on_removed(src, mat_amount, multiplier) + if(material_flags & MATERIAL_COLOR) + gather_material_color(custom_material, colors, mat_amount, multicolor = mat_length > 1) + if(custom_material.beauty_modifier) + RemoveElement(/datum/element/beauty, custom_material.beauty_modifier * mat_amount) + + remove_main_material_effects(main_material, main_mat_amount, main_mat_mult) + + if(material_flags & (MATERIAL_GREYSCALE|MATERIAL_COLOR)) + if(material_flags & MATERIAL_COLOR) + mix_material_colors(colors, remove = TRUE) + else + set_greyscale(initial(greyscale_colors), initial(greyscale_config)) + alpha = initial(alpha) + opacity = initial(opacity) + + if(material_flags & MATERIAL_ADD_PREFIX) + name = initial(name) + +///Remove material effects of a single material. +/atom/proc/remove_single_mat_effect(datum/material/custom_material, amount, multipier) + SHOULD_CALL_PARENT(TRUE) + return + +///A proc to remove the material effects previously applied by the (ex-)main material +/atom/proc/remove_main_material_effects(datum/material/main_material, amount, multipier) + SHOULD_CALL_PARENT(TRUE) + if(main_material.texture_layer_icon_state) + remove_filter("material_texture_[main_material.name]") + REMOVE_KEEP_TOGETHER(src, MATERIAL_SOURCE(main_material)) + main_material.on_main_removed(src, amount, multipier) + +///Remove the old effects, change the material_modifier variable, and then reapply all the effects. +/atom/proc/change_material_modifier(new_value) + SHOULD_NOT_OVERRIDE(TRUE) + remove_material_effects() + material_modifier = new_value + apply_material_effects(custom_materials) - custom_materials = SSmaterials.FindOrCreateMaterialCombo(materials, multiplier) +///For enabling and disabling material effects from an item (mainly VV) +/atom/proc/toggle_material_flags(new_flags) + SHOULD_NOT_OVERRIDE(TRUE) + if(material_flags & MATERIAL_EFFECTS && !(new_flags & MATERIAL_EFFECTS)) + remove_material_effects() + else if(!(material_flags & MATERIAL_EFFECTS) && new_flags & MATERIAL_EFFECTS) + apply_material_effects() + material_flags = new_flags /** * Returns the material composition of the atom. diff --git a/code/game/atom/atom_tool_acts.dm b/code/game/atom/atom_tool_acts.dm index 10bed5a407760..efb43fc16e571 100644 --- a/code/game/atom/atom_tool_acts.dm +++ b/code/game/atom/atom_tool_acts.dm @@ -1,7 +1,7 @@ /** * ## Item interaction * - * Handles non-combat iteractions of a tool on this atom, + * Handles non-combat interactions of a tool on this atom, * such as using a tool on a wall to deconstruct it, * or scanning someone with a health analyzer */ @@ -14,7 +14,7 @@ if(tool_return) return tool_return - var/is_right_clicking = LAZYACCESS(modifiers, RIGHT_CLICK) + var/is_right_clicking = text2num(LAZYACCESS(modifiers, RIGHT_CLICK)) var/is_left_clicking = !is_right_clicking var/early_sig_return = NONE if(is_left_clicking) @@ -22,10 +22,8 @@ * This is intentionally using `||` instead of `|` to short-circuit the signal calls * This is because we want to return early if ANY of these signals return a value * - * This puts priority on the atom's signals, then the tool's signals, then the user's signals - * So stuff like storage can be handled before stuff the item wants to do like cleaner component - * - * Future idea: Being on combat mode could change/reverse the priority of these signals + * This puts priority on the atom's signals, then the tool's signals, then the user's signals, + * so we can avoid doing two interactions at once */ early_sig_return = SEND_SIGNAL(src, COMSIG_ATOM_ITEM_INTERACTION, user, tool, modifiers) \ || SEND_SIGNAL(tool, COMSIG_ITEM_INTERACTING_WITH_ATOM, user, src, modifiers) \ @@ -50,6 +48,16 @@ if(interact_return) return interact_return + // We have to manually handle storage in item_interaction because storage is blocking in 99% of interactions, which stifles a lot + // Yeah it sucks not being able to signalize this, but the other option is to have a second signal here just for storage which is also not great + if(atom_storage) + if(is_left_clicking) + if(atom_storage.insert_on_attack) + return atom_storage.item_interact_insert(user, tool) + else + if(atom_storage.open_storage(user) && atom_storage.display_contents) + return ITEM_INTERACT_SUCCESS + return NONE /** @@ -61,7 +69,7 @@ * * Handles the tool_acts in particular, such as wrenches and screwdrivers. * - * This can be overriden to handle unique "tool interactions" + * This can be overridden to handle unique "tool interactions" * IE using an item like a tool (when it's not actually one) * This is particularly useful for things that shouldn't be inserted into storage * (because tool acting runs before storage checks) @@ -315,23 +323,3 @@ /// Called on an object when a tool with analyzer capabilities is used to right click an object /atom/proc/analyzer_act_secondary(mob/living/user, obj/item/tool) return - -/** - * Called before this item is placed into a storage container - * via the item clicking on the target atom - * - * Returning FALSE will prevent the item from being stored. - */ -/obj/item/proc/storage_insert_on_interaction(datum/storage, atom/storage_holder, mob/user) - return TRUE - -/** - * Called before an item is put into this atom's storage datum via the item clicking on this atom - * - * This can be used to add item-atom interactions that you want handled before inserting something into storage - * (But it's also fairly snowflakey) - * - * Returning FALSE will block that item from being put into our storage. - */ -/atom/proc/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - return TRUE diff --git a/code/game/atom/atom_vv.dm b/code/game/atom/atom_vv.dm index 10a6cbff24a92..7a7dc8d3a877d 100644 --- a/code/game/atom/atom_vv.dm +++ b/code/game/atom/atom_vv.dm @@ -270,6 +270,12 @@ if(NAMEOF(src, base_pixel_y)) set_base_pixel_y(var_value) . = TRUE + if(NAMEOF(src, material_flags)) + toggle_material_flags(var_value) + . = TRUE + if(NAMEOF(src, material_modifier)) + change_material_modifier(var_value) + . = TRUE light_flags = old_light_flags if(!isnull(.)) diff --git a/code/game/atom/atoms_initializing_EXPENSIVE.dm b/code/game/atom/atoms_initializing_EXPENSIVE.dm index c603ae5514810..b73504fb137b8 100644 --- a/code/game/atom/atoms_initializing_EXPENSIVE.dm +++ b/code/game/atom/atoms_initializing_EXPENSIVE.dm @@ -57,14 +57,14 @@ * Called when an atom is created in byond (built in engine proc) * * Not a lot happens here in SS13 code, as we offload most of the work to the - * [Intialization][/atom/proc/Initialize] proc, mostly we run the preloader + * [Initialization][/atom/proc/Initialize] proc, mostly we run the preloader * if the preloader is being used and then call [InitAtom][/datum/controller/subsystem/atoms/proc/InitAtom] of which the ultimate - * result is that the Intialize proc is called. + * result is that the Initialize proc is called. * */ /atom/New(loc, ...) //atom creation method that preloads variables at creation - if(GLOB.use_preloader && src.type == GLOB._preloader_path)//in case the instanciated atom is creating other atoms in New() + if(GLOB.use_preloader && src.type == GLOB._preloader_path)//in case the instantiated atom is creating other atoms in New() world.preloader_load(src) var/do_initialize = SSatoms.initialized @@ -80,17 +80,17 @@ * we don't use New as we have better control over when this is called and we can choose * to delay calls or hook other logic in and so forth * - * During roundstart map parsing, atoms are queued for intialization in the base atom/New(), - * After the map has loaded, then Initalize is called on all atoms one by one. NB: this - * is also true for loading map templates as well, so they don't Initalize until all objects + * During roundstart map parsing, atoms are queued for initialization in the base atom/New(), + * After the map has loaded, then Initialize is called on all atoms one by one. NB: this + * is also true for loading map templates as well, so they don't Initialize until all objects * in the map file are parsed and present in the world * * If you're creating an object at any point after SSInit has run then this proc will be * immediately be called from New. * - * mapload: This parameter is true if the atom being loaded is either being intialized during - * the Atom subsystem intialization, or if the atom is being loaded from the map template. - * If the item is being created at runtime any time after the Atom subsystem is intialized then + * mapload: This parameter is true if the atom being loaded is either being initialized during + * the Atom subsystem initialization, or if the atom is being loaded from the map template. + * If the item is being created at runtime any time after the Atom subsystem is initialized then * it's false. * * The mapload argument occupies the same position as loc when Initialize() is called by New(). @@ -98,7 +98,7 @@ * with mapload at the end of atom/New() before this proc (atom/Initialize()) is called. * * You must always call the parent of this proc, otherwise failures will occur as the item - * will not be seen as initalized (this can lead to all sorts of strange behaviour, like + * will not be seen as initialized (this can lead to all sorts of strange behaviour, like * the item being completely unclickable) * * You must not sleep in this proc, or any subprocs @@ -136,13 +136,14 @@ if(uses_integrity) atom_integrity = max_integrity - TEST_ONLY_ASSERT((!armor || istype(armor)), "[type] has an armor that contains an invalid value at intialize") + TEST_ONLY_ASSERT((!armor || istype(armor)), "[type] has an armor that contains an invalid value at initialize") // apply materials properly from the default custom_materials value // This MUST come after atom_integrity is set above, as if old materials get removed, // atom_integrity is checked against max_integrity and can BREAK the atom. // The integrity to max_integrity ratio is still preserved. - set_custom_materials(custom_materials) + if(custom_materials) + initialize_materials(custom_materials) if(ispath(ai_controller)) ai_controller = new ai_controller(src) @@ -150,14 +151,14 @@ return INITIALIZE_HINT_NORMAL /** - * Late Intialization, for code that should run after all atoms have run Intialization + * Late Initialization, for code that should run after all atoms have run Initialization * - * To have your LateIntialize proc be called, your atoms [Initalization][/atom/proc/Initialize] + * To have your LateIntialize proc be called, your atoms [Initialization][/atom/proc/Initialize] * proc must return the hint * [INITIALIZE_HINT_LATELOAD] otherwise it will never be called. * * useful for doing things like finding other machines on GLOB.machines because you can guarantee - * that all atoms will actually exist in the "WORLD" at this time and that all their Intialization + * that all atoms will actually exist in the "WORLD" at this time and that all their Initialization * code has been run */ /atom/proc/LateInitialize() diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 8135a3af59346..45b77efdb1f4c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -17,7 +17,7 @@ var/tk_throw_range = 10 var/mob/pulledby = null /// What language holder type to init as - var/initial_language_holder = /datum/language_holder + var/initial_language_holder = /datum/language_holder/atom_basic /// Holds all languages this mob can speak and understand VAR_PRIVATE/datum/language_holder/language_holder /// The list of factions this atom belongs to @@ -33,8 +33,10 @@ var/speech_span ///Are we moving with inertia? Mostly used as an optimization var/inertia_moving = FALSE - ///Delay in deciseconds between inertia based movement - var/inertia_move_delay = 5 + ///Multiplier for inertia based movement in space + var/inertia_move_multiplier = 1 + ///Object "weight", higher weight reduces acceleration applied to the object + var/inertia_force_weight = 1 ///The last time we pushed off something ///This is a hack to get around dumb him him me scenarios var/last_pushoff @@ -66,7 +68,7 @@ /** * In case you have multiple types, you automatically use the most useful one. * IE: Skating on ice, flippers on water, flying over chasm/space, etc. - * I reccomend you use the movetype_handler system and not modify this directly, especially for living mobs. + * I recommend you use the movetype_handler system and not modify this directly, especially for living mobs. */ var/movement_type = GROUND @@ -107,6 +109,9 @@ /// The pitch adjustment that this movable uses when speaking. var/pitch = 0 + /// Datum that keeps all data related to zero-g drifting and handles related code/comsigs + var/datum/drift_handler/drift_handler + /// The filter to apply to the voice when processing the TTS audio message. var/voice_filter = "" @@ -130,7 +135,7 @@ /mutable_appearance/emissive_blocker/New() . = ..() - // Need to do this here because it's overriden by the parent call + // Need to do this here because it's overridden by the parent call color = EM_BLOCK_COLOR appearance_flags = EMISSIVE_APPEARANCE_FLAGS @@ -142,7 +147,7 @@ #endif #if EMISSIVE_BLOCK_GENERIC != 0 - #error EMISSIVE_BLOCK_GENERIC is expected to be 0 to faciliate a weird optimization hack where we rely on it being the most common. + #error EMISSIVE_BLOCK_GENERIC is expected to be 0 to facilitate a weird optimization hack where we rely on it being the most common. #error Read the comment in code/game/atoms_movable.dm for details. #endif @@ -198,6 +203,7 @@ /atom/movable/Destroy(force) QDEL_NULL(language_holder) QDEL_NULL(em_block) + QDEL_NULL(drift_handler) unbuckle_all_mobs(force = TRUE) @@ -231,6 +237,10 @@ LAZYNULL(client_mobs_in_contents) + // These lists cease existing when src does, so we need to clear any lua refs to them that exist. + DREAMLUAU_CLEAR_REF_USERDATA(vis_contents) + DREAMLUAU_CLEAR_REF_USERDATA(vis_locs) + . = ..() for(var/movable_content in contents) @@ -455,7 +465,7 @@ var/static/list/not_falsey_edits = list(NAMEOF_STATIC(src, bound_width) = TRUE, NAMEOF_STATIC(src, bound_height) = TRUE) if(banned_edits[var_name]) return FALSE //PLEASE no. - if(careful_edits[var_name] && (var_value % world.icon_size) != 0) + if(careful_edits[var_name] && (var_value % ICON_SIZE_ALL) != 0) return FALSE if(not_falsey_edits[var_name] && !var_value) return FALSE @@ -628,7 +638,7 @@ if(!newloc || newloc == loc) return - // A mid-movement... movement... occured, resolve that first. + // A mid-movement... movement... occurred, resolve that first. RESOLVE_ACTIVE_MOVEMENT if(!direction) @@ -764,7 +774,7 @@ if(!. && set_dir_on_move && update_dir) setDir(first_step_dir) else if(!inertia_moving) - newtonian_move(direct) + newtonian_move(dir2angle(direct)) if(client_mobs_in_contents) update_parallax_contents() moving_diagonally = 0 @@ -795,7 +805,7 @@ if (pulledby) if (pulledby.currently_z_moving) check_pulling(z_allowed = TRUE) - //dont call check_pulling() here at all if there is a pulledby that is not currently z moving + //don't call check_pulling() here at all if there is a pulledby that is not currently z moving //because it breaks stair conga lines, for some fucking reason. //it's fine because the pull will be checked when this whole proc is called by the mob doing the pulling anyways else @@ -838,8 +848,8 @@ /atom/movable/proc/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) SHOULD_CALL_PARENT(TRUE) - if (!inertia_moving && momentum_change) - newtonian_move(movement_dir) + if (!moving_diagonally && !inertia_moving && momentum_change && movement_dir) + newtonian_move(dir2angle(movement_dir)) // If we ain't moving diagonally right now, update our parallax // We don't do this all the time because diag movements should trigger one call to this, not two // Waste of cpu time, and it fucks the animate @@ -879,9 +889,10 @@ // Make sure you know what you're doing if you call this // You probably want CanPass() /atom/movable/Cross(atom/movable/crossed_atom) - . = TRUE - SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, crossed_atom) - SEND_SIGNAL(crossed_atom, COMSIG_MOVABLE_CROSS_OVER, src) + if(SEND_SIGNAL(src, COMSIG_MOVABLE_CROSS, crossed_atom) & COMPONENT_BLOCK_CROSS) + return FALSE + if(SEND_SIGNAL(crossed_atom, COMSIG_MOVABLE_CROSS_OVER, src) & COMPONENT_BLOCK_CROSS) + return FALSE return CanPass(crossed_atom, get_dir(src, crossed_atom)) ///default byond proc that is deprecated for us in lieu of signals. do not call @@ -926,7 +937,8 @@ /atom/movable/Bump(atom/bumped_atom) if(!bumped_atom) CRASH("Bump was called with no argument.") - SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, bumped_atom) + if(SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, bumped_atom) & COMPONENT_INTERCEPT_BUMPED) + return . = ..() if(!QDELETED(throwing)) throwing.finalize(hit = TRUE, target = bumped_atom) @@ -1080,7 +1092,7 @@ for(var/atom/movable/location as anything in get_nested_locs(src) + src) LAZYREMOVEASSOC(location.important_recursive_contents, RECURSIVE_CONTENTS_ACTIVE_STORAGE, src) -///Sets the anchored var and returns if it was sucessfully changed or not. +///Sets the anchored var and returns if it was successfully changed or not. /atom/movable/proc/set_anchored(anchorvalue) SHOULD_CALL_PARENT(TRUE) if(anchored == anchorvalue) @@ -1115,7 +1127,7 @@ RESOLVE_ACTIVE_MOVEMENT var/atom/oldloc = loc - var/is_multi_tile = bound_width > world.icon_size || bound_height > world.icon_size + var/is_multi_tile = bound_width > ICON_SIZE_X || bound_height > ICON_SIZE_Y SET_ACTIVE_MOVEMENT(oldloc, NONE, TRUE, null) @@ -1138,8 +1150,8 @@ var/list/new_locs = block( destination, locate( - min(world.maxx, destination.x + ROUND_UP(bound_width / 32)), - min(world.maxy, destination.y + ROUND_UP(bound_height / 32)), + min(world.maxx, destination.x + ROUND_UP(bound_width / ICON_SIZE_X)), + min(world.maxy, destination.y + ROUND_UP(bound_height / ICON_SIZE_Y)), destination.z ) ) @@ -1256,15 +1268,19 @@ /// Only moves the object if it's under no gravity /// Accepts the direction to move, if the push should be instant, and an optional parameter to fine tune the start delay -/atom/movable/proc/newtonian_move(direction, instant = FALSE, start_delay = 0) - if(!isturf(loc) || Process_Spacemove(direction, continuous_move = TRUE)) +/// Drift force determines how much acceleration should be applied. Controlled cap, if set, will ensure that if the object was moving slower than the cap before, it cannot accelerate past the cap from this move. +/atom/movable/proc/newtonian_move(inertia_angle, instant = FALSE, start_delay = 0, drift_force = 1 NEWTONS, controlled_cap = null) + if(!isturf(loc) || Process_Spacemove(angle2dir(inertia_angle), continuous_move = TRUE)) return FALSE - if(SEND_SIGNAL(src, COMSIG_MOVABLE_NEWTONIAN_MOVE, direction, start_delay) & COMPONENT_MOVABLE_NEWTONIAN_BLOCK) - return TRUE - - AddComponent(/datum/component/drift, direction, instant, start_delay) + if (!isnull(drift_handler)) + if (drift_handler.newtonian_impulse(inertia_angle, start_delay, drift_force, controlled_cap)) + return TRUE + new /datum/drift_handler(src, inertia_angle, instant, start_delay, drift_force) + // Something went wrong and it failed to create itself, most likely we have a higher priority loop already + if (QDELETED(drift_handler)) + return FALSE return TRUE /atom/movable/set_explosion_block(explosion_block) @@ -1277,16 +1293,22 @@ /atom/movable/proc/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) set waitfor = FALSE var/hitpush = TRUE - var/impact_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_IMPACT, hit_atom, throwingdatum) - if(impact_signal & COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH) - hitpush = FALSE // hacky, tie this to something else or a proper workaround later - - if(impact_signal && (impact_signal & COMPONENT_MOVABLE_IMPACT_NEVERMIND)) + var/impact_flags = pre_impact(hit_atom, throwingdatum) + if(impact_flags & COMPONENT_MOVABLE_IMPACT_NEVERMIND) return // in case a signal interceptor broke or deleted the thing before we could process our hit - if(SEND_SIGNAL(hit_atom, COMSIG_ATOM_PREHITBY, src, throwingdatum) & COMSIG_HIT_PREVENTED) - return - SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum) - return hit_atom.hitby(src, throwingdatum=throwingdatum, hitpush=hitpush) + if(impact_flags & COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH) + hitpush = FALSE + var/caught = hit_atom.hitby(src, throwingdatum=throwingdatum, hitpush=hitpush) + SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum, caught) + return caught + +///Called before we attempt to call hitby and send the COMSIG_MOVABLE_IMPACT signal +/atom/movable/proc/pre_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + var/impact_flags = SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_IMPACT, hit_atom, throwingdatum) + var/target_flags = SEND_SIGNAL(hit_atom, COMSIG_ATOM_PREHITBY, src, throwingdatum) + if(target_flags & COMSIG_HIT_PREVENTED) + impact_flags |= COMPONENT_MOVABLE_IMPACT_NEVERMIND + return impact_flags /atom/movable/hitby(atom/movable/hitting_atom, skipcatch, hitpush = TRUE, blocked, datum/thrownthing/throwingdatum) if(HAS_TRAIT(src, TRAIT_NO_THROW_HITPUSH)) @@ -1420,7 +1442,15 @@ /atom/movable/proc/CanPassThrough(atom/blocker, movement_dir, blocker_opinion) SHOULD_CALL_PARENT(TRUE) SHOULD_BE_PURE(TRUE) - return blocker_opinion + + var/blocking_signal = SEND_SIGNAL(src, COMSIG_MOVABLE_CAN_PASS_THROUGH, blocker, movement_dir) + if(!blocking_signal) + return blocker_opinion + + if(blocking_signal & COMSIG_COMPONENT_PERMIT_PASSAGE) + return TRUE + else //we have a COMSIG_COMPONENT_REFUSE_PASSAGE but like its either this or that, unlike someone wanna adds half-passing through but fuck you + return FALSE /// called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called. /atom/movable/proc/on_exit_storage(datum/storage/master_storage) @@ -1431,6 +1461,7 @@ return /atom/movable/proc/get_spacemove_backup() + var/atom/secondary_backup for(var/checked_range in orange(1, get_turf(src))) if(isarea(checked_range)) continue @@ -1438,12 +1469,18 @@ var/turf/turf = checked_range if(!turf.density) continue - return turf + if (get_dir(src, turf) in GLOB.cardinals) + return turf + secondary_backup = turf + continue var/atom/movable/checked_atom = checked_range if(checked_atom.density || !checked_atom.CanPass(src, get_dir(src, checked_atom))) if(checked_atom.last_pushoff == world.time) continue - return checked_atom + if (get_dir(src, checked_atom) in GLOB.cardinals) + return checked_atom + secondary_backup = checked_atom + return secondary_backup ///called when a mob resists while inside a container that is itself inside something. /atom/movable/proc/relay_container_resist_act(mob/living/user, obj/container) @@ -1593,8 +1630,14 @@ /* End language procs */ -//Returns an atom's power cell, if it has one. Overload for individual items. -/atom/movable/proc/get_cell() +/** + * Returns an atom's power cell, if it has one. Overload for individual items. + * Args + * + * * /atom/movable/interface - the atom that is trying to interact with this cell + * * mob/user - the mob that is holding the interface + */ +/atom/movable/proc/get_cell(atom/movable/interface, mob/user) return /atom/movable/proc/can_be_pulled(user, grab_state, force) diff --git a/code/game/communications.dm b/code/game/communications.dm index 6d26a9779937d..aba409b558710 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -104,6 +104,7 @@ GLOBAL_LIST_INIT(radiochannels, list( RADIO_CHANNEL_SUPPLY = FREQ_SUPPLY, RADIO_CHANNEL_SERVICE = FREQ_SERVICE, RADIO_CHANNEL_AI_PRIVATE = FREQ_AI_PRIVATE, + RADIO_CHANNEL_ENTERTAINMENT = FREQ_ENTERTAINMENT, RADIO_CHANNEL_CTF_RED = FREQ_CTF_RED, RADIO_CHANNEL_CTF_BLUE = FREQ_CTF_BLUE, RADIO_CHANNEL_CTF_GREEN = FREQ_CTF_GREEN, @@ -123,6 +124,7 @@ GLOBAL_LIST_INIT(reverseradiochannels, list( "[FREQ_SUPPLY]" = RADIO_CHANNEL_SUPPLY, "[FREQ_SERVICE]" = RADIO_CHANNEL_SERVICE, "[FREQ_AI_PRIVATE]" = RADIO_CHANNEL_AI_PRIVATE, + "[FREQ_ENTERTAINMENT]" = RADIO_CHANNEL_ENTERTAINMENT, "[FREQ_CTF_RED]" = RADIO_CHANNEL_CTF_RED, "[FREQ_CTF_BLUE]" = RADIO_CHANNEL_CTF_BLUE, "[FREQ_CTF_GREEN]" = RADIO_CHANNEL_CTF_GREEN, @@ -141,10 +143,11 @@ GLOBAL_LIST_INIT(radiocolors, list( RADIO_CHANNEL_SUPPLY = "#a8732b", RADIO_CHANNEL_SERVICE = "#6eaa2c", RADIO_CHANNEL_AI_PRIVATE = "#ff00ff", + RADIO_CHANNEL_ENTERTAINMENT = "#00ff99", RADIO_CHANNEL_CTF_RED = "#ff0000", RADIO_CHANNEL_CTF_BLUE = "#0000ff", RADIO_CHANNEL_CTF_GREEN = "#00ff00", - RADIO_CHANNEL_CTF_YELLOW = "#d1ba22" + RADIO_CHANNEL_CTF_YELLOW = "#d1ba22", )) /datum/radio_frequency diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index a4d59d668ae11..469e5e49bc5a7 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -28,6 +28,8 @@ var/obj/item/clothing/under/U = H.w_uniform if(!istype(U)) return FALSE + if(U.has_sensor < HAS_SENSORS) + return FALSE if(U.sensor_mode <= SENSOR_VITALS) return FALSE return TRUE @@ -53,18 +55,14 @@ hud_icons = list(FAN_HUD) /datum/atom_hud/data/diagnostic - -/datum/atom_hud/data/diagnostic/basic hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD, DIAG_CAMERA_HUD, DIAG_AIRLOCK_HUD, DIAG_LAUNCHPAD_HUD) -/datum/atom_hud/data/diagnostic/advanced - hud_icons = list(DIAG_HUD, DIAG_STAT_HUD, DIAG_BATT_HUD, DIAG_MECH_HUD, DIAG_BOT_HUD, DIAG_TRACK_HUD, DIAG_CAMERA_HUD, DIAG_AIRLOCK_HUD, DIAG_LAUNCHPAD_HUD, DIAG_PATH_HUD) - /datum/atom_hud/data/bot_path - // This hud exists so the bot can see itself, that's all - uses_global_hud_category = FALSE hud_icons = list(DIAG_PATH_HUD) +/datum/atom_hud/data/bot_path/private + uses_global_hud_category = FALSE + /datum/atom_hud/abductor hud_icons = list(GLAND_HUD) @@ -177,7 +175,7 @@ Medical HUD! Basic mode needs suit sensors on. holder.icon_state = "hud[RoundHealth(src)]" var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y //for carbon suit sensors /mob/living/carbon/med_hud_set_health() @@ -190,7 +188,7 @@ Medical HUD! Basic mode needs suit sensors on. return var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(stat == DEAD || (HAS_TRAIT(src, TRAIT_FAKEDEATH))) holder.icon_state = "huddead" else @@ -203,7 +201,7 @@ Medical HUD! Basic mode needs suit sensors on. var/icon/I = icon(icon, icon_state, dir) var/virus_threat = check_virus() - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(HAS_TRAIT(src, TRAIT_XENO_HOST)) holder.icon_state = "hudxeno" else if(stat == DEAD || (HAS_TRAIT(src, TRAIT_FAKEDEATH))) @@ -231,7 +229,11 @@ Medical HUD! Basic mode needs suit sensors on. holder.icon_state = "hudbuff" if(null) holder.icon_state = "hudhealthy" - + if(ishuman(src)) + var/mob/living/carbon/human/crew = src + var/obj/item/clothing/under/uniform = crew.w_uniform + if(uniform && uniform.has_sensor == BROKEN_SENSORS) + holder.icon_state = "hudnosensor" /*********************************************** FAN HUDs! For identifying other fans on-sight. @@ -242,7 +244,7 @@ FAN HUDs! For identifying other fans on-sight. /mob/living/carbon/human/proc/fan_hud_set_fandom() var/image/holder = hud_list[FAN_HUD] var/icon/hud_icon = icon(icon, icon_state, dir) - holder.pixel_y = hud_icon.Height() - world.icon_size + holder.pixel_y = hud_icon.Height() - ICON_SIZE_Y holder.icon_state = "hudfan_no" var/obj/item/clothing/under/undershirt = w_uniform @@ -273,7 +275,7 @@ Security HUDs! Basic mode shows only the job. /mob/living/carbon/human/proc/sec_hud_set_ID() var/image/holder = hud_list[ID_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y var/sechud_icon_state = wear_id?.get_sechud_job_icon_state() if(!sechud_icon_state || HAS_TRAIT(src, TRAIT_UNKNOWN)) sechud_icon_state = "hudno_id" @@ -282,7 +284,7 @@ Security HUDs! Basic mode shows only the job. /mob/living/proc/sec_hud_set_implants() var/image/holder - for(var/i in list(IMPSEC_FIRST_HUD, IMPLOYAL_HUD, IMPSEC_SECOND_HUD)) + for(var/i in (list(IMPSEC_FIRST_HUD, IMPLOYAL_HUD, IMPSEC_SECOND_HUD) & hud_list)) holder = hud_list[i] holder.icon_state = null set_hud_image_inactive(i) @@ -294,7 +296,7 @@ Security HUDs! Basic mode shows only the job. if(1) holder = hud_list[IMPSEC_FIRST_HUD] var/icon/IC = icon(icon, icon_state, dir) - holder.pixel_y = IC.Height() - world.icon_size + holder.pixel_y = IC.Height() - ICON_SIZE_Y holder.icon_state = current_implant.hud_icon_state set_hud_image_active(IMPSEC_FIRST_HUD) security_slot++ @@ -302,22 +304,26 @@ Security HUDs! Basic mode shows only the job. if(2) //Theoretically if we somehow get multiple sec implants, whatever the most recently implanted implant is will take over the 2nd position holder = hud_list[IMPSEC_SECOND_HUD] var/icon/IC = icon(icon, icon_state, dir) - holder.pixel_y = IC.Height() - world.icon_size - holder.pixel_x = initial(holder.pixel_x) + 7 //Adds an offset that mirrors the hud blip to the other side of the mob. + holder.pixel_y = IC.Height() - ICON_SIZE_Y + holder.pixel_x = initial(holder.pixel_x) + (ICON_SIZE_X / 4 - 1) //Adds an offset that mirrors the hud blip to the other side of the mob. holder.icon_state = current_implant.hud_icon_state set_hud_image_active(IMPSEC_SECOND_HUD) if(HAS_TRAIT(src, TRAIT_MINDSHIELD)) holder = hud_list[IMPLOYAL_HUD] var/icon/IC = icon(icon, icon_state, dir) - holder.pixel_y = IC.Height() - world.icon_size + holder.pixel_y = IC.Height() - ICON_SIZE_Y holder.icon_state = "hud_imp_loyal" set_hud_image_active(IMPLOYAL_HUD) /mob/living/carbon/human/proc/sec_hud_set_security_status() + if(!hud_list) + // We haven't finished initializing yet, huds will be updated once we are + return + var/image/holder = hud_list[WANTED_HUD] var/icon/sec_icon = icon(icon, icon_state, dir) - holder.pixel_y = sec_icon.Height() - world.icon_size + holder.pixel_y = sec_icon.Height() - ICON_SIZE_Y if (HAS_TRAIT(src, TRAIT_ALWAYS_WANTED)) holder.icon_state = "hudwanted" @@ -394,7 +400,7 @@ Diagnostic HUDs! /mob/living/silicon/proc/diag_hud_set_health() var/image/holder = hud_list[DIAG_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(stat == DEAD) holder.icon_state = "huddiagdead" else @@ -403,7 +409,7 @@ Diagnostic HUDs! /mob/living/silicon/proc/diag_hud_set_status() var/image/holder = hud_list[DIAG_STAT_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y switch(stat) if(CONSCIOUS) holder.icon_state = "hudstat" @@ -416,7 +422,7 @@ Diagnostic HUDs! /mob/living/silicon/robot/proc/diag_hud_set_borgcell() var/image/holder = hud_list[DIAG_BATT_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(cell) var/chargelvl = (cell.charge/cell.maxcharge) holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" @@ -427,7 +433,7 @@ Diagnostic HUDs! /mob/living/silicon/robot/proc/diag_hud_set_aishell() //Shows tracking beacons on the mech var/image/holder = hud_list[DIAG_TRACK_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(!shell) //Not an AI shell holder.icon_state = null set_hud_image_inactive(DIAG_TRACK_HUD) @@ -442,7 +448,7 @@ Diagnostic HUDs! /mob/living/silicon/ai/proc/diag_hud_set_deployed() //Shows tracking beacons on the mech var/image/holder = hud_list[DIAG_TRACK_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(!deployed_shell) holder.icon_state = null set_hud_image_inactive(DIAG_TRACK_HUD) @@ -456,14 +462,14 @@ Diagnostic HUDs! /obj/vehicle/sealed/mecha/proc/diag_hud_set_mechhealth() var/image/holder = hud_list[DIAG_MECH_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y holder.icon_state = "huddiag[RoundDiagBar(atom_integrity/max_integrity)]" /obj/vehicle/sealed/mecha/proc/diag_hud_set_mechcell() var/image/holder = hud_list[DIAG_BATT_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(cell) var/chargelvl = cell.charge/cell.maxcharge holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" @@ -473,7 +479,7 @@ Diagnostic HUDs! /obj/vehicle/sealed/mecha/proc/diag_hud_set_mechstat() var/image/holder = hud_list[DIAG_STAT_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(internal_damage) holder.icon_state = "hudwarn" set_hud_image_active(DIAG_STAT_HUD) @@ -485,7 +491,7 @@ Diagnostic HUDs! /obj/vehicle/sealed/mecha/proc/diag_hud_set_mechtracking() var/image/holder = hud_list[DIAG_TRACK_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y var/new_icon_state //This var exists so that the holder's icon state is set only once in the event of multiple mech beacons. for(var/obj/item/mecha_parts/mecha_tracking/T in trackers) if(T.ai_beacon) //Beacon with AI uplink @@ -499,7 +505,7 @@ Diagnostic HUDs! /obj/vehicle/sealed/mecha/proc/diag_hud_set_camera() var/image/holder = hud_list[DIAG_CAMERA_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(chassis_camera?.is_emp_scrambled) holder.icon_state = "hudcamera_empd" return @@ -511,13 +517,13 @@ Diagnostic HUDs! /mob/living/simple_animal/bot/proc/diag_hud_set_bothealth() var/image/holder = hud_list[DIAG_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" /mob/living/simple_animal/bot/proc/diag_hud_set_botstat() //On (With wireless on or off), Off, EMP'ed var/image/holder = hud_list[DIAG_STAT_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(bot_mode_flags & BOT_MODE_ON) holder.icon_state = "hudstat" else if(stat) //Generally EMP causes this @@ -528,7 +534,7 @@ Diagnostic HUDs! /mob/living/simple_animal/bot/proc/diag_hud_set_botmode() //Shows a bot's current operation var/image/holder = hud_list[DIAG_BOT_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(client) //If the bot is player controlled, it will not be following mode logic! holder.icon_state = "hudsentient" return @@ -550,7 +556,7 @@ Diagnostic HUDs! /mob/living/simple_animal/bot/mulebot/proc/diag_hud_set_mulebotcell() var/image/holder = hud_list[DIAG_BATT_HUD] var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size + holder.pixel_y = I.Height() - ICON_SIZE_Y if(cell) var/chargelvl = (cell.charge/cell.maxcharge) holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 8894403586836..b2df8d7416dde 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -210,7 +210,7 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list if(LAZYLEN(our_mind.failed_special_equipment)) podspawn(list( "target" = get_turf(owner), - "style" = STYLE_SYNDICATE, + "style" = /datum/pod_style/syndicate, "spawn" = our_mind.failed_special_equipment, )) our_mind.failed_special_equipment = null @@ -353,7 +353,7 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list return FALSE if(human_check) brain_target = target.current?.get_organ_slot(ORGAN_SLOT_BRAIN) - //Protect will always suceed when someone suicides + //Protect will always succeed when someone suicides return !target || (target.current && HAS_TRAIT(target.current, TRAIT_SUICIDED)) || considered_alive(target, enforce_human = human_check) || (brain_target && HAS_TRAIT(brain_target, TRAIT_SUICIDED)) /datum/objective/protect/update_explanation_text() diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 679a3182a57cd..16a6615497ce4 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -279,7 +279,7 @@ return data -/obj/machinery/pdapainter/ui_act(action, params) +/obj/machinery/pdapainter/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 45257841c462d..282e7f6a34ae2 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -177,7 +177,7 @@ flags_1 |= PREVENT_CONTENTS_EXPLOSION_1 } - if(HAS_TRAIT(SSstation, STATION_TRAIT_BOTS_GLITCHED)) + if(HAS_TRAIT(SSstation, STATION_TRAIT_MACHINES_GLITCHED) && mapload) randomize_language_if_on_station() SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_MACHINE, src) @@ -284,10 +284,21 @@ /obj/machinery/proc/locate_machinery() return +///Early process for machines added to SSmachines.processing_early to prioritize power draw +/obj/machinery/proc/process_early() + set waitfor = FALSE + return PROCESS_KILL + /obj/machinery/process()//If you dont use process or power why are you here return PROCESS_KILL +///Late process for machines added to SSmachines.processing_late to gather accurate recordings +/obj/machinery/proc/process_late() + set waitfor = FALSE + return PROCESS_KILL + /obj/machinery/proc/process_atmos()//If you dont use process why are you here + set waitfor = FALSE return PROCESS_KILL ///Called when we want to change the value of the machine_stat variable. Holds bitflags. @@ -405,6 +416,10 @@ /obj/machinery/proc/close_machine(atom/movable/target, density_to_set = TRUE) state_open = FALSE set_density(density_to_set) + if (!density) + update_appearance() + return + if(!target) for(var/atom in loc) if (!(can_be_occupant(atom))) @@ -633,6 +648,11 @@ if(interaction_flags_machine & INTERACT_MACHINE_REQUIRES_SILICON) //if the user was a silicon, we'd have returned out earlier, so the user must not be a silicon return FALSE + if(interaction_flags_machine & INTERACT_MACHINE_REQUIRES_STANDING) + var/mob/living/living_user = user + if(!(living_user.mobility_flags & MOBILITY_MOVE)) + return FALSE + return TRUE // If we passed all of those checks, woohoo! We can interact with this machine. /obj/machinery/proc/check_nap_violations() @@ -671,10 +691,11 @@ return ..() /obj/machinery/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - add_fingerprint(usr) - update_last_used(usr) - if(HAS_AI_ACCESS(usr) && !GLOB.cameranet.checkTurfVis(get_turf(src))) //We check if they're an AI specifically here, so borgs can still access off-camera stuff. - to_chat(usr, span_warning("You can no longer connect to this device!")) + var/mob/user = ui.user + add_fingerprint(user) + update_last_used(user) + if(isAI(user) && !GLOB.cameranet.checkTurfVis(get_turf(src))) //We check if they're an AI specifically here, so borgs/adminghosts/human wand can still access off-camera stuff. + to_chat(user, span_warning("You can no longer connect to this device!")) return FALSE return ..() @@ -1131,6 +1152,9 @@ if(0 to 25) . += span_warning("It's falling apart!") +/obj/machinery/examine_descriptor(mob/user) + return "machine" + /obj/machinery/examine_more(mob/user) . = ..() if(HAS_TRAIT(user, TRAIT_RESEARCH_SCANNER) && component_parts) diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index f4d1b29da186f..9e089eeaf2be8 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -18,9 +18,9 @@ update_appearance() /// Forces the airlock to close and bolt -/obj/machinery/door/airlock/proc/secure_close() +/obj/machinery/door/airlock/proc/secure_close(force_crush = FALSE) locked = FALSE - close(forced = TRUE) + close(forced = TRUE, force_crush = force_crush) locked = TRUE stoplag(0.2 SECONDS) diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index edb945f483e9c..029f4a17ea99b 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -16,32 +16,45 @@ GLOBAL_LIST_EMPTY(announcement_systems) circuit = /obj/item/circuitboard/machine/announcement_system + ///The headset that we use for broadcasting var/obj/item/radio/headset/radio + ///The message that we send when someone is joining. var/arrival = "%PERSON has signed up as %RANK" - var/arrivalToggle = 1 + ///Whether the arrival message is sent + var/arrival_toggle = TRUE + ///The message that we send when a department head arrives. var/newhead = "%PERSON, %RANK, is the department head." - var/newheadToggle = 1 + ///Whether the newhead message is sent. + var/newhead_toggle = TRUE var/greenlight = "Light_Green" var/pinklight = "Light_Pink" var/errorlight = "Error_Red" + ///If true, researched nodes will be announced to the appropriate channels + var/announce_research_node = TRUE + /// The text that we send when announcing researched nodes. + var/node_message = "The '%NODE' techweb node has been researched" + /obj/machinery/announcement_system/Initialize(mapload) . = ..() GLOB.announcement_systems += src radio = new /obj/item/radio/headset/silicon/ai(src) update_appearance() +/obj/machinery/announcement_system/randomize_language_if_on_station() + return + /obj/machinery/announcement_system/update_icon_state() icon_state = "[base_icon_state]_[is_operational ? "On" : "Off"][panel_open ? "_Open" : null]" return ..() /obj/machinery/announcement_system/update_overlays() . = ..() - if(arrivalToggle) + if(arrival_toggle) . += greenlight - if(newheadToggle) + if(newhead_toggle) . += pinklight if(machine_stat & BROKEN) @@ -75,18 +88,25 @@ GLOBAL_LIST_EMPTY(announcement_systems) str = replacetext(str, "%RANK", "[rank]") return str -/obj/machinery/announcement_system/proc/announce(message_type, user, rank, list/channels) +/obj/machinery/announcement_system/proc/announce(message_type, target, rank, list/channels) if(!is_operational) return var/message - if(message_type == "ARRIVAL" && arrivalToggle) - message = CompileText(arrival, user, rank) - else if(message_type == "NEWHEAD" && newheadToggle) - message = CompileText(newhead, user, rank) - else if(message_type == "ARRIVALS_BROKEN") - message = "The arrivals shuttle has been damaged. Docking for repairs..." + switch(message_type) + if(AUTO_ANNOUNCE_ARRIVAL) + if(!arrival_toggle) + return + message = CompileText(arrival, target, rank) + if(AUTO_ANNOUNCE_NEWHEAD) + if(!newhead_toggle) + return + message = CompileText(newhead, target, rank) + if(AUTO_ANNOUNCE_ARRIVALS_BROKEN) + message = "The arrivals shuttle has been damaged. Docking for repairs..." + if(AUTO_ANNOUNCE_NODE) + message = replacetext(node_message, "%NODE", target) broadcast(message, channels) @@ -115,9 +135,11 @@ GLOBAL_LIST_EMPTY(announcement_systems) /obj/machinery/announcement_system/ui_data() var/list/data = list() data["arrival"] = arrival - data["arrivalToggle"] = arrivalToggle + data["arrivalToggle"] = arrival_toggle data["newhead"] = newhead - data["newheadToggle"] = newheadToggle + data["newheadToggle"] = newhead_toggle + data["node_message"] = node_message + data["node_toggle"] = announce_research_node return data /obj/machinery/announcement_system/ui_act(action, param) @@ -128,29 +150,32 @@ GLOBAL_LIST_EMPTY(announcement_systems) return if(machine_stat & BROKEN) visible_message(span_warning("[src] buzzes."), span_hear("You hear a faint buzz.")) - playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(src.loc, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) return switch(action) if("ArrivalText") - var/NewMessage = trim(html_encode(param["newText"]), MAX_MESSAGE_LEN) - if(!usr.can_perform_action(src, ALLOW_SILICON_REACH)) - return - if(NewMessage) - arrival = NewMessage - usr.log_message("updated the arrivals announcement to: [NewMessage]", LOG_GAME) + var/new_message = trim(html_encode(param["newText"]), MAX_MESSAGE_LEN) + if(new_message) + arrival = new_message + usr.log_message("updated the arrivals announcement to: [new_message]", LOG_GAME) if("NewheadText") - var/NewMessage = trim(html_encode(param["newText"]), MAX_MESSAGE_LEN) - if(!usr.can_perform_action(src, ALLOW_SILICON_REACH)) - return - if(NewMessage) - newhead = NewMessage - usr.log_message("updated the head announcement to: [NewMessage]", LOG_GAME) - if("NewheadToggle") - newheadToggle = !newheadToggle + var/new_message = trim(html_encode(param["newText"]), MAX_MESSAGE_LEN) + if(new_message) + newhead = new_message + usr.log_message("updated the head announcement to: [new_message]", LOG_GAME) + if("node_message") + var/new_message = trim(html_encode(param["new_text"]), MAX_MESSAGE_LEN) + if(new_message) + node_message = new_message + usr.log_message("updated the researched node announcement to: [node_message]", LOG_GAME) + if("newhead_toggle") + newhead_toggle = !newhead_toggle update_appearance() - if("ArrivalToggle") - arrivalToggle = !arrivalToggle + if("arrivalToggle") + arrival_toggle = !arrival_toggle update_appearance() + if("node_toggle") + announce_research_node = !announce_research_node add_fingerprint(usr) /obj/machinery/announcement_system/attack_robot(mob/living/silicon/user) @@ -170,6 +195,11 @@ GLOBAL_LIST_EMPTY(announcement_systems) arrival = pick("#!@%ERR-34%2 CANNOT LOCAT@# JO# F*LE!", "CRITICAL ERROR 99.", "ERR)#: DA#AB@#E NOT F(*ND!") newhead = pick("OV#RL()D: \[UNKNOWN??\] DET*#CT)D!", "ER)#R - B*@ TEXT F*O(ND!", "AAS.exe is not responding. NanoOS is searching for a solution to the problem.") + node_message = pick(list( + replacetext(/obj/machinery/announcement_system::node_message, "%NODE", /datum/techweb_node/mech_clown::display_name), + "R/NT1M3 A= ANNOUN-*#nt_SY!?EM.dm, LI%£ 86: N=0DE NULL!", + "BEPIS BEPIS BEPIS", + )) /obj/machinery/announcement_system/emp_act(severity) . = ..() diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index d1025b52b321f..06c88f4749e1f 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -53,7 +53,6 @@ /obj/machinery/autolathe/Destroy() QDEL_NULL(print_sound) materials = null - QDEL_NULL(wires) return ..() /obj/machinery/autolathe/examine(mob/user) @@ -101,7 +100,7 @@ /obj/machinery/autolathe/proc/AfterMaterialInsert(container, obj/item/item_inserted, last_inserted_id, mats_consumed, amount_inserted, atom/context) SIGNAL_HANDLER - //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benifit from it + //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benefit from it if(directly_use_energy(ROUND_UP((amount_inserted / (MAX_STACK_SIZE * SHEET_MATERIAL_AMOUNT)) * 0.4 * initial(active_power_usage)))) flick_overlay_view(mutable_appearance('icons/obj/machines/lathes.dmi', "autolathe_mat"), 1 SECONDS) @@ -113,7 +112,7 @@ highest_mat = present_mat highest_mat_ref = mat - flick_overlay_view(material_insertion_animation(highest_mat_ref.greyscale_colors), 1 SECONDS) + flick_overlay_view(material_insertion_animation(highest_mat_ref), 1 SECONDS) /obj/machinery/autolathe/ui_interact(mob/user, datum/tgui/ui) if(!is_operational) @@ -256,7 +255,7 @@ if(istext(material)) // category var/list/choices = list() for(var/datum/material/valid_candidate as anything in SSmaterials.materials_by_category[material]) - if(materials.get_material_amount(valid_candidate) < amount_needed) + if(materials.get_material_amount(valid_candidate) < (amount_needed + materials_needed[material])) continue choices[valid_candidate.name] = valid_candidate if(!length(choices)) @@ -275,7 +274,7 @@ if(isnull(material)) stack_trace("got passed an invalid material id: [material]") return - materials_needed[material] = amount_needed + materials_needed[material] += amount_needed //checks for available materials var/material_cost_coefficient = ispath(design.build_path, /obj/item/stack) ? 1 : creation_efficiency diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index 40670a22f44c4..72de51d034fe8 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -73,7 +73,7 @@ end_siphon() return - playsound(src, 'sound/items/poster_being_created.ogg', 100, TRUE) + playsound(src, 'sound/items/poster/poster_being_created.ogg', 100, TRUE) syphoning_credits += siphon_am synced_bank_account.adjust_money(-siphon_am) if(next_warning < world.time && prob(15)) diff --git a/code/game/machinery/barsigns.dm b/code/game/machinery/barsigns.dm index e59de18ffcb18..0f33028aa9a76 100644 --- a/code/game/machinery/barsigns.dm +++ b/code/game/machinery/barsigns.dm @@ -102,9 +102,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32) /obj/machinery/barsign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src.loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src.loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/barsign/attack_ai(mob/user) return attack_hand(user) @@ -425,7 +425,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32) /datum/barsign/maltroach name = "Maltroach" icon_state = "maltroach" - desc = "Mothroaches politely greet you into the bar, or are they greeting eachother?" + desc = "Mothroaches politely greet you into the bar, or are they greeting each other?" neon_color = "#649e8a" /datum/barsign/rock_bottom diff --git a/code/game/machinery/big_manipulator.dm b/code/game/machinery/big_manipulator.dm new file mode 100644 index 0000000000000..27c927697fc87 --- /dev/null +++ b/code/game/machinery/big_manipulator.dm @@ -0,0 +1,671 @@ +#define DROP_ITEM_MODE 1 +#define USE_ITEM_MODE 2 +#define THROW_ITEM_MODE 3 + +#define TAKE_ITEMS 1 +#define TAKE_CLOSETS 2 +#define TAKE_HUMANS 3 + +/// Manipulator Core. Main part of the mechanism that carries out the entire process. +/obj/machinery/big_manipulator + name = "Big Manipulator" + desc = "Take and drop objects. Innovation..." + icon = 'icons/obj/machines/big_manipulator_parts/big_manipulator_core.dmi' + icon_state = "core" + density = TRUE + circuit = /obj/item/circuitboard/machine/big_manipulator + greyscale_colors = "#d8ce13" + greyscale_config = /datum/greyscale_config/big_manipulator + /// How many time manipulator need to take and drop item. + var/working_speed = 2 SECONDS + /// Using high tier manipulators speeds up big manipulator and requires more energy. + var/power_use_lvl = 0.2 + /// When manipulator already working with item inside he don't take any new items. + var/on_work = FALSE + /// Activate mechanism. + var/on = FALSE + /// Dir to get turf where we take items. + var/take_here = NORTH + /// Dir to get turf where we drop items. + var/drop_here = SOUTH + /// Turf where we take items. + var/turf/take_turf + /// Turf where we drop items. + var/turf/drop_turf + /// How will manipulator manipulate the object? drop it out by default. + var/manipulate_mode = DROP_ITEM_MODE + /// Priority settings depending on the manipulator mode that are available to this manipulator. Filled during Initialize. + var/list/priority_settings_for_drop = list() + var/list/priority_settings_for_use = list() + /// What priority settings are available to use at the moment. + /// We also use this list to sort priorities from ascending to descending. + var/list/allowed_priority_settings = list() + /// Obj inside manipulator. + var/datum/weakref/containment_obj + /// Obj used as filter + var/datum/weakref/filter_obj + /// Other manipulator component. + var/obj/effect/big_manipulator_hand/manipulator_hand + /// Here some ui setting we can on/off: + /// If activated: after item was used manipulator will also drop it. + var/drop_item_after_use = TRUE + /// If acrivated: will select only 1 priority and will not continue to look at the priorities below. + var/only_highest_priority = FALSE + /// Var for throw item mode: changes the range from which the manipulator throws an object. + var/manipulator_throw_range = 1 + /// Selected type that manipulator will take for take and drop loop. + var/atom/selected_type + /// Just a lazy number to change selected_type type in array. + var/selected_type_by_number = 1 + /// List where we can set selected type. Taking items by Initialize. + var/list/allowed_types_to_pick_up = list( + /obj/item, + /obj/structure/closet, + ) + +/obj/machinery/big_manipulator/Initialize(mapload) + . = ..() + take_and_drop_turfs_check() + create_manipulator_hand() + RegisterSignal(manipulator_hand, COMSIG_QDELETING, PROC_REF(on_hand_qdel)) + manipulator_lvl() + set_up_priority_settings() + selected_type = allowed_types_to_pick_up[selected_type_by_number] + if(on) + press_on(pressed_by = null) + +/// Init priority settings list for all modes. +/obj/machinery/big_manipulator/proc/set_up_priority_settings() + for(var/datum/manipulator_priority/priority_for_drop as anything in subtypesof(/datum/manipulator_priority/for_drop)) + priority_settings_for_drop += new priority_for_drop + for(var/datum/manipulator_priority/priority_for_use as anything in subtypesof(/datum/manipulator_priority/for_use)) + priority_settings_for_use += new priority_for_use + update_priority_list() + +/obj/machinery/big_manipulator/examine(mob/user) + . = ..() + . += "You can change direction with alternative wrench usage." + +/obj/machinery/big_manipulator/Destroy(force) + . = ..() + qdel(manipulator_hand) + if(!isnull(containment_obj)) + var/obj/containment_resolve = containment_obj?.resolve() + containment_resolve?.forceMove(get_turf(containment_resolve)) + if(!isnull(filter_obj)) + var/obj/filter_resolve = filter_obj?.resolve() + filter_resolve?.forceMove(get_turf(filter_resolve)) + +/obj/machinery/big_manipulator/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + take_and_drop_turfs_check() + if(isnull(get_turf(src))) + qdel(manipulator_hand) + return + if(!manipulator_hand) + create_manipulator_hand() + +/obj/machinery/big_manipulator/emag_act(mob/user, obj/item/card/emag/emag_card) + . = ..() + if(obj_flags & EMAGGED) + return FALSE + balloon_alert(user, "overloaded functions installed") + obj_flags |= EMAGGED + allowed_types_to_pick_up += /mob/living + return TRUE + +/obj/machinery/big_manipulator/wrench_act(mob/living/user, obj/item/tool) + . = ..() + default_unfasten_wrench(user, tool, time = 1 SECONDS) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/big_manipulator/wrench_act_secondary(mob/living/user, obj/item/tool) + . = ..() + if(on_work || on) + to_chat(user, span_warning("[src] is activated!")) + return ITEM_INTERACT_BLOCKING + rotate_big_hand() + playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/big_manipulator/can_be_unfasten_wrench(mob/user, silent) + if(on_work || on) + to_chat(user, span_warning("[src] is activated!")) + return FAILED_UNFASTEN + return ..() + +/obj/machinery/big_manipulator/default_unfasten_wrench(mob/user, obj/item/wrench, time) + . = ..() + if(. == SUCCESSFUL_UNFASTEN) + take_and_drop_turfs_check() + +/obj/machinery/big_manipulator/screwdriver_act(mob/living/user, obj/item/tool) + if(default_deconstruction_screwdriver(user, icon_state, icon_state, tool)) + return ITEM_INTERACT_SUCCESS + return ITEM_INTERACT_BLOCKING + +/obj/machinery/big_manipulator/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_SUCCESS + return ITEM_INTERACT_BLOCKING + +/obj/machinery/big_manipulator/RefreshParts() + . = ..() + + manipulator_lvl() + +/// Creat manipulator hand effect on manipulator core. +/obj/machinery/big_manipulator/proc/create_manipulator_hand() + manipulator_hand = new/obj/effect/big_manipulator_hand(src) + manipulator_hand.dir = take_here + vis_contents += manipulator_hand + +/// Check servo tier and change manipulator speed, power_use and colour. +/obj/machinery/big_manipulator/proc/manipulator_lvl() + var/datum/stock_part/servo/locate_servo = locate() in component_parts + if(!locate_servo) + return + switch(locate_servo.tier) + if(-INFINITY to 1) + working_speed = 2 SECONDS + power_use_lvl = 0.2 + set_greyscale(COLOR_YELLOW) + manipulator_hand?.set_greyscale(COLOR_YELLOW) + if(2) + working_speed = 1.4 SECONDS + power_use_lvl = 0.4 + set_greyscale(COLOR_ORANGE) + manipulator_hand?.set_greyscale(COLOR_ORANGE) + if(3) + working_speed = 0.8 SECONDS + power_use_lvl = 0.6 + set_greyscale(COLOR_RED) + manipulator_hand?.set_greyscale(COLOR_RED) + if(4 to INFINITY) + working_speed = 0.2 SECONDS + power_use_lvl = 0.8 + set_greyscale(COLOR_PURPLE) + manipulator_hand?.set_greyscale(COLOR_PURPLE) + + active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * power_use_lvl + +/// Changing take and drop turf tiles when we anchore manipulator or if manipulator not in turf. +/obj/machinery/big_manipulator/proc/take_and_drop_turfs_check() + if(anchored && isturf(src.loc)) + take_turf = get_step(src, take_here) + drop_turf = get_step(src, drop_here) + else + take_turf = null + drop_turf = null + +/// Changing take and drop turf dirs and also changing manipulator hand sprite dir. +/obj/machinery/big_manipulator/proc/rotate_big_hand() + switch(take_here) + if(NORTH) + take_here = EAST + drop_here = WEST + if(EAST) + take_here = SOUTH + drop_here = NORTH + if(SOUTH) + take_here = WEST + drop_here = EAST + if(WEST) + take_here = NORTH + drop_here = SOUTH + manipulator_hand.dir = take_here + take_and_drop_turfs_check() + +/// Deliting hand will destroy our manipulator core. +/obj/machinery/big_manipulator/proc/on_hand_qdel() + SIGNAL_HANDLER + + deconstruct(TRUE) + +/// Pre take and drop proc from [take and drop procs loop]: +/// Check if we can start take and drop loop +/obj/machinery/big_manipulator/proc/is_work_check() + if(isclosedturf(drop_turf)) + on = !on + say("Output blocked") + return FALSE + for(var/take_item in take_turf.contents) + if(!check_filter(take_item)) + continue + try_take_thing(take_turf, take_item) + break + + return TRUE + +/// First take and drop proc from [take and drop procs loop]: +/// Check if we can take item from take_turf to work with him. This proc also calling from ATOM_ENTERED signal. +/obj/machinery/big_manipulator/proc/try_take_thing(datum/source, atom/movable/target) + SIGNAL_HANDLER + + if(!on) + return + if(!anchored) + return + if(QDELETED(source) || QDELETED(target)) + return + if(!isturf(target.loc)) + return + if(on_work) + return + if(!use_energy(active_power_usage, force = FALSE)) + on = FALSE + say("Not enough energy!") + return + if(!check_filter(target)) + return + start_work(target) + +/// Second take and drop proc from [take and drop procs loop]: +/// Taking our item and start manipulator hand rotate animation. +/obj/machinery/big_manipulator/proc/start_work(atom/movable/target) + target.forceMove(src) + containment_obj = WEAKREF(target) + manipulator_hand.update_claw(containment_obj) + on_work = TRUE + do_rotate_animation(1) + check_next_move(target) + +/// 2.5 take and drop proc from [take and drop procs loop]: +/// Choose what we will do with our item by checking the manipulate_mode. +/obj/machinery/big_manipulator/proc/check_next_move(atom/movable/target) + switch(manipulate_mode) + if(DROP_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) + if(USE_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(use_thing), target), working_speed) + if(THROW_ITEM_MODE) + addtimer(CALLBACK(src, PROC_REF(throw_thing), target), working_speed) + +/// 3.1 take and drop proc from [take and drop procs loop]: +/// Drop our item. +/// Checks the priority to drop item not only ground but also in the storage. +/obj/machinery/big_manipulator/proc/drop_thing(atom/movable/target) + var/where_we_drop = search_type_by_priority_in_drop_turf(allowed_priority_settings) + if(isnull(where_we_drop)) + addtimer(CALLBACK(src, PROC_REF(drop_thing), target), working_speed) + return + if((where_we_drop == drop_turf) || !isitem(target)) + target.forceMove(drop_turf) + target.dir = get_dir(get_turf(target), get_turf(src)) + else + target.forceMove(where_we_drop) + finish_manipulation() + +/// 3.2 take and drop proc from [take and drop procs loop]: +/// Use our item on random atom in drop turf contents then +/// Starts manipulator hand backward animation by defualt, but +/// You can also set the setting in ui so that it does not return to its privious position and continues to use object in its hand. +/// Checks the priority so that you can configure which object it will select: mob/obj/turf. +/// Also can use filter to interact only with obj in filter. +/obj/machinery/big_manipulator/proc/use_thing(atom/movable/target) + var/obj/obj_resolve = containment_obj?.resolve() + if(isnull(obj_resolve)) + finish_manipulation() + return + /// If we forceMoved from manipulator we are free now. + if(obj_resolve.loc != src) + finish_manipulation() + return + if(!isitem(target)) + target.forceMove(drop_turf) /// We use only items + target.dir = get_dir(get_turf(target), get_turf(src)) + finish_manipulation() + return + var/obj/item/im_item = target + var/atom/type_to_use = search_type_by_priority_in_drop_turf(allowed_priority_settings) + if(isnull(type_to_use)) + check_end_of_use(im_item, target, item_was_used = FALSE) + return + var/mob/living/carbon/human/dummy/living_manipulator_lmfao = create_abstract_living() + living_manipulator_lmfao.put_in_active_hand(im_item) + if(!type_to_use.attackby(im_item, living_manipulator_lmfao)) + im_item.melee_attack_chain(living_manipulator_lmfao, type_to_use) + do_attack_animation(drop_turf) + manipulator_hand.do_attack_animation(drop_turf) + if(LAZYLEN(living_manipulator_lmfao.do_afters)) + RegisterSignal(living_manipulator_lmfao, COMSIG_DO_AFTER_ENDED, PROC_REF(manipulator_finish_do_after)) + else + im_item.forceMove(src) + qdel(living_manipulator_lmfao) + check_end_of_use(im_item, item_was_used = TRUE) + +/// Wait whan manipulator finish do_after and kill em. +/obj/machinery/big_manipulator/proc/manipulator_finish_do_after(mob/living/carbon/human/dummy/abstract_manipulator) + SIGNAL_HANDLER + + var/obj/item/my_item = abstract_manipulator.get_active_held_item() + my_item.forceMove(src) + qdel(abstract_manipulator) + +/// Check what we gonna do next with our item. Drop it or use again. +/obj/machinery/big_manipulator/proc/check_end_of_use(obj/item/my_item, item_was_used) + if(drop_item_after_use && item_was_used) + my_item.forceMove(drop_turf) + my_item.dir = get_dir(get_turf(my_item), get_turf(src)) + finish_manipulation() + return + addtimer(CALLBACK(src, PROC_REF(use_thing), my_item), working_speed) + +/// 3.3 take and drop proc from [take and drop procs loop]: +/// Throw item away!!! +/obj/machinery/big_manipulator/proc/throw_thing(atom/movable/target) + if(!(isitem(target) || isliving(target))) + target.forceMove(drop_turf) + target.dir = get_dir(get_turf(target), get_turf(src)) + finish_manipulation() /// We throw only items and living mobs + return + var/obj/item/im_item = target + im_item.forceMove(drop_turf) + im_item.throw_at(get_edge_target_turf(get_turf(src), drop_here), manipulator_throw_range - 1, 2) + src.do_attack_animation(drop_turf) + manipulator_hand.do_attack_animation(drop_turf) + finish_manipulation() + +/// End of thirds take and drop proc from [take and drop procs loop]: +/// Starts manipulator hand backward animation. +/obj/machinery/big_manipulator/proc/finish_manipulation() + containment_obj = null + manipulator_hand.update_claw(null) + do_rotate_animation(0) + addtimer(CALLBACK(src, PROC_REF(end_work)), working_speed) + +/// Fourth and last take and drop proc from [take and drop procs loop]: +/// Finishes work and begins to look for a new item for [take and drop procs loop]. +/obj/machinery/big_manipulator/proc/end_work() + on_work = FALSE + is_work_check() + +/// Rotates manipulator hand 90 degrees. +/obj/machinery/big_manipulator/proc/do_rotate_animation(backward) + animate(manipulator_hand, transform = matrix(90, MATRIX_ROTATE), working_speed*0.5) + addtimer(CALLBACK(src, PROC_REF(finish_rotate_animation), backward), working_speed*0.5) + +/// Rotates manipulator hand from 90 degrees to 180 or 0 if backward. +/obj/machinery/big_manipulator/proc/finish_rotate_animation(backward) + animate(manipulator_hand, transform = matrix(180 * backward, MATRIX_ROTATE), working_speed*0.5) + +/obj/machinery/big_manipulator/proc/check_filter(obj/item/what_item) + var/filtered_obj = filter_obj?.resolve() + if(!istype(what_item, selected_type)) + return + /// We use filter only on items. closets, humans and etc don't need filter check. + if(istype(what_item, /obj/item)) + if((filtered_obj && !istype(what_item, filtered_obj))) + return FALSE + return TRUE + +/// Create dummy to force him use our item and then delete him. +/obj/machinery/big_manipulator/proc/create_abstract_living() + var/mob/living/carbon/human/dummy/abstract_living = new /mob/living/carbon/human/dummy(get_turf(src)) + abstract_living.alpha = 0 + abstract_living.mouse_opacity = MOUSE_OPACITY_TRANSPARENT + ADD_TRAIT(abstract_living, TRAIT_UNDENSE, INNATE_TRAIT) + abstract_living.move_resist = INFINITY + abstract_living.invisibility = INVISIBILITY_ABSTRACT + abstract_living.real_name = abstract_living.name = name + abstract_living.mind_initialize() + return abstract_living + +/// Proc called when we changing item interaction mode. +/obj/machinery/big_manipulator/proc/change_mode() + manipulate_mode++ + if(manipulate_mode > THROW_ITEM_MODE) + manipulate_mode = DROP_ITEM_MODE + update_priority_list() + is_work_check() + +/// Update priority list in ui. Creating new list and sort it by priority number. +/obj/machinery/big_manipulator/proc/update_priority_list() + allowed_priority_settings = list() + var/list/priority_mode_list + if(manipulate_mode == DROP_ITEM_MODE) + priority_mode_list = priority_settings_for_drop.Copy() + if(manipulate_mode == USE_ITEM_MODE) + priority_mode_list = priority_settings_for_use.Copy() + if(isnull(priority_mode_list)) + return + for(var/we_need_increasing in 1 to length(priority_mode_list)) + for(var/datum/manipulator_priority/what_priority in priority_mode_list) + if(what_priority.number != we_need_increasing) + continue + allowed_priority_settings += what_priority + +/// Proc thet return item by type in priority list. Selects item and increasing priority number if don't found req type. +/obj/machinery/big_manipulator/proc/search_type_by_priority_in_drop_turf(list/priority_list) + var/lazy_counter = 1 + for(var/datum/manipulator_priority/take_type in priority_list) + /// If we set only_highest_priority on TRUE we don't go to priority below. + if(lazy_counter > 1 && only_highest_priority) + return null + /// If we need turf we don't check turf.contents and just return drop_turf. + if(take_type.what_type == /turf) + return drop_turf + lazy_counter++ + for(var/type_in_priority in drop_turf.contents) + if(!istype(type_in_priority, take_type.what_type)) + continue + return type_in_priority + +/// Proc call when we press on/off button +/obj/machinery/big_manipulator/proc/press_on(pressed_by) + if(pressed_by) + on = !on + if(!is_work_check()) + return + if(on) + RegisterSignal(take_turf, COMSIG_ATOM_ENTERED, PROC_REF(try_take_thing)) + else + UnregisterSignal(take_turf, COMSIG_ATOM_ENTERED) + +/obj/machinery/big_manipulator/ui_interact(mob/user, datum/tgui/ui) + if(!anchored) + to_chat(user, span_warning("[src] isn't attached to the ground!")) + ui?.close() + return + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "BigManipulator") + ui.open() + +/obj/machinery/big_manipulator/ui_data(mob/user) + var/list/data = list() + var/mode + switch(manipulate_mode) + if(DROP_ITEM_MODE) + mode = "Drop" + if(USE_ITEM_MODE) + mode = "Use" + if(THROW_ITEM_MODE) + mode = "Throw" + data["active"] = on + data["item_as_filter"] = filter_obj?.resolve() + data["selected_type"] = selected_type.name + data["manipulate_mode"] = mode + data["drop_after_use"] = drop_item_after_use + data["highest_priority"] = only_highest_priority + data["throw_range"] = manipulator_throw_range + var/list/priority_list = list() + data["settings_list"] = list() + for(var/datum/manipulator_priority/allowed_setting as anything in allowed_priority_settings) + var/list/priority_data = list() + priority_data["name"] = allowed_setting.name + priority_data["priority_width"] = allowed_setting.number + priority_list += list(priority_data) + data["settings_list"] = priority_list + return data + +/obj/machinery/big_manipulator/ui_act(action, params, datum/tgui/ui) + . = ..() + if(.) + return + switch(action) + if("on") + press_on(pressed_by = TRUE) + return TRUE + if("drop") + if(isnull(containment_obj)) + return + var/obj/obj_resolve = containment_obj?.resolve() + obj_resolve?.forceMove(get_turf(obj_resolve)) + finish_manipulation() + return TRUE + if("change_take_item_type") + selected_type_by_number++ + if(selected_type_by_number > allowed_types_to_pick_up.len) + selected_type_by_number = 1 + selected_type = allowed_types_to_pick_up[selected_type_by_number] + is_work_check() + return TRUE + if("change_mode") + change_mode() + return TRUE + if("add_filter") + var/mob/living/living_user = ui.user + if(!isliving(living_user)) + return FALSE + var/obj/give_obj_back = filter_obj?.resolve() + if(give_obj_back) + give_obj_back.forceMove(get_turf(src)) + filter_obj = null + is_work_check() + to_chat(living_user, span_warning("Filter removed")) + return TRUE + var/obj/item/get_active_held_item = living_user.get_active_held_item() + if(isnull(get_active_held_item)) + to_chat(living_user, span_warning("You need item in hand to put it as filter")) + return FALSE + filter_obj = WEAKREF(get_active_held_item) + get_active_held_item.forceMove(src) + is_work_check() + return TRUE + if("drop_use_change") + drop_item_after_use = !drop_item_after_use + return TRUE + if("highest_priority_change") + only_highest_priority = !only_highest_priority + return TRUE + if("change_priority") + var/new_priority_number = params["priority"] + for(var/datum/manipulator_priority/new_order as anything in allowed_priority_settings) + if(new_order.number != new_priority_number) + continue + new_order.number-- + check_similarities(new_order.number) + break + update_priority_list() + return TRUE + if("change_throw_range") + manipulator_throw_range++ + if(manipulator_throw_range > 7) + manipulator_throw_range = 1 + return TRUE + +/// Using on change_priority: looks for a setting with the same number that we set earlier and reduce it. +/obj/machinery/big_manipulator/proc/check_similarities(number_we_minus) + for(var/datum/manipulator_priority/similarities as anything in allowed_priority_settings) + if(similarities.number != number_we_minus) + continue + similarities.number++ + break + +/// Manipulator hand. Effect we animate to show that the manipulator is working and moving something. +/obj/effect/big_manipulator_hand + name = "Manipulator claw" + desc = "Take and drop objects. Innovation..." + icon = 'icons/obj/machines/big_manipulator_parts/big_manipulator_hand.dmi' + icon_state = "hand" + layer = LOW_ITEM_LAYER + appearance_flags = KEEP_TOGETHER | LONG_GLIDE | TILE_BOUND | PIXEL_SCALE + anchored = TRUE + greyscale_config = /datum/greyscale_config/manipulator_hand + pixel_x = -32 + pixel_y = -32 + /// We get item from big manipulator and takes its icon to create overlay. + var/datum/weakref/item_in_my_claw + /// Var to icon that used as overlay on manipulator claw to show what item it grabs. + var/mutable_appearance/icon_overlay + +/obj/effect/big_manipulator_hand/update_overlays() + . = ..() + if(isnull(item_in_my_claw)) + icon_overlay = null + return + var/atom/movable/item_data = item_in_my_claw.resolve() + icon_overlay = mutable_appearance(item_data.icon, item_data.icon_state, item_data.layer, src, item_data.appearance_flags) + icon_overlay.color = item_data.color + icon_overlay.appearance = item_data.appearance + icon_overlay.pixel_x = 32 + calculate_item_offset(is_x = TRUE) + icon_overlay.pixel_y = 32 + calculate_item_offset(is_x = FALSE) + . += icon_overlay + +/// Updates item that is in the claw. +/obj/effect/big_manipulator_hand/proc/update_claw(clawed_item) + item_in_my_claw = clawed_item + update_appearance() + +/// Calculate x and y coordinates so that the item icon appears in the claw and not somewhere in the corner. +/obj/effect/big_manipulator_hand/proc/calculate_item_offset(is_x = TRUE) + var/offset + switch(dir) + if(NORTH) + offset = is_x ? 0 : 32 + if(SOUTH) + offset = is_x ? 0 : -32 + if(EAST) + offset = is_x ? 32 : 0 + if(WEST) + offset = is_x ? -32 : 0 + return offset + +/// Priorities that manipulator use to choose to work on item with type same with what_type. +/datum/manipulator_priority + /// Name that user will see in ui. + var/name + /// What type carries this priority. + var/what_type + /** + * Place in the priority queue. The lower the number, the more important the priority. + * Doesn’t really matter what number you enter, user can set priority for themselves, + * BUT!!! + * Don't write the same numbers in the same parent otherwise something may go wrong. + */ + var/number + +/datum/manipulator_priority/for_drop/on_floor + name = "Drop on Floor" + what_type = /turf + number = 1 + +/datum/manipulator_priority/for_drop/in_storage + name = "Drop in Storage" + what_type = /obj/item/storage + number = 2 + +/datum/manipulator_priority/for_use/on_living + name = "Use on Living" + what_type = /mob/living + number = 1 + +/datum/manipulator_priority/for_use/on_structure + name = "Use on Structure" + what_type = /obj/structure + number = 2 + +/datum/manipulator_priority/for_use/on_machinery + name = "Use on Machinery" + what_type = /obj/machinery + number = 3 + +#undef DROP_ITEM_MODE +#undef USE_ITEM_MODE +#undef THROW_ITEM_MODE + +#undef TAKE_ITEMS +#undef TAKE_CLOSETS +#undef TAKE_HUMANS diff --git a/code/game/machinery/botlaunchpad.dm b/code/game/machinery/botlaunchpad.dm index fecca2a25489f..e044bb1e29688 100644 --- a/code/game/machinery/botlaunchpad.dm +++ b/code/game/machinery/botlaunchpad.dm @@ -49,7 +49,7 @@ podspawn(list( "target" = get_turf(src), "path" = /obj/structure/closet/supplypod/botpod, - "style" = STYLE_SEETHROUGH, + "style" = /datum/pod_style/seethrough, "reverse_dropoff_coords" = list(reverse_turf.x, reverse_turf.y, reverse_turf.z) )) @@ -67,7 +67,7 @@ simple_bot.call_bot(src, get_turf(src)) /obj/structure/closet/supplypod/botpod - style = STYLE_SEETHROUGH + style = /datum/pod_style/seethrough explosionSize = list(0,0,0,0) reversing = TRUE reverse_option_list = list("Mobs"=TRUE,"Objects"=FALSE,"Anchored"=FALSE,"Underfloor"=FALSE,"Wallmounted"=FALSE,"Floors"=FALSE,"Walls"=FALSE,"Mecha"=FALSE) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 6f21e9303fc5a..f3760fda0319a 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -133,8 +133,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0) find_and_hang_on_wall(directional = TRUE, \ custom_drop_callback = CALLBACK(src, PROC_REF(deconstruct), FALSE)) - RegisterSignal(src, COMSIG_HIT_BY_SABOTEUR, PROC_REF(on_saboteur)) - /obj/machinery/camera/Destroy(force) if(can_use()) toggle_cam(null, 0) //kick anyone viewing out and remove from the camera chunks @@ -235,11 +233,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0) M.reset_perspective(null) to_chat(M, span_warning("The screen bursts into static!")) -/obj/machinery/camera/proc/on_saboteur(datum/source, disrupt_duration) - SIGNAL_HANDLER +/obj/machinery/camera/on_saboteur(datum/source, disrupt_duration) + . = ..() //lasts twice as much so we don't have to constantly shoot cameras just to be S T E A L T H Y emp_act(EMP_LIGHT, reset_time = disrupt_duration * 2) - return COMSIG_SABOTEUR_SUCCESS + return TRUE /obj/machinery/camera/proc/post_emp_reset(thisemp, previous_network) if(QDELETED(src)) @@ -368,7 +366,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0) else visible_message(span_danger("\The [src] [change_msg]!")) - playsound(src, 'sound/items/wirecutter.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/wirecutter.ogg', 100, TRUE) update_appearance() //update Initialize() if you remove this. // now disconnect anyone using the camera diff --git a/code/game/machinery/camera/camera_construction.dm b/code/game/machinery/camera/camera_construction.dm index 15f22d02cbe96..d6988617e1f25 100644 --- a/code/game/machinery/camera/camera_construction.dm +++ b/code/game/machinery/camera/camera_construction.dm @@ -30,7 +30,7 @@ switch(camera_construction_state) if(CAMERA_STATE_WIRED) tool.play_tool_sound(src) - var/input = tgui_input_text(user, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret", "Set Network", "SS13") + var/input = tgui_input_text(user, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret", "Set Network", "SS13", max_length = MAX_NAME_LEN) if(isnull(input)) return ITEM_INTERACT_BLOCKING var/list/tempnetwork = splittext(input, ",") diff --git a/code/game/machinery/civilian_bounties.dm b/code/game/machinery/civilian_bounties.dm index fa0d28c999c88..d8c8a98caef77 100644 --- a/code/game/machinery/civilian_bounties.dm +++ b/code/game/machinery/civilian_bounties.dm @@ -76,11 +76,11 @@ return FALSE if(!inserted_scan_id) status_report = "Please insert your ID first." - playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) return FALSE if(!inserted_scan_id.registered_account.civilian_bounty) status_report = "Please accept a new civilian bounty first." - playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) return FALSE status_report = "Civilian Bounty: " var/obj/machinery/piratepad/civilian/pad = pad_ref?.resolve() @@ -89,10 +89,10 @@ continue if(inserted_scan_id.registered_account.civilian_bounty.applies_to(AM)) status_report += "Target Applicable." - playsound(loc, 'sound/machines/synth_yes.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_yes.ogg', 30 , TRUE) return status_report += "Not Applicable." - playsound(loc, 'sound/machines/synth_no.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 30 , TRUE) /** * This fully rewrites base behavior in order to only check for bounty objects, and no other types of objects like pirate-pads do. @@ -135,7 +135,7 @@ pad.visible_message(span_notice("[pad] activates!")) flick(pad.sending_state,pad) pad.icon_state = pad.idle_state - playsound(loc, 'sound/machines/synth_yes.ogg', 30 , TRUE) + playsound(loc, 'sound/machines/synth/synth_yes.ogg', 30 , TRUE) sending = FALSE ///Here is where cargo bounties are added to the player's bank accounts, then adjusted and scaled into a civilian bounty. @@ -151,7 +151,7 @@ say("Requesting ID card has no job assignment registered!") return FALSE var/list/datum/bounty/crumbs = list(random_bounty(pot_acc.account_job.bounty_types), // We want to offer 2 bounties from their appropriate job catagories - random_bounty(pot_acc.account_job.bounty_types), // and 1 guarenteed assistant bounty if the other 2 suck. + random_bounty(pot_acc.account_job.bounty_types), // and 1 guaranteed assistant bounty if the other 2 suck. random_bounty(CIV_JOB_BASIC)) COOLDOWN_START(pot_acc, bounty_timer, (5 MINUTES) - cooldown_reduction) pot_acc.bounties = crumbs @@ -164,7 +164,7 @@ */ /obj/machinery/computer/piratepad_control/civilian/proc/pick_bounty(datum/bounty/choice) if(!inserted_scan_id || !inserted_scan_id.registered_account || !inserted_scan_id.registered_account.bounties || !inserted_scan_id.registered_account.bounties[choice]) - playsound(loc, 'sound/machines/synth_no.ogg', 40 , TRUE) + playsound(loc, 'sound/machines/synth/synth_no.ogg', 40 , TRUE) return inserted_scan_id.registered_account.civilian_bounty = inserted_scan_id.registered_account.bounties[choice] inserted_scan_id.registered_account.bounties = null @@ -203,7 +203,7 @@ return data -/obj/machinery/computer/piratepad_control/civilian/ui_act(action, params) +/obj/machinery/computer/piratepad_control/civilian/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -242,13 +242,13 @@ if(target) if(holder_item && inserting_item.InsertID(target)) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) else id_eject(user, target) user.visible_message(span_notice("[user] inserts \the [card_to_insert] into \the [src]."), span_notice("You insert \the [card_to_insert] into \the [src].")) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) ui_interact(user) return TRUE @@ -263,7 +263,7 @@ user.put_in_hands(target) user.visible_message(span_notice("[user] gets \the [target] from \the [src]."), \ span_notice("You get \the [target] from \the [src].")) - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) inserted_scan_id = null return TRUE diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index c8e0251b3dd4b..8fdd5556e3b8b 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -75,16 +75,16 @@ if(machine_stat & BROKEN) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE) else - playsound(src.loc, 'sound/effects/glasshit.ogg', 75, TRUE) + playsound(src.loc, 'sound/effects/glass/glasshit.ogg', 75, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/computer/atom_break(damage_flag) if(!circuit) //no circuit, no breaking return . = ..() if(.) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) set_light(0) /obj/machinery/computer/proc/imprint_gps(gps_tag) // Currently used by the upload computers and communications console @@ -93,7 +93,7 @@ return for(var/obj/item/circuitboard/computer/board in src.contents) if(!contents || board.GetComponent(/datum/component/gps)) - return + CRASH("[src] Called imprint_gps without setting gps_tag") board.AddComponent(/datum/component/gps, "[tracker]") balloon_alert_to_viewers("board tracker enabled", vision_distance = 1) @@ -135,6 +135,12 @@ . = ..() update_use_power(ACTIVE_POWER_USE) +/obj/machinery/computer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + SHOULD_CALL_PARENT(TRUE) + . = ..() + if(!issilicon(ui.user)) + playsound(src, SFX_KEYBOARD_CLICKS, 10, TRUE, FALSE) + /obj/machinery/computer/ui_close(mob/user) SHOULD_CALL_PARENT(TRUE) . = ..() diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index ba3041cc4840c..0b28775a5b869 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -46,7 +46,7 @@ return data -/obj/machinery/computer/aifixer/ui_act(action, params) +/obj/machinery/computer/aifixer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -58,7 +58,7 @@ if("PRG_beginReconstruction") if(occupier?.health < 100) to_chat(usr, span_notice("Reconstruction in progress. This will take several minutes.")) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 25, FALSE) restoring = TRUE occupier.notify_revival("Your core files are being restored!", source = src) . = TRUE diff --git a/code/game/machinery/computer/apc_control.dm b/code/game/machinery/computer/apc_control.dm index 97bf368d3e25e..efb3f4480330e 100644 --- a/code/game/machinery/computer/apc_control.dm +++ b/code/game/machinery/computer/apc_control.dm @@ -57,7 +57,7 @@ return if(active_apc) disconnect_apc() - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) apc.connect_remote_access(user) user.log_message("remotely accessed [apc] from [src].", LOG_GAME) log_activity("[auth_id] remotely accessed APC in [get_area_name(apc.area, TRUE)]") @@ -134,18 +134,18 @@ authenticated = TRUE auth_id = "[ID.registered_name] ([ID.assignment]):" log_activity("[auth_id] logged in to the terminal") - playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) else auth_id = "[ID.registered_name] ([ID.assignment]):" log_activity("[auth_id] attempted to log into the terminal") - playsound(src, 'sound/machines/terminal_error.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 50, FALSE) say("ID rejected, access denied!") return auth_id = "Unknown (Unknown):" log_activity("[auth_id] attempted to log into the terminal") if("log-out") log_activity("[auth_id] logged out of the terminal") - playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) authenticated = FALSE auth_id = "\[NULL\]" if("toggle-logs") diff --git a/code/game/machinery/computer/arcade/_arcade.dm b/code/game/machinery/computer/arcade/_arcade.dm index 69994634fc3b1..053ec907f3e63 100644 --- a/code/game/machinery/computer/arcade/_arcade.dm +++ b/code/game/machinery/computer/arcade/_arcade.dm @@ -78,7 +78,7 @@ /obj/machinery/computer/arcade/proc/prizevend(mob/living/user, prizes = 1) SEND_SIGNAL(src, COMSIG_ARCADE_PRIZEVEND, user, prizes) if(user.mind?.get_skill_level(/datum/skill/gaming) >= SKILL_LEVEL_LEGENDARY && HAS_TRAIT(user, TRAIT_GAMERGOD)) - visible_message("[user] inputs an intense cheat code!",\ + visible_message(span_notice("[user] inputs an intense cheat code!"),\ span_notice("You hear a flurry of buttons being pressed.")) say("CODE ACTIVATED: EXTRA PRIZES.") prizes *= 2 diff --git a/code/game/machinery/computer/arcade/amputation.dm b/code/game/machinery/computer/arcade/amputation.dm index 84a02af387ad2..d20a5de2b2812 100644 --- a/code/game/machinery/computer/arcade/amputation.dm +++ b/code/game/machinery/computer/arcade/amputation.dm @@ -17,19 +17,19 @@ user.played_game() var/obj/item/bodypart/chopchop = user.get_active_hand() if(do_after(user, 5 SECONDS, target = src, extra_checks = CALLBACK(src, PROC_REF(do_they_still_have_that_hand), user, chopchop))) - playsound(src, 'sound/weapons/slice.ogg', 25, TRUE, -1) + playsound(src, 'sound/items/weapons/slice.ogg', 25, TRUE, -1) to_chat(user, span_userdanger("The guillotine drops on your arm, and the machine sucks it in!")) chopchop.dismember() qdel(chopchop) user.mind?.adjust_experience(/datum/skill/gaming, 100) user.won_game() - playsound(src, 'sound/arcade/win.ogg', 50, TRUE) + playsound(src, 'sound/machines/arcade/win.ogg', 50, TRUE) new /obj/item/stack/arcadeticket((get_turf(src)), rand(6,10)) to_chat(user, span_notice("[src] dispenses a handful of tickets!")) return if(!do_they_still_have_that_hand(user, chopchop)) to_chat(user, span_warning("The guillotine drops, but your hand seems to be gone already!")) - playsound(src, 'sound/weapons/slice.ogg', 25, TRUE, -1) + playsound(src, 'sound/items/weapons/slice.ogg', 25, TRUE, -1) else to_chat(user, span_notice("You (wisely) decide against putting your hand in the machine.")) user.lost_game() diff --git a/code/game/machinery/computer/arcade/battle.dm b/code/game/machinery/computer/arcade/battle.dm index 9733759b5caf4..169104d6c2fe3 100644 --- a/code/game/machinery/computer/arcade/battle.dm +++ b/code/game/machinery/computer/arcade/battle.dm @@ -226,7 +226,7 @@ user.mind?.adjust_experience(/datum/skill/gaming, exp_gained) user.won_game() SSblackbox.record_feedback("nested tally", "arcade_results", 1, list("win", (obj_flags & EMAGGED ? "emagged":"normal"))) - playsound(loc, 'sound/arcade/win.ogg', 40) + playsound(loc, 'sound/machines/arcade/win.ogg', 40) if(ui_panel != UI_PANEL_WORLD_MAP) //we havent been booted to world map, we're still going. ui_panel = UI_PANEL_BETWEEN_FIGHTS @@ -250,11 +250,11 @@ ui_panel = UI_PANEL_GAMEOVER feedback_message = "GAME OVER." say("You have been crushed! GAME OVER.") - playsound(loc, 'sound/arcade/lose.ogg', 40, TRUE) + playsound(loc, 'sound/machines/arcade/lose.ogg', 40, TRUE) lose_game(user) else feedback_message = "User took [damage_taken] damage!" - playsound(loc, 'sound/arcade/hit.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/hit.ogg', 40, TRUE, extrarange = -3) SStgui.update_uis(src) ///Called when you attack the enemy. @@ -270,17 +270,17 @@ if(BATTLE_ARCADE_PLAYER_COUNTERATTACK) feedback_message = "User prepares to counterattack!" process_enemy_turn(user, defending_flags = BATTLE_ATTACK_FLAG_COUNTERATTACK) - playsound(loc, 'sound/arcade/mana.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/mana.ogg', 40, TRUE, extrarange = -3) if(BATTLE_ARCADE_PLAYER_DEFEND) feedback_message = "User pulls up their shield!" process_enemy_turn(user, defending_flags = BATTLE_ATTACK_FLAG_DEFEND) - playsound(loc, 'sound/arcade/mana.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/mana.ogg', 40, TRUE, extrarange = -3) if(!damage_dealt) return enemy_hp -= round(max(0, damage_dealt), 1) feedback_message = "[enemy_name] took [damage_dealt] damage!" - playsound(loc, 'sound/arcade/hit.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/hit.ogg', 40, TRUE, extrarange = -3) process_enemy_turn(user) ///Called when you successfully counterattack the enemy. @@ -289,7 +289,7 @@ var/damage_dealt = (rand(20, 30) * (!isnull(weapon) ? weapon.bonus_modifier : 1)) enemy_hp -= round(max(0, damage_dealt), 1) feedback_message = "User counterattacked for [damage_dealt] damage!" - playsound(loc, 'sound/arcade/boom.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/boom.ogg', 40, TRUE, extrarange = -3) if(enemy_hp <= 0) on_battle_win(user) SStgui.update_uis(src) @@ -334,7 +334,7 @@ enemy_hp = round(min(enemy_max_hp, enemy_hp + healed_amount), 1) enemy_mp -= round(max(0, 10), 1) feedback_message = "[enemy_name] healed for [healed_amount] health points!" - playsound(loc, 'sound/arcade/heal.ogg', 40, TRUE, extrarange = -3) + playsound(loc, 'sound/machines/arcade/heal.ogg', 40, TRUE, extrarange = -3) SStgui.update_uis(src) return if(player_current_mp >= 5) //minimum to steal @@ -342,7 +342,7 @@ player_current_mp -= round(max(0, healed_amount), 1) enemy_mp += healed_amount feedback_message = "[enemy_name] stole [healed_amount] MP from you!" - playsound(loc, 'sound/arcade/steal.ogg', 40, TRUE) + playsound(loc, 'sound/machines/arcade/steal.ogg', 40, TRUE) SStgui.update_uis(src) return //we couldn't heal ourselves or steal MP, we'll just attack instead. @@ -437,7 +437,7 @@ say("You don't have enough gold to rest!") return TRUE player_gold -= DEFAULT_ITEM_PRICE / 2 - playsound(loc, 'sound/mecha/skyfall_power_up.ogg', 40) + playsound(loc, 'sound/vehicles/mecha/skyfall_power_up.ogg', 40) player_current_hp = PLAYER_MAX_HP player_current_mp = PLAYER_MAX_MP return TRUE @@ -476,11 +476,11 @@ return TRUE if("continue_with_rest") if(prob(60)) - playsound(loc, 'sound/mecha/skyfall_power_up.ogg', 40) + playsound(loc, 'sound/vehicles/mecha/skyfall_power_up.ogg', 40) player_current_hp = PLAYER_MAX_HP player_current_mp = PLAYER_MAX_MP else - playsound(loc, 'sound/machines/defib_zap.ogg', 40) + playsound(loc, 'sound/machines/defib/defib_zap.ogg', 40) if(prob(40)) //You got robbed, and now have to go to your next fight. player_gold /= 2 diff --git a/code/game/machinery/computer/arcade/orion.dm b/code/game/machinery/computer/arcade/orion.dm index 85bebddd25c6d..a6685e4782ccd 100644 --- a/code/game/machinery/computer/arcade/orion.dm +++ b/code/game/machinery/computer/arcade/orion.dm @@ -181,7 +181,7 @@ return static_data -/obj/machinery/computer/arcade/orion_trail/ui_act(action, list/params) +/obj/machinery/computer/arcade/orion_trail/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -421,7 +421,7 @@ var/sheriff = remove_crewmember(target) //I shot the sheriff if(target) killed_crew += 1 //if there was no suspected lings, this is just plain murder - playsound(loc,'sound/weapons/gun/pistol/shot.ogg', 100, TRUE) + playsound(loc,'sound/items/weapons/gun/pistol/shot.ogg', 100, TRUE) if(!settlers.len || !alive) say("The last crewmember [sheriff], shot themselves, GAME OVER!") if(obj_flags & EMAGGED) @@ -535,7 +535,7 @@ time_for_next_level = 3 SECONDS if(2) say("Oh, God! Code Eight! CODE EIGHT! IT'S GONNA BL-") - playsound(loc, 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(loc, 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) time_for_next_level = 0.36 SECONDS if(3 to INFINITY) visible_message(span_userdanger("[src] explodes!")) diff --git a/code/game/machinery/computer/arcade/orion_event.dm b/code/game/machinery/computer/arcade/orion_event.dm index 7ab2f3b98b3b0..d39766200dc52 100644 --- a/code/game/machinery/computer/arcade/orion_event.dm +++ b/code/game/machinery/computer/arcade/orion_event.dm @@ -67,8 +67,8 @@ text = "Oh no! The engine has broken down! \ You can repair it with an engine part, or you \ can make repairs for 3 days." - emag_message = "You hear some large object lurch to a halt right behind you! When you go to look, nothing's there..." - emag_sound = 'sound/effects/creak1.ogg' + emag_message = span_warning("You hear some large object lurch to a halt right behind you! When you go to look, nothing's there...") + emag_sound = 'sound/effects/creak/creak1.ogg' weight = 2 event_responses = list() @@ -170,7 +170,7 @@ /datum/orion_event/hull_part/proc/fix_floor(obj/machinery/computer/arcade/orion_trail/game) game.say("A new floor suddenly appears around [game]. What the hell?") - playsound(game, 'sound/weapons/genhit.ogg', 100, TRUE) + playsound(game, 'sound/items/weapons/genhit.ogg', 100, TRUE) for(var/turf/open/space/fixed in orange(1, game)) fixed.place_on_top(/turf/open/floor/plating) @@ -264,7 +264,7 @@ else to_chat(usr, span_userdanger("Something strikes you from behind! It hurts like hell and feel like a blunt weapon, but nothing is there...")) gamer.take_bodypart_damage(30) - playsound(game, 'sound/weapons/genhit2.ogg', 100, TRUE) + playsound(game, 'sound/items/weapons/genhit2.ogg', 100, TRUE) /datum/orion_event/illness name = "Space Illness" @@ -321,7 +321,7 @@ gamer.Paralyze(60) game.say("A sudden gust of powerful wind slams [gamer] into the floor!") gamer.take_bodypart_damage(25) - playsound(game, 'sound/weapons/genhit.ogg', 100, TRUE) + playsound(game, 'sound/items/weapons/genhit.ogg', 100, TRUE) /datum/orion_event/changeling_infiltration name = "Changeling Infiltration" diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 5f3d7dd6e9e9d..3ed359a006296 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -28,7 +28,7 @@ return data -/obj/machinery/computer/atmos_alert/ui_act(action, params) +/obj/machinery/computer/atmos_alert/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/atmos_computers/__identifiers.dm b/code/game/machinery/computer/atmos_computers/__identifiers.dm index 653f0fbaa3868..be1f01aecb549 100644 --- a/code/game/machinery/computer/atmos_computers/__identifiers.dm +++ b/code/game/machinery/computer/atmos_computers/__identifiers.dm @@ -1,7 +1,7 @@ // ATMOSIA GAS MONITOR SUITE TAGS // Things that use these include atmos control monitors, sensors, inputs, and outlets. // They last three adds _sensor, _in, and _out respectively to the id_tag variable. -// Dont put underscores here, we use them as delimiters. +// Don't put underscores here, we use them as delimiters. #define ATMOS_GAS_MONITOR_O2 GAS_O2 #define ATMOS_GAS_MONITOR_PLAS GAS_PLASMA diff --git a/code/game/machinery/computer/atmos_computers/_air_sensor.dm b/code/game/machinery/computer/atmos_computers/_air_sensor.dm index 1c365dd087649..1f4a8bf834098 100644 --- a/code/game/machinery/computer/atmos_computers/_air_sensor.dm +++ b/code/game/machinery/computer/atmos_computers/_air_sensor.dm @@ -15,6 +15,8 @@ var/inlet_id /// The outlet[vent pump] controlled by this sensor var/outlet_id + /// The air alarm connected to this sensor + var/obj/machinery/airalarm/connected_airalarm /obj/machinery/air_sensor/Initialize(mapload) id_tag = assign_random_name() @@ -57,7 +59,7 @@ /obj/machinery/air_sensor/examine(mob/user) . = ..() - . += span_notice("Use multitool to link it to an injector/vent or reset it's ports") + . += span_notice("Use a multitool to link it to an injector, vent, or air alarm, or reset its ports.") . += span_notice("Click with hand to turn it off.") /obj/machinery/air_sensor/attack_hand(mob/living/user, list/modifiers) @@ -78,6 +80,11 @@ /obj/machinery/air_sensor/proc/reset() inlet_id = null outlet_id = null + if(connected_airalarm) + connected_airalarm.disconnect_sensor() + // if air alarm and sensor were linked at roundstart we allow them to link to new devices + connected_airalarm.allow_link_change = TRUE + connected_airalarm = null ///right click with multi tool to disconnect everything /obj/machinery/air_sensor/multitool_act_secondary(mob/living/user, obj/item/tool) @@ -196,7 +203,7 @@ if(initial(sensor.chamber_id) != target_chamber) continue - //make real air sensor in it's place + //make real air sensor in its place var/obj/machinery/air_sensor/new_sensor = new sensor(get_turf(src)) new_sensor.inlet_id = input_id new_sensor.outlet_id = output_id diff --git a/code/game/machinery/computer/atmos_computers/_atmos_control.dm b/code/game/machinery/computer/atmos_computers/_atmos_control.dm index 094f12e36e36a..25e51738611f1 100644 --- a/code/game/machinery/computer/atmos_computers/_atmos_control.dm +++ b/code/game/machinery/computer/atmos_computers/_atmos_control.dm @@ -19,7 +19,7 @@ /// Whether we are allowed to reconnect. var/reconnecting = TRUE - /// Was this computer multitooled before. If so copy the list connected_sensors as it now mantain's it's own sensors independent of the map loaded one's + /// Was this computer multitooled before. If so copy the list connected_sensors as it now maintain's its own sensors independent of the map loaded one's var/was_multi_tooled = FALSE /// list of all sensors[key is chamber id, value is id of air sensor linked to this chamber] monitered by this computer @@ -96,7 +96,7 @@ if(!was_multi_tooled) connected_sensors = connected_sensors.Copy() was_multi_tooled = TRUE - //register the sensor's unique ID with it's assositated chamber + //register the sensor's unique ID with its assositated chamber connected_sensors[sensor.chamber_id] = sensor.id_tag user.balloon_alert(user, "sensor connected to [src]") return ITEM_INTERACT_SUCCESS @@ -152,7 +152,7 @@ data["chambers"] += list(chamber_info) return data -/obj/machinery/computer/atmos_control/ui_act(action, params) +/obj/machinery/computer/atmos_control/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(. || !(control || reconnecting)) return diff --git a/code/game/machinery/computer/atmos_computers/inlets.dm b/code/game/machinery/computer/atmos_computers/inlets.dm index 32de77cc632de..474ccae2c14e1 100644 --- a/code/game/machinery/computer/atmos_computers/inlets.dm +++ b/code/game/machinery/computer/atmos_computers/inlets.dm @@ -4,6 +4,14 @@ /// The air sensor type this injector is linked to var/chamber_id +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/layer2 + piping_layer = 2 + icon_state = "inje_map-2" + +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/layer4 + piping_layer = 4 + icon_state = "inje_map-4" + /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/Initialize(mapload) id_tag = CHAMBER_INPUT_FROM_ID(chamber_id) return ..() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 670d8d33fd81c..21f5ed3db7bab 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -67,7 +67,7 @@ concurrent_users += user_ref // Turn on the console if(length(concurrent_users) == 1 && is_living) - playsound(src, 'sound/machines/terminal_on.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 25, FALSE) use_energy(active_power_usage) // Register map objects cam_screen.display_to(user) @@ -108,7 +108,7 @@ return data -/obj/machinery/computer/security/ui_act(action, params) +/obj/machinery/computer/security/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -116,7 +116,6 @@ if(action == "switch_camera") var/obj/machinery/camera/selected_camera = locate(params["camera"]) in GLOB.cameranet.cameras active_camera = selected_camera - playsound(src, SFX_TERMINAL_TYPE, 25, FALSE) if(isnull(active_camera)) return TRUE @@ -133,7 +132,7 @@ var/list/visible_turfs = list() - // Get the camera's turf to correctly gather what's visible from it's turf, in case it's located in a moving object (borgs / mechs) + // Get the camera's turf to correctly gather what's visible from its turf, in case it's located in a moving object (borgs / mechs) var/new_cam_turf = get_turf(active_camera) // If we're not forcing an update for some reason and the cameras are in the same location, @@ -172,7 +171,7 @@ if(length(concurrent_users) == 0 && is_living) active_camera = null last_camera_turf = null - playsound(src, 'sound/machines/terminal_off.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 25, FALSE) /obj/machinery/computer/security/proc/show_camera_static() cam_screen.vis_contents.Cut() diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 45bfeb9fcef36..6640f5582fa20 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -60,7 +60,7 @@ return ..() /obj/machinery/computer/camera_advanced/process() - if(!can_use(current_user) || (issilicon(current_user) && !current_user.has_unlimited_silicon_privilege)) + if(!can_use(current_user) || (issilicon(current_user) && !HAS_SILICON_ACCESS(current_user))) unset_machine() return PROCESS_KILL @@ -118,7 +118,7 @@ eyeobj.eye_user = null user.remote_control = null current_user = null - playsound(src, 'sound/machines/terminal_off.ogg', 25, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 25, FALSE) /obj/machinery/computer/camera_advanced/on_set_is_operational(old_value) if(!is_operational) @@ -296,7 +296,7 @@ continue T["[netcam.c_tag][netcam.can_use() ? null : " (Deactivated)"]"] = netcam - playsound(origin, 'sound/machines/terminal_prompt.ogg', 25, FALSE) + playsound(origin, 'sound/machines/terminal/terminal_prompt.ogg', 25, FALSE) var/camera = tgui_input_list(usr, "Camera to view", "Cameras", T) if(isnull(camera)) return @@ -305,12 +305,12 @@ var/obj/machinery/camera/final = T[camera] playsound(src, SFX_TERMINAL_TYPE, 25, FALSE) if(final) - playsound(origin, 'sound/machines/terminal_prompt_confirm.ogg', 25, FALSE) + playsound(origin, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 25, FALSE) remote_eye.setLoc(get_turf(final)) owner.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash/static) owner.clear_fullscreen("flash", 3) //Shorter flash than normal since it's an ~~advanced~~ console! else - playsound(origin, 'sound/machines/terminal_prompt_deny.ogg', 25, FALSE) + playsound(origin, 'sound/machines/terminal/terminal_prompt_deny.ogg', 25, FALSE) /datum/action/innate/camera_multiz_up name = "Move up a floor" diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 1fb46abd1201f..abbfb055e1647 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -130,7 +130,7 @@ battlecruiser_called = TRUE caller_card.use_charge(user) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(summon_battlecruiser), caller_card.team), rand(20 SECONDS, 1 MINUTES)) - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 50, FALSE) return TRUE if(obj_flags & EMAGGED) @@ -139,10 +139,10 @@ if (authenticated) authorize_access = SSid_access.get_region_access_list(list(REGION_ALL_STATION)) balloon_alert(user, "routing circuits scrambled") - playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 50, FALSE) return TRUE -/obj/machinery/computer/communications/ui_act(action, list/params) +/obj/machinery/computer/communications/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) var/static/list/approved_states = list(STATE_BUYING_SHUTTLE, STATE_CHANGING_STATUS, STATE_MAIN, STATE_MESSAGES) . = ..() @@ -152,11 +152,12 @@ if (!has_communication()) return + var/mob/user = ui.user . = TRUE switch (action) if ("answerMessage") - if (!authenticated(usr)) + if (!authenticated(user)) return var/answer_index = params["answer"] @@ -164,7 +165,7 @@ // If either of these aren't numbers, then bad voodoo. if(!isnum(answer_index) || !isnum(message_index)) - message_admins("[ADMIN_LOOKUPFLW(usr)] provided an invalid index type when replying to a message on [src] [ADMIN_JMP(src)]. This should not happen. Please check with a maintainer and/or consult tgui logs.") + message_admins("[ADMIN_LOOKUPFLW(user)] provided an invalid index type when replying to a message on [src] [ADMIN_JMP(src)]. This should not happen. Please check with a maintainer and/or consult tgui logs.") CRASH("Non-numeric index provided when answering comms console message.") if (!answer_index || !message_index || answer_index < 1 || message_index < 1) @@ -175,28 +176,28 @@ message.answered = answer_index message.answer_callback.InvokeAsync() if ("callShuttle") - if (!authenticated(usr) || syndicate) + if (!authenticated(user) || syndicate) return var/reason = trim(params["reason"], MAX_MESSAGE_LEN) if (length(reason) < CALL_SHUTTLE_REASON_LENGTH) return - SSshuttle.requestEvac(usr, reason) + SSshuttle.requestEvac(user, reason) post_status("shuttle") if ("changeSecurityLevel") - if (!authenticated_as_silicon_or_captain(usr)) + if (!authenticated_as_silicon_or_captain(user)) return // Check if they have - if (!HAS_SILICON_ACCESS(usr)) - var/obj/item/held_item = usr.get_active_held_item() + if (!HAS_SILICON_ACCESS(user)) + var/obj/item/held_item = user.get_active_held_item() var/obj/item/card/id/id_card = held_item?.GetID() if (!istype(id_card)) - to_chat(usr, span_warning("You need to swipe your ID!")) - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) + to_chat(user, span_warning("You need to swipe your ID!")) + playsound(src, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return if (!(ACCESS_CAPTAIN in id_card.access)) - to_chat(usr, span_warning("You are not authorized to do this!")) - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) + to_chat(user, span_warning("You are not authorized to do this!")) + playsound(src, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return var/new_sec_level = SSsecurity_level.text_level_to_number(params["newSecurityLevel"]) @@ -207,55 +208,55 @@ SSsecurity_level.set_level(new_sec_level) - to_chat(usr, span_notice("Authorization confirmed. Modifying security level.")) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + to_chat(user, span_notice("Authorization confirmed. Modifying security level.")) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) // Only notify people if an actual change happened - usr.log_message("changed the security level to [params["newSecurityLevel"]] with [src].", LOG_GAME) - message_admins("[ADMIN_LOOKUPFLW(usr)] has changed the security level to [params["newSecurityLevel"]] with [src] at [AREACOORD(usr)].") - deadchat_broadcast(" has changed the security level to [params["newSecurityLevel"]] with [src] at [span_name("[get_area_name(usr, TRUE)]")].", span_name("[usr.real_name]"), usr, message_type=DEADCHAT_ANNOUNCEMENT) + user.log_message("changed the security level to [params["newSecurityLevel"]] with [src].", LOG_GAME) + message_admins("[ADMIN_LOOKUPFLW(user)] has changed the security level to [params["newSecurityLevel"]] with [src] at [AREACOORD(user)].") + deadchat_broadcast(" has changed the security level to [params["newSecurityLevel"]] with [src] at [span_name("[get_area_name(user, TRUE)]")].", span_name("[user.real_name]"), user, message_type=DEADCHAT_ANNOUNCEMENT) alert_level_tick += 1 if ("deleteMessage") - if (!authenticated(usr)) + if (!authenticated(user)) return var/message_index = text2num(params["message"]) if (!message_index) return LAZYREMOVE(messages, LAZYACCESS(messages, message_index)) if ("makePriorityAnnouncement") - if (!authenticated_as_silicon_or_captain(usr) && !syndicate) + if (!authenticated_as_silicon_or_captain(user) && !syndicate) return - make_announcement(usr) + make_announcement(user) if ("messageAssociates") - if (!authenticated_as_non_silicon_captain(usr)) + if (!authenticated_as_non_silicon_captain(user)) return if (!COOLDOWN_FINISHED(src, important_action_cooldown)) return - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) var/message = trim(html_encode(params["message"]), MAX_MESSAGE_LEN) var/emagged = obj_flags & EMAGGED if (emagged) - message_syndicate(message, usr) - to_chat(usr, span_danger("SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.")) + message_syndicate(message, user) + to_chat(user, span_danger("SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.")) else if(syndicate) - message_syndicate(message, usr) - to_chat(usr, span_danger("Message transmitted to Syndicate Command.")) + message_syndicate(message, user) + to_chat(user, span_danger("Message transmitted to Syndicate Command.")) else - message_centcom(message, usr) - to_chat(usr, span_notice("Message transmitted to Central Command.")) + message_centcom(message, user) + to_chat(user, span_notice("Message transmitted to Central Command.")) var/associates = (emagged || syndicate) ? "the Syndicate": "CentCom" - usr.log_talk(message, LOG_SAY, tag = "message to [associates]") - deadchat_broadcast(" has messaged [associates], \"[message]\" at [span_name("[get_area_name(usr, TRUE)]")].", span_name("[usr.real_name]"), usr, message_type = DEADCHAT_ANNOUNCEMENT) + user.log_talk(message, LOG_SAY, tag = "message to [associates]") + deadchat_broadcast(" has messaged [associates], \"[message]\" at [span_name("[get_area_name(user, TRUE)]")].", span_name("[user.real_name]"), user, message_type = DEADCHAT_ANNOUNCEMENT) COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN) if ("purchaseShuttle") - var/can_buy_shuttles_or_fail_reason = can_buy_shuttles(usr) + var/can_buy_shuttles_or_fail_reason = can_buy_shuttles(user) if (can_buy_shuttles_or_fail_reason != TRUE) if (can_buy_shuttles_or_fail_reason != FALSE) - to_chat(usr, span_alert("[can_buy_shuttles_or_fail_reason]")) + to_chat(user, span_alert("[can_buy_shuttles_or_fail_reason]")) return var/list/shuttles = flatten_list(SSmapping.shuttle_templates) var/datum/map_template/shuttle/shuttle = locate(params["shuttle"]) in shuttles @@ -264,7 +265,7 @@ if (!can_purchase_this_shuttle(shuttle)) return if (!shuttle.prerequisites_met()) - to_chat(usr, span_alert("You have not met the requirements for purchasing this shuttle.")) + to_chat(user, span_alert("You have not met the requirements for purchasing this shuttle.")) return var/datum/bank_account/bank_account = SSeconomy.get_dep_account(ACCOUNT_CAR) if (bank_account.account_balance < shuttle.credit_cost) @@ -277,42 +278,42 @@ SSshuttle.action_load(shuttle, replace = TRUE) bank_account.adjust_money(-shuttle.credit_cost) - var/purchaser_name = (obj_flags & EMAGGED) ? scramble_message_replace_chars("AUTHENTICATION FAILURE: CVE-2018-17107", 60) : usr.real_name + var/purchaser_name = (obj_flags & EMAGGED) ? scramble_message_replace_chars("AUTHENTICATION FAILURE: CVE-2018-17107", 60) : user.real_name minor_announce("[purchaser_name] has purchased [shuttle.name] for [shuttle.credit_cost] credits.[shuttle.extra_desc ? " [shuttle.extra_desc]" : ""]" , "Shuttle Purchase") - message_admins("[ADMIN_LOOKUPFLW(usr)] purchased [shuttle.name].") - log_shuttle("[key_name(usr)] has purchased [shuttle.name].") + message_admins("[ADMIN_LOOKUPFLW(user)] purchased [shuttle.name].") + log_shuttle("[key_name(user)] has purchased [shuttle.name].") SSblackbox.record_feedback("text", "shuttle_purchase", 1, shuttle.name) state = STATE_MAIN if ("recallShuttle") // AIs cannot recall the shuttle - if (!authenticated(usr) || HAS_SILICON_ACCESS(usr) || syndicate) + if (!authenticated(user) || HAS_SILICON_ACCESS(user) || syndicate) return - SSshuttle.cancelEvac(usr) + SSshuttle.cancelEvac(user) if ("requestNukeCodes") - if (!authenticated_as_non_silicon_captain(usr)) + if (!authenticated_as_non_silicon_captain(user)) return if (!COOLDOWN_FINISHED(src, important_action_cooldown)) return var/reason = trim(html_encode(params["reason"]), MAX_MESSAGE_LEN) - nuke_request(reason, usr) - to_chat(usr, span_notice("Request sent.")) - usr.log_message("has requested the nuclear codes from CentCom with reason \"[reason]\"", LOG_SAY) - priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self-Destruct Codes Requested", SSstation.announcer.get_rand_report_sound()) - playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) + nuke_request(reason, user) + to_chat(user, span_notice("Request sent.")) + user.log_message("has requested the nuclear codes from CentCom with reason \"[reason]\"", LOG_SAY) + priority_announce("The codes for the on-station nuclear self-destruct have been requested by [user]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self-Destruct Codes Requested", SSstation.announcer.get_rand_report_sound()) + playsound(src, 'sound/machines/terminal/terminal_prompt.ogg', 50, FALSE) COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN) if ("restoreBackupRoutingData") - if (!authenticated_as_non_silicon_captain(usr)) + if (!authenticated_as_non_silicon_captain(user)) return if (!(obj_flags & EMAGGED)) return - to_chat(usr, span_notice("Backup routing data restored.")) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + to_chat(user, span_notice("Backup routing data restored.")) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) obj_flags &= ~EMAGGED if ("sendToOtherSector") - if (!authenticated_as_non_silicon_captain(usr)) + if (!authenticated_as_non_silicon_captain(user)) return - if (!can_send_messages_to_other_sectors(usr)) + if (!can_send_messages_to_other_sectors(user)) return if (!COOLDOWN_FINISHED(src, important_action_cooldown)) return @@ -324,54 +325,52 @@ GLOB.communications_controller.soft_filtering = FALSE var/list/hard_filter_result = is_ic_filtered(message) if(hard_filter_result) - tgui_alert(usr, "Your message contains: (\"[hard_filter_result[CHAT_FILTER_INDEX_WORD]]\"), which is not allowed on this server.") + tgui_alert(user, "Your message contains: (\"[hard_filter_result[CHAT_FILTER_INDEX_WORD]]\"), which is not allowed on this server.") return var/list/soft_filter_result = is_soft_ooc_filtered(message) if(soft_filter_result) - if(tgui_alert(usr,"Your message contains \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". \"[soft_filter_result[CHAT_FILTER_INDEX_REASON]]\", Are you sure you want to use it?", "Soft Blocked Word", list("Yes", "No")) != "Yes") + if(tgui_alert(user,"Your message contains \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". \"[soft_filter_result[CHAT_FILTER_INDEX_REASON]]\", Are you sure you want to use it?", "Soft Blocked Word", list("Yes", "No")) != "Yes") return - message_admins("[ADMIN_LOOKUPFLW(usr)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[html_encode(message)]\"") - log_admin_private("[key_name(usr)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[message]\"") + message_admins("[ADMIN_LOOKUPFLW(user)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[html_encode(message)]\"") + log_admin_private("[key_name(user)] has passed the soft filter for \"[soft_filter_result[CHAT_FILTER_INDEX_WORD]]\". They may be using a disallowed term for a cross-station message. Increasing delay time to reject.\n\n Message: \"[message]\"") GLOB.communications_controller.soft_filtering = TRUE - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) var/destination = params["destination"] - usr.log_message("is about to send the following message to [destination]: [message]", LOG_GAME) + user.log_message("is about to send the following message to [destination]: [message]", LOG_GAME) to_chat( GLOB.admins, span_adminnotice( \ - "CROSS-SECTOR MESSAGE (OUTGOING): [ADMIN_LOOKUPFLW(usr)] is about to send \ + "CROSS-SECTOR MESSAGE (OUTGOING): [ADMIN_LOOKUPFLW(user)] is about to send \ the following message to [destination] (will autoapprove in [GLOB.communications_controller.soft_filtering ? DisplayTimeText(EXTENDED_CROSS_SECTOR_CANCEL_TIME) : DisplayTimeText(CROSS_SECTOR_CANCEL_TIME)]): \ REJECT
\ [html_encode(message)]" \ ) ) - send_cross_comms_message_timer = addtimer(CALLBACK(src, PROC_REF(send_cross_comms_message), usr, destination, message), GLOB.communications_controller.soft_filtering ? EXTENDED_CROSS_SECTOR_CANCEL_TIME : CROSS_SECTOR_CANCEL_TIME, TIMER_STOPPABLE) + send_cross_comms_message_timer = addtimer(CALLBACK(src, PROC_REF(send_cross_comms_message), user, destination, message), GLOB.communications_controller.soft_filtering ? EXTENDED_CROSS_SECTOR_CANCEL_TIME : CROSS_SECTOR_CANCEL_TIME, TIMER_STOPPABLE) COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN) if ("setState") - if (!authenticated(usr)) + if (!authenticated(user)) return if (!(params["state"] in approved_states)) return - if (state == STATE_BUYING_SHUTTLE && can_buy_shuttles(usr) != TRUE) + if (state == STATE_BUYING_SHUTTLE && can_buy_shuttles(user) != TRUE) return set_state(usr, params["state"]) - playsound(src, SFX_TERMINAL_TYPE, 50, FALSE) if ("setStatusMessage") - if (!authenticated(usr)) + if (!authenticated(user)) return var/line_one = reject_bad_text(params["upperText"] || "", MAX_STATUS_LINE_LENGTH) var/line_two = reject_bad_text(params["lowerText"] || "", MAX_STATUS_LINE_LENGTH) post_status("message", line_one, line_two) last_status_display = list(line_one, line_two) - playsound(src, SFX_TERMINAL_TYPE, 50, FALSE) if ("setStatusPicture") - if (!authenticated(usr)) + if (!authenticated(user)) return var/picture = params["picture"] if (!(picture in GLOB.status_display_approved_pictures)) @@ -380,36 +379,27 @@ post_status(picture) else if(picture == "currentalert") // You cannot set Code Blue display during Code Red and similiar - switch(SSsecurity_level.get_current_level_as_number()) - if(SEC_LEVEL_DELTA) - post_status("alert", "deltaalert") - if(SEC_LEVEL_RED) - post_status("alert", "redalert") - if(SEC_LEVEL_BLUE) - post_status("alert", "bluealert") - if(SEC_LEVEL_GREEN) - post_status("alert", "greenalert") + post_status("alert", SSsecurity_level?.current_security_level?.status_display_icon_state || "greenalert") else post_status("alert", picture) - playsound(src, SFX_TERMINAL_TYPE, 50, FALSE) if ("toggleAuthentication") // Log out if we're logged in if (authorize_name) authenticated = FALSE authorize_access = null authorize_name = null - playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) return if (obj_flags & EMAGGED) authenticated = TRUE authorize_access = SSid_access.get_region_access_list(list(REGION_ALL_STATION)) authorize_name = "Unknown" - to_chat(usr, span_warning("[src] lets out a quiet alarm as its login is overridden.")) - playsound(src, 'sound/machines/terminal_alert.ogg', 25, FALSE) - else if(isliving(usr)) - var/mob/living/L = usr + to_chat(user, span_warning("[src] lets out a quiet alarm as its login is overridden.")) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 25, FALSE) + else if(isliving(user)) + var/mob/living/L = user var/obj/item/card/id/id_card = L.get_idcard(hand_first = TRUE) if (check_access(id_card)) authenticated = TRUE @@ -417,40 +407,40 @@ authorize_name = "[id_card.registered_name] - [id_card.assignment]" state = STATE_MAIN - playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) imprint_gps(gps_tag = "Encrypted Communications Channel") if ("toggleEmergencyAccess") - if(emergency_access_cooldown(usr)) //if were in cooldown, dont allow the following code + if(emergency_access_cooldown(user)) //if were in cooldown, dont allow the following code return - if (!authenticated_as_silicon_or_captain(usr)) + if (!authenticated_as_silicon_or_captain(user)) return if (GLOB.emergency_access) revoke_maint_all_access() - usr.log_message("disabled emergency maintenance access.", LOG_GAME) - message_admins("[ADMIN_LOOKUPFLW(usr)] disabled emergency maintenance access.") - deadchat_broadcast(" disabled emergency maintenance access at [span_name("[get_area_name(usr, TRUE)]")].", span_name("[usr.real_name]"), usr, message_type = DEADCHAT_ANNOUNCEMENT) + user.log_message("disabled emergency maintenance access.", LOG_GAME) + message_admins("[ADMIN_LOOKUPFLW(user)] disabled emergency maintenance access.") + deadchat_broadcast(" disabled emergency maintenance access at [span_name("[get_area_name(user, TRUE)]")].", span_name("[user.real_name]"), user, message_type = DEADCHAT_ANNOUNCEMENT) else make_maint_all_access() - usr.log_message("enabled emergency maintenance access.", LOG_GAME) - message_admins("[ADMIN_LOOKUPFLW(usr)] enabled emergency maintenance access.") - deadchat_broadcast(" enabled emergency maintenance access at [span_name("[get_area_name(usr, TRUE)]")].", span_name("[usr.real_name]"), usr, message_type = DEADCHAT_ANNOUNCEMENT) + user.log_message("enabled emergency maintenance access.", LOG_GAME) + message_admins("[ADMIN_LOOKUPFLW(user)] enabled emergency maintenance access.") + deadchat_broadcast(" enabled emergency maintenance access at [span_name("[get_area_name(user, TRUE)]")].", span_name("[user.real_name]"), user, message_type = DEADCHAT_ANNOUNCEMENT) // Request codes for the Captain's Spare ID safe. if("requestSafeCodes") if(SSjob.assigned_captain) - to_chat(usr, span_warning("There is already an assigned Captain or Acting Captain on deck!")) + to_chat(user, span_warning("There is already an assigned Captain or Acting Captain on deck!")) return if(SSjob.safe_code_timer_id) - to_chat(usr, span_warning("The safe code has already been requested and is being delivered to your station!")) + to_chat(user, span_warning("The safe code has already been requested and is being delivered to your station!")) return if(SSjob.safe_code_requested) - to_chat(usr, span_warning("The safe code has already been requested and delivered to your station!")) + to_chat(user, span_warning("The safe code has already been requested and delivered to your station!")) return if(!SSid_access.spare_id_safe_code) - to_chat(usr, span_warning("There is no safe code to deliver to your station!")) + to_chat(user, span_warning("There is no safe code to deliver to your station!")) return var/turf/pod_location = get_turf(src) @@ -483,7 +473,7 @@ var/list/payload = list() - payload["sender_ckey"] = usr.ckey + payload["sender_ckey"] = user.ckey var/network_name = CONFIG_GET(string/cross_comms_network) if(network_name) payload["network"] = network_name @@ -492,9 +482,9 @@ send2otherserver(html_decode(station_name()), message, "Comms_Console", destination == "all" ? null : list(destination), additional_data = payload) minor_announce(message, title = "Outgoing message to allied station") - usr.log_talk(message, LOG_SAY, tag = "message to the other server") - message_admins("[ADMIN_LOOKUPFLW(usr)] has sent a message to the other server\[s].") - deadchat_broadcast(" has sent an outgoing message to the other station(s).
", "[usr.real_name]", usr, message_type = DEADCHAT_ANNOUNCEMENT) + user.log_talk(message, LOG_SAY, tag = "message to the other server") + message_admins("[ADMIN_LOOKUPFLW(user)] has sent a message to the other server\[s].") + deadchat_broadcast(" has sent an outgoing message to the other station(s).", "[user.real_name]", user, message_type = DEADCHAT_ANNOUNCEMENT) GLOB.communications_controller.soft_filtering = FALSE // set it to false at the end of the proc to ensure that everything prior reads as intended /obj/machinery/computer/communications/ui_data(mob/user) @@ -682,7 +672,7 @@ /// Returns TRUE if the user can buy shuttles. /// If they cannot, returns FALSE or a string detailing why. /obj/machinery/computer/communications/proc/can_buy_shuttles(mob/user) - if (!SSmapping.config.allow_custom_shuttles) + if (!SSmapping.current_map.allow_custom_shuttles) return FALSE if (HAS_SILICON_ACCESS(user)) return FALSE @@ -731,7 +721,7 @@ if(!GLOB.communications_controller.can_announce(user, is_ai)) to_chat(user, span_alert("Intercomms recharging. Please stand by.")) return - var/input = tgui_input_text(user, "Message to announce to the station crew", "Announcement") + var/input = tgui_input_text(user, "Message to announce to the station crew", "Announcement", max_length = MAX_MESSAGE_LEN) if(!input || !user.can_perform_action(src, ALLOW_SILICON_REACH)) return if(user.try_speak(input)) @@ -750,7 +740,7 @@ var/list/players = get_communication_players() GLOB.communications_controller.make_announcement(user, is_ai, input, syndicate || (obj_flags & EMAGGED), players) - deadchat_broadcast(" made a priority announcement from [span_name("[get_area_name(usr, TRUE)]")].", span_name("[user.real_name]"), user, message_type=DEADCHAT_ANNOUNCEMENT) + deadchat_broadcast(" made a priority announcement from [span_name("[get_area_name(user, TRUE)]")].", span_name("[user.real_name]"), user, message_type=DEADCHAT_ANNOUNCEMENT) /obj/machinery/computer/communications/proc/get_communication_players() return GLOB.player_list diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 268b675871ab2..adac393d7bedb 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -182,7 +182,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) z = T.z . = list( "sensors" = update_data(z), - "link_allowed" = HAS_AI_ACCESS(user) + "link_allowed" = HAS_AI_ACCESS(user), ) /datum/crewmonitor/proc/update_data(z) @@ -223,7 +223,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) continue // Check if their uniform is in a compatible mode. - if((uniform.has_sensor <= NO_SENSORS) || !uniform.sensor_mode) + if((uniform.has_sensor == NO_SENSORS) || !uniform.sensor_mode) stack_trace("Human without active suit sensors is in suit_sensors_list: [tracked_human] ([tracked_human.type]) ([uniform.type])") continue @@ -245,6 +245,19 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) if (jobs[trim_assignment] != null) entry["ijob"] = jobs[trim_assignment] + // Broken sensors show garbage data + if (uniform.has_sensor == BROKEN_SENSORS) + entry["life_status"] = rand(0,1) + entry["area"] = pick_list (ION_FILE, "ionarea") + entry["oxydam"] = rand(0,175) + entry["toxdam"] = rand(0,175) + entry["burndam"] = rand(0,175) + entry["brutedam"] = rand(0,175) + entry["health"] = -50 + entry["can_track"] = tracked_living_mob.can_track() + results[++results.len] = entry + continue + // Current status if (sensor_mode >= SENSOR_LIVING) entry["life_status"] = tracked_living_mob.stat @@ -274,7 +287,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) return results -/datum/crewmonitor/ui_act(action, params) +/datum/crewmonitor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index 9028d6d367d91..95732d38437ef 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -35,7 +35,7 @@ #define GENETIC_DAMAGE_ACCURACY_MULTIPLIER 3 /// Special status indicating a scanner occupant is transforming eg. from monkey to human -#define STATUS_TRANSFORMING 4 +#define STATUS_TRANSFORMING 5 /// Multiplier for how much genetic damage received from DNA Console functionality #define GENETIC_DAMAGE_IRGENETIC_DAMAGE_MULTIPLIER 1 @@ -398,7 +398,7 @@ return data -/obj/machinery/computer/scan_consolenew/ui_act(action, list/params) +/obj/machinery/computer/scan_consolenew/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) var/static/list/gene_letters = list("A", "T", "C", "G"); var/static/gene_letter_count = length(gene_letters) @@ -440,7 +440,7 @@ // GUARD CHECK - Can we genetically modify the occupant? Includes scanner // operational guard checks. // GUARD CHECK - Is scramble DNA actually ready? - if(!can_modify_occupant() || !(scramble_ready < world.time)) + if(!can_modify_occupant() || !(scramble_ready < world.time) || HAS_TRAIT(scanner_occupant, TRAIT_NO_DNA_SCRAMBLE)) return scanner_occupant.dna.remove_all_mutations(list(MUT_NORMAL, MUT_EXTRA)) @@ -683,7 +683,7 @@ var/datum/mutation/human/target_mutation = get_mut_by_ref(bref, search_flags) // Prompt for modifier string - var/new_sequence_input = tgui_input_text(usr, "Enter a replacement sequence", "Inherent Gene Replacement", 32, encode = FALSE) + var/new_sequence_input = tgui_input_text(usr, "Enter a replacement sequence", "Inherent Gene Replacement", max_length = 32, encode = FALSE) // Drop out if the string is the wrong length if(length(new_sequence_input) != 32) return @@ -1347,7 +1347,7 @@ // However, if this is the case, we can't make a complete injector and // this catches that edge case if(!buffer_slot["name"] || !buffer_slot["UF"] || !buffer_slot["blood_type"]) - to_chat(usr,"Genetic data corrupted, unable to create injector.") + to_chat(usr,span_warning("Genetic data corrupted, unable to create injector.")) return I = new /obj/item/dnainjector/timed(loc) @@ -1731,7 +1731,7 @@ // However, if this is the case, we can't make a complete injector and // this catches that edge case if(!buffer_slot["UF"]) - to_chat(usr,"Genetic data corrupted, unable to apply genetic data.") + to_chat(usr,span_warning("Genetic data corrupted, unable to apply genetic data.")) return FALSE COOLDOWN_START(src, enzyme_copy_timer, ENZYME_COPY_BASE_COOLDOWN) scanner_occupant.dna.unique_features = buffer_slot["UF"] diff --git a/code/game/machinery/computer/launchpad_control.dm b/code/game/machinery/computer/launchpad_control.dm index 7c6d1307b76b1..1502e5af50621 100644 --- a/code/game/machinery/computer/launchpad_control.dm +++ b/code/game/machinery/computer/launchpad_control.dm @@ -116,7 +116,7 @@ return data -/obj/machinery/computer/launchpad/ui_act(action, params) +/obj/machinery/computer/launchpad/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 383a980a64da0..742166b285659 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -28,7 +28,7 @@ current = null return M.install(current.laws, user) - imprint_gps(gps_tag = "Weak Upload Signal") + imprint_gps("Weak Upload Signal") else return ..() diff --git a/code/game/machinery/computer/mechlaunchpad.dm b/code/game/machinery/computer/mechlaunchpad.dm index 46c0045fb3568..7590e690d07a6 100644 --- a/code/game/machinery/computer/mechlaunchpad.dm +++ b/code/game/machinery/computer/mechlaunchpad.dm @@ -66,7 +66,7 @@ /// A proc that makes random beeping sounds for a set amount of time, the sounds are separated by a random amount of time. /obj/machinery/computer/mechpad/proc/random_beeps(mob/user, time = 0, mintime = 0, maxtime = 1) - var/static/list/beep_sounds = list('sound/machines/terminal_prompt_confirm.ogg', 'sound/machines/terminal_prompt_deny.ogg', 'sound/machines/terminal_error.ogg', 'sound/machines/terminal_select.ogg', 'sound/machines/terminal_success.ogg') + var/static/list/beep_sounds = list('sound/machines/terminal/terminal_prompt_confirm.ogg', 'sound/machines/terminal/terminal_prompt_deny.ogg', 'sound/machines/terminal/terminal_error.ogg', 'sound/machines/terminal/terminal_select.ogg', 'sound/machines/terminal/terminal_success.ogg') var/time_to_spend = 0 var/orig_time = time while(time > 0) @@ -132,7 +132,7 @@ if(!can_launch(user, where)) return flick("mechpad-launch", connected_mechpad) - playsound(connected_mechpad, 'sound/machines/triple_beep.ogg', 50, TRUE) + playsound(connected_mechpad, 'sound/machines/beep/triple_beep.ogg', 50, TRUE) addtimer(CALLBACK(src, PROC_REF(start_launch), user, where), 1 SECONDS) /obj/machinery/computer/mechpad/proc/start_launch(mob/user, obj/machinery/mechpad/where) @@ -205,7 +205,7 @@ data["mechonly"] = current_pad.mech_only return data -/obj/machinery/computer/mechpad/ui_act(action, params) +/obj/machinery/computer/mechpad/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/operating_computer.dm b/code/game/machinery/computer/operating_computer.dm index d67cea367e9a6..83a2a08d986c3 100644 --- a/code/game/machinery/computer/operating_computer.dm +++ b/code/game/machinery/computer/operating_computer.dm @@ -7,6 +7,7 @@ icon_screen = "crew" icon_keyboard = "med_key" circuit = /obj/item/circuitboard/computer/operating + interaction_flags_machine = parent_type::interaction_flags_machine | INTERACT_MACHINE_REQUIRES_STANDING var/obj/structure/table/optable/table var/list/advanced_surgeries = list() @@ -77,7 +78,7 @@ break /obj/machinery/computer/operating/ui_state(mob/user) - return GLOB.not_incapacitated_state + return GLOB.standing_state /obj/machinery/computer/operating/ui_interact(mob/user, datum/tgui/ui) . = ..() @@ -143,11 +144,13 @@ var/chems_needed = surgery_step.get_chem_list() var/alternative_step var/alt_chems_needed = "" + var/alt_chems_present = FALSE if(surgery_step.repeatable) var/datum/surgery_step/next_step = procedure.get_surgery_next_step() if(next_step) alternative_step = capitalize(next_step.name) alt_chems_needed = next_step.get_chem_list() + alt_chems_present = next_step.chem_check(patient) else alternative_step = "Finish operation" data["procedures"] += list(list( @@ -155,11 +158,13 @@ "next_step" = capitalize(surgery_step.name), "chems_needed" = chems_needed, "alternative_step" = alternative_step, - "alt_chems_needed" = alt_chems_needed + "alt_chems_needed" = alt_chems_needed, + "chems_present" = surgery_step.chem_check(patient), + "alt_chems_present" = alt_chems_present )) return data -/obj/machinery/computer/operating/ui_act(action, params) +/obj/machinery/computer/operating/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.dm b/code/game/machinery/computer/orders/order_computer/mining_order.dm index 7e7eabcc1bfd5..94fda727d5f79 100644 --- a/code/game/machinery/computer/orders/order_computer/mining_order.dm +++ b/code/game/machinery/computer/orders/order_computer/mining_order.dm @@ -62,7 +62,7 @@ /obj/machinery/computer/order_console/mining/retrieve_points(obj/item/card/id/id_card) return round(id_card.registered_account.mining_points) -/obj/machinery/computer/order_console/mining/ui_act(action, params) +/obj/machinery/computer/order_console/mining/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(!.) flick("mining-deny", src) @@ -121,7 +121,7 @@ /obj/machinery/computer/order_console/mining/proc/check_menu(obj/item/mining_voucher/voucher, mob/living/redeemer) if(!istype(redeemer)) return FALSE - if(redeemer.incapacitated()) + if(redeemer.incapacitated) return FALSE if(QDELETED(voucher)) return FALSE diff --git a/code/game/machinery/computer/orders/order_computer/order_computer.dm b/code/game/machinery/computer/orders/order_computer/order_computer.dm index 770897a2fe4fb..9098d5aeb090b 100644 --- a/code/game/machinery/computer/orders/order_computer/order_computer.dm +++ b/code/game/machinery/computer/orders/order_computer/order_computer.dm @@ -124,7 +124,7 @@ GLOBAL_LIST_EMPTY(order_console_products) )) return data -/obj/machinery/computer/order_console/ui_act(action, params) +/obj/machinery/computer/order_console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -201,7 +201,7 @@ GLOBAL_LIST_EMPTY(order_console_products) ordered_paths += item.item_path podspawn(list( "target" = get_turf(living_user), - "style" = STYLE_BLUESPACE, + "style" = /datum/pod_style/advanced, "spawn" = ordered_paths, )) grocery_list.Cut() diff --git a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm index c8cfa12f9abfe..a91a34b46f2da 100644 --- a/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm +++ b/code/game/machinery/computer/orders/order_items/mining/order_consumables.dm @@ -46,3 +46,9 @@ item_path = /obj/item/stack/spacecash/c1000 desc = "A stack of space cash worth 1000 credits." cost_per_order = 2000 + +/datum/orderable_item/consumables/rescue_hook + name = "Rescue Fishing Rod" + item_path = /obj/item/fishing_rod/rescue + desc = "For when your fellow miner has inevitably fallen into a chasm, and it's up to you to save them." + cost_per_order = 600 diff --git a/code/game/machinery/computer/orders/order_items/mining/order_mining.dm b/code/game/machinery/computer/orders/order_items/mining/order_mining.dm index 13f350f1da192..76af0dc806c96 100644 --- a/code/game/machinery/computer/orders/order_items/mining/order_mining.dm +++ b/code/game/machinery/computer/orders/order_items/mining/order_mining.dm @@ -34,6 +34,18 @@ item_path = /obj/item/kinetic_crusher cost_per_order = 650 +/datum/orderable_item/mining/crusher_retool_kit + item_path = /obj/item/crusher_trophy/retool_kit + cost_per_order = 150 + +/datum/orderable_item/mining/crusher_retool_kit_harpoon + item_path = /obj/item/crusher_trophy/retool_kit/harpoon + cost_per_order = 150 + +/datum/orderable_item/mining/crusher_retool_kit_dagger + item_path = /obj/item/crusher_trophy/retool_kit/dagger + cost_per_order = 150 + /datum/orderable_item/mining/resonator item_path = /obj/item/resonator cost_per_order = 710 diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 4cc32401704d2..798f20c21a8f0 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -78,7 +78,7 @@ break return data -/obj/machinery/computer/pod/ui_act(action, list/params) +/obj/machinery/computer/pod/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/prisoner/_prisoner.dm b/code/game/machinery/computer/prisoner/_prisoner.dm index 9777c1b209cdf..828d981bec644 100644 --- a/code/game/machinery/computer/prisoner/_prisoner.dm +++ b/code/game/machinery/computer/prisoner/_prisoner.dm @@ -35,7 +35,7 @@ return contained_id = new_id balloon_alert_to_viewers("id inserted") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) /obj/machinery/computer/prisoner/proc/id_eject(mob/user) if(isnull(contained_id)) @@ -48,7 +48,7 @@ contained_id.forceMove(drop_location()) balloon_alert_to_viewers("id ejected") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) /obj/machinery/computer/prisoner/attackby(obj/item/weapon, mob/user, params) if(istype(weapon, /obj/item/card/id/advanced/prisoner)) diff --git a/code/game/machinery/computer/prisoner/gulag_teleporter.dm b/code/game/machinery/computer/prisoner/gulag_teleporter.dm index 4c2f4dacde3f2..66440bb97c3fd 100644 --- a/code/game/machinery/computer/prisoner/gulag_teleporter.dm +++ b/code/game/machinery/computer/prisoner/gulag_teleporter.dm @@ -67,12 +67,12 @@ return data -/obj/machinery/computer/prisoner/gulag_teleporter_computer/ui_act(action, list/params) +/obj/machinery/computer/prisoner/gulag_teleporter_computer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return if(isliving(usr)) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) if(!allowed(usr)) to_chat(usr, span_warning("Access denied.")) return @@ -144,7 +144,7 @@ user.log_message("teleported [key_name(prisoner)] to the Labor Camp [COORD(beacon)] for [id_goal_not_set ? "default goal of ":""][contained_id.goal] points.", LOG_GAME) prisoner.log_message("teleported to Labor Camp [COORD(beacon)] by [key_name(user)] for [id_goal_not_set ? "default goal of ":""][contained_id.goal] points.", LOG_GAME, log_globally = FALSE) teleporter.handle_prisoner(contained_id, temporary_record) - playsound(src, 'sound/weapons/emitter.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + playsound(src, 'sound/items/weapons/emitter.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) prisoner.forceMove(get_turf(beacon)) prisoner.Paralyze(40) // small travel dizziness to_chat(prisoner, span_warning("The teleportation makes you a little dizzy.")) diff --git a/code/game/machinery/computer/prisoner/management.dm b/code/game/machinery/computer/prisoner/management.dm index ada71bad02304..a971dce2d9d02 100644 --- a/code/game/machinery/computer/prisoner/management.dm +++ b/code/game/machinery/computer/prisoner/management.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY_TYPED(tracked_implants, /obj/item/implant) /obj/machinery/computer/prisoner/management/ui_data(mob/user) var/list/data = list() - data["authorized"] = (authenticated && isliving(user)) || isAdminGhostAI(user) || issilicon(user) + data["authorized"] = (authenticated && isliving(user)) || HAS_SILICON_ACCESS(user) data["inserted_id"] = null if(!isnull(contained_id)) data["inserted_id"] = list( @@ -43,7 +43,7 @@ GLOBAL_LIST_EMPTY_TYPED(tracked_implants, /obj/item/implant) return data -/obj/machinery/computer/prisoner/management/ui_act(action, list/params) +/obj/machinery/computer/prisoner/management/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -52,20 +52,20 @@ GLOBAL_LIST_EMPTY_TYPED(tracked_implants, /obj/item/implant) CRASH("[usr] potentially spoofed ui action [action] on prisoner console without the console being logged in.") if(isliving(usr)) - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_prompt_confirm.ogg', 50, FALSE) switch(action) if("login") if(allowed(usr)) authenticated = TRUE - playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) else - playsound(src, 'sound/machines/terminal_error.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 50, FALSE) return TRUE if("logout") authenticated = FALSE - playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 50, FALSE) return TRUE if("insert_id") diff --git a/code/game/machinery/computer/records/records.dm b/code/game/machinery/computer/records/records.dm index e8d8beef854dd..7d01d973549b3 100644 --- a/code/game/machinery/computer/records/records.dm +++ b/code/game/machinery/computer/records/records.dm @@ -57,7 +57,7 @@ expunge_record_info(target) balloon_alert(user, "record expunged") - playsound(src, 'sound/machines/terminal_eject.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 70, TRUE) investigate_log("[key_name(user)] expunged the record of [target.name].", INVESTIGATE_RECORDS) return TRUE @@ -69,7 +69,7 @@ if("logout") balloon_alert(user, "logged out") - playsound(src, 'sound/machines/terminal_off.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 70, TRUE) authenticated = FALSE return TRUE @@ -82,14 +82,14 @@ ui.close() balloon_alert(user, "purging records...") - playsound(src, 'sound/machines/terminal_alert.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_alert.ogg', 70, TRUE) if(do_after(user, 5 SECONDS)) for(var/datum/record/crew/entry in GLOB.manifest.general) expunge_record_info(entry) balloon_alert(user, "records purged") - playsound(src, 'sound/machines/terminal_off.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_off.ogg', 70, TRUE) investigate_log("[key_name(user)] purged all records.", INVESTIGATE_RECORDS) else balloon_alert(user, "interrupted!") @@ -100,7 +100,6 @@ if(!target) return FALSE - playsound(src, SFX_TERMINAL_TYPE, 50, TRUE) update_preview(user, params["assigned_view"], target) return TRUE @@ -140,23 +139,23 @@ if(!authenticated && !allowed(user)) balloon_alert(user, "access denied") - playsound(src, 'sound/machines/terminal_error.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 70, TRUE) return FALSE - if(mugshot.picture.psize_x > world.icon_size || mugshot.picture.psize_y > world.icon_size) + if(mugshot.picture.psize_x > ICON_SIZE_X || mugshot.picture.psize_y > ICON_SIZE_Y) balloon_alert(user, "photo too large!") - playsound(src, 'sound/machines/terminal_error.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 70, TRUE) return FALSE var/trimmed = copytext(mugshot.name, 9, MAX_NAME_LEN) // Remove "photo - " - var/name = tgui_input_text(user, "Enter the name of the new record.", "New Record", trimmed, MAX_NAME_LEN) + var/name = tgui_input_text(user, "Enter the name of the new record.", "New Record", trimmed, max_length = MAX_NAME_LEN) if(!name || !is_operational || !user.can_perform_action(src, ALLOW_SILICON_REACH) || !mugshot || QDELETED(mugshot) || QDELETED(src)) return FALSE new /datum/record/crew(name = name, character_appearance = mugshot.picture.picture_image) balloon_alert(user, "record created") - playsound(src, 'sound/machines/terminal_insert_disc.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 70, TRUE) qdel(mugshot) @@ -169,10 +168,10 @@ if(!allowed(user)) balloon_alert(user, "access denied") - playsound(src, 'sound/machines/terminal_error.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 70, TRUE) return FALSE balloon_alert(user, "logged in") - playsound(src, 'sound/machines/terminal_on.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_on.ogg', 70, TRUE) return TRUE diff --git a/code/game/machinery/computer/records/security.dm b/code/game/machinery/computer/records/security.dm index dac62612a4c74..8b32bf9af0a15 100644 --- a/code/game/machinery/computer/records/security.dm +++ b/code/game/machinery/computer/records/security.dm @@ -102,6 +102,7 @@ paid = warrant.paid, time = warrant.time, valid = warrant.valid, + voider = warrant.voider, )) var/list/crimes = list() @@ -113,6 +114,7 @@ name = crime.name, time = crime.time, valid = crime.valid, + voider = crime.voider, )) records += list(list( @@ -202,13 +204,13 @@ var/input_name = strip_html_full(params["name"], MAX_CRIME_NAME_LEN) if(!input_name) to_chat(usr, span_warning("You must enter a name for the crime.")) - playsound(src, 'sound/machines/terminal_error.ogg', 75, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 75, TRUE) return FALSE var/max = CONFIG_GET(number/maxfine) if(params["fine"] > max) to_chat(usr, span_warning("The maximum fine is [max] credits.")) - playsound(src, 'sound/machines/terminal_error.ogg', 75, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 75, TRUE) return FALSE var/input_details @@ -250,8 +252,8 @@ editing_crime.name = new_name return TRUE - if(params["details"] && length(params["description"]) > 2 && params["name"] != editing_crime.name) - var/new_details = strip_html_full(params["details"], MAX_MESSAGE_LEN) + if(params["description"] && length(params["description"]) > 2 && params["name"] != editing_crime.name) + var/new_details = strip_html_full(params["description"], MAX_MESSAGE_LEN) investigate_log("[user] edited crime \"[editing_crime.name]\" for target: \"[target.name]\", changing the details to: \"[new_details]\" from: \"[editing_crime.details]\".", INVESTIGATE_RECORDS) editing_crime.details = new_details return TRUE @@ -269,6 +271,9 @@ /// Only qualified personnel can edit records. /obj/machinery/computer/records/security/proc/has_armory_access(mob/user) + if (HAS_SILICON_ACCESS(user)) + return TRUE + if(!isliving(user)) return FALSE var/mob/living/player = user @@ -284,16 +289,22 @@ /// Voids crimes, or sets someone to discharged if they have none left. /obj/machinery/computer/records/security/proc/invalidate_crime(mob/user, datum/record/crew/target, list/params) - if(!has_armory_access(user)) - return FALSE var/datum/crime/to_void = locate(params["crime_ref"]) in target.crimes + var/acquitted = TRUE if(!to_void) + to_void = locate(params["crime_ref"]) in target.citations + // No need to change status after invalidatation of citation + acquitted = FALSE + if(!to_void) + return FALSE + + if(user != to_void.author && !has_armory_access(user)) return FALSE to_void.valid = FALSE + to_void.voider = user investigate_log("[key_name(user)] has invalidated [target.name]'s crime: [to_void.name]", INVESTIGATE_RECORDS) - var/acquitted = TRUE for(var/datum/crime/incident in target.crimes) if(!incident.valid) continue @@ -310,7 +321,7 @@ /// Finishes printing, resets the printer. /obj/machinery/computer/records/security/proc/print_finish(obj/item/printable) printing = FALSE - playsound(src, 'sound/machines/terminal_eject.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 100, TRUE) printable.forceMove(loc) return TRUE @@ -319,7 +330,7 @@ /obj/machinery/computer/records/security/proc/print_record(mob/user, datum/record/crew/target, list/params) if(printing) balloon_alert(user, "printer busy") - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE printing = TRUE diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 0c8b6e58d6e7e..12aa1c3ce0362 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -81,7 +81,7 @@ return data -/obj/machinery/computer/robotics/ui_act(action, params) +/obj/machinery/computer/robotics/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/teleporter.dm b/code/game/machinery/computer/teleporter.dm index d00c5824d8bd3..8cd12610c748b 100644 --- a/code/game/machinery/computer/teleporter.dm +++ b/code/game/machinery/computer/teleporter.dm @@ -84,7 +84,7 @@ power_station.teleporter_hub.update_appearance() power_station.teleporter_hub.calibrated = FALSE -/obj/machinery/computer/teleporter/ui_act(action, params) +/obj/machinery/computer/teleporter/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/computer/telescreen.dm b/code/game/machinery/computer/telescreen.dm index c421ca0c90308..6021c954cabfc 100644 --- a/code/game/machinery/computer/telescreen.dm +++ b/code/game/machinery/computer/telescreen.dm @@ -40,6 +40,8 @@ circuit = null interaction_flags_atom = INTERACT_ATOM_UI_INTERACT | INTERACT_ATOM_NO_FINGERPRINT_INTERACT | INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND | INTERACT_MACHINE_REQUIRES_SIGHT frame_type = /obj/item/wallframe/telescreen/entertainment + /// Virtual radio inside of the entertainment monitor to broadcast audio + var/obj/item/radio/entertainment/speakers/speakers var/icon_state_off = "entertainment_blank" var/icon_state_on = "entertainment" @@ -53,20 +55,74 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/entertai /obj/machinery/computer/security/telescreen/entertainment/Initialize(mapload) . = ..() - RegisterSignal(src, COMSIG_CLICK, PROC_REF(BigClick)) find_and_hang_on_wall() + speakers = new(src) -// Bypass clickchain to allow humans to use the telescreen from a distance -/obj/machinery/computer/security/telescreen/entertainment/proc/BigClick() - SIGNAL_HANDLER +/obj/machinery/computer/security/telescreen/entertainment/Destroy() + . = ..() + QDEL_NULL(speakers) - if(!network.len) - balloon_alert(usr, "nothing on TV!") - return +/obj/machinery/computer/security/telescreen/entertainment/examine(mob/user) + . = ..() + . += length(network) ? span_notice("The TV is broadcasting something!") : span_notice("There's nothing on TV.") + +/obj/machinery/computer/security/telescreen/entertainment/ui_state(mob/user) + return GLOB.always_state + +// Snowflake ui status to allow mobs to watch TV from across the room, +// but only allow adjacent mobs / tk users / silicon to change the channel +/obj/machinery/computer/security/telescreen/entertainment/ui_status(mob/living/user, datum/ui_state/state) + if(!can_watch_tv(user)) + return UI_CLOSE + if(!isliving(user)) + return isAdminGhostAI(user) ? UI_INTERACTIVE : UI_UPDATE + if(user.stat >= SOFT_CRIT) + return UI_UPDATE + + var/can_range = FALSE + if(iscarbon(user)) + var/mob/living/carbon/carbon_user = user + if(carbon_user.dna?.check_mutation(/datum/mutation/human/telekinesis) && tkMaxRangeCheck(user, src)) + can_range = TRUE + if(HAS_SILICON_ACCESS(user) || (user.interaction_range && user.interaction_range >= get_dist(user, src))) + can_range = TRUE + + if((can_range || user.CanReach(src)) && ISADVANCEDTOOLUSER(user)) + if(user.incapacitated) + return UI_UPDATE + if(!can_range && user.can_hold_items() && (user.usable_hands <= 0 || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))) + return UI_UPDATE + return UI_INTERACTIVE + return UI_UPDATE + +/obj/machinery/computer/security/telescreen/entertainment/Click(location, control, params) + if(world.time <= usr.next_click + 1) + return // just so someone can't turn an auto clicker on and spam tvs + . = ..() + if(!can_watch_tv(usr)) + return + if((!length(network) && !Adjacent(usr)) || LAZYACCESS(params2list(params), SHIFT_CLICK)) // let people examine + return + // Lets us see the tv regardless of click results INVOKE_ASYNC(src, TYPE_PROC_REF(/atom, interact), usr) -///Sets the monitor's icon to the selected state, and says an announcement +/obj/machinery/computer/security/telescreen/entertainment/proc/can_watch_tv(mob/living/watcher) + if(!is_operational) + return FALSE + if((watcher.sight & SEE_OBJS) || HAS_SILICON_ACCESS(watcher)) + if(get_dist(watcher, src) > 7) + return FALSE + else + if(!can_see(watcher, src, 7)) + return FALSE + if(watcher.is_blind()) + return FALSE + if(!isobserver(watcher) && watcher.stat >= UNCONSCIOUS) + return FALSE + return TRUE + +/// Sets the monitor's icon to the selected state, and says an announcement /obj/machinery/computer/security/telescreen/entertainment/proc/notify(on, announcement) if(on && icon_state == icon_state_off) icon_state = icon_state_on @@ -185,11 +241,23 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/ce, 32) frame_type = /obj/item/wallframe/telescreen/cmo /obj/item/wallframe/telescreen/cmo - name = "\improper Chief Engineer'stelescreen frame" + name = "\improper Chief Medical Officer's telescreen frame" result_path = /obj/machinery/computer/security/telescreen/cmo MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/cmo, 32) +/obj/machinery/computer/security/telescreen/med_sec + name = "\improper medical telescreen" + desc = "A telescreen with access to the medbay's camera network." + network = list(CAMERANET_NETWORK_MEDBAY) + frame_type = /obj/item/wallframe/telescreen/med_sec + +/obj/item/wallframe/telescreen/med_sec + name = "\improper medical telescreen frame" + result_path = /obj/machinery/computer/security/telescreen/med_sec + +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/security/telescreen/med_sec, 32) + /obj/machinery/computer/security/telescreen/vault name = "vault monitor" desc = "A telescreen that connects to the vault's camera network." diff --git a/code/game/machinery/computer/warrant.dm b/code/game/machinery/computer/warrant.dm index 1e3557f76f046..71455fc5a2e40 100644 --- a/code/game/machinery/computer/warrant.dm +++ b/code/game/machinery/computer/warrant.dm @@ -88,26 +88,26 @@ if(!isliving(user) || issilicon(user)) to_chat(user, span_warning("ACCESS DENIED")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/mob/living/player = user var/obj/item/card/id/auth = player.get_idcard(TRUE) if(!auth) to_chat(user, span_warning("ACCESS DENIED: No ID card detected.")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/datum/bank_account/account = auth.registered_account if(!account?.account_holder || account.account_holder == "Unassigned") to_chat(user, span_warning("ACCESS DENIED: No account linked to ID.")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/amount = params["amount"] if(!amount || !isnum(amount) || amount > warrant.fine || !account.adjust_money(-amount, "Paid fine for [target.name]")) to_chat(user, span_warning("ACCESS DENIED: Invalid amount.")) - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE account.bank_card_talk("You have paid [amount]cr towards [target.name]'s fine of [warrant.fine]cr.") @@ -133,12 +133,13 @@ return TRUE warrant.alert_owner(user, src, target.name, "One of your outstanding warrants has been completely paid.") + warrant.valid = FALSE return TRUE /// Finishes printing, resets the printer. /obj/machinery/computer/warrant/proc/print_finish(obj/item/paper/bounty) printing = FALSE - playsound(src, 'sound/machines/terminal_eject.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 100, TRUE) bounty.forceMove(loc) return TRUE @@ -147,7 +148,7 @@ /obj/machinery/computer/warrant/proc/print_bounty(mob/user, list/params) if(printing) balloon_alert(user, "printer busy") - playsound(src, 'sound/machines/terminal_error.ogg', 100, TRUE) + playsound(src, 'sound/machines/terminal/terminal_error.ogg', 100, TRUE) return FALSE var/datum/record/crew/target = locate(params["crew_ref"]) in GLOB.manifest.general diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 45daa1966a635..43946538ac51b 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -50,11 +50,11 @@ return UI_CLOSE if(!allowed(user)) to_chat(user,span_warning("Error: Access Denied.")) - user.playsound_local(src, 'sound/misc/compiler-failure.ogg', 25, TRUE) + user.playsound_local(src, 'sound/machines/compiler/compiler-failure.ogg', 25, TRUE) return UI_CLOSE if(!length(music_player.songs)) to_chat(user,span_warning("Error: No music tracks have been authorized for your station. Petition Central Command to resolve this issue.")) - user.playsound_local(src, 'sound/misc/compiler-failure.ogg', 25, TRUE) + user.playsound_local(src, 'sound/machines/compiler/compiler-failure.ogg', 25, TRUE) return UI_CLOSE return ..() @@ -67,7 +67,7 @@ /obj/machinery/jukebox/ui_data(mob/user) return music_player.get_ui_data() -/obj/machinery/jukebox/ui_act(action, list/params) +/obj/machinery/jukebox/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -79,7 +79,7 @@ to_chat(usr, span_warning("Error: The device is still resetting from the last activation, \ it will be ready again in [DisplayTimeText(COOLDOWN_TIMELEFT(src, jukebox_song_cd))].")) if(COOLDOWN_FINISHED(src, jukebox_error_cd)) - playsound(src, 'sound/misc/compiler-failure.ogg', 33, TRUE) + playsound(src, 'sound/machines/compiler/compiler-failure.ogg', 33, TRUE) COOLDOWN_START(src, jukebox_error_cd, 15 SECONDS) return TRUE @@ -134,7 +134,7 @@ if(!QDELING(src)) COOLDOWN_START(src, jukebox_song_cd, 10 SECONDS) - playsound(src,'sound/machines/terminal_off.ogg',50,TRUE) + playsound(src,'sound/machines/terminal/terminal_off.ogg',50,TRUE) update_use_power(IDLE_POWER_USE) update_appearance(UPDATE_ICON_STATE) return TRUE diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index b386ebb376f57..544e58bcabeea 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -12,7 +12,6 @@ interaction_flags_click = ALLOW_SILICON_REACH /// List of dishes the drive can hold var/static/list/collectable_items = list( - /obj/item/trash/waffles, /obj/item/broken_bottle, /obj/item/kitchen/fork, /obj/item/plate, @@ -24,7 +23,6 @@ ) /// List of items the drive detects as trash var/static/list/disposable_items = list( - /obj/item/trash/waffles, /obj/item/broken_bottle, /obj/item/plate_shard, /obj/item/shard, @@ -77,7 +75,7 @@ LAZYREMOVE(dish_drive_contents, dish) user.put_in_hands(dish) balloon_alert(user, "[dish] taken") - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) /obj/machinery/dish_drive/wrench_act(mob/living/user, obj/item/tool) @@ -91,7 +89,7 @@ return LAZYADD(dish_drive_contents, dish) balloon_alert(user, "[dish] placed in drive") - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) return else if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), dish)) @@ -131,7 +129,7 @@ LAZYADD(dish_drive_contents, dish) visible_message(span_notice("[src] beams up [dish]!")) dish.forceMove(src) - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) flick("synthesizer_beam", src) else step_towards(dish, src) @@ -155,7 +153,7 @@ if(!bin) if(manual) visible_message(span_warning("[src] buzzes. There are no disposal bins in range!")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return var/disposed = 0 for(var/obj/item/dish in dish_drive_contents) @@ -168,8 +166,8 @@ disposed++ if (disposed) visible_message(span_notice("[src] [pick("whooshes", "bwooms", "fwooms", "pshooms")] and beams [disposed] stored item\s into the nearby [bin.name].")) - playsound(src, 'sound/items/pshoom.ogg', 50, TRUE) - playsound(bin, 'sound/items/pshoom.ogg', 50, TRUE) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) + playsound(bin, 'sound/items/pshoom/pshoom.ogg', 50, TRUE) Beam(bin, icon_state = "rped_upgrade", time = 5) bin.update_appearance() flick("synthesizer_beam", src) diff --git a/code/game/machinery/dna_infuser/dna_infuser.dm b/code/game/machinery/dna_infuser/dna_infuser.dm index cc2641d32971e..ccc24d44f6e7e 100644 --- a/code/game/machinery/dna_infuser/dna_infuser.dm +++ b/code/game/machinery/dna_infuser/dna_infuser.dm @@ -67,7 +67,7 @@ return if(occupant && infusing_from) if(!occupant.can_infuse(user)) - playsound(src, 'sound/machines/scanbuzz.ogg', 35, vary = TRUE) + playsound(src, 'sound/machines/scanner/scanbuzz.ogg', 35, vary = TRUE) return balloon_alert(user, "starting DNA infusion...") start_infuse() @@ -210,7 +210,6 @@ /// Verify that the given infusion source/mob is a dead creature. /obj/machinery/dna_infuser/proc/is_valid_infusion(atom/movable/target, mob/user) - var/datum/component/edible/food_comp = IS_EDIBLE(target) if(infusing_from) balloon_alert(user, "empty the machine first!") return FALSE @@ -219,11 +218,8 @@ if(living_target.stat != DEAD) balloon_alert(user, "only dead creatures!") return FALSE - else if(food_comp) - if(!(food_comp.foodtypes & GORE)) - balloon_alert(user, "only creatures!") - return FALSE - else + else if(!HAS_TRAIT(target, TRAIT_VALID_DNA_INFUSION)) + balloon_alert(user, "only creatures!") return FALSE return TRUE diff --git a/code/game/machinery/dna_infuser/infuser_actions.dm b/code/game/machinery/dna_infuser/infuser_actions.dm new file mode 100644 index 0000000000000..1b55059bb9899 --- /dev/null +++ b/code/game/machinery/dna_infuser/infuser_actions.dm @@ -0,0 +1,61 @@ +///Action from the inky tongue, from fish with the ink production trait. +/datum/action/cooldown/ink_spit + name = "Spit Ink" + desc = "Spits ink at someone, blinding them temporarily." + button_icon = 'icons/hud/radial_fishing.dmi' + button_icon_state = "oil" + base_background_icon_state = "bg_default" + active_background_icon_state = "bg_default_on" + check_flags = AB_CHECK_IMMOBILE | AB_CHECK_CONSCIOUS | AB_CHECK_INCAPACITATED + click_to_activate = TRUE + unset_after_click = TRUE + cooldown_time = 21 SECONDS + +/datum/action/cooldown/ink_spit/IsAvailable(feedback = FALSE) + var/mob/living/carbon/as_carbon = owner + if(istype(as_carbon) && as_carbon.is_mouth_covered(ITEM_SLOT_MASK)) + return FALSE + if(!isturf(owner.loc)) + return FALSE + return ..() + +/datum/action/cooldown/ink_spit/set_click_ability(mob/on_who) + . = ..() + if(!.) + return + + to_chat(on_who, span_notice("You prepare your ink glands. Right-click to fire at a target!")) + build_all_button_icons() + +/datum/action/cooldown/ink_spit/unset_click_ability(mob/on_who, refund_cooldown = TRUE) + . = ..() + if(!.) + return + + build_all_button_icons() + +// We do this in InterceptClickOn() instead of Activate() +// because we use the click parameters for aiming the projectile +// (or something like that) +/datum/action/cooldown/ink_spit/InterceptClickOn(mob/living/caller, params, atom/target) + if(!LAZYACCESS(params2list(params), RIGHT_CLICK)) + return + . = ..() + + var/modifiers = params2list(params) + caller.visible_message( + span_danger("[caller] spits ink!"), + span_bold("You spit ink."), + ) + var/obj/projectile/ink_spit/ink = new /obj/projectile/ink_spit(caller.loc) + ink.preparePixelProjectile(target, caller, modifiers) + ink.firer = caller + ink.fire() + playsound(caller, 'sound/items/weapons/pierce.ogg', 20, TRUE, -1) + caller.newtonian_move(get_angle(target, caller)) + StartCooldown() + return TRUE + +// Has to return TRUE, otherwise is skipped. +/datum/action/cooldown/ink_spit/Activate(atom/target) + return TRUE diff --git a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_one_entries.dm b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_one_entries.dm index d24a951d76b52..faa3683b9a27b 100644 --- a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_one_entries.dm +++ b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_one_entries.dm @@ -1,6 +1,6 @@ /* * Tier one entries are unlocked at the start, and are for dna mutants that are: - * - easy to aquire (rats) + * - easy to acquire (rats) * - have a bonus for getting past a threshold * - might serve a job purpose for others (goliath) and thus should be gainable early enough */ @@ -105,3 +105,86 @@ infusion_desc = "kafkaesque" // Gregor Samsa !! tier = DNA_MUTANT_TIER_ONE status_effect_type = /datum/status_effect/organ_set_bonus/roach + +/datum/infuser_entry/fish + name = "Fish" + infuse_mob_name = "fish" + desc = "Aquatic life comes in several forms. A fisherman could tell you more about it, but that's beside the point. \ + This infusion comes with many benefits and one potential major drawback being fish-mutated lungs, with \ + additional organs depending on the traits of the fish used for the infusion." + threshold_desc = "While wet, you're slightly sturdier, immune to slips, and both slippery and faster while crawling. \ + Drinking water and showers heal you, and it takes longer to dry out, however you're weaker when dry. \ + Finally, you resist high pressures and are better at fishing. " + qualities = list( + "faster in water", + "resistant to food diseases", + "enjoy eating raw fish", + "flopping and waddling", + "fishing is easier", + "Need water. badly!", + "possibly more", + ) + input_obj_or_mob = list( + /obj/item/fish, + ) + output_organs = list( + /obj/item/organ/internal/lungs/fish, + /obj/item/organ/internal/stomach/fish, + /obj/item/organ/external/tail/fish, + ) + infusion_desc = "piscine" + tier = DNA_MUTANT_TIER_ONE + status_effect_type = /datum/status_effect/organ_set_bonus/fish + +/datum/infuser_entry/squid + name = "Ink Production" + infuse_mob_name = "ink-producing sealife" + desc = "Some marine mollusks like cuttlefish, squids and octopus release ink when threatened as a smokescreen for their escape. \ + This kind of infusion enhances the salivary glands, producing excessive quantities of ink which can later be spat to blind foes." + threshold_desc = DNA_INFUSION_NO_THRESHOLD + qualities = list( + "spit ink to blind foes", + ) + output_organs = list( + /obj/item/organ/internal/tongue/inky + ) + tier = DNA_MUTANT_TIER_ONE + +/datum/infuser_entry/ttx_healing + name = "TTX healing" + infuse_mob_name = "Tetraodontiformes" + desc = "Fish of the Tetraodontiformes (pufferfish etc.) order are known for the highly poisonous tetrodotoxin (TTX) in their bodies. \ + Extracting their DNA can provide a way to utilize it for healing instead. It also enables better alcohol metabolization." + threshold_desc = DNA_INFUSION_NO_THRESHOLD + qualities = list( + "TTX healing", + "drink like a fish", + ) + output_organs = list( + /obj/item/organ/internal/liver/fish + ) + tier = DNA_MUTANT_TIER_ONE + unreachable_effect = TRUE + status_effect_type = /datum/status_effect/organ_set_bonus/fish + +/datum/infuser_entry/amphibious + name = "Amphibious" + infuse_mob_name = "Semi-aquatic critters" + desc = "Some animals breathe air, some breath water, a few can breath both, even if none (at least on Earth) can breathe in space." + threshold_desc = DNA_INFUSION_NO_THRESHOLD + qualities = list( + "no need to breathe while wet", + "can beathe water vapor", + ) + input_obj_or_mob = list( + /mob/living/basic/frog, + /mob/living/basic/axolotl, + /mob/living/basic/crab, + ) + output_organs = list( + /obj/item/organ/internal/lungs/fish/amphibious, + ) + infusion_desc = "semi-aquatic" + tier = DNA_MUTANT_TIER_ONE + unreachable_effect = TRUE + status_effect_type = /datum/status_effect/organ_set_bonus/fish diff --git a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_two_entries.dm b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_two_entries.dm index 5eb13847bb5a0..1620607d5f09c 100644 --- a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_two_entries.dm +++ b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_two_entries.dm @@ -1,6 +1,6 @@ /* * Tier two entries are unlocked after infusing someone/being infused and achieving a bonus, and are for dna mutants that are: - * - harder to aquire (gondolas) but not *necessarily* requiring job help + * - harder to acquire (gondolas) but not *necessarily* requiring job help * - have a bonus for getting past a threshold * * todos for the future: diff --git a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm index 235986cbd0ddb..e93cffd51437b 100644 --- a/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm +++ b/code/game/machinery/dna_infuser/infuser_entries/infuser_tier_zero_entries.dm @@ -69,13 +69,37 @@ infusion_desc = "fluffy" tier = DNA_MUTANT_TIER_ZERO +/datum/infuser_entry/lizard + name = "Lizard" + infuse_mob_name = "lacertilia" + desc = "Turns out infusing most humanoids with lizard DNA creates features remarkably similar to those of lizardpeople. What a strange coincidence." + threshold_desc = DNA_INFUSION_NO_THRESHOLD + qualities = list( + "long tails", + "decorative horns", + "aesthetic snouts", + "not much honestly", + ) + input_obj_or_mob = list( + /mob/living/basic/lizard, + ) + output_organs = list( + /obj/item/organ/external/horns, + /obj/item/organ/external/frills, + /obj/item/organ/external/snout, + /obj/item/organ/external/tail/lizard, + /obj/item/organ/internal/tongue/lizard, + ) + infusion_desc = "scaly" + tier = DNA_MUTANT_TIER_ZERO + /datum/infuser_entry/felinid name = "Cat" infuse_mob_name = "feline" desc = "EVERYONE CALM DOWN! I'm not implying anything with this entry. Are we really so surprised that felinids are humans with mixed feline DNA?" threshold_desc = DNA_INFUSION_NO_THRESHOLD qualities = list( - "oh, let me guess, you're a big fan of those japanese tourist bots", + "oh, let me guess, you're a big fan of those Japanese tourist bots", ) input_obj_or_mob = list( /mob/living/basic/pet/cat, diff --git a/code/game/machinery/dna_infuser/infuser_entry.dm b/code/game/machinery/dna_infuser/infuser_entry.dm index 8b0bcfb3f790d..55ac43d1bf4e6 100644 --- a/code/game/machinery/dna_infuser/infuser_entry.dm +++ b/code/game/machinery/dna_infuser/infuser_entry.dm @@ -28,8 +28,16 @@ GLOBAL_LIST_INIT(infuser_entries, prepare_infuser_entries()) ) /// status effect type of the corresponding bonus, if it has one. tier zero won't ever set this. var/status_effect_type - /// essentially how difficult it is to get this infusion, and if it will be locked behind some progression. see defines for more info - /// ...overwrite this, please + /** + * This var clarifies that while the infuser entry has organs that contribute towards an organ set bonus + * It cannot reach the organ threshold of the bonus on its own, meaning it relies on some other infuser entry for that. + * This is mainly the case for fish organs from fish with specific traits, for example. We don't want the unit test to bith about it. + */ + var/unreachable_effect = FALSE + /** + * essentially how difficult it is to get this infusion, and if it will be locked behind some progression. see defines for more info + * ...overwrite this, please + */ var/tier = DNA_MUTANT_UNOBTAINABLE //-- Vars for DNA Infuser Machine --// diff --git a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm index 0c181ad043e77..622cafaa7bfde 100644 --- a/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/carp_organs.dm @@ -10,6 +10,8 @@ bonus_activate_text = span_notice("Carp DNA is deeply infused with you! You've learned how to propel yourself through space!") bonus_deactivate_text = span_notice("Your DNA is once again mostly yours, and so fades your ability to space-swim...") bonus_traits = list(TRAIT_SPACEWALK) + limb_overlay = /datum/bodypart_overlay/texture/carpskin + color_overlay_priority = LIMB_COLOR_CARP_INFUSION ///Carp lungs! You can breathe in space! Oh... you can't breathe on the station, you need low oxygen environments. /// Inverts behavior of lungs. Bypasses suffocation due to space / lack of gas, but also allows Oxygen to suffocate. @@ -58,11 +60,12 @@ var/datum/species/rec_species = human_receiver.dna.species rec_species.update_no_equip_flags(tongue_owner, rec_species.no_equip_flags | ITEM_SLOT_MASK) -/obj/item/organ/internal/tongue/carp/on_bodypart_insert(obj/item/bodypart/limb) +/obj/item/organ/internal/tongue/carp/on_bodypart_insert(obj/item/bodypart/head) . = ..() - limb.unarmed_damage_low = 10 - limb.unarmed_damage_high = 15 - limb.unarmed_effectiveness = 15 + head.unarmed_damage_low = 10 + head.unarmed_damage_high = 15 + head.unarmed_effectiveness = 15 + head.unarmed_attack_effect = ATTACK_EFFECT_BITE /obj/item/organ/internal/tongue/carp/on_mob_remove(mob/living/carbon/tongue_owner) . = ..() @@ -76,10 +79,10 @@ /obj/item/organ/internal/tongue/carp/on_bodypart_remove(obj/item/bodypart/head) . = ..() - head.unarmed_damage_low = initial(head.unarmed_damage_low) head.unarmed_damage_high = initial(head.unarmed_damage_high) head.unarmed_effectiveness = initial(head.unarmed_effectiveness) + head.unarmed_attack_effect = initial(head.unarmed_attack_effect) /obj/item/organ/internal/tongue/carp/on_life(seconds_per_tick, times_fired) . = ..() @@ -104,6 +107,7 @@ icon_state = "brain" greyscale_config = /datum/greyscale_config/mutant_organ greyscale_colors = CARP_COLORS + can_smoothen_out = FALSE ///Timer counting down. When finished, the owner gets a bad moodlet. var/cooldown_timer diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm new file mode 100644 index 0000000000000..e7c89594e2c0e --- /dev/null +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -0,0 +1,388 @@ +#define FISH_ORGAN_COLOR "#875652" //dark moderate magenta +#define FISH_SCLERA_COLOR COLOR_WHITE +#define FISH_PUPIL_COLOR COLOR_BLUE +#define FISH_COLORS FISH_ORGAN_COLOR + FISH_SCLERA_COLOR + FISH_PUPIL_COLOR + +///bonus of the observing gondola: you can ignore environmental hazards +/datum/status_effect/organ_set_bonus/fish + id = "organ_set_bonus_fish" + tick_interval = 1 SECONDS + organs_needed = 3 + bonus_activate_text = span_notice("Fish DNA is deeply infused with you! While wet, you crawl faster, are slippery, and cannot slip, and it takes longer to dry out. \ + You're also more resistant to high pressure, better at fishing, but less resilient when dry, especially against burns.") + bonus_deactivate_text = span_notice("You no longer feel as fishy. The moisture around your body begins to dissipate faster...") + bonus_traits = list( + TRAIT_RESISTHIGHPRESSURE, + TRAIT_EXPERT_FISHER, + TRAIT_EXAMINE_FISH, + TRAIT_EXAMINE_DEEPER_FISH, + TRAIT_REVEAL_FISH, + TRAIT_EXAMINE_FISHING_SPOT, + TRAIT_WET_FOR_LONGER, + TRAIT_SLIPPERY_WHEN_WET, + TRAIT_EXPANDED_FOV, //fish vision + TRAIT_WATER_ADAPTATION, + ) + +/datum/status_effect/organ_set_bonus/fish/enable_bonus() + . = ..() + if(!.) + return + RegisterSignals(owner, list(COMSIG_CARBON_GAIN_ORGAN, COMSIG_CARBON_LOSE_ORGAN), PROC_REF(check_tail)) + RegisterSignals(owner, list(SIGNAL_ADDTRAIT(TRAIT_IS_WET), SIGNAL_REMOVETRAIT(TRAIT_IS_WET)), PROC_REF(update_wetness)) + RegisterSignals(owner, COMSIG_LIVING_GET_PERCEIVED_FOOD_QUALITY, PROC_REF(get_perceived_food_quality)) + + if(ishuman(owner)) + var/mob/living/carbon/human/human = owner + human.physiology.damage_resistance += 8 //base 8% damage resistance, much wow. + if(!HAS_TRAIT(owner, TRAIT_IS_WET)) + apply_debuff() + else + ADD_TRAIT(owner, TRAIT_GRABRESISTANCE, REF(src)) + owner.add_mood_event("fish_organs_bonus", /datum/mood_event/fish_water) + if(HAS_TRAIT(owner, TRAIT_IS_WET) && istype(owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL), /obj/item/organ/external/tail/fish)) + add_speed_buff() + owner.mind?.adjust_experience(/datum/skill/fishing, SKILL_EXP_JOURNEYMAN, silent = TRUE) + +/datum/status_effect/organ_set_bonus/fish/disable_bonus() + . = ..() + UnregisterSignal(owner, list( + COMSIG_CARBON_GAIN_ORGAN, + COMSIG_CARBON_LOSE_ORGAN, + SIGNAL_ADDTRAIT(TRAIT_IS_WET), + SIGNAL_REMOVETRAIT(TRAIT_IS_WET), + COMSIG_LIVING_TREAT_MESSAGE, + COMSIG_LIVING_GET_PERCEIVED_FOOD_QUALITY, + )) + if(!HAS_TRAIT(owner, TRAIT_IS_WET)) + remove_debuff() + else + REMOVE_TRAIT(owner, TRAIT_GRABRESISTANCE, REF(src)) + owner.clear_mood_event("fish_organs_bonus") + if(ishuman(owner)) + var/mob/living/carbon/human/human = owner + human.physiology.damage_resistance -= 8 + if(HAS_TRAIT(owner, TRAIT_IS_WET) && istype(owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL), /obj/item/organ/external/tail/fish)) + remove_speed_buff() + owner.mind?.adjust_experience(/datum/skill/fishing, -SKILL_EXP_JOURNEYMAN, silent = TRUE) + +/datum/status_effect/organ_set_bonus/fish/proc/get_perceived_food_quality(datum/source, datum/component/edible/edible, list/extra_quality) + SIGNAL_HANDLER + if(HAS_TRAIT(edible.parent, TRAIT_GREAT_QUALITY_BAIT)) + extra_quality += LIKED_FOOD_QUALITY_CHANGE * 3 + else if(HAS_TRAIT(edible.parent, TRAIT_GOOD_QUALITY_BAIT)) + extra_quality += LIKED_FOOD_QUALITY_CHANGE * 2 + else if(HAS_TRAIT(edible.parent, TRAIT_BASIC_QUALITY_BAIT)) + extra_quality += LIKED_FOOD_QUALITY_CHANGE + +/datum/status_effect/organ_set_bonus/fish/tick(seconds_between_ticks) + . = ..() + if(!bonus_active || !HAS_TRAIT(owner, TRAIT_IS_WET)) + return + owner.adjust_bodytemperature(-2 * seconds_between_ticks, min_temp = owner.get_body_temp_normal()) + owner.adjustStaminaLoss(-1.5 * seconds_between_ticks) + +/datum/status_effect/organ_set_bonus/fish/proc/update_wetness(datum/source) + SIGNAL_HANDLER + if(HAS_TRAIT(owner, TRAIT_IS_WET)) //remove the debuffs from being dry + remove_debuff() + if(istype(owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL), /obj/item/organ/external/tail/fish)) + add_speed_buff() + return + apply_debuff() + if(istype(owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL), /obj/item/organ/external/tail/fish)) + remove_speed_buff() + +/datum/status_effect/organ_set_bonus/fish/proc/apply_debuff() + REMOVE_TRAIT(owner, TRAIT_GRABRESISTANCE, REF(src)) + owner.add_movespeed_modifier(/datum/movespeed_modifier/fish_waterless) + owner.add_mood_event("fish_organs_bonus", /datum/mood_event/fish_waterless) + if(!ishuman(owner)) + return + var/mob/living/carbon/human/human = owner + human.physiology.burn_mod *= 1.5 + human.physiology.heat_mod *= 1.2 + human.physiology.brute_mod *= 1.1 + human.physiology.stun_mod *= 1.1 + human.physiology.knockdown_mod *= 1.1 + human.physiology.stamina_mod *= 1.1 + human.physiology.damage_resistance -= 16 //from +8% to -8% + +/datum/status_effect/organ_set_bonus/fish/proc/remove_debuff() + ADD_TRAIT(owner, TRAIT_GRABRESISTANCE, REF(src)) //harder to grab when wet. + owner.remove_movespeed_modifier(/datum/movespeed_modifier/fish_waterless) + owner.add_mood_event("fish_organs_bonus", /datum/mood_event/fish_water) + if(!ishuman(owner)) + return + var/mob/living/carbon/human/human = owner + human.physiology.burn_mod /= 1.5 + human.physiology.heat_mod /= 1.2 + human.physiology.brute_mod /= 1.1 + human.physiology.stun_mod /= 1.1 + human.physiology.knockdown_mod /= 1.1 + human.physiology.stamina_mod /= 1.1 + human.physiology.damage_resistance += 16 //from -8% to +8% + +/datum/status_effect/organ_set_bonus/fish/proc/check_tail(mob/living/carbon/source, obj/item/organ/organ, special) + SIGNAL_HANDLER + if(!HAS_TRAIT(owner, TRAIT_IS_WET) || !istype(organ, /obj/item/organ/external/tail/fish)) + return + var/obj/item/organ/tail = owner.get_organ_slot(ORGAN_SLOT_EXTERNAL_TAIL) + if(tail != organ) + remove_speed_buff() + return + add_speed_buff() + +/datum/status_effect/organ_set_bonus/fish/proc/add_speed_buff(datum/source) + SIGNAL_HANDLER + RegisterSignal(owner, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(check_body_position)) + check_body_position() + +/datum/status_effect/organ_set_bonus/fish/proc/remove_speed_buff(datum/source) + SIGNAL_HANDLER + UnregisterSignal(owner, COMSIG_LIVING_SET_BODY_POSITION) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/fish_flopping) + +/datum/status_effect/organ_set_bonus/fish/proc/check_body_position(datum/source) + SIGNAL_HANDLER + if(owner.body_position == LYING_DOWN) + owner.add_movespeed_modifier(/datum/movespeed_modifier/fish_flopping) + else + owner.remove_movespeed_modifier(/datum/movespeed_modifier/fish_flopping) + + +///Tail for fish DNA-infused spacemen. It provides a speed buff while in water. It's also needed for the crawl speed bonus once the threshold is reached. +/obj/item/organ/external/tail/fish + name = "fish tail" + desc = "A severed tail from some sort of marine creature... or a fish-infused spaceman. It's smooth, faintly wet and definitely not flopping." + icon = 'icons/obj/medical/organs/infuser_organs.dmi' + icon_state = "fish_tail" + greyscale_config = /datum/greyscale_config/fish_tail + greyscale_colors = FISH_ORGAN_COLOR + + bodypart_overlay = /datum/bodypart_overlay/mutant/tail/fish + dna_block = DNA_FISH_TAIL_BLOCK + wag_flags = WAG_ABLE + organ_traits = list(TRAIT_FLOPPING) + +/obj/item/organ/external/tail/fish/Initialize(mapload) + . = ..() + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/fish) + +/obj/item/organ/external/tail/fish/on_mob_insert(mob/living/carbon/owner) + . = ..() + owner.AddElementTrait(TRAIT_WADDLING, type, /datum/element/waddling) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(check_location)) + check_location(owner, null) + +/obj/item/organ/external/tail/fish/on_mob_remove(mob/living/carbon/owner) + . = ..() + owner.remove_traits(list(TRAIT_WADDLING, TRAIT_NO_STAGGER), type) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/fish_on_water) + owner.remove_actionspeed_modifier(/datum/actionspeed_modifier/fish_on_water) + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) + +/obj/item/organ/external/tail/fish/get_greyscale_color_from_draw_color() + set_greyscale(bodypart_overlay.draw_color) + +/obj/item/organ/external/tail/fish/proc/check_location(mob/living/carbon/source, atom/movable/old_loc, dir, forced) + SIGNAL_HANDLER + var/was_water = istype(old_loc, /turf/open/water) + var/is_water = istype(source.loc, /turf/open/water) && !HAS_TRAIT(source.loc, TRAIT_TURF_IGNORE_SLOWDOWN) + if(was_water && !is_water) + source.remove_movespeed_modifier(/datum/movespeed_modifier/fish_on_water) + source.remove_actionspeed_modifier(/datum/actionspeed_modifier/fish_on_water) + source.add_traits(list(TRAIT_OFF_BALANCE_TACKLER, TRAIT_NO_STAGGER, TRAIT_NO_THROW_HITPUSH), type) + else if(!was_water && is_water) + source.add_movespeed_modifier(/datum/movespeed_modifier/fish_on_water) + source.add_actionspeed_modifier(/datum/actionspeed_modifier/fish_on_water) + source.add_traits(list(TRAIT_OFF_BALANCE_TACKLER, TRAIT_NO_STAGGER, TRAIT_NO_THROW_HITPUSH), type) + +/datum/bodypart_overlay/mutant/tail/fish + feature_key = "fish_tail" + color_source = ORGAN_COLOR_HAIR + +/datum/bodypart_overlay/mutant/tail/fish/on_mob_insert(obj/item/organ/parent, mob/living/carbon/receiver) + //Initialize the related dna feature block if we don't have any so it doesn't error out. + //This isn't tied to any species, but I kinda want it to be mutable instead of having a fixed sprite accessory. + if(imprint_on_next_insertion && !receiver.dna.features["fish_tail"]) + receiver.dna.features["fish_tail"] = pick(SSaccessories.tails_list_fish) + receiver.dna.update_uf_block(DNA_FISH_TAIL_BLOCK) + + return ..() + +/datum/bodypart_overlay/mutant/tail/fish/get_global_feature_list() + return SSaccessories.tails_list_fish + + +///Lungs that replace the need of oxygen with water vapor or being wet +/obj/item/organ/internal/lungs/fish + name = "mutated gills" + desc = "Fish DNA infused on what once was a normal pair of lungs that now require spacemen to breathe water vapor, or keep themselves covered in water." + icon = 'icons/obj/medical/organs/infuser_organs.dmi' + icon_state = "gills" + + safe_oxygen_min = 0 //We don't breathe this + ///The required partial pressure of water_vapor for not suffocating. + var/safe_water_level = parent_type::safe_oxygen_min + + /// Bodypart overlay applied to the chest where the lungs are in + var/datum/bodypart_overlay/simple/gills/gills + + var/has_gills = TRUE + +/obj/item/organ/internal/lungs/fish/Initialize(mapload) + . = ..() + add_gas_reaction(/datum/gas/water_vapor, always = PROC_REF(breathe_water)) + respiration_type |= RESPIRATION_OXYGEN //after all, we get oxygen from water + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/fish) + if(has_gills) + gills = new() + AddElement(/datum/element/noticable_organ, "%PRONOUN_Theyve a set of gills on %PRONOUN_their neck.", BODY_ZONE_PRECISE_MOUTH) + AddComponent(/datum/component/bubble_icon_override, "fish", BUBBLE_ICON_PRIORITY_ORGAN) + AddComponent(/datum/component/speechmod, replacements = strings("crustacean_replacement.json", "crustacean")) + +/obj/item/organ/internal/lungs/fish/Destroy() + QDEL_NULL(gills) + return ..() + +/obj/item/organ/internal/lungs/fish/on_bodypart_insert(obj/item/bodypart/limb) + . = ..() + if(gills) + limb.add_bodypart_overlay(gills) + +/obj/item/organ/internal/lungs/fish/on_bodypart_remove(obj/item/bodypart/limb) + . = ..() + if(gills) + limb.remove_bodypart_overlay(gills) + +/obj/item/organ/internal/lungs/fish/on_mob_remove(mob/living/carbon/owner) + . = ..() + owner.clear_alert(ALERT_NOT_ENOUGH_WATER) + +/// Requires the spaceman to have either water vapor or be wet. +/obj/item/organ/internal/lungs/fish/proc/breathe_water(mob/living/carbon/breather, datum/gas_mixture/breath, water_pp, old_water_pp) + var/need_to_breathe = !HAS_TRAIT(src, TRAIT_SPACEBREATHING) && !HAS_TRAIT(breather, TRAIT_IS_WET) + if(water_pp < safe_water_level && need_to_breathe) + on_low_water(breather, breath, water_pp) + return + + if(old_water_pp < safe_water_level || breather.failed_last_breath) + breather.failed_last_breath = FALSE + breather.clear_alert(ALERT_NOT_ENOUGH_WATER) + + if(need_to_breathe) + breathe_gas_volume(breath, /datum/gas/water_vapor, /datum/gas/carbon_dioxide) + // Heal mob if not in crit. + if(breather.health >= breather.crit_threshold && breather.oxyloss) + breather.adjustOxyLoss(-5) + +/// Called when there isn't enough water to breath +/obj/item/organ/internal/lungs/fish/proc/on_low_water(mob/living/carbon/breather, datum/gas_mixture/breath, water_pp) + breather.throw_alert(ALERT_NOT_ENOUGH_WATER, /atom/movable/screen/alert/not_enough_water) + var/gas_breathed = handle_suffocation(breather, water_pp, safe_water_level, breath.gases[/datum/gas/water_vapor][MOLES]) + if(water_pp) + breathe_gas_volume(breath, /datum/gas/water_vapor, /datum/gas/carbon_dioxide, volume = gas_breathed) + +// Simple overlay so we can add gills to those with fish lungs +/datum/bodypart_overlay/simple/gills + icon = 'icons/mob/human/fish_features.dmi' + icon_state = "gills" + layers = EXTERNAL_ADJACENT + +/datum/bodypart_overlay/simple/gills/get_image(image_layer, obj/item/bodypart/limb) + return image( + icon = icon, + icon_state = "[icon_state]_[mutant_bodyparts_layertext(image_layer)]", + layer = image_layer, + ) + +/// Subtype of gills that allow the mob to optionally breathe water. +/obj/item/organ/internal/lungs/fish/amphibious + name = "mutated semi-aquatic lungs" + desc = "DNA from an amphibious or semi-aquatic creature infused on a pair lungs. Enjoy breathing underwater without drowning outside water." + safe_oxygen_min = /obj/item/organ/internal/lungs::safe_oxygen_min + has_gills = FALSE + /** + * If false, we don't breathe air since we've got water instead. + * Set to FALSE at the start of each cycle and TRUE on on_low_water() + */ + var/should_breathe_oxygen = FALSE + +/obj/item/organ/internal/lungs/fish/amphibious/Initialize(mapload) + . = ..() + /** + * We're setting the gas reaction for breathing oxygen here, + * since gas reation procs are run in the order they're added, + * and we want breathe_water() to run before breathe_oxygen, + * so that if we're breathing water vapor (or are wet), we won't have to breathe oxygen. + */ + safe_oxygen_min = /obj/item/organ/internal/lungs::safe_oxygen_min + add_gas_reaction(/datum/gas/oxygen, always = PROC_REF(breathe_oxygen)) + +/obj/item/organ/internal/lungs/fish/amphibious/check_breath(datum/gas_mixture/breath, mob/living/carbon/human/breather) + should_breathe_oxygen = FALSE //assume we don't have to breathe oxygen until we fail to breathe water + return ..() + +/obj/item/organ/internal/lungs/fish/amphibious/on_low_water(mob/living/carbon/breather, datum/gas_mixture/breath, water_pp) + should_breathe_oxygen = TRUE + return + +/obj/item/organ/internal/lungs/fish/amphibious/breathe_oxygen(mob/living/carbon/breather, datum/gas_mixture/breath, o2_pp, old_o2_pp) + if(!should_breathe_oxygen) + if(breather.failed_last_breath) //in case we had neither oxygen nor water last tick. + breather.clear_alert(ALERT_NOT_ENOUGH_OXYGEN) + return + return ..() + +///Fish infuser organ, allows mobs to safely eat raw fish. +/obj/item/organ/internal/stomach/fish + name = "mutated fish-stomach" + desc = "Fish DNA infused into a stomach now parmated by the faint smell of salt and slightly putrified fish." + icon = 'icons/obj/medical/organs/infuser_organs.dmi' + icon_state = "stomach" + greyscale_config = /datum/greyscale_config/mutant_organ + greyscale_colors = FISH_COLORS + + organ_traits = list(TRAIT_STRONG_STOMACH, TRAIT_FISH_EATER) + disgust_metabolism = 2.5 + +/obj/item/organ/internal/stomach/fish/Initialize(mapload) + . = ..() + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/fish) + + +///Organ from fish with the ink production trait. Doesn't count toward the organ set bonus but is buffed once it's active. +/obj/item/organ/internal/tongue/inky + name = "ink-secreting tongue" + desc = "A black tongue linked to two swollen black sacs underneath the palate." + icon = 'icons/obj/medical/organs/infuser_organs.dmi' + icon_state = "inky_tongue" + actions_types = list(/datum/action/cooldown/ink_spit) + +/obj/item/organ/internal/tongue/inky/Initialize(mapload) + . = ..() + AddElement(/datum/element/noticable_organ, "Slick black ink seldom rivulets from %PRONOUN_their mouth.", BODY_ZONE_PRECISE_MOUTH) + +///Organ from fish with the toxic trait. Allows the user to use tetrodotoxin as a healing chem instead of a toxin. +/obj/item/organ/internal/liver/fish + name = "mutated fish-liver" + desc = "Fish DNA infused into a stomach that now uses tetrodotoxin as regenerative material. It also processes alcohol quite well." + icon = 'icons/obj/medical/organs/infuser_organs.dmi' + icon_state = "liver" + greyscale_config = /datum/greyscale_config/mutant_organ + greyscale_colors = FISH_COLORS + + organ_traits = list(TRAIT_TETRODOTOXIN_HEALING, TRAIT_ALCOHOL_TOLERANCE) //drink like a fish :^) + liver_resistance = parent_type::liver_resistance * 1.5 + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/iron = 5, /datum/reagent/toxin/tetrodotoxin = 5) + grind_results = list(/datum/reagent/consumable/nutriment/peptides = 5, /datum/reagent/toxin/tetrodotoxin = 5) + +/obj/item/organ/internal/liver/fish/Initialize(mapload) + . = ..() + AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/fish) + +#undef FISH_ORGAN_COLOR +#undef FISH_SCLERA_COLOR +#undef FISH_PUPIL_COLOR +#undef FISH_COLORS diff --git a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm index 47d65a9492f04..4786bf5753c9f 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm @@ -42,17 +42,16 @@ toxic_foodtypes = NONE // these fucks eat vomit, i am sure they can handle drinking bleach or whatever too modifies_speech = TRUE languages_native = list(/datum/language/buzzwords) + var/static/list/speech_replacements = list( + new /regex("z+", "g") = "zzz", + new /regex("Z+", "g") = "ZZZ", + "s" = "z", + "S" = "Z", + ) -/obj/item/organ/internal/tongue/fly/modify_speech(datum/source, list/speech_args) - var/static/regex/fly_buzz = new("z+", "g") - var/static/regex/fly_buZZ = new("Z+", "g") - var/message = speech_args[SPEECH_MESSAGE] - if(message[1] != "*") - message = fly_buzz.Replace(message, "zzz") - message = fly_buZZ.Replace(message, "ZZZ") - message = replacetext(message, "s", "z") - message = replacetext(message, "S", "Z") - speech_args[SPEECH_MESSAGE] = message +/obj/item/organ/internal/tongue/fly/New(class, timer, datum/mutation/human/copymut) + . = ..() + AddComponent(/datum/component/speechmod, replacements = speech_replacements, should_modify_speech = CALLBACK(src, PROC_REF(should_modify_speech))) /obj/item/organ/internal/tongue/fly/Initialize(mapload) . = ..() @@ -126,7 +125,6 @@ //useless organs we throw in just to fuck with surgeons a bit more. they aren't part of a bonus, just the (absolute) state of flies /obj/item/organ/internal/fly desc = FLY_INFUSED_ORGAN_DESC - visual = FALSE /obj/item/organ/internal/fly/Initialize(mapload) . = ..() diff --git a/code/game/machinery/dna_infuser/organ_sets/fox_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fox_organs.dm index ab33c1ad57ef3..3fecac3bb6dbf 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fox_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fox_organs.dm @@ -6,17 +6,4 @@ visual = TRUE damage_multiplier = 2 -/obj/item/organ/internal/ears/fox/on_mob_insert(mob/living/carbon/human/ear_owner) - . = ..() - if(istype(ear_owner) && ear_owner.dna) - color = ear_owner.hair_color - ear_owner.dna.features["ears"] = ear_owner.dna.species.mutant_bodyparts["ears"] = "Fox" - ear_owner.dna.update_uf_block(DNA_EARS_BLOCK) - ear_owner.update_body() - -/obj/item/organ/internal/ears/fox/on_mob_remove(mob/living/carbon/human/ear_owner) - . = ..() - if(istype(ear_owner) && ear_owner.dna) - color = ear_owner.hair_color - ear_owner.dna.species.mutant_bodyparts -= "ears" - ear_owner.update_body() + sprite_accessory_override = /datum/sprite_accessory/ears/fox diff --git a/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm b/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm index ac3dae39b7019..385878cb255a4 100644 --- a/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/goliath_organs.dm @@ -58,6 +58,7 @@ icon_state = "brain" greyscale_config = /datum/greyscale_config/mutant_organ greyscale_colors = GOLIATH_COLORS + can_smoothen_out = FALSE var/obj/item/goliath_infuser_hammer/hammer diff --git a/code/game/machinery/dna_infuser/organ_sets/gondola_organs.dm b/code/game/machinery/dna_infuser/organ_sets/gondola_organs.dm index 797c7839b2c29..9fcf7e483bba9 100644 --- a/code/game/machinery/dna_infuser/organ_sets/gondola_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/gondola_organs.dm @@ -34,7 +34,7 @@ Fluoride Stare: After someone says 5 words, blah blah blah... AddElement(/datum/element/noticable_organ, "%PRONOUN_They radiate%PRONOUN_s an aura of serenity.") AddElement(/datum/element/update_icon_blocker) -/obj/item/organ/internal/heart/gondola/Insert(mob/living/carbon/receiver, special, movement_flags) +/obj/item/organ/internal/heart/gondola/mob_insert(mob/living/carbon/receiver, special, movement_flags) . = ..() if(!(FACTION_HOSTILE in receiver.faction)) factions_to_remove += FACTION_HOSTILE @@ -42,7 +42,7 @@ Fluoride Stare: After someone says 5 words, blah blah blah... factions_to_remove += FACTION_MINING receiver.faction |= list(FACTION_HOSTILE, FACTION_MINING) -/obj/item/organ/internal/heart/gondola/Remove(mob/living/carbon/heartless, special, movement_flags) +/obj/item/organ/internal/heart/gondola/mob_remove(mob/living/carbon/heartless, special, movement_flags) . = ..() for(var/faction in factions_to_remove) heartless.faction -= faction @@ -64,11 +64,11 @@ Fluoride Stare: After someone says 5 words, blah blah blah... AddElement(/datum/element/noticable_organ, "%PRONOUN_Their mouth is permanently affixed into a relaxed smile.", BODY_ZONE_PRECISE_MOUTH) AddElement(/datum/element/organ_set_bonus, /datum/status_effect/organ_set_bonus/gondola) -/obj/item/organ/internal/tongue/gondola/Insert(mob/living/carbon/tongue_owner, special, movement_flags) +/obj/item/organ/internal/tongue/gondola/mob_insert(mob/living/carbon/tongue_owner, special, movement_flags) . = ..() tongue_owner.add_mood_event("gondola_zen", /datum/mood_event/gondola_serenity) -/obj/item/organ/internal/tongue/gondola/Remove(mob/living/carbon/tongue_owner, special, movement_flags) +/obj/item/organ/internal/tongue/gondola/mob_remove(mob/living/carbon/tongue_owner, special, movement_flags) tongue_owner.clear_mood_event("gondola_zen") return ..() @@ -87,7 +87,7 @@ Fluoride Stare: After someone says 5 words, blah blah blah... AddElement(/datum/element/noticable_organ, "%PRONOUN_Their left arm has small needles breaching the skin all over it.", BODY_ZONE_L_ARM) AddElement(/datum/element/noticable_organ, "%PRONOUN_Their right arm has small needles breaching the skin all over it.", BODY_ZONE_R_ARM) -/obj/item/organ/internal/liver/gondola/Insert(mob/living/carbon/liver_owner, special, movement_flags) +/obj/item/organ/internal/liver/gondola/mob_insert(mob/living/carbon/liver_owner, special, movement_flags) . = ..() var/has_left = liver_owner.has_left_hand(check_disabled = FALSE) var/has_right = liver_owner.has_right_hand(check_disabled = FALSE) @@ -102,7 +102,7 @@ Fluoride Stare: After someone says 5 words, blah blah blah... RegisterSignal(liver_owner, COMSIG_LIVING_TRY_PULL, PROC_REF(on_owner_try_pull)) RegisterSignal(liver_owner, COMSIG_CARBON_HELPED, PROC_REF(on_hug)) -/obj/item/organ/internal/liver/gondola/Remove(mob/living/carbon/liver_owner, special, movement_flags) +/obj/item/organ/internal/liver/gondola/mob_remove(mob/living/carbon/liver_owner, special, movement_flags) . = ..() UnregisterSignal(liver_owner, list(COMSIG_HUMAN_EQUIPPING_ITEM, COMSIG_LIVING_TRY_PULL, COMSIG_CARBON_HELPED)) diff --git a/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm b/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm index 45d5f3ddfd997..4f8d38aa99971 100644 --- a/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/rat_organs.dm @@ -130,7 +130,7 @@ . = ..() if(prob(5)) owner.emote("squeaks") - playsound(owner, 'sound/creatures/mousesqueek.ogg', 100) + playsound(owner, 'sound/mobs/non-humanoids/mouse/mousesqueek.ogg', 100) #undef RAT_ORGAN_COLOR #undef RAT_SCLERA_COLOR diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 67f069c062c4c..8385a639b7f4a 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -125,12 +125,12 @@ var/normalspeed = TRUE var/cutAiWire = FALSE var/autoname = FALSE - var/doorOpen = 'sound/machines/airlock.ogg' - var/doorClose = 'sound/machines/airlockclose.ogg' - var/doorDeni = 'sound/machines/deniedbeep.ogg' // i'm thinkin' Deni's - var/boltUp = 'sound/machines/boltsup.ogg' - var/boltDown = 'sound/machines/boltsdown.ogg' - var/noPower = 'sound/machines/doorclick.ogg' + var/doorOpen = 'sound/machines/airlock/airlock.ogg' + var/doorClose = 'sound/machines/airlock/airlockclose.ogg' + var/doorDeni = 'sound/machines/beep/deniedbeep.ogg' // i'm thinkin' Deni's + var/boltUp = 'sound/machines/airlock/boltsup.ogg' + var/boltDown = 'sound/machines/airlock/boltsdown.ogg' + var/noPower = 'sound/machines/airlock/doorclick.ogg' /// What airlock assembly mineral plating was applied to var/previous_airlock = /obj/structure/door_assembly /// Material of inner filling; if its an airlock with glass, this should be set to "glass" @@ -139,6 +139,9 @@ /// Used for papers and photos pinned to the airlock var/note_overlay_file = 'icons/obj/doors/airlocks/station/overlays.dmi' + /// Airlock pump that overrides airlock controlls when set up for cycling + var/obj/machinery/atmospherics/components/unary/airlock_pump/cycle_pump + var/cyclelinkeddir = 0 var/obj/machinery/door/airlock/cyclelinkedairlock var/shuttledocked = 0 @@ -286,7 +289,6 @@ qdel(src) /obj/machinery/door/airlock/Destroy() - QDEL_NULL(wires) QDEL_NULL(electronics) if (cyclelinkedairlock) if (cyclelinkedairlock.cyclelinkedairlock == src) @@ -591,13 +593,13 @@ floorlight.pixel_y = 0 . += floorlight -/obj/machinery/door/airlock/do_animate(animation) +/obj/machinery/door/airlock/run_animation(animation) switch(animation) - if("opening") + if(DOOR_OPENING_ANIMATION) update_icon(ALL, AIRLOCK_OPENING) - if("closing") + if(DOOR_OPENING_ANIMATION) update_icon(ALL, AIRLOCK_CLOSING) - if("deny") + if(DOOR_DENY_ANIMATION) if(!machine_stat) update_icon(ALL, AIRLOCK_DENY) playsound(src,doorDeni,50,FALSE,3) @@ -607,6 +609,28 @@ if(airlock_state == AIRLOCK_DENY) update_icon(ALL, AIRLOCK_CLOSED) +/obj/machinery/door/airlock/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 0.6 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 0.6 SECONDS + +/obj/machinery/door/airlock/animation_segment_delay(animation) + switch(animation) + if(AIRLOCK_OPENING_TRANSPARENT) + return 0.1 SECONDS + if(AIRLOCK_OPENING_PASSABLE) + return 0.5 SECONDS + if(AIRLOCK_OPENING_FINISHED) + return 0.6 SECONDS + if(AIRLOCK_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(AIRLOCK_CLOSING_OPAQUE) + return 0.5 SECONDS + if(AIRLOCK_CLOSING_FINISHED) + return 0.6 SECONDS + /obj/machinery/door/airlock/examine(mob/user) . = ..() if(closeOtherId) @@ -1027,7 +1051,7 @@ to_chat(user, span_warning("[src] has already been sealed!")) return user.visible_message(span_notice("[user] begins sealing [src]."), span_notice("You begin sealing [src].")) - playsound(src, 'sound/items/jaws_pry.ogg', 30, TRUE) + playsound(src, 'sound/items/tools/jaws_pry.ogg', 30, TRUE) if(!do_after(user, airlockseal.seal_time, target = src)) return if(!density) @@ -1039,7 +1063,7 @@ if(!user.transferItemToLoc(airlockseal, src)) to_chat(user, span_warning("For some reason, you can't attach [airlockseal]!")) return - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) user.visible_message(span_notice("[user] finishes sealing [src]."), span_notice("You finish sealing [src].")) seal = airlockseal modify_max_integrity(max_integrity * AIRLOCK_SEAL_MULTIPLIER) @@ -1113,12 +1137,12 @@ to_chat(user, span_warning("You don't have the dexterity to remove the seal!")) return TRUE user.visible_message(span_notice("[user] begins removing the seal from [src]."), span_notice("You begin removing [src]'s pneumatic seal.")) - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) if(!do_after(user, airlockseal.unseal_time, target = src)) return TRUE if(!seal) return TRUE - playsound(src, 'sound/items/jaws_pry.ogg', 30, TRUE) + playsound(src, 'sound/items/tools/jaws_pry.ogg', 30, TRUE) airlockseal.forceMove(get_turf(user)) user.visible_message(span_notice("[user] finishes removing the seal from [src]."), span_notice("You finish removing [src]'s pneumatic seal.")) seal = null @@ -1152,10 +1176,10 @@ return TRUE /obj/machinery/door/airlock/try_to_crowbar(obj/item/I, mob/living/user, forced = FALSE) - if(I?.tool_behaviour == TOOL_CROWBAR && should_try_removing_electronics() && !operating) + if(I.tool_behaviour == TOOL_CROWBAR && should_try_removing_electronics() && !operating) user.visible_message(span_notice("[user] removes the electronics from the airlock assembly."), \ span_notice("You start to remove electronics from the airlock assembly...")) - if(I.use_tool(src, user, 40, volume=100)) + if(I.use_tool(src, user, 40, volume = 100)) deconstruct(TRUE, user) return if(seal) @@ -1178,10 +1202,10 @@ if(!prying_so_hard) var/time_to_open = 50 - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) //is it aliens or just the CE being a dick? + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) //is it aliens or just the CE being a dick? prying_so_hard = TRUE - if(do_after(user, time_to_open, src)) - if(check_electrified && shock(user,100)) + if(I.use_tool(src, user, time_to_open, volume = 100)) + if(check_electrified && shock(user, 100)) prying_so_hard = FALSE return open(BYPASS_DOOR_CHECKS) @@ -1200,6 +1224,10 @@ INVOKE_ASYNC(src, density ? PROC_REF(open) : PROC_REF(close), BYPASS_DOOR_CHECKS) /obj/machinery/door/airlock/open(forced = DEFAULT_DOOR_CHECKS) + if(cycle_pump && !operating && !welded && !seal && locked && density) + cycle_pump.airlock_act(src) + return FALSE // The rest will be handled by the pump + if( operating || welded || locked || seal ) return FALSE @@ -1234,18 +1262,21 @@ SEND_SIGNAL(src, COMSIG_AIRLOCK_OPEN, forced) operating = TRUE update_icon(ALL, AIRLOCK_OPENING, TRUE) - sleep(0.1 SECONDS) + var/transparent_delay = animation_segment_delay(AIRLOCK_OPENING_TRANSPARENT) + sleep(transparent_delay) set_opacity(0) if(multi_tile) filler.set_opacity(FALSE) update_freelook_sight() - sleep(0.4 SECONDS) + var/passable_delay = animation_segment_delay(AIRLOCK_OPENING_PASSABLE) - transparent_delay + sleep(passable_delay) set_density(FALSE) if(multi_tile) filler.set_density(FALSE) flags_1 &= ~PREVENT_CLICK_UNDER_1 air_update_turf(TRUE, FALSE) - sleep(0.1 SECONDS) + var/open_delay = animation_segment_delay(AIRLOCK_OPENING_FINISHED) - transparent_delay - passable_delay + sleep(open_delay) layer = OPEN_DOOR_LAYER update_icon(ALL, AIRLOCK_OPEN, TRUE) operating = FALSE @@ -1272,7 +1303,7 @@ return TRUE if(BYPASS_DOOR_CHECKS) // No power usage, special sound, get it open. - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) return TRUE else @@ -1314,14 +1345,16 @@ filler.density = TRUE flags_1 |= PREVENT_CLICK_UNDER_1 air_update_turf(TRUE, TRUE) - sleep(0.1 SECONDS) + var/unpassable_delay = animation_segment_delay(AIRLOCK_CLOSING_UNPASSABLE) + sleep(unpassable_delay) if(!air_tight) set_density(TRUE) if(multi_tile) filler.density = TRUE flags_1 |= PREVENT_CLICK_UNDER_1 air_update_turf(TRUE, TRUE) - sleep(0.4 SECONDS) + var/opaque_delay = animation_segment_delay(AIRLOCK_CLOSING_OPAQUE) - unpassable_delay + sleep(opaque_delay) if(dangerous_close) crush() if(visible && !glass) @@ -1329,7 +1362,8 @@ if(multi_tile) filler.set_opacity(TRUE) update_freelook_sight() - sleep(0.1 SECONDS) + var/close_delay = animation_segment_delay(AIRLOCK_CLOSING_FINISHED) - unpassable_delay - opaque_delay + sleep(close_delay) update_icon(ALL, AIRLOCK_CLOSED, 1) operating = FALSE delayed_close_requested = FALSE @@ -1347,7 +1381,7 @@ return TRUE if(BYPASS_DOOR_CHECKS) - playsound(src, 'sound/machines/airlockforced.ogg', 30, TRUE) + playsound(src, 'sound/machines/airlock/airlockforced.ogg', 30, TRUE) return TRUE else @@ -1428,9 +1462,9 @@ return if(!density) //Already open return ..() + if(user.combat_mode) + return ..() if(locked || welded || seal) //Extremely generic, as aliens only understand the basics of how airlocks work. - if(user.combat_mode) - return ..() to_chat(user, span_warning("[src] refuses to budge!")) return add_fingerprint(user) @@ -1440,7 +1474,7 @@ var/time_to_open = 5 //half a second if(hasPower()) time_to_open = 5 SECONDS //Powered airlocks take longer to open, and are loud. - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) if(do_after(user, time_to_open, src)) @@ -1626,7 +1660,7 @@ data["wires"] = wire return data -/obj/machinery/door/airlock/ui_act(action, params) +/obj/machinery/door/airlock/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -1794,6 +1828,17 @@ /obj/structure/fluff/airlock_filler/singularity_pull(S, current_size) return +/obj/machinery/door/airlock/proc/set_cycle_pump(obj/machinery/atmospherics/components/unary/airlock_pump/pump) + RegisterSignal(pump, COMSIG_QDELETING, PROC_REF(unset_cycle_pump)) + cycle_pump = pump + +/obj/machinery/door/airlock/proc/unset_cycle_pump() + SIGNAL_HANDLER + if(locked) + unbolt() + say("Link broken, unbolting.") + cycle_pump = null + // Station Airlocks Regular /obj/machinery/door/airlock/command @@ -2183,7 +2228,7 @@ if(!hasPower()) to_chat(user, span_notice("You begin unlocking the airlock safety mechanism...")) if(do_after(user, 15 SECONDS, target = src)) - try_to_crowbar(null, user, TRUE) + try_to_crowbar(src, user, TRUE) return TRUE else // always open from the space side @@ -2329,7 +2374,7 @@ new /obj/effect/temp_visual/cult/sac(loc) var/atom/throwtarget throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) - SEND_SOUND(L, sound(pick('sound/hallucinations/turn_around1.ogg','sound/hallucinations/turn_around2.ogg'),0,1,50)) + SEND_SOUND(L, sound(SFX_HALLUCINATION_TURN_AROUND,0,1,50)) flash_color(L, flash_color=COLOR_CULT_RED, flash_time=20) L.Paralyze(40) L.throw_at(throwtarget, 5, 1) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 73ae0994eb517..2973579153a84 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -109,7 +109,7 @@ var/new_cycle_id = trim(params["passedCycleId"], 30) passed_cycle_id = new_cycle_id -/obj/item/electronics/airlock/ui_act(action, params) +/obj/item/electronics/airlock/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 26dc09204a70c..10aa52cfd7bed 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -214,7 +214,7 @@ break return data -/obj/machinery/status_display/door_timer/ui_act(action, params) +/obj/machinery/status_display/door_timer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index b1fec07f422f4..5449f7f7cee4c 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -3,7 +3,7 @@ name = "door" desc = "It opens and closes." icon = 'icons/obj/doors/doorint.dmi' - icon_state = "door1" + icon_state = "door_closed" base_icon_state = "door" opacity = TRUE density = TRUE @@ -24,6 +24,8 @@ idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 0.1 active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 0.2 + /// The animation we're currently playing, if any + var/animation var/visible = TRUE var/operating = FALSE var/glass = FALSE @@ -100,6 +102,8 @@ else flags_1 &= ~PREVENT_CLICK_UNDER_1 + if(glass) + passwindow_on(src, INNATE_TRAIT) //doors only block while dense though so we have to use the proc real_explosion_block = explosion_block update_explosive_block() @@ -206,7 +210,7 @@ if(!red_alert_access) return audible_message(span_notice("[src] whirr[p_s()] as [p_they()] automatically lift[p_s()] access requirements!")) - playsound(src, 'sound/machines/boltsup.ogg', 50, TRUE) + playsound(src, 'sound/machines/airlock/boltsup.ogg', 50, TRUE) /obj/machinery/door/proc/try_safety_unlock(mob/user) return FALSE @@ -252,7 +256,7 @@ if(requiresID() && check_access(I)) open() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) return /obj/machinery/door/Move() @@ -282,7 +286,7 @@ else if(requiresID() && allowed(user)) open() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) /obj/machinery/door/attack_hand(mob/user, list/modifiers) . = ..() @@ -310,7 +314,7 @@ close() return TRUE if(density) - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) /obj/machinery/door/allowed(mob/M) if(emergency) @@ -330,7 +334,7 @@ return -/obj/machinery/door/proc/try_to_crowbar(obj/item/acting_object, mob/user) +/obj/machinery/door/proc/try_to_crowbar(obj/item/acting_object, mob/user, forced = FALSE) return /// Called when the user right-clicks on the door with a crowbar. @@ -367,6 +371,12 @@ return TRUE return ..() +/obj/machinery/door/item_interaction_secondary(mob/living/user, obj/item/tool, list/modifiers) + // allows you to crowbar doors while in combat mode + if(user.combat_mode && tool.tool_behaviour == TOOL_CROWBAR) + return crowbar_act_secondary(user, tool) + return ..() + /obj/machinery/door/welder_act_secondary(mob/living/user, obj/item/tool) try_to_weld_secondary(tool, user) return ITEM_INTERACT_SUCCESS @@ -389,13 +399,13 @@ switch(damage_type) if(BRUTE) if(glass) - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 90, TRUE) else if(damage_amount) - playsound(loc, 'sound/weapons/smash.ogg', 50, TRUE) + playsound(loc, 'sound/items/weapons/smash.ogg', 50, TRUE) else - playsound(src, 'sound/weapons/tap.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/tap.ogg', 50, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/door/emp_act(severity) . = ..() @@ -405,24 +415,68 @@ INVOKE_ASYNC(src, PROC_REF(open)) /obj/machinery/door/update_icon_state() - icon_state = "[base_icon_state][density]" - return ..() - -/obj/machinery/door/proc/do_animate(animation) + . = ..() switch(animation) - if("opening") + if(DOOR_OPENING_ANIMATION) if(panel_open) - flick("o_doorc0", src) + icon_state = "o_door_opening" else - flick("doorc0", src) - if("closing") + icon_state = "door_opening" + if(DOOR_CLOSING_ANIMATION) if(panel_open) - flick("o_doorc1", src) + icon_state = "o_door_closing" else - flick("doorc1", src) - if("deny") + icon_state = "door_closing" + if(DOOR_DENY_ANIMATION) if(!machine_stat) - flick("door_deny", src) + icon_state = "door_deny" + else + icon_state = "[base_icon_state]_[density ? "closed" : "open"]" + +/obj/machinery/door/update_overlays() + . = ..() + if(panel_open) + . += mutable_appearance(icon, "panel_open") + +/// Returns the delay to use for the passed in animation +/// We'll do our cleanup once the delay runs out +/obj/machinery/door/proc/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 0.6 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 0.6 SECONDS + if(DOOR_DENY_ANIMATION) + return 0.3 SECONDS + +/// Returns the time required to hit particular points in an animation +/// Used to manage delays for opening/closing and such +/obj/machinery/door/proc/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.5 SECONDS + if(DOOR_OPENING_FINISHED) + return 0.6 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 0.6 SECONDS + +/// Override this to do misc tasks on animation start +/obj/machinery/door/proc/animation_effects(animation) + return + +/// Used to start a new animation +/// Accepts the animation to start as an arg +/obj/machinery/door/proc/run_animation(animation) + set_animation(animation) + addtimer(CALLBACK(src, PROC_REF(set_animation), null), animation_length(animation), TIMER_UNIQUE|TIMER_OVERRIDE) + animation_effects(animation) + +// React to our animation changing +/obj/machinery/door/proc/set_animation(animation) + src.animation = animation + update_appearance() /// Public proc that simply handles opening the door. Returns TRUE if the door was opened, FALSE otherwise. /// Use argument "forced" in conjunction with try_to_force_door_open if you want/need additional checks depending on how sorely you need the door opened. @@ -433,12 +487,14 @@ return FALSE operating = TRUE use_energy(active_power_usage) - do_animate("opening") + run_animation(DOOR_OPENING_ANIMATION) set_opacity(0) - SLEEP_NOT_DEL(0.5 SECONDS) + var/passable_delay = animation_segment_delay(DOOR_OPENING_PASSABLE) + SLEEP_NOT_DEL(passable_delay) set_density(FALSE) flags_1 &= ~PREVENT_CLICK_UNDER_1 - SLEEP_NOT_DEL(0.5 SECONDS) + var/open_delay = animation_segment_delay(DOOR_OPENING_FINISHED) - passable_delay + SLEEP_NOT_DEL(open_delay) layer = initial(layer) update_appearance() set_opacity(0) @@ -470,12 +526,14 @@ operating = TRUE - do_animate("closing") + run_animation(DOOR_CLOSING_ANIMATION) layer = closingLayer - SLEEP_NOT_DEL(0.5 SECONDS) + var/unpassable_delay = animation_segment_delay(DOOR_CLOSING_UNPASSABLE) + SLEEP_NOT_DEL(unpassable_delay) set_density(TRUE) flags_1 |= PREVENT_CLICK_UNDER_1 - SLEEP_NOT_DEL(0.5 SECONDS) + var/close_delay = animation_segment_delay(DOOR_CLOSING_FINISHED) - unpassable_delay + SLEEP_NOT_DEL(close_delay) update_appearance() if(visible && !glass) set_opacity(1) @@ -553,9 +611,33 @@ /obj/machinery/door/morgue icon = 'icons/obj/doors/doormorgue.dmi' +/obj/machinery/door/morgue/Initialize(mapload) + . = ..() + AddComponent(/datum/component/redirect_attack_hand_from_turf) + /obj/machinery/door/get_dumping_location() return null +/obj/machinery/door/morgue/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.5 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.5 SECONDS + if(DOOR_DENY_ANIMATION) + return 0.1 SECONDS + +/obj/machinery/door/morgue/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 1.4 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.5 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.5 SECONDS + /obj/machinery/door/proc/lock() return diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 30deaef9183f3..858f2dffefff2 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -59,8 +59,8 @@ ///Keeps track of if we're playing the alarm sound loop (as only one firelock per group should be). Used during power changes. var/is_playing_alarm = FALSE - var/knock_sound = 'sound/effects/glassknock.ogg' - var/bash_sound = 'sound/effects/glassbash.ogg' + var/knock_sound = 'sound/effects/glass/glassknock.ogg' + var/bash_sound = 'sound/effects/glass/glassbash.ogg' /datum/armor/door_firedoor @@ -431,6 +431,10 @@ ignore_alarms = FALSE if(!alarm_type || active) // If we have no alarm type, or are already active, go away return + // Do we even care about temperature? + for(var/area/place in affecting_areas) + if(!place.fire_detect) // If any area is set to disable detection + return // Otherwise, reactivate ourselves start_activation_process(alarm_type) @@ -540,13 +544,13 @@ correct_state() /// We check for adjacency when using the primary attack. -/obj/machinery/door/firedoor/try_to_crowbar(obj/item/acting_object, mob/user) +/obj/machinery/door/firedoor/try_to_crowbar(obj/item/acting_object, mob/user, forced = FALSE) if(welded || operating) return if(density) being_held_open = TRUE - user.balloon_alert_to_viewers("holding [src] open", "holding [src] open") + user.balloon_alert_to_viewers("holding firelock open", "holding firelock open") COOLDOWN_START(src, activation_cooldown, REACTIVATION_DELAY) open() if(QDELETED(user)) @@ -583,7 +587,7 @@ UnregisterSignal(user, COMSIG_LIVING_SET_BODY_POSITION) UnregisterSignal(user, COMSIG_QDELETING) if(user) - user.balloon_alert_to_viewers("released [src]", "released [src]") + user.balloon_alert_to_viewers("released firelock", "released firelock") /obj/machinery/door/firedoor/attack_ai(mob/user) add_fingerprint(user) @@ -603,22 +607,43 @@ /obj/machinery/door/firedoor/attack_alien(mob/user, list/modifiers) add_fingerprint(user) if(welded) - to_chat(user, span_warning("[src] refuses to budge!")) + balloon_alert(user, "refuses to budge!") return open() if(active) addtimer(CALLBACK(src, PROC_REF(correct_state)), 2 SECONDS, TIMER_UNIQUE) -/obj/machinery/door/firedoor/do_animate(animation) - switch(animation) - if("opening") - flick("[base_icon_state]_opening", src) - if("closing") - flick("[base_icon_state]_closing", src) - /obj/machinery/door/firedoor/update_icon_state() . = ..() - icon_state = "[base_icon_state]_[density ? "closed" : "open"]" + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "[base_icon_state]_opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "[base_icon_state]_closing" + if(DOOR_DENY_ANIMATION) + icon_state = "[base_icon_state]_deny" + else + icon_state = "[base_icon_state]_[density ? "closed" : "open"]" + +/obj/machinery/door/firedoor/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.2 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.2 SECONDS + if(DOOR_DENY_ANIMATION) + return 0.3 SECONDS + +/obj/machinery/door/firedoor/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 1.0 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.2 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.2 SECONDS /obj/machinery/door/firedoor/update_overlays() . = ..() diff --git a/code/game/machinery/doors/passworddoor.dm b/code/game/machinery/doors/passworddoor.dm index df8f7fa936afd..8d35f44b0d80c 100644 --- a/code/game/machinery/doors/passworddoor.dm +++ b/code/game/machinery/doors/passworddoor.dm @@ -20,7 +20,7 @@ /// Sound used upon closing. var/door_close = 'sound/machines/blastdoor.ogg' /// Sound used upon denying. - var/door_deny = 'sound/machines/buzz-sigh.ogg' + var/door_deny = 'sound/machines/buzz/buzz-sigh.ogg' /obj/machinery/door/password/voice voice_activated = TRUE @@ -62,26 +62,48 @@ if(access_bypass || ask_for_pass(user)) open() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) /obj/machinery/door/password/update_icon_state() . = ..() - icon_state = density ? "closed" : "open" + //Deny animation would be nice to have. + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "closing" + else + icon_state = density ? "closed" : "open" + +/obj/machinery/door/password/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.1 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.1 SECONDS + +/obj/machinery/door/password/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.5 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.1 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.1 SECONDS -/obj/machinery/door/password/do_animate(animation) +/obj/machinery/door/password/animation_effects(animation) switch(animation) - if("opening") - flick("opening", src) + if(DOOR_OPENING_ANIMATION) playsound(src, door_open, 50, TRUE) - if("closing") - flick("closing", src) + if(DOOR_CLOSING_ANIMATION) playsound(src, door_close, 50, TRUE) - if("deny") - //Deny animation would be nice to have. + if(DOOR_DENY_ANIMATION) playsound(src, door_deny, 30, TRUE) /obj/machinery/door/password/proc/ask_for_pass(mob/user) - var/guess = tgui_input_text(user, "Enter the password", "Password") + var/guess = tgui_input_text(user, "Enter the password", "Password", max_length = MAX_MESSAGE_LEN) if(guess == password) return TRUE return FALSE diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 48e0cb195d7f3..cb33ed6c14f5a 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -40,7 +40,7 @@ if(panel_open) if(deconstruction == BLASTDOOR_FINISHED) . += span_notice("The maintenance panel is opened and the electronics could be pried out.") - . += span_notice("\The [src] could be calibrated to a blast door controller ID with a multitool.") + . += span_notice("\The [src] could be calibrated to a blast door controller ID with a multitool or a blast door controller.") else if(deconstruction == BLASTDOOR_NEEDS_ELECTRONICS) . += span_notice("The electronics are missing and there are some wires sticking out.") else if(deconstruction == BLASTDOOR_NEEDS_WIRES) @@ -56,6 +56,9 @@ if(deconstruction == BLASTDOOR_NEEDS_ELECTRONICS && istype(held_item, /obj/item/electronics/airlock)) context[SCREENTIP_CONTEXT_LMB] = "Add electronics" return CONTEXTUAL_SCREENTIP_SET + if(deconstruction == BLASTDOOR_FINISHED && istype(held_item, /obj/item/assembly/control)) + context[SCREENTIP_CONTEXT_LMB] = "Calibrate ID" + return CONTEXTUAL_SCREENTIP_SET //we do not check for special effects like if they can actually perform the action because they will be told they can't do it when they try, //with feedback on what they have to do in order to do so. switch(held_item.tool_behaviour) @@ -99,6 +102,19 @@ balloon_alert(user, "electronics added") deconstruction = BLASTDOOR_FINISHED return ITEM_INTERACT_SUCCESS + + if(deconstruction == BLASTDOOR_FINISHED && istype(tool, /obj/item/assembly/control)) + if(density) + balloon_alert(user, "open the door first!") + return ITEM_INTERACT_BLOCKING + if(!panel_open) + balloon_alert(user, "open the panel first!") + return ITEM_INTERACT_BLOCKING + var/obj/item/assembly/control/controller_item = tool + id = controller_item.id + balloon_alert(user, "id changed") + return ITEM_INTERACT_SUCCESS + return NONE /obj/machinery/door/poddoor/screwdriver_act(mob/living/user, obj/item/tool) @@ -195,26 +211,50 @@ return FALSE return ..() -/obj/machinery/door/poddoor/do_animate(animation) +/obj/machinery/door/poddoor/update_icon_state() + . = ..() + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "closing" + if(DOOR_DENY_ANIMATION) + icon_state = "deny" + else + icon_state = density ? "closed" : "open" + +/obj/machinery/door/poddoor/animation_length(animation) switch(animation) - if("opening") - flick("opening", src) + if(DOOR_OPENING_ANIMATION) + return 1.1 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.1 SECONDS + +/obj/machinery/door/poddoor/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.5 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.1 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.1 SECONDS + +/obj/machinery/door/poddoor/animation_effects(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) playsound(src, animation_sound, 50, TRUE) - if("closing") - flick("closing", src) + if(DOOR_CLOSING_ANIMATION) playsound(src, animation_sound, 50, TRUE) -/obj/machinery/door/poddoor/update_icon_state() - . = ..() - icon_state = density ? "closed" : "open" - /obj/machinery/door/poddoor/attack_alien(mob/living/carbon/alien/adult/user, list/modifiers) if(density & !(resistance_flags & INDESTRUCTIBLE)) add_fingerprint(user) user.visible_message(span_warning("[user] begins prying open [src]."),\ span_noticealien("You begin digging your claws into [src] with all your might!"),\ span_warning("You hear groaning metal...")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 100, TRUE) var/time_to_open = 5 SECONDS if(hasPower()) diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm index 0df6024ca827a..56e2f5a9743b2 100644 --- a/code/game/machinery/doors/shutters.dm +++ b/code/game/machinery/doors/shutters.dm @@ -11,6 +11,24 @@ recipe_type = /datum/crafting_recipe/shutters animation_sound = 'sound/machines/shutter.ogg' +/obj/machinery/door/poddoor/shutters/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 1.388 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 1.388 SECONDS + +/obj/machinery/door/poddoor/shutters/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.76 SECONDS + if(DOOR_OPENING_FINISHED) + return 1.388 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.152 SECONDS + if(DOOR_CLOSING_FINISHED) + return 1.388 SECONDS + /obj/machinery/door/poddoor/shutters/preopen icon_state = "open" density = FALSE diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 828177f90a81b..d093cc0d3556d 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -6,7 +6,7 @@ layer = ABOVE_WINDOW_LAYER closingLayer = ABOVE_WINDOW_LAYER resistance_flags = ACID_PROOF - obj_flags = CAN_BE_HIT | BLOCKS_CONSTRUCTION_DIR + obj_flags = CAN_BE_HIT | IGNORE_DENSITY | BLOCKS_CONSTRUCTION_DIR var/base_state = "left" max_integrity = 150 //If you change this, consider changing ../door/window/brigdoor/ max_integrity at the bottom of this .dm file integrity_failure = 0 @@ -76,7 +76,15 @@ /obj/machinery/door/window/update_icon_state() . = ..() - icon_state = "[base_state][density ? null : "open"]" + switch(animation) + if(DOOR_OPENING_ANIMATION) + icon_state = "[base_state]opening" + if(DOOR_CLOSING_ANIMATION) + icon_state = "[base_state]closing" + if(DOOR_DENY_ANIMATION) + icon_state = "[base_state]deny" + else + icon_state = "[base_state][density ? null : "open"]" if(hasPower() && unres_sides) set_light(l_range = 2, l_power = 1) @@ -84,6 +92,24 @@ set_light(l_range = 0) +/obj/machinery/door/window/animation_length(animation) + switch(animation) + if(DOOR_OPENING_ANIMATION) + return 0.9 SECONDS + if(DOOR_CLOSING_ANIMATION) + return 0.9 SECONDS + +/obj/machinery/door/window/animation_segment_delay(animation) + switch(animation) + if(DOOR_OPENING_PASSABLE) + return 0.7 SECONDS + if(DOOR_OPENING_FINISHED) + return 0.9 SECONDS + if(DOOR_CLOSING_UNPASSABLE) + return 0.2 SECONDS + if(DOOR_CLOSING_FINISHED) + return 0.9 SECONDS + /obj/machinery/door/window/update_overlays() . = ..() @@ -135,7 +161,7 @@ if(allowed(occupant)) open_and_close() return - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) return if(!SSticker) return @@ -159,7 +185,7 @@ open_and_close() else - do_animate("deny") + run_animation(DOOR_DENY_ANIMATION) return @@ -218,11 +244,13 @@ if(!operating) //in case of emag operating = TRUE - do_animate("opening") + run_animation(DOOR_OPENING_ANIMATION) playsound(src, 'sound/machines/windowdoor.ogg', 100, TRUE) - icon_state ="[base_state]open" - sleep(1 SECONDS) + var/passable_delay = animation_segment_delay(DOOR_OPENING_PASSABLE) + sleep(passable_delay) set_density(FALSE) + var/open_delay = animation_segment_delay(DOOR_OPENING_FINISHED) - passable_delay + sleep(open_delay) air_update_turf(TRUE, FALSE) update_freelook_sight() @@ -261,14 +289,15 @@ return FALSE operating = TRUE - do_animate("closing") + run_animation(DOOR_CLOSING_ANIMATION) playsound(src, 'sound/machines/windowdoor.ogg', 100, TRUE) - icon_state = base_state - + var/unpassable_delay = animation_segment_delay(DOOR_CLOSING_UNPASSABLE) + sleep(unpassable_delay) set_density(TRUE) air_update_turf(TRUE, TRUE) update_freelook_sight() - sleep(1 SECONDS) + var/close_delay = animation_segment_delay(DOOR_CLOSING_FINISHED) - unpassable_delay + sleep(close_delay) operating = FALSE return TRUE @@ -297,9 +326,9 @@ /obj/machinery/door/window/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) if(BRUTE) - playsound(src, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(src, 'sound/effects/glass/glasshit.ogg', 90, TRUE) if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/door/window/on_deconstruction(disassembled) if(disassembled) @@ -439,15 +468,6 @@ else to_chat(user, span_warning("The door's motors resist your efforts to force it!")) -/obj/machinery/door/window/do_animate(animation) - switch(animation) - if("opening") - flick("[base_state]opening", src) - if("closing") - flick("[base_state]closing", src) - if("deny") - flick("[base_state]deny", src) - /obj/machinery/door/window/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm deleted file mode 100644 index af39257973cce..0000000000000 --- a/code/game/machinery/droneDispenser.dm +++ /dev/null @@ -1,279 +0,0 @@ -#define DRONE_PRODUCTION "production" -#define DRONE_RECHARGING "recharging" -#define DRONE_READY "ready" - -/obj/machinery/drone_dispenser //Most customizable machine 2015 - name = "drone shell dispenser" - desc = "A hefty machine that, when supplied with iron and glass, will periodically create a drone shell. Does not need to be manually operated." - - icon = 'icons/obj/machines/drone_dispenser.dmi' - icon_state = "on" - density = TRUE - - max_integrity = 250 - integrity_failure = 0.33 - - // These allow for different icons when creating custom dispensers - var/icon_off = "off" - var/icon_on = "on" - var/icon_recharging = "recharge" - var/icon_creating = "make" - - var/list/using_materials - var/starting_amount = 0 - var/iron_cost = HALF_SHEET_MATERIAL_AMOUNT - var/glass_cost = HALF_SHEET_MATERIAL_AMOUNT - var/energy_used = 1 KILO JOULES - - var/mode = DRONE_READY - var/timer - var/cooldownTime = 3 MINUTES - var/production_time = 30 - //The item the dispenser will create - var/dispense_type = /obj/effect/mob_spawn/ghost_role/drone - - // The maximum number of "idle" drone shells it will make before - // ceasing production. Set to 0 for infinite. - var/maximum_idle = 3 - - var/work_sound = 'sound/items/rped.ogg' - var/create_sound = 'sound/items/deconstruct.ogg' - var/recharge_sound = 'sound/machines/ping.ogg' - - var/begin_create_message = "whirs to life!" - var/end_create_message = "dispenses a drone shell." - var/recharge_message = "pings." - var/recharging_text = "It is whirring and clicking. It seems to be recharging." - - var/break_message = "lets out a tinny alarm before falling dark." - var/break_sound = 'sound/machines/warning-buzzer.ogg' - - var/datum/component/material_container/materials - -/obj/machinery/drone_dispenser/Initialize(mapload) - . = ..() - materials = AddComponent( \ - /datum/component/material_container, \ - list(/datum/material/iron, /datum/material/glass), \ - SHEET_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, \ - MATCONTAINER_EXAMINE, \ - allowed_items = /obj/item/stack \ - ) - materials.insert_amount_mat(starting_amount, /datum/material/iron) - materials.insert_amount_mat(starting_amount, /datum/material/glass) - materials.precise_insertion = TRUE - using_materials = list(/datum/material/iron = iron_cost, /datum/material/glass = glass_cost) - REGISTER_REQUIRED_MAP_ITEM(1, 1) - -/obj/machinery/drone_dispenser/Destroy() - materials = null - return ..() - -/obj/machinery/drone_dispenser/preloaded - starting_amount = SHEET_MATERIAL_AMOUNT * 2.5 - -/obj/machinery/drone_dispenser/syndrone //Please forgive me - name = "syndrone shell dispenser" - desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with iron and glass. Disgusting." - dispense_type = /obj/effect/mob_spawn/ghost_role/drone/syndrone - //If we're gonna be a jackass, go the full mile - 10 second recharge timer - cooldownTime = 100 - end_create_message = "dispenses a suspicious drone shell." - starting_amount = SHEET_MATERIAL_AMOUNT * 12.5 - -/obj/machinery/drone_dispenser/syndrone/badass //Please forgive me - name = "badass syndrone shell dispenser" - desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with iron and glass. Disgusting. This one seems ominous." - dispense_type = /obj/effect/mob_spawn/ghost_role/drone/syndrone/badass - end_create_message = "dispenses an ominous suspicious drone shell." - -// I don't need your forgiveness, this is awesome. -/obj/machinery/drone_dispenser/snowflake - name = "snowflake drone shell dispenser" - desc = "A hefty machine that, when supplied with iron and glass, will periodically create a snowflake drone shell. Does not need to be manually operated." - dispense_type = /obj/effect/mob_spawn/ghost_role/drone/snowflake - end_create_message = "dispenses a snowflake drone shell." - // Those holoprojectors aren't cheap - iron_cost = SHEET_MATERIAL_AMOUNT - glass_cost = SHEET_MATERIAL_AMOUNT - energy_used = 2 KILO JOULES - starting_amount = SHEET_MATERIAL_AMOUNT * 5 - -// If the derelict gets lonely, make more friends. -/obj/machinery/drone_dispenser/derelict - name = "derelict drone shell dispenser" - desc = "A rusty machine that, when supplied with iron and glass, will periodically create a derelict drone shell. Does not need to be manually operated." - dispense_type = /obj/effect/mob_spawn/ghost_role/drone/derelict - end_create_message = "dispenses a derelict drone shell." - iron_cost = SHEET_MATERIAL_AMOUNT * 5 - glass_cost = SHEET_MATERIAL_AMOUNT * 2.5 - starting_amount = 0 - cooldownTime = 600 - -/obj/machinery/drone_dispenser/classic - name = "classic drone shell dispenser" - desc = "A hefty machine that, when supplied with iron and glass, will periodically create a classic drone shell. Does not need to be manually operated." - dispense_type = /obj/effect/mob_spawn/ghost_role/drone/classic - end_create_message = "dispenses a classic drone shell." - -// An example of a custom drone dispenser. -// This one requires no materials and creates basic hivebots -/obj/machinery/drone_dispenser/hivebot - name = "hivebot fabricator" - desc = "A large, bulky machine that whirs with activity, steam hissing from vents in its sides." - icon = 'icons/obj/machines/hivebot_fabricator.dmi' - icon_state = "hivebot_fab" - icon_off = "hivebot_fab" - icon_on = "hivebot_fab" - icon_recharging = "hivebot_fab" - icon_creating = "hivebot_fab_on" - iron_cost = 0 - glass_cost = 0 - energy_used = 0 - cooldownTime = 10 //Only 1 second - hivebots are extremely weak - dispense_type = /mob/living/basic/hivebot - begin_create_message = "closes and begins fabricating something within." - end_create_message = "slams open, revealing a hivebot!" - recharge_sound = null - recharge_message = null - -// A dispenser that produces binoculars, for the MediSim shuttle. -/obj/machinery/drone_dispenser/binoculars - name = "binoculars fabricator" - desc = "A hefty machine that periodically creates a pair of binoculars. Really, Nanotrasen? We're getting this lazy?" - dispense_type = /obj/item/binoculars - starting_amount = SHEET_MATERIAL_AMOUNT * 2.5 //Redudant - maximum_idle = 1 - cooldownTime = 5 SECONDS - iron_cost = 0 - glass_cost = 0 - energy_used = 0 - end_create_message = "dispenses a pair of binoculars." - -/obj/machinery/drone_dispenser/examine(mob/user) - . = ..() - var/material_requirement_string = "It needs " - if (iron_cost > 0) - material_requirement_string += "[iron_cost / SHEET_MATERIAL_AMOUNT] iron sheets " - if (glass_cost > 0) - material_requirement_string += "and " - if (glass_cost > 0) - material_requirement_string += "[glass_cost / SHEET_MATERIAL_AMOUNT] glass sheets " - if (iron_cost > 0 || glass_cost > 0) - material_requirement_string += "to produce one drone shell." - . += span_notice(material_requirement_string) - if((mode == DRONE_RECHARGING) && !machine_stat && recharging_text) - . += span_warning("[recharging_text]") - -/obj/machinery/drone_dispenser/process() - if((machine_stat & (NOPOWER|BROKEN)) || !anchored) - return - - if((glass_cost != 0 || iron_cost != 0) && !materials.has_materials(using_materials)) - return // We require more minerals - - // We are currently in the middle of something - if(timer > world.time) - return - - switch(mode) - if(DRONE_READY) - // If we have X drone shells already on our turf - if(maximum_idle && (count_shells() >= maximum_idle)) - return // then do nothing; check again next tick - if(begin_create_message) - visible_message(span_notice("[src] [begin_create_message]")) - if(work_sound) - playsound(src, work_sound, 50, TRUE) - mode = DRONE_PRODUCTION - timer = world.time + production_time - update_appearance() - - if(DRONE_PRODUCTION) - materials.use_materials(using_materials) - if(energy_used) - use_energy(energy_used) - - var/atom/A = new dispense_type(loc) - A.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) - - if(create_sound) - playsound(src, create_sound, 50, TRUE) - if(end_create_message) - visible_message(span_notice("[src] [end_create_message]")) - - mode = DRONE_RECHARGING - timer = world.time + cooldownTime - update_appearance() - - if(DRONE_RECHARGING) - if(recharge_sound) - playsound(src, recharge_sound, 50, TRUE) - if(recharge_message) - visible_message(span_notice("[src] [recharge_message]")) - - mode = DRONE_READY - update_appearance() - -/obj/machinery/drone_dispenser/proc/count_shells() - . = 0 - for(var/a in loc) - if(istype(a, dispense_type)) - .++ - -/obj/machinery/drone_dispenser/update_icon_state() - if(machine_stat & (BROKEN|NOPOWER)) - icon_state = icon_off - return ..() - if(mode == DRONE_RECHARGING) - icon_state = icon_recharging - return ..() - if(mode == DRONE_PRODUCTION) - icon_state = icon_creating - return ..() - icon_state = icon_on - return ..() - -/obj/machinery/drone_dispenser/attackby(obj/item/I, mob/living/user) - if(I.tool_behaviour == TOOL_CROWBAR) - materials.retrieve_all() - I.play_tool_sound(src) - to_chat(user, span_notice("You retrieve the materials from [src].")) - - else if(I.tool_behaviour == TOOL_WELDER) - if(!(machine_stat & BROKEN)) - to_chat(user, span_warning("[src] doesn't need repairs.")) - return - - if(!I.tool_start_check(user, amount=1)) - return - - user.visible_message( - span_notice("[user] begins patching up [src] with [I]."), - span_notice("You begin restoring the damage to [src]...")) - - if(!I.use_tool(src, user, 40, volume=50)) - return - - user.visible_message( - span_notice("[user] fixes [src]!"), - span_notice("You restore [src] to operation.")) - - set_machine_stat(machine_stat & ~BROKEN) - atom_integrity = max_integrity - update_appearance() - else - return ..() - -/obj/machinery/drone_dispenser/atom_break(damage_flag) - . = ..() - if(!.) - return - if(break_message) - audible_message(span_warning("[src] [break_message]")) - if(break_sound) - playsound(src, break_sound, 50, TRUE) - -#undef DRONE_PRODUCTION -#undef DRONE_RECHARGING -#undef DRONE_READY diff --git a/code/game/machinery/drone_dispenser.dm b/code/game/machinery/drone_dispenser.dm new file mode 100644 index 0000000000000..414746dcb1923 --- /dev/null +++ b/code/game/machinery/drone_dispenser.dm @@ -0,0 +1,299 @@ +#define DRONE_PRODUCTION "production" +#define DRONE_RECHARGING "recharging" +#define DRONE_READY "ready" + +/obj/machinery/drone_dispenser //Most customizable machine 2015 + name = "drone shell dispenser" + desc = "A hefty machine that, when supplied with iron and glass, will periodically create a drone shell. Does not need to be manually operated." + + icon = 'icons/obj/machines/drone_dispenser.dmi' + icon_state = "on" + density = TRUE + + max_integrity = 250 + integrity_failure = 0.33 + + // These allow for different icons when creating custom dispensers + /// Icon string to use when the drone dispenser is not processing. + var/icon_off = "off" + /// Icon string to use when the drone dispenser is processing. + var/icon_on = "on" + /// Icon string to use when the drone dispenser is on cooldown. + var/icon_recharging = "recharge" + /// Icon string to use when the drone dispenser is making a new shell. + var/icon_creating = "make" + + /// The quantity of materials used when generating a new drone shell. + var/list/using_materials + /// Quantity of materials to automatically insert when the drone dispenser is spawned. + var/starting_amount = 0 + var/iron_cost = HALF_SHEET_MATERIAL_AMOUNT + var/glass_cost = HALF_SHEET_MATERIAL_AMOUNT + /// Energy to draw when processing a new drone shell fresh. + var/energy_used = 1 KILO JOULES + + /// What operation the drone shell dispenser is currently in, checked in process() to determine behavior + var/mode = DRONE_READY + /// Reference to world.time to use for calculation of cooldowns and production of a new drone dispenser. + var/timer + /// How long should the drone dispenser be on cooldown after operating + var/cooldownTime = 3 MINUTES + /// How long does it the drone dispenser take to generate a new drone shell? + var/production_time = 3 SECONDS + //The item the dispenser will create + var/list/dispense_type = list(/obj/effect/mob_spawn/ghost_role/drone) + + /// The maximum number of "idle" drone shells it will make before ceasing production. Set to 0 for infinite. + var/maximum_idle = 3 + + /// Sound that the drone dispnser plays when it's ready to start making more drones. + var/work_sound = 'sound/items/tools/rped.ogg' + /// Sound that the drone dispnser plays when it's created a new drone. + var/create_sound = 'sound/items/deconstruct.ogg' + /// Sound that the drone dispnser plays when it's recharged it's cooldown. + var/recharge_sound = 'sound/machines/ping.ogg' + + /// String that's displayed for when the drone dispenser start working. + var/begin_create_message = "whirs to life!" + /// String that's displayed for when the drone dispenser stops working. + var/end_create_message = "dispenses a drone shell." + /// String that's displayed for when the drone dispenser finished it's cooldown. + var/recharge_message = "pings." + /// String that's displayed for when the drone dispenser is still on cooldown. + var/recharging_text = "It is whirring and clicking. It seems to be recharging." + /// String that's displayed for when the drone dispenser is broken. + var/break_message = "lets out a tinny alarm before falling dark." + /// Sound that the drone dispnser plays when it's broken. + var/break_sound = 'sound/machines/warning-buzzer.ogg' + /// Reference to the object's internal storage for materials. + var/datum/component/material_container/materials + +/obj/machinery/drone_dispenser/Initialize(mapload) + . = ..() + materials = AddComponent( \ + /datum/component/material_container, \ + list(/datum/material/iron, /datum/material/glass), \ + SHEET_MATERIAL_AMOUNT * MAX_STACK_SIZE * 2, \ + MATCONTAINER_EXAMINE, \ + allowed_items = /obj/item/stack \ + ) + materials.insert_amount_mat(starting_amount, /datum/material/iron) + materials.insert_amount_mat(starting_amount, /datum/material/glass) + materials.precise_insertion = TRUE + using_materials = list(/datum/material/iron = iron_cost, /datum/material/glass = glass_cost) + REGISTER_REQUIRED_MAP_ITEM(1, 1) + +/obj/machinery/drone_dispenser/Destroy() + materials = null + return ..() + +/obj/machinery/drone_dispenser/preloaded + starting_amount = SHEET_MATERIAL_AMOUNT * 2.5 + +/obj/machinery/drone_dispenser/syndrone //Please forgive me + name = "syndrone shell dispenser" + desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with iron and glass. Disgusting." + dispense_type = list(/obj/effect/mob_spawn/ghost_role/drone/syndrone) + //If we're gonna be a jackass, go the full mile - 10 second recharge timer + cooldownTime = 100 + end_create_message = "dispenses a suspicious drone shell." + starting_amount = SHEET_MATERIAL_AMOUNT * 12.5 + +/obj/machinery/drone_dispenser/syndrone/badass //Please forgive me + name = "badass syndrone shell dispenser" + desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with iron and glass. Disgusting. This one seems ominous." + dispense_type = list(/obj/effect/mob_spawn/ghost_role/drone/syndrone/badass) + end_create_message = "dispenses an ominous suspicious drone shell." + +// I don't need your forgiveness, this is awesome. +/obj/machinery/drone_dispenser/snowflake + name = "snowflake drone shell dispenser" + desc = "A hefty machine that, when supplied with iron and glass, will periodically create a snowflake drone shell. Does not need to be manually operated." + dispense_type = list(/obj/effect/mob_spawn/ghost_role/drone/snowflake) + end_create_message = "dispenses a snowflake drone shell." + // Those holoprojectors aren't cheap + iron_cost = SHEET_MATERIAL_AMOUNT + glass_cost = SHEET_MATERIAL_AMOUNT + energy_used = 2 KILO JOULES + starting_amount = SHEET_MATERIAL_AMOUNT * 5 + +// If the derelict gets lonely, make more friends. +/obj/machinery/drone_dispenser/derelict + name = "derelict drone shell dispenser" + desc = "A rusty machine that, when supplied with iron and glass, will periodically create a derelict drone shell. Does not need to be manually operated." + dispense_type = list(/obj/effect/mob_spawn/ghost_role/drone/derelict) + end_create_message = "dispenses a derelict drone shell." + iron_cost = SHEET_MATERIAL_AMOUNT * 5 + glass_cost = SHEET_MATERIAL_AMOUNT * 2.5 + starting_amount = 0 + cooldownTime = 600 + +/obj/machinery/drone_dispenser/classic + name = "classic drone shell dispenser" + desc = "A hefty machine that, when supplied with iron and glass, will periodically create a classic drone shell. Does not need to be manually operated." + dispense_type = list(/obj/effect/mob_spawn/ghost_role/drone/classic) + end_create_message = "dispenses a classic drone shell." + +// An example of a custom drone dispenser. +// This one requires no materials and creates basic hivebots +/obj/machinery/drone_dispenser/hivebot + name = "hivebot fabricator" + desc = "A large, bulky machine that whirs with activity, steam hissing from vents in its sides." + icon = 'icons/obj/machines/hivebot_fabricator.dmi' + icon_state = "hivebot_fab" + icon_off = "hivebot_fab" + icon_on = "hivebot_fab" + icon_recharging = "hivebot_fab" + icon_creating = "hivebot_fab_on" + iron_cost = 0 + glass_cost = 0 + energy_used = 0 + cooldownTime = 10 //Only 1 second - hivebots are extremely weak + dispense_type = list(/mob/living/basic/hivebot) + begin_create_message = "closes and begins fabricating something within." + end_create_message = "slams open, revealing a hivebot!" + recharge_sound = null + recharge_message = null + +// A dispenser that produces binoculars, for the MediSim shuttle. +/obj/machinery/drone_dispenser/binoculars + name = "binoculars fabricator" + desc = "A hefty machine that periodically creates a pair of binoculars. Really, Nanotrasen? We're getting this lazy?" + dispense_type = list(/obj/item/binoculars) + starting_amount = SHEET_MATERIAL_AMOUNT * 2.5 //Redudant + maximum_idle = 1 + cooldownTime = 5 SECONDS + iron_cost = 0 + glass_cost = 0 + energy_used = 0 + end_create_message = "dispenses a pair of binoculars." + +/obj/machinery/drone_dispenser/examine(mob/user) + . = ..() + var/material_requirement_string = "It needs " + if (iron_cost > 0) + material_requirement_string += "[iron_cost / SHEET_MATERIAL_AMOUNT] iron sheets " + if (glass_cost > 0) + material_requirement_string += "and " + if (glass_cost > 0) + material_requirement_string += "[glass_cost / SHEET_MATERIAL_AMOUNT] glass sheets " + if (iron_cost > 0 || glass_cost > 0) + material_requirement_string += "to produce one drone shell." + . += span_notice(material_requirement_string) + if((mode == DRONE_RECHARGING) && !machine_stat && recharging_text) + . += span_warning("[recharging_text]") + +/obj/machinery/drone_dispenser/process() + if((machine_stat & (NOPOWER|BROKEN)) || !anchored) + return + + if((glass_cost != 0 || iron_cost != 0) && !materials.has_materials(using_materials)) + return // We require more minerals + + // We are currently in the middle of something + if(timer > world.time) + return + + switch(mode) + if(DRONE_READY) + // If we have X drone shells already on our turf + if(maximum_idle && (count_shells() >= maximum_idle)) + return // then do nothing; check again next tick + if(begin_create_message) + visible_message(span_notice("[src] [begin_create_message]")) + if(work_sound) + playsound(src, work_sound, 50, TRUE) + mode = DRONE_PRODUCTION + timer = world.time + production_time + update_appearance() + + if(DRONE_PRODUCTION) + materials.use_materials(using_materials) + if(energy_used) + use_energy(energy_used) + + for(var/spawnable_item as anything in dispense_type) + var/atom/spawned_atom = new spawnable_item(loc) + spawned_atom.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) + + if(create_sound) + playsound(src, create_sound, 50, TRUE) + if(end_create_message) + visible_message(span_notice("[src] [end_create_message]")) + + mode = DRONE_RECHARGING + timer = world.time + cooldownTime + update_appearance() + + if(DRONE_RECHARGING) + if(recharge_sound) + playsound(src, recharge_sound, 50, TRUE) + if(recharge_message) + visible_message(span_notice("[src] [recharge_message]")) + + mode = DRONE_READY + update_appearance() + +/obj/machinery/drone_dispenser/proc/count_shells() + . = 0 + for(var/actual_shell in loc) + for(var/potential_item as anything in dispense_type) + if(istype(actual_shell, potential_item)) + .++ + +/obj/machinery/drone_dispenser/update_icon_state() + if(machine_stat & (BROKEN|NOPOWER)) + icon_state = icon_off + return ..() + if(mode == DRONE_RECHARGING) + icon_state = icon_recharging + return ..() + if(mode == DRONE_PRODUCTION) + icon_state = icon_creating + return ..() + icon_state = icon_on + return ..() + +/obj/machinery/drone_dispenser/attackby(obj/item/I, mob/living/user) + if(I.tool_behaviour == TOOL_CROWBAR) + materials.retrieve_all() + I.play_tool_sound(src) + to_chat(user, span_notice("You retrieve the materials from [src].")) + + else if(I.tool_behaviour == TOOL_WELDER) + if(!(machine_stat & BROKEN)) + to_chat(user, span_warning("[src] doesn't need repairs.")) + return + + if(!I.tool_start_check(user, amount=1)) + return + + user.visible_message( + span_notice("[user] begins patching up [src] with [I]."), + span_notice("You begin restoring the damage to [src]...")) + + if(!I.use_tool(src, user, 40, volume=50)) + return + + user.visible_message( + span_notice("[user] fixes [src]!"), + span_notice("You restore [src] to operation.")) + + set_machine_stat(machine_stat & ~BROKEN) + atom_integrity = max_integrity + update_appearance() + else + return ..() + +/obj/machinery/drone_dispenser/atom_break(damage_flag) + . = ..() + if(!.) + return + if(break_message) + audible_message(span_warning("[src] [break_message]")) + if(break_sound) + playsound(src, break_sound, 50, TRUE) + +#undef DRONE_PRODUCTION +#undef DRONE_RECHARGING +#undef DRONE_READY diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm index a1cc608c2ec9d..18e880902963d 100644 --- a/code/game/machinery/embedded_controller/airlock_controller.dm +++ b/code/game/machinery/embedded_controller/airlock_controller.dm @@ -244,7 +244,7 @@ return data -/obj/machinery/airlock_controller/ui_act(action, params) +/obj/machinery/airlock_controller/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/fat_sucker.dm b/code/game/machinery/fat_sucker.dm index c93a0e4f7ea56..0652ab1605e5d 100644 --- a/code/game/machinery/fat_sucker.dm +++ b/code/game/machinery/fat_sucker.dm @@ -166,7 +166,7 @@ set_light(2, 1, "#ff0000") else say("Subject not fat enough.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, FALSE) overlays += "[icon_state]_red" //throw a red light icon over it, to show that it won't work /obj/machinery/fat_sucker/proc/stop() diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 10055aee5b29d..3fc4dcf219adb 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -179,15 +179,7 @@ var/current_level = SSsecurity_level.get_current_level_as_number() . += mutable_appearance(icon, "fire_[current_level]") . += emissive_appearance(icon, "fire_level_e", src, alpha = src.alpha) - switch(current_level) - if(SEC_LEVEL_GREEN) - set_light(l_color = LIGHT_COLOR_BLUEGREEN) - if(SEC_LEVEL_BLUE) - set_light(l_color = LIGHT_COLOR_ELECTRIC_CYAN) - if(SEC_LEVEL_RED) - set_light(l_color = LIGHT_COLOR_FLARE) - if(SEC_LEVEL_DELTA) - set_light(l_color = LIGHT_COLOR_INTENSE_RED) + set_light(l_color = SSsecurity_level?.current_security_level?.fire_alarm_light_color || LIGHT_COLOR_BLUEGREEN) else . += mutable_appearance(icon, "fire_offstation") . += emissive_appearance(icon, "fire_level_e", src, alpha = src.alpha) @@ -485,6 +477,9 @@ my_area.fire_detect = !my_area.fire_detect for(var/obj/machinery/firealarm/fire_panel in my_area.firealarms) fire_panel.update_icon() + // Used to force all the firelocks to update, if the zone is not manually activated + if (my_area.fault_status != AREA_FAULT_MANUAL) + reset() // Don't send user to prevent double balloon_alert() and the action is already logged in this proc. if (user) balloon_alert(user, "thermal sensors [my_area.fire_detect ? "enabled" : "disabled"]") user.log_message("[ my_area.fire_detect ? "enabled" : "disabled" ] firelock sensors using [src].", LOG_GAME) diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 94612b8c9db35..5853389ac80ff 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -108,7 +108,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/flasher, 26) power_change() return - playsound(src, 'sound/weapons/flash.ogg', 100, TRUE) + playsound(src, 'sound/items/weapons/flash.ogg', 100, TRUE) flick("[base_icon_state]_flash", src) flash_lighting_fx() diff --git a/code/game/machinery/flatpacker.dm b/code/game/machinery/flatpacker.dm index 182db1edc08d9..6c90e45e4f67b 100644 --- a/code/game/machinery/flatpacker.dm +++ b/code/game/machinery/flatpacker.dm @@ -112,7 +112,7 @@ /obj/machinery/flatpacker/proc/AfterMaterialInsert(container, obj/item/item_inserted, last_inserted_id, mats_consumed, amount_inserted, atom/context) SIGNAL_HANDLER - //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benifit from it + //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benefit from it if(directly_use_energy(ROUND_UP((amount_inserted / (MAX_STACK_SIZE * SHEET_MATERIAL_AMOUNT)) * 0.4 * initial(active_power_usage)))) flick_overlay_view(mutable_appearance('icons/obj/machines/lathes.dmi', "flatpacker_bar"), 1 SECONDS) @@ -124,7 +124,7 @@ highest_mat = present_mat highest_mat_ref = mat - flick_overlay_view(material_insertion_animation(highest_mat_ref.greyscale_colors), 1 SECONDS) + flick_overlay_view(material_insertion_animation(highest_mat_ref), 1 SECONDS) /** * Attempts to find the total material cost of a typepath (including our creation efficiency), modifying a list @@ -268,7 +268,7 @@ if(!materials.has_materials(needed_mats, creation_efficiency)) say("Not enough materials to begin production.") return - playsound(src, 'sound/items/rped.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/rped.ogg', 50, TRUE) busy = TRUE flick_overlay_view(mutable_appearance('icons/obj/machines/lathes.dmi', "flatpacker_bar"), flatpack_time) @@ -292,7 +292,7 @@ if(isnull(amount)) return - //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benifit from it + //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benefit from it if(!directly_use_energy(ROUND_UP((amount / MAX_STACK_SIZE) * 0.4 * initial(active_power_usage)))) say("No power to dispense sheets") return @@ -401,7 +401,7 @@ new /obj/effect/temp_visual/mook_dust(loc) var/obj/machinery/new_machine = new board.build_path(loc) loc.visible_message(span_warning("[src] deploys!")) - playsound(src, 'sound/machines/terminal_eject.ogg', 70, TRUE) + playsound(src, 'sound/machines/terminal/terminal_eject.ogg', 70, TRUE) new_machine.on_construction(user) qdel(src) return ITEM_INTERACT_SUCCESS diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm index 72ac0e746f4b0..93f60beeb8a14 100644 --- a/code/game/machinery/gulag_item_reclaimer.dm +++ b/code/game/machinery/gulag_item_reclaimer.dm @@ -82,7 +82,7 @@ return data -/obj/machinery/gulag_item_reclaimer/ui_act(action, params) +/obj/machinery/gulag_item_reclaimer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 5fa999a690e9a..4949f53adfbfe 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -76,15 +76,15 @@ for(var/obj/item/abiotic_item in carbon_occupant.held_items + carbon_occupant.get_equipped_items()) if(!(HAS_TRAIT(abiotic_item, TRAIT_NODROP))) say("Subject may not have abiotic items on.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return if(!(carbon_occupant.mob_biotypes & MOB_ORGANIC)) say("Subject is not organic.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return if(!allow_living && !(carbon_occupant.stat == DEAD || HAS_TRAIT(carbon_occupant, TRAIT_FAKEDEATH))) //I mean, the machines scanners arent advanced enough to tell you're alive say("Subject is still alive.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return return TRUE @@ -141,7 +141,7 @@ open_machine() if (!success) say("Protocol interrupted. Aborting harvest.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) else say("Subject has been successfully harvested.") playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, FALSE) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index cbb7eede250b9..a40eaf710a6be 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -168,7 +168,7 @@ Possible to do for anyone motivated enough: /obj/machinery/holopad/tutorial/attack_hand(mob/user, list/modifiers) if(!istype(user)) return - if(user.incapacitated() || !is_operational) + if(user.incapacitated || !is_operational) return if(replay_mode) replay_stop() @@ -308,7 +308,7 @@ Possible to do for anyone motivated enough: data["holo_calls"] += list(call_data) return data -/obj/machinery/holopad/ui_act(action, list/params) +/obj/machinery/holopad/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -522,7 +522,7 @@ Possible to do for anyone motivated enough: if(outgoing_call) holocall.Disconnect(src)//can't answer calls while calling else - playsound(src, 'sound/machines/twobeep.ogg', 100) //bring, bring! + playsound(src, 'sound/machines/beep/twobeep.ogg', 100) //bring, bring! are_ringing = TRUE if(ringing != are_ringing) @@ -675,7 +675,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ if(!isliving(owner)) return TRUE var/mob/living/user = owner - if(user.incapacitated() || !user.client) + if(user.incapacitated || !user.client) return FALSE return TRUE diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm index f8f3ed49be598..a2895f6ae9fcd 100644 --- a/code/game/machinery/hypnochair.dm +++ b/code/game/machinery/hypnochair.dm @@ -63,7 +63,7 @@ return data -/obj/machinery/hypnochair/ui_act(action, params) +/obj/machinery/hypnochair/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -91,11 +91,11 @@ /obj/machinery/hypnochair/proc/interrogate() if(!trigger_phrase) - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) return var/mob/living/carbon/C = occupant if(!istype(C)) - playsound(get_turf(src), 'sound/machines/buzz-sigh.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/machines/buzz/buzz-sigh.ogg', 25, TRUE) return victim = C if(C.get_eye_protection() <= 0) @@ -114,13 +114,13 @@ interrupt_interrogation() return if(SPT_PROB(5, seconds_per_tick) && !(C.get_eye_protection() > 0)) - to_chat(C, "[pick(\ + to_chat(C, span_hypnophrase(pick(\ "...blue... red... green... blue, red, green, blueredgreen[span_small("blueredgreen")]",\ "...pretty colors...",\ "...you keep hearing words, but you can't seem to understand them...",\ "...so peaceful...",\ "...an annoying buzz in your ears..."\ - )]") + ))) use_energy(active_power_usage * seconds_per_tick) diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 3fa7d25767f2f..887c04ebedee0 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -137,6 +137,7 @@ icon = 'icons/obj/wallmounts.dmi' icon_state = "migniter" result_path = /obj/machinery/sparker + custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT) pixel_shift = 26 /obj/machinery/sparker diff --git a/code/game/machinery/incident_display.dm b/code/game/machinery/incident_display.dm index b8452675c71aa..77194a26dd7ba 100644 --- a/code/game/machinery/incident_display.dm +++ b/code/game/machinery/incident_display.dm @@ -1,4 +1,8 @@ -GLOBAL_LIST_EMPTY(map_delamination_counters) +/** + * List of incident displays on the map + * Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion. + */ +GLOBAL_LIST_EMPTY(map_incident_displays) /// Display days since last delam on incident sign #define DISPLAY_DELAM (1<<0) @@ -13,25 +17,28 @@ DEFINE_BITFIELD(sign_features, list( #define TREND_RISING "rising" #define TREND_FALLING "falling" -#define NAME_DUAL "safety incident display" #define NAME_DELAM "delamination incident display" #define NAME_TRAM "tram incident display" -#define DESC_DUAL "A display that provides information on the station's safety record. Features an advert for SAFETY MOTH." #define DESC_DELAM "A signs describe how long it's been since the last delamination incident. Features an advert for SAFETY MOTH." -#define DESC_TRAM "A display that provides the number of tram related safety incidents this shift. Features an advert for SAFETY MOTH." +#define DESC_TRAM "A display that provides the number of tram related safety incidents this shift." -/** - * List of safety statistic signs on the map that have delam counting enabled. - * Required as persistence subsystem loads after the ones present at mapload, and to reset to 0 upon explosion. - */ +#define DISPLAY_PIXEL_1_W 21 +#define DISPLAY_PIXEL_1_Z -2 +#define DISPLAY_PIXEL_2_W 16 +#define DISPLAY_PIXEL_2_Z -2 +#define DISPLAY_BASE_ALPHA 64 +#define DISPLAY_PIXEL_ALPHA 96 + +#define LIGHT_COLOR_NORMAL "#4b4290" +#define LIGHT_COLOR_SHAME "#e24e76" /obj/machinery/incident_display name = NAME_DELAM desc = DESC_DELAM icon = 'icons/obj/machines/incident_display.dmi' - icon_preview = "stat_display_delam" - icon_state = "stat_display_delam" + icon_preview = "display_normal" + icon_state = "display_normal" verb_say = "beeps" verb_ask = "bloops" verb_exclaim = "blares" @@ -41,6 +48,10 @@ DEFINE_BITFIELD(sign_features, list( custom_materials = list(/datum/material/titanium = SHEET_MATERIAL_AMOUNT * 4, /datum/material/alloy/titaniumglass = SHEET_MATERIAL_AMOUNT * 4) /// What statistics we want the sign to display var/sign_features = DISPLAY_DELAM + /// Delam digits color + var/delam_display_color = COLOR_DISPLAY_YELLOW + /// Tram hits digits color + var/tram_display_color = COLOR_DISPLAY_BLUE /// Tram hits before hazard warning var/hit_threshold = 0 /// Tram hits @@ -49,49 +60,88 @@ DEFINE_BITFIELD(sign_features, list( var/last_delam = 0 /// Delam record high-score var/delam_record = 0 - -/obj/machinery/incident_display/dual - name = NAME_DUAL - desc = DESC_DUAL - icon_preview = "stat_display_dual" - icon_state = "stat_display_dual" - sign_features = DISPLAY_DELAM | DISPLAY_TRAM + /// If the display is currently running live updated content + var/live_display = FALSE + /// The default advert to show on this display + var/configured_advert + /// Duration of the advert set on this display + var/configured_advert_duration + /// How often to show an advert + var/advert_frequency = 30 SECONDS + /// Timer for sign currently showing an advert + COOLDOWN_DECLARE(active_advert) + /// Cooldown until next advert + COOLDOWN_DECLARE(advert_cooldown) + +/obj/machinery/incident_display/bridge /obj/machinery/incident_display/delam name = NAME_DELAM desc = DESC_DELAM - icon_preview = "stat_display_delam" - icon_state = "stat_display_delam" sign_features = DISPLAY_DELAM + configured_advert = "advert_meson" + configured_advert_duration = 7 SECONDS /obj/machinery/incident_display/tram name = NAME_TRAM desc = DESC_TRAM - icon_preview = "stat_display_tram" - icon_state = "stat_display_tram" sign_features = DISPLAY_TRAM -MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display, 32) +MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/bridge, 32) MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/delam, 32) -MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/dual, 32) MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) /obj/machinery/incident_display/Initialize(mapload) ..() + register_context() return INITIALIZE_HINT_LATELOAD /obj/machinery/incident_display/post_machine_initialize() . = ..() - GLOB.map_delamination_counters += src + GLOB.map_incident_displays += src update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) RegisterSignal(SStransport, COMSIG_TRAM_COLLISION, PROC_REF(update_tram_count)) update_appearance() /obj/machinery/incident_display/Destroy() - GLOB.map_delamination_counters -= src + GLOB.map_incident_displays -= src return ..() +/obj/machinery/incident_display/process() + if(!isnull(configured_advert) && COOLDOWN_FINISHED(src, advert_cooldown))// time to show an advert + show_advert(advert = configured_advert, duration = configured_advert_duration) + COOLDOWN_START(src, advert_cooldown, rand(advert_frequency - 5 SECONDS, advert_frequency + 5 SECONDS)) + return + + if(!live_display) // displaying static content, no processing required + return + + if(machine_stat & (NOPOWER|BROKEN|MAINT)) + return + + if(COOLDOWN_FINISHED(src, active_advert)) // advert finished, revert to static content + COOLDOWN_RESET(src, active_advert) + live_display = FALSE + update_appearance() + +/obj/machinery/incident_display/add_context(atom/source, list/context, obj/item/held_item, mob/user) + if(!isliving(user)) + return + + var/mob/living/living_user = user + + if(held_item?.tool_behaviour == TOOL_WELDER && !living_user.combat_mode && atom_integrity < max_integrity) + context[SCREENTIP_CONTEXT_LMB] = "repair display" + + if(held_item?.tool_behaviour == TOOL_MULTITOOL && !living_user.combat_mode) + if(sign_features == DISPLAY_TRAM) + context[SCREENTIP_CONTEXT_LMB] = "change to delam mode" + else + context[SCREENTIP_CONTEXT_LMB] = "change to tram mode" + + return CONTEXTUAL_SCREENTIP_SET + /obj/machinery/incident_display/welder_act(mob/living/user, obj/item/tool) if(user.combat_mode) return FALSE @@ -101,7 +151,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) return TRUE balloon_alert(user, "repairing display...") - if(!tool.use_tool(src, user, 4 SECONDS, amount = 0, volume=50)) + if(!tool.use_tool(src, user, 4 SECONDS, amount = 0, volume = 50)) return TRUE balloon_alert(user, "repaired") @@ -117,35 +167,22 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) if(sign_features == DISPLAY_TRAM) tool.play_tool_sound(src) - balloon_alert(user, "set to dual") - name = NAME_DUAL - desc = DESC_DUAL - icon_state = "stat_display_dual" - sign_features = DISPLAY_DELAM | DISPLAY_TRAM + balloon_alert(user, "set to delam") + name = NAME_DELAM + desc = DESC_DELAM + sign_features = DISPLAY_DELAM update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) - update_tram_count(src, SSpersistence.tram_hits_this_round) update_appearance() return TRUE - else if(sign_features == DISPLAY_DELAM) + else tool.play_tool_sound(src) balloon_alert(user, "set to tram") name = NAME_TRAM desc = DESC_TRAM - icon_state = "stat_display_tram" sign_features = DISPLAY_TRAM update_tram_count(src, SSpersistence.tram_hits_this_round) update_appearance() return TRUE - else if(sign_features == (DISPLAY_DELAM + DISPLAY_TRAM)) - tool.play_tool_sound(src) - balloon_alert(user, "set to delam") - name = NAME_DELAM - desc = DESC_DELAM - icon_state = "stat_display_delam" - sign_features = DISPLAY_DELAM - update_delam_count(SSpersistence.rounds_since_engine_exploded, SSpersistence.delam_highscore) - update_appearance() - return TRUE // EMP causes the display to display random numbers or outright break. /obj/machinery/incident_display/emp_act(severity) @@ -154,14 +191,17 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) set_machine_stat(machine_stat | BROKEN) update_appearance() return - name = NAME_DUAL - desc = DESC_DUAL - icon_state = "stat_display_dual" - sign_features = DISPLAY_DELAM | DISPLAY_TRAM + hit_threshold = rand(1,99) hit_count = rand(1,99) - last_delam = rand(1,99) - delam_record = rand(1,99) + + if(prob(33)) + last_delam = 0 + delam_record = 0 + else + last_delam = rand(1,99) + delam_record = rand(1,99) + update_appearance() /obj/machinery/incident_display/on_deconstruction(disassembled) @@ -169,159 +209,165 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) new /obj/item/shard(drop_location()) new /obj/item/shard(drop_location()) +/** + * Update the delamination count on the display + * + * Use the provided args to update the incident display when in delam mode. + * Arguments: + * * new_count - number of shifts without a delam + * * record - current high score for the delam count + */ /obj/machinery/incident_display/proc/update_delam_count(new_count, record) delam_record = record last_delam = min(new_count, 199) update_appearance() +/** + * Update the tram hit count on the display + * + * Sign receives a signal from SStransport that the tram has hit someone, and updates the count. + * Arguments: + * * source - hopefully is the transport subsystem + * * tram_collisions - current number of tram hits + */ /obj/machinery/incident_display/proc/update_tram_count(source, tram_collisions) SIGNAL_HANDLER hit_count = min(tram_collisions, 199) update_appearance() -/obj/machinery/incident_display/update_appearance(updates=ALL) +/** + * Run an animated advert on the display + * + * Arguments: + * * advert - icon state to flick to + * * duration - length of the advert animation + */ +/obj/machinery/incident_display/proc/show_advert(advert, duration = 7 SECONDS) + COOLDOWN_START(src, active_advert, duration) + live_display = TRUE + update_appearance() + flick(advert, src) + +/obj/machinery/incident_display/update_appearance(updates = ALL) . = ..() if(machine_stat & NOPOWER) - icon_state = "stat_display_blank" + icon_state = "display_normal" set_light(l_on = FALSE) return - - if(machine_stat & BROKEN) - icon_state = "stat_display_broken" - else if(sign_features == (DISPLAY_DELAM + DISPLAY_TRAM)) - icon_state = "stat_display_dual" - else if(sign_features == DISPLAY_DELAM) - icon_state = "stat_display_delam" - else if(sign_features == DISPLAY_TRAM) - icon_state = "stat_display_tram" - - set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_FAINT_CYAN, l_on = TRUE) + else if(machine_stat & BROKEN) + icon_state = "display_broken" + set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_NORMAL, l_on = TRUE) + else if((sign_features & DISPLAY_DELAM) && last_delam <= 0) // you done fucked up + icon_state = "display_shame" + set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_SHAME, l_on = TRUE) + else + icon_state = "display_normal" + set_light(l_range = 1.7, l_power = 1.5, l_color = LIGHT_COLOR_NORMAL, l_on = TRUE) /obj/machinery/incident_display/update_overlays() . = ..() if(machine_stat & (NOPOWER|BROKEN)) return - var/mutable_appearance/moff_base_emissive = emissive_appearance(icon, "moff_base_emissive", src, alpha = src.alpha) - . += moff_base_emissive + . += emissive_appearance(icon, "display_emissive", src, alpha = DISPLAY_BASE_ALPHA) + + if(COOLDOWN_STARTED(src, active_advert)) // we don't show the static content during adverts + return if(sign_features & DISPLAY_DELAM) - var/mutable_appearance/delam_base_emissive = emissive_appearance(icon, "delam_base_emissive", src, alpha = src.alpha) - var/delam_display_color - . += delam_base_emissive - if(last_delam <= 0) - delam_display_color = COLOR_DISPLAY_RED - else - delam_display_color = COLOR_DISPLAY_YELLOW + . += mutable_appearance(icon, "overlay_delam") + . += emissive_appearance(icon, "overlay_delam", src, alpha = DISPLAY_PIXEL_ALPHA) var/delam_pos1 = clamp(last_delam, 0, 199) % 10 var/mutable_appearance/delam_pos1_overlay = mutable_appearance(icon, "num_[delam_pos1]") - var/mutable_appearance/delam_pos1_emissive = emissive_appearance(icon, "num_[delam_pos1]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_pos1_emissive = emissive_appearance(icon, "num_[delam_pos1]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_pos1_overlay.color = delam_display_color - delam_pos1_overlay.pixel_w = 9 - delam_pos1_emissive.pixel_w = 9 - delam_pos1_overlay.pixel_z = 4 - delam_pos1_emissive.pixel_z = 4 + delam_pos1_overlay.pixel_w = DISPLAY_PIXEL_1_W + delam_pos1_emissive.pixel_w = DISPLAY_PIXEL_1_W + delam_pos1_overlay.pixel_z = DISPLAY_PIXEL_1_Z + delam_pos1_emissive.pixel_z = DISPLAY_PIXEL_1_Z . += delam_pos1_overlay . += delam_pos1_emissive var/delam_pos2 = (clamp(last_delam, 0, 199) / 10) % 10 var/mutable_appearance/delam_pos2_overlay = mutable_appearance(icon, "num_[delam_pos2]") - var/mutable_appearance/delam_pos2_emissive = emissive_appearance(icon, "num_[delam_pos2]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_pos2_emissive = emissive_appearance(icon, "num_[delam_pos2]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_pos2_overlay.color = delam_display_color - delam_pos2_overlay.pixel_w = 4 - delam_pos2_emissive.pixel_w = 4 - delam_pos2_overlay.pixel_z = 4 - delam_pos2_emissive.pixel_z = 4 + delam_pos2_overlay.pixel_w = DISPLAY_PIXEL_2_W + delam_pos2_emissive.pixel_w = DISPLAY_PIXEL_2_W + delam_pos2_overlay.pixel_z = DISPLAY_PIXEL_2_Z + delam_pos2_emissive.pixel_z = DISPLAY_PIXEL_2_Z . += delam_pos2_overlay . += delam_pos2_emissive if(last_delam >= 100) - var/mutable_appearance/there_i_fixed_it_overlay = mutable_appearance(icon, "num_100_red") - var/mutable_appearance/there_i_fixed_it_emissive = emissive_appearance(icon, "num_100_red", src, alpha = src.alpha) - . += there_i_fixed_it_overlay - . += there_i_fixed_it_emissive + . += mutable_appearance(icon, "num_100_red") + . += emissive_appearance(icon, "num_100_red", src, alpha = DISPLAY_BASE_ALPHA) if(last_delam == delam_record) var/mutable_appearance/delam_trend_overlay = mutable_appearance(icon, TREND_RISING) - var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_RISING]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_RISING]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_trend_overlay.color = COLOR_DISPLAY_GREEN - delam_trend_overlay.pixel_w = 1 - delam_trend_emissive.pixel_w = 1 - delam_trend_overlay.pixel_z = 6 - delam_trend_emissive.pixel_z = 6 . += delam_trend_overlay . += delam_trend_emissive else var/mutable_appearance/delam_trend_overlay = mutable_appearance(icon, TREND_FALLING) - var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]_e", src, alpha = src.alpha) + var/mutable_appearance/delam_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]", src, alpha = DISPLAY_PIXEL_ALPHA) delam_trend_overlay.color = COLOR_DISPLAY_RED - delam_trend_overlay.pixel_w = 1 - delam_trend_emissive.pixel_w = 1 - delam_trend_overlay.pixel_z = 6 - delam_trend_emissive.pixel_z = 6 . += delam_trend_overlay . += delam_trend_emissive if(sign_features & DISPLAY_TRAM) - var/mutable_appearance/tram_base_emissive = emissive_appearance(icon, "tram_base_emissive", src, alpha = src.alpha) - var/tram_display_color = COLOR_DISPLAY_BLUE + . += mutable_appearance(icon, "overlay_tram") + . += emissive_appearance(icon, "overlay_tram", src, alpha = DISPLAY_PIXEL_ALPHA) var/tram_pos1 = hit_count % 10 var/mutable_appearance/tram_pos1_overlay = mutable_appearance(icon, "num_[tram_pos1]") - var/mutable_appearance/tram_pos1_emissive = emissive_appearance(icon, "num_[tram_pos1]_e", src, alpha = src.alpha) - . += tram_base_emissive + var/mutable_appearance/tram_pos1_emissive = emissive_appearance(icon, "num_[tram_pos1]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_pos1_overlay.color = tram_display_color - tram_pos1_overlay.pixel_w = 9 - tram_pos1_emissive.pixel_w = 9 - tram_pos1_overlay.pixel_z = -6 - tram_pos1_emissive.pixel_z = -6 + tram_pos1_overlay.pixel_w = DISPLAY_PIXEL_1_W + tram_pos1_emissive.pixel_w = DISPLAY_PIXEL_1_W + tram_pos1_overlay.pixel_z = DISPLAY_PIXEL_1_Z + tram_pos1_emissive.pixel_z = DISPLAY_PIXEL_1_Z . += tram_pos1_overlay . += tram_pos1_emissive var/tram_pos2 = (hit_count / 10) % 10 var/mutable_appearance/tram_pos2_overlay = mutable_appearance(icon, "num_[tram_pos2]") - var/mutable_appearance/tram_pos2_emissive = emissive_appearance(icon, "num_[tram_pos2]_e", src, alpha = src.alpha) + var/mutable_appearance/tram_pos2_emissive = emissive_appearance(icon, "num_[tram_pos2]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_pos2_overlay.color = tram_display_color - tram_pos2_overlay.pixel_w = 4 - tram_pos2_emissive.pixel_w = 4 - tram_pos2_overlay.pixel_z = -6 - tram_pos2_emissive.pixel_z = -6 + tram_pos2_overlay.pixel_w = DISPLAY_PIXEL_2_W + tram_pos2_emissive.pixel_w = DISPLAY_PIXEL_2_W + tram_pos2_overlay.pixel_z = DISPLAY_PIXEL_2_Z + tram_pos2_emissive.pixel_z = DISPLAY_PIXEL_2_Z . += tram_pos2_overlay . += tram_pos2_emissive if(hit_count >= 100) - var/mutable_appearance/there_i_fixed_it_overlay = mutable_appearance(icon, "num_100_blue") - var/mutable_appearance/there_i_fixed_it_emissive = emissive_appearance(icon, "num_100_blue", src, alpha = src.alpha) - . += there_i_fixed_it_overlay - . += there_i_fixed_it_emissive + . += mutable_appearance(icon, "num_100_blue") + . += emissive_appearance(icon, "num_100_blue", src, alpha = DISPLAY_BASE_ALPHA) if(hit_count > SSpersistence.tram_hits_last_round) var/mutable_appearance/tram_trend_overlay = mutable_appearance(icon, TREND_RISING) - var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_RISING]_e", src, alpha = src.alpha) + var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_RISING]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_trend_overlay.color = COLOR_DISPLAY_RED - tram_trend_overlay.pixel_w = 1 - tram_trend_emissive.pixel_w = 1 - tram_trend_overlay.pixel_z = -4 - tram_trend_emissive.pixel_z = -4 . += tram_trend_overlay . += tram_trend_emissive else var/mutable_appearance/tram_trend_overlay = mutable_appearance(icon, TREND_FALLING) - var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]_e", src, alpha = src.alpha) + var/mutable_appearance/tram_trend_emissive = emissive_appearance(icon, "[TREND_FALLING]", src, alpha = DISPLAY_PIXEL_ALPHA) tram_trend_overlay.color = COLOR_DISPLAY_GREEN - tram_trend_overlay.pixel_w = 1 - tram_trend_emissive.pixel_w = 1 - tram_trend_overlay.pixel_z = -4 - tram_trend_emissive.pixel_z = -4 . += tram_trend_overlay . += tram_trend_emissive /obj/machinery/incident_display/examine(mob/user) . = ..() + if(atom_integrity < max_integrity) + . += span_notice("It can be repaired with a [EXAMINE_HINT("welder")].") if(sign_features & DISPLAY_DELAM) + . += span_notice("It can be changed to display tram hits with a [EXAMINE_HINT("multitool")].") if(last_delam >= 0) . += span_info("It has been [last_delam] shift\s since the last delamination event at this Nanotrasen facility.") switch(last_delam) @@ -339,6 +385,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) . += span_info("The supermatter crystal has delaminated, in case you didn't notice.") if(sign_features & DISPLAY_TRAM) + . += span_notice("It can be changed to display delam-free shifts with a [EXAMINE_HINT("multitool")].") . += span_info("The station has had [hit_count] tram incident\s this shift.") switch(hit_count) if(0) @@ -357,13 +404,21 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) #undef DISPLAY_DELAM #undef DISPLAY_TRAM -#undef NAME_DUAL #undef NAME_DELAM #undef NAME_TRAM -#undef DESC_DUAL #undef DESC_DELAM #undef DESC_TRAM #undef TREND_RISING #undef TREND_FALLING + +#undef DISPLAY_PIXEL_1_W +#undef DISPLAY_PIXEL_1_Z +#undef DISPLAY_PIXEL_2_W +#undef DISPLAY_PIXEL_2_Z +#undef DISPLAY_BASE_ALPHA +#undef DISPLAY_PIXEL_ALPHA + +#undef LIGHT_COLOR_NORMAL +#undef LIGHT_COLOR_SHAME diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 4ac2a177e76bc..437c2dbd168a6 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -106,7 +106,7 @@ .["containerMaxVolume"] = drip_reagents.maximum_volume .["containerReagentColor"] = mix_color_from_reagents(drip_reagents.reagent_list) -/obj/machinery/iv_drip/ui_act(action, params) +/obj/machinery/iv_drip/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -256,7 +256,7 @@ // If the human is losing too much blood, beep. if(attached_mob.blood_volume < BLOOD_VOLUME_SAFE && prob(5)) audible_message(span_hear("[src] beeps loudly.")) - playsound(loc, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(loc, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) var/atom/movable/target = use_internal_storage ? src : reagent_container attached_mob.transfer_blood_to(target, amount) update_appearance(UPDATE_ICON) @@ -322,7 +322,7 @@ return if(!usr.can_perform_action(src)) return - if(usr.incapacitated()) + if(usr.incapacitated) return if(reagent_container) if(attached) @@ -340,7 +340,7 @@ if(!isliving(usr)) to_chat(usr, span_warning("You can't do that!")) return - if(!usr.can_perform_action(src) || usr.incapacitated()) + if(!usr.can_perform_action(src) || usr.incapacitated) return if(inject_only) mode = IV_INJECTING diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 8733ca548632e..c2fb218d50a33 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -181,11 +181,11 @@ indicator_icon = "launchpad_pull" update_indicator() - playsound(get_turf(src), 'sound/weapons/flash.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/flash.ogg', 25, TRUE) teleporting = TRUE if(!hidden) - playsound(target, 'sound/weapons/flash.ogg', 25, TRUE) + playsound(target, 'sound/items/weapons/flash.ogg', 25, TRUE) var/datum/effect_system/spark_spread/quantum/spark_system = new /datum/effect_system/spark_spread/quantum() spark_system.set_up(5, TRUE, target) spark_system.start() @@ -203,7 +203,7 @@ if(!hidden) // Takes twice as long to make sure it properly fades out. Beam(target, icon_state = teleport_beam, time = BEAM_FADE_TIME*2, beam_type = /obj/effect/ebeam/launchpad) - playsound(target, 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(target, 'sound/items/weapons/emitter2.ogg', 25, TRUE) // use a lot of power use_energy(active_power_usage) @@ -216,7 +216,7 @@ source = dest dest = target - playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/emitter2.ogg', 25, TRUE) var/first = TRUE for(var/atom/movable/ROI in source) if(ROI == src) @@ -417,7 +417,7 @@ return pad.doteleport(user, sending) -/obj/item/launchpad_remote/ui_act(action, params) +/obj/item/launchpad_remote/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm index 04883800f31ef..c8d0249fca02d 100644 --- a/code/game/machinery/lightswitch.dm +++ b/code/game/machinery/lightswitch.dm @@ -119,6 +119,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light_switch, 26) icon = 'icons/obj/machines/wallmounts.dmi' icon_state = "light-nopower" result_path = /obj/machinery/light_switch + custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT) pixel_shift = 26 /obj/item/circuit_component/light_switch diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index b63d13648eb76..834d7115b0418 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -149,7 +149,7 @@ if(user.combat_mode) //so we can hit the machine return ..() -/obj/machinery/limbgrower/ui_act(action, list/params) +/obj/machinery/limbgrower/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -178,7 +178,7 @@ consumed_reagents_list[reagent_id] *= production_coefficient if(!reagents.has_reagent(reagent_id, consumed_reagents_list[reagent_id])) audible_message(span_notice("[src] buzzes.")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return power = max(active_power_usage, (power + consumed_reagents_list[reagent_id])) @@ -207,7 +207,7 @@ for(var/reagent_id in modified_consumed_reagents_list) if(!reagents.has_reagent(reagent_id, modified_consumed_reagents_list[reagent_id])) audible_message(span_notice("The [src] buzzes.")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) break reagents.remove_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) @@ -233,7 +233,7 @@ */ /obj/machinery/limbgrower/proc/build_limb(buildpath) /// The limb we're making with our buildpath, so we can edit it. - //i need to create a body part manually using a set icon (otherwise it doesnt appear) + //i need to create a body part manually using a set icon (otherwise it doesn't appear) var/obj/item/bodypart/limb limb = new buildpath(loc) limb.name = "\improper synthetic [selected_category] [limb.plaintext_zone]" diff --git a/code/game/machinery/machine_frame.dm b/code/game/machinery/machine_frame.dm index ccdcddc87052d..d39d065232426 100644 --- a/code/game/machinery/machine_frame.dm +++ b/code/game/machinery/machine_frame.dm @@ -454,7 +454,7 @@ var/obj/item/circuitboard/machine/leaving_circuit = circuit circuit = null // Assign the circuit & parts & move them all at once into the machine - // no need to seperatly move circuit board as its already part of the components list + // no need to separately move circuit board as its already part of the components list new_machine.circuit = leaving_circuit new_machine.component_parts = components for (var/obj/new_part in components) diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 5f534ec95b4ed..401245613e1b0 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -31,7 +31,6 @@ for(var/obj/machinery/computer/pod/control as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/computer/pod)) if(control.id == id) control.connected = null - QDEL_NULL(wires) return ..() /obj/machinery/mass_driver/connect_to_shuttle(mapload, obj/docking_port/mobile/port, obj/docking_port/stationary/dock) diff --git a/code/game/machinery/mechlaunchpad.dm b/code/game/machinery/mechlaunchpad.dm index cbdc34d864800..70d075a551024 100644 --- a/code/game/machinery/mechlaunchpad.dm +++ b/code/game/machinery/mechlaunchpad.dm @@ -56,13 +56,13 @@ podspawn(list( "target" = get_turf(src), "path" = /obj/structure/closet/supplypod/mechpod, - "style" = STYLE_SEETHROUGH, + "style" = /datum/pod_style/seethrough, "reverse_dropoff_coords" = list(reverse_turf.x, reverse_turf.y, reverse_turf.z) )) use_energy(active_power_usage) /obj/structure/closet/supplypod/mechpod - style = STYLE_SEETHROUGH + style = /datum/pod_style/seethrough explosionSize = list(0,0,0,0) reversing = TRUE reverse_option_list = list("Mobs"=FALSE,"Objects"=FALSE,"Anchored"=FALSE,"Underfloor"=FALSE,"Wallmounted"=FALSE,"Floors"=FALSE,"Walls"=FALSE,"Mecha"=TRUE) diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index 6a63f07e5f51d..13126a0436b9f 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -304,7 +304,7 @@ addict_list += list(list("name" = initial(addiction_type.name))) if (patient.has_status_effect(/datum/status_effect/hallucination)) - hallucination_status = "Subject appears to be hallucinating. Suggested treatments: bedrest, mannitol or psicodine." + hallucination_status = "Subject appears to be hallucinating. Suggested treatments: Antipsychotic medication, [/datum/reagent/medicine/haloperidol::name] or [/datum/reagent/medicine/synaptizine::name]." if(patient.stat == DEAD || HAS_TRAIT(patient, TRAIT_FAKEDEATH) || ((brute_loss+fire_loss+tox_loss+oxy_loss) >= 200)) //Patient status checks. patient_status = "Dead." @@ -318,7 +318,7 @@ patient_status = pick( "The only kiosk is kiosk, but is the only patient, patient?", "Breathing manually.", - "Constact NTOS site admin.", + "Contact NTOS site admin.", "97% carbon, 3% natural flavoring", "The ebb and flow wears us all in time.", "It's Lupus. You have Lupus.", diff --git a/code/game/machinery/modular_shield.dm b/code/game/machinery/modular_shield.dm index cac65a032dff4..b4fa6bed17bb0 100644 --- a/code/game/machinery/modular_shield.dm +++ b/code/game/machinery/modular_shield.dm @@ -1,22 +1,22 @@ /obj/machinery/modular_shield_generator name = "modular shield generator" - desc = "A forcefield generator, it seems more stationary than its cousins. It cant handle G-force and will require frequent reboots when built on mobile craft." + desc = "A forcefield generator, it seems more stationary than its cousins. It can't handle G-force and will require frequent reboots when built on mobile craft." icon = 'icons/obj/machines/modular_shield_generator.dmi' icon_state = "gen_recovering_closed" density = TRUE circuit = /obj/item/circuitboard/machine/modular_shield_generator processing_flags = START_PROCESSING_ON_INIT - ///Doesnt actually control it, just tells us if its running or not, you can control by calling procs activate_shields and deactivate_shields + ///Doesn't actually control it, just tells us if its running or not, you can control by calling procs activate_shields and deactivate_shields var/active = FALSE ///If the generator is currently spawning the forcefield in var/initiating = FALSE - ///Determins if we can turn it on or not, no longer recovering when back to max strength + ///Determines if we can turn it on or not, no longer recovering when back to max strength var/recovering = TRUE - ///Determins max health of the shield + ///Determines max health of the shield var/max_strength = 40 ///Current health of shield @@ -28,13 +28,13 @@ ///The regeneration that the shield can support var/current_regeneration - ///Determins the max radius the shield can support + ///Determines the max radius the shield can support var/max_radius = 3 ///Current radius the shield is set to, minimum 3 var/radius = 3 - ///Determins if we only generate a shield on space turfs or not + ///Determines if we only generate a shield on space turfs or not var/exterior_only = FALSE ///The lazy list of shields that are ours @@ -276,7 +276,7 @@ data["initiating_field"] = initiating return data -/obj/machinery/modular_shield_generator/ui_act(action, params) +/obj/machinery/modular_shield_generator/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -286,7 +286,7 @@ return var/change_radius = max(1,(text2num(params["new_radius"]))) if(change_radius >= 10) - radius = round(change_radius)//if its over 10 we dont allow decimals + radius = round(change_radius)//if its over 10 we don't allow decimals return radius = change_radius @@ -370,7 +370,7 @@ recovering = FALSE calculate_regeneration() update_icon_state() - end_processing() //we dont care about continuing to update the alpha, we want to show history of damage to show its unstable + end_processing() //we don't care about continuing to update the alpha, we want to show history of damage to show its unstable if (active) var/random_num = rand(1,deployed_shields.len) var/obj/structure/emergency_shield/modular/random_shield = deployed_shields[random_num] @@ -383,7 +383,7 @@ /obj/machinery/modular_shield/module name = "modular shield debugger" //Filler name and sprite for testing - desc = "This is filler for testing you shouldn`t see this." + desc = "This is filler for testing you shouldn't see this." icon = 'icons/obj/machines/mech_bay.dmi' icon_state = "recharge_port" density = TRUE @@ -677,7 +677,7 @@ color = "#00ffff" density = FALSE alpha = 100 - resistance_flags = INDESTRUCTIBLE //the shield itself is indestructible or atleast should be + resistance_flags = INDESTRUCTIBLE //the shield itself is indestructible or at least should be no_damage_feedback = "weakening the generator sustaining it" ///The shield generator sustaining us diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index c15421cbf5abb..98149a8232223 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -181,16 +181,17 @@ data["static_controls"] = static_controls return data -/obj/machinery/navbeacon/ui_act(action, params) +/obj/machinery/navbeacon/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return + var/mob/user = ui.user - if(action == "lock" && allowed(usr)) + if(action == "lock" && allowed(user)) controls_locked = !controls_locked return TRUE - if(controls_locked && !HAS_SILICON_ACCESS(usr)) + if(controls_locked && !HAS_SILICON_ACCESS(user)) return switch(action) @@ -210,7 +211,7 @@ toggle_code(NAVBEACON_DELIVERY_MODE) return TRUE if("set_location") - var/input_text = tgui_input_text(usr, "Enter the beacon's location tag", "Beacon Location", location, 20) + var/input_text = tgui_input_text(user, "Enter the beacon's location tag", "Beacon Location", location, max_length = 20) if (!input_text || location == input_text) return glob_lists_deregister() @@ -219,7 +220,7 @@ return TRUE if("set_patrol_next") var/next_patrol = codes[NAVBEACON_PATROL_NEXT] - var/input_text = tgui_input_text(usr, "Enter the tag of the next patrol location", "Beacon Location", next_patrol, 20) + var/input_text = tgui_input_text(user, "Enter the tag of the next patrol location", "Beacon Location", next_patrol, max_length = 20) if (!input_text || location == input_text) return codes[NAVBEACON_PATROL_NEXT] = input_text diff --git a/code/game/machinery/nebula_shielding.dm b/code/game/machinery/nebula_shielding.dm index 10306177ebf5a..6473c1b1bfc46 100644 --- a/code/game/machinery/nebula_shielding.dm +++ b/code/game/machinery/nebula_shielding.dm @@ -140,7 +140,7 @@ /obj/item/paper/fluff/radiation_nebula name = "radioactive nebula shielding" default_raw_text = {"EXTREME IMPORTANCE!!!!
- Set up these radioactive nebula shielding units before the gravity generators native shielding is overwhelmed!
+ Set up these radioactive nebula shielding units before the gravity generator's native shielding is overwhelmed!
Shielding units passively generate tritium, so make sure to properly ventilate/isolate the area before setting up a shielding unit! More circuit boards can be ordered through cargo. Consider setting up auxillary shielding units in-case of destruction, power loss or sabotage. "} @@ -149,6 +149,6 @@ /obj/item/paper/fluff/radiation_nebula_virologist name = "radioactive resonance" default_raw_text = {"EXTREME IMPORTANCE!!!!
- During routine bloodscreening on employees working in the nebula, we found no traces of the sympton called 'Radioactive Resonance'.
- Something inside the nebula is interfering with it, be wary of a more shallow viral genepool. + During routine blood screening on employees working within the nebula, we have found no traces of the symptom called 'Radioactive Resonance'.
+ Something inside the nebula is interfering with it; be wary of a more shallow viral genepool. "} diff --git a/code/game/machinery/newscaster/newscaster_data.dm b/code/game/machinery/newscaster/newscaster_data.dm index 94449808857e1..89e491532c458 100644 --- a/code/game/machinery/newscaster/newscaster_data.dm +++ b/code/game/machinery/newscaster/newscaster_data.dm @@ -107,17 +107,17 @@ GLOBAL_LIST_EMPTY(request_list) channel_ID = random_channel_id_setup() /** - * This proc assigns each feed_channel a random integer, from 1-999 as a unique identifer. + * This proc assigns each feed_channel a random integer, from 1-999 as a unique identifier. * Using this value, the TGUI window has a unique identifier to attach to messages that can be used to reattach them * to their parent channels back in dreammaker. - * Based on implementation, we're limiting outselves to only 998 player made channels maximum. How we'd use all of them, I don't know. + * Based on implementation, we're limiting ourselves to only 998 player made channels maximum. How we'd use all of them, I don't know. */ /datum/feed_channel/proc/random_channel_id_setup() if(!GLOB.news_network) return //Should only apply to channels made before setup is finished, use hardset_channel for these if(!GLOB.news_network.channel_IDs) GLOB.news_network.channel_IDs += rand(1,999) - return //This will almost always be the station annoucements channel here. + return //This will almost always be the station announcements channel here. var/channel_id for(var/i in 1 to 10000) channel_id = rand(1, 999) @@ -155,7 +155,7 @@ GLOBAL_LIST_EMPTY(request_list) var/active /// What is the criminal in question's name? Not a mob reference as this is a text field. var/criminal - /// Message body used to describe what crime has been comitted. + /// Message body used to describe what crime has been committed. var/body /// Who was it that created this wanted message? var/scanned_user @@ -181,7 +181,7 @@ GLOBAL_LIST_EMPTY(request_list) var/message_count = 0 /datum/feed_network/New() - create_feed_channel("Station Announcements", "SS13", "Company news, staff annoucements, and all the latest information. Have a secure shift!", locked = TRUE, hardset_channel = 1000) + create_feed_channel("Station Announcements", "SS13", "Company news, staff announcements, and all the latest information. Have a secure shift!", locked = TRUE, hardset_channel = 1000) wanted_issue = new /datum/wanted_message /datum/feed_network/proc/create_feed_channel(channel_name, author, desc, locked, adminChannel = FALSE, hardset_channel) diff --git a/code/game/machinery/newscaster/newscaster_machine.dm b/code/game/machinery/newscaster/newscaster_machine.dm index 7f3d8ea806f46..18c3d9434d869 100644 --- a/code/game/machinery/newscaster/newscaster_machine.dm +++ b/code/game/machinery/newscaster/newscaster_machine.dm @@ -64,7 +64,7 @@ acid = 30 /obj/machinery/newscaster/pai/ui_state(mob/user) - return GLOB.reverse_contained_state + return GLOB.deep_inventory_state MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) @@ -264,7 +264,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) return data -/obj/machinery/newscaster/ui_act(action, params) +/obj/machinery/newscaster/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -405,14 +405,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) return TRUE if("setCriminalName") - var/temp_name = tgui_input_text(usr, "Write the Criminal's Name", "Warrent Alert Handler", "John Doe", MAX_NAME_LEN, multiline = FALSE) + var/temp_name = tgui_input_text(usr, "Write the Criminal's Name", "Warrent Alert Handler", "John Doe", max_length = MAX_NAME_LEN, multiline = FALSE) if(!temp_name) return TRUE criminal_name = temp_name return TRUE if("setCrimeData") - var/temp_desc = tgui_input_text(usr, "Write the Criminal's Crimes", "Warrent Alert Handler", "Unknown", MAX_BROADCAST_LEN, multiline = TRUE) + var/temp_desc = tgui_input_text(usr, "Write the Criminal's Crimes", "Warrent Alert Handler", "Unknown", max_length = MAX_BROADCAST_LEN, multiline = TRUE) if(!temp_desc) return TRUE crime_description = temp_desc @@ -529,9 +529,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(machine_stat & BROKEN) playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, TRUE) else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + playsound(loc, 'sound/effects/glass/glasshit.ogg', 90, TRUE) if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/machinery/newscaster/on_deconstruction(disassembled) @@ -542,7 +542,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) /obj/machinery/newscaster/atom_break(damage_flag) . = ..() if(.) - playsound(loc, 'sound/effects/glassbr3.ogg', 100, TRUE) + playsound(loc, 'sound/effects/glass/glassbr3.ogg', 100, TRUE) /obj/machinery/newscaster/attack_paw(mob/living/user, list/modifiers) @@ -623,7 +623,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(channel) if(update_alert) say("Breaking news from [channel]!") - playsound(loc, 'sound/machines/twobeep_high.ogg', 75, TRUE) + playsound(loc, 'sound/machines/beep/twobeep_high.ogg', 75, TRUE) alert = TRUE update_appearance() addtimer(CALLBACK(src, PROC_REF(remove_alert)), ALERT_DELAY, TIMER_UNIQUE|TIMER_OVERRIDE) @@ -703,7 +703,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(channel_name == potential_channel.channel_ID) current_channel = potential_channel break - var/temp_message = tgui_input_text(usr, "Write your Feed story", "Network Channel Handler", feed_channel_message, multiline = TRUE) + var/temp_message = tgui_input_text(usr, "Write your Feed story", "Network Channel Handler", feed_channel_message, max_length = MAX_BROADCAST_LEN, multiline = TRUE) if(length(temp_message) <= 1) return TRUE if(temp_message) @@ -745,10 +745,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) */ /obj/machinery/newscaster/proc/delete_bounty_request() if(!active_request || !current_user) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE if(active_request?.owner != current_user.account_holder) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE say("Deleted current request.") GLOB.request_list.Remove(active_request) @@ -759,7 +759,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) */ /obj/machinery/newscaster/proc/create_bounty() if(!current_user || !bounty_text) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE for(var/datum/station_request/iterated_station_request as anything in GLOB.request_list) if(iterated_station_request.req_number == current_user.account_id) @@ -779,11 +779,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) say("No ID detected.") return TRUE if(current_user.account_holder == active_request.owner) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE for(var/new_apply in active_request?.applicants) if(current_user.account_holder == active_request?.applicants[new_apply]) - playsound(src, 'sound/machines/buzz-sigh.ogg', 20, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 20, TRUE) return TRUE active_request.applicants += list(current_user) @@ -794,7 +794,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(!current_user) return TRUE if(!current_user.has_money(active_request.value) || (current_user.account_holder != active_request.owner)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) return TRUE payment_target.transfer_money(current_user, active_request.value, "Bounty Request") say("Paid out [active_request.value] credits.") diff --git a/code/game/machinery/newscaster/newspaper.dm b/code/game/machinery/newscaster/newspaper.dm index 2bd8187b9f8c0..6bc1e6c77ff14 100644 --- a/code/game/machinery/newscaster/newspaper.dm +++ b/code/game/machinery/newscaster/newspaper.dm @@ -84,7 +84,7 @@ if(scribble_page == current_page) user.balloon_alert(user, "already scribbled!") return - var/new_scribble_text = tgui_input_text(user, "What do you want to scribble?", "Write something") + var/new_scribble_text = tgui_input_text(user, "What do you want to scribble?", "Write something", max_length = MAX_MESSAGE_LEN) if(isnull(new_scribble_text)) return add_fingerprint(user) @@ -132,6 +132,15 @@ /// Called when someone tries to figure out what our identity is, but they can't see it because of the newspaper /obj/item/newspaper/proc/holder_checked_name(mob/living/carbon/human/source, list/identity) SIGNAL_HANDLER + + var/newspaper_obscurity_priority = 100 // how powerful obscuring your appearance with a newspaper is + if(identity[VISIBLE_NAME_FORCED]) + if(identity[VISIBLE_NAME_FORCED] > newspaper_obscurity_priority) // the other set forced name is forcier than breaking news + return + else if(identity[VISIBLE_NAME_FORCED] == newspaper_obscurity_priority) + stack_trace("A name-setting signal operation ([identity[VISIBLE_NAME_FACE]]) has a priority collision with [src].") + else + identity[VISIBLE_NAME_FORCED] = newspaper_obscurity_priority identity[VISIBLE_NAME_FACE] = "" identity[VISIBLE_NAME_ID] = "" diff --git a/code/game/machinery/photobooth.dm b/code/game/machinery/photobooth.dm index 321ae7efd6e76..917e28947d1fc 100644 --- a/code/game/machinery/photobooth.dm +++ b/code/game/machinery/photobooth.dm @@ -130,7 +130,7 @@ if(obj_flags & EMAGGED) var/mob/living/carbon/carbon_occupant = occupant for(var/i in 1 to 5) //play a ton of sounds to mimic it blinding you - playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE) + playsound(src, SFX_POLAROID, 75, TRUE) if(carbon_occupant) carbon_occupant.flash_act(5) sleep(0.2 SECONDS) @@ -141,12 +141,12 @@ if(!do_after(occupant, 2 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) //gives them time to put their hand items away. taking_pictures = FALSE return - playsound(src, 'sound/items/polaroid1.ogg', 75, TRUE) + playsound(src, 'sound/items/polaroid/polaroid1.ogg', 75, TRUE) flash() if(!do_after(occupant, 3 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) taking_pictures = FALSE return - playsound(src, 'sound/items/polaroid2.ogg', 75, TRUE) + playsound(src, 'sound/items/polaroid/polaroid2.ogg', 75, TRUE) flash() if(!do_after(occupant, 2 SECONDS, src, timed_action_flags = IGNORE_HELD_ITEM)) taking_pictures = FALSE diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 929383b178c62..39d6fe7d2ea0c 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -36,9 +36,11 @@ Buildable meters icon_state_preview = "junction" pipe_type = /obj/machinery/atmospherics/pipe/heat_exchanging/junction /obj/item/pipe/directional/vent + name = "air vent fitting" icon_state_preview = "uvent" pipe_type = /obj/machinery/atmospherics/components/unary/vent_pump /obj/item/pipe/directional/scrubber + name = "air scrubber fitting" icon_state_preview = "scrubber" pipe_type = /obj/machinery/atmospherics/components/unary/vent_scrubber /obj/item/pipe/directional/connector @@ -53,6 +55,9 @@ Buildable meters /obj/item/pipe/directional/he_exchanger icon_state_preview = "heunary" pipe_type = /obj/machinery/atmospherics/components/unary/heat_exchanger +/obj/item/pipe/directional/airlock_pump + icon_state_preview = "airlock_pump" + pipe_type = /obj/machinery/atmospherics/components/unary/airlock_pump /obj/item/pipe/binary RPD_type = PIPE_STRAIGHT /obj/item/pipe/binary/layer_adapter @@ -75,6 +80,7 @@ Buildable meters RPD_type = PIPE_TRIN_M var/flipped = FALSE /obj/item/pipe/trinary/flippable/filter + name = "gas filter fitting" icon_state_preview = "filter" pipe_type = /obj/machinery/atmospherics/components/trinary/filter /obj/item/pipe/trinary/flippable/mixer @@ -169,7 +175,7 @@ Buildable meters set name = "Invert Pipe" set src in view(1) - if ( usr.incapacitated() ) + if ( usr.incapacitated ) return do_a_flip() diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index eb5b499bce79e..de7c6351e38d4 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -62,7 +62,7 @@ data["init_directions"] = init_directions return data -/obj/machinery/pipedispenser/ui_act(action, params) +/obj/machinery/pipedispenser/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) if(..()) return switch(action) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index c9694730a3f8a..e64e01bbcf246 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -135,15 +135,13 @@ DEFINE_BITFIELD(turret_flags, list( if(!has_cover) INVOKE_ASYNC(src, PROC_REF(popUp)) - RegisterSignal(src, COMSIG_HIT_BY_SABOTEUR, PROC_REF(on_saboteur)) - AddElement(/datum/element/hostile_machine) ///Toggles the turret on or off depending on the value of the turn_on arg. /obj/machinery/porta_turret/proc/toggle_on(turn_on = TRUE) if(on == turn_on) return - if(on && !COOLDOWN_FINISHED(src, disabled_time)) + if(turn_on && !COOLDOWN_FINISHED(src, disabled_time)) return on = turn_on check_should_process() @@ -157,10 +155,10 @@ DEFINE_BITFIELD(turret_flags, list( addtimer(CALLBACK(src, PROC_REF(toggle_on), TRUE), duration + 1) //the cooldown isn't over until the tick after its end. toggle_on(FALSE) -/obj/machinery/porta_turret/proc/on_saboteur(datum/source, disrupt_duration) - SIGNAL_HANDLER +/obj/machinery/porta_turret/on_saboteur(datum/source, disrupt_duration) + . = ..() INVOKE_ASYNC(src, PROC_REF(set_disabled), disrupt_duration) - return COMSIG_SABOTEUR_SUCCESS + return TRUE /obj/machinery/porta_turret/proc/check_should_process() if (datum_flags & DF_ISPROCESSING) @@ -264,7 +262,7 @@ DEFINE_BITFIELD(turret_flags, list( data["allow_manual_control"] = TRUE return data -/obj/machinery/porta_turret/ui_act(action, list/params) +/obj/machinery/porta_turret/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -575,7 +573,7 @@ DEFINE_BITFIELD(turret_flags, list( // If we aren't shooting heads then return a threatcount of 0 if (!(turret_flags & TURRET_FLAG_SHOOT_HEADS)) - var/datum/job/apparent_job = SSjob.GetJob(perp.get_assignment()) + var/datum/job/apparent_job = SSjob.get_job(perp.get_assignment()) if(apparent_job?.job_flags & JOB_HEAD_OF_STAFF) return 0 @@ -749,8 +747,8 @@ DEFINE_BITFIELD(turret_flags, list( mode = TURRET_LETHAL stun_projectile = /obj/projectile/bullet lethal_projectile = /obj/projectile/bullet - lethal_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' - stun_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' + lethal_projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg' + stun_projectile_sound = 'sound/items/weapons/gun/pistol/shot.ogg' icon_state = "syndie_off" base_icon_state = "syndie" faction = list(ROLE_SYNDICATE) @@ -771,9 +769,9 @@ DEFINE_BITFIELD(turret_flags, list( icon_state = "standard_lethal" base_icon_state = "standard" stun_projectile = /obj/projectile/energy/electrode - stun_projectile_sound = 'sound/weapons/taser.ogg' + stun_projectile_sound = 'sound/items/weapons/taser.ogg' lethal_projectile = /obj/projectile/beam/laser - lethal_projectile_sound = 'sound/weapons/laser.ogg' + lethal_projectile_sound = 'sound/items/weapons/laser.ogg' desc = "An energy blaster auto-turret." armor_type = /datum/armor/syndicate_turret @@ -790,14 +788,14 @@ DEFINE_BITFIELD(turret_flags, list( icon_state = "standard_lethal" base_icon_state = "standard" stun_projectile = /obj/projectile/energy/electrode - stun_projectile_sound = 'sound/weapons/taser.ogg' + stun_projectile_sound = 'sound/items/weapons/taser.ogg' lethal_projectile = /obj/projectile/beam/laser/heavylaser - lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + lethal_projectile_sound = 'sound/items/weapons/lasercannonfire.ogg' desc = "An energy blaster auto-turret." /obj/machinery/porta_turret/syndicate/energy/raven stun_projectile = /obj/projectile/beam/laser - stun_projectile_sound = 'sound/weapons/laser.ogg' + stun_projectile_sound = 'sound/items/weapons/laser.ogg' faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) /obj/machinery/porta_turret/syndicate/pod @@ -808,9 +806,9 @@ DEFINE_BITFIELD(turret_flags, list( /obj/machinery/porta_turret/syndicate/irs lethal_projectile = /obj/projectile/bullet/c10mm/ap - lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' + lethal_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' stun_projectile = /obj/projectile/bullet/c10mm/ap - stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' + stun_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' armor_type = /datum/armor/syndicate_turret faction = list(FACTION_PIRATE) @@ -819,8 +817,8 @@ DEFINE_BITFIELD(turret_flags, list( shot_delay = 3 stun_projectile = /obj/projectile/bullet/p50/penetrator/shuttle lethal_projectile = /obj/projectile/bullet/p50/penetrator/shuttle - lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' - stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' + lethal_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' + stun_projectile_sound = 'sound/items/weapons/gun/smg/shot.ogg' armor_type = /datum/armor/syndicate_shuttle /datum/armor/syndicate_shuttle @@ -853,7 +851,7 @@ DEFINE_BITFIELD(turret_flags, list( installation = null uses_stored = FALSE lethal_projectile = /obj/projectile/plasma/turret - lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' + lethal_projectile_sound = 'sound/items/weapons/plasma_cutter.ogg' mode = TURRET_LETHAL //It would be useless in stun mode anyway faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) //Minebots, medibots, etc that should not be shot. @@ -880,8 +878,8 @@ DEFINE_BITFIELD(turret_flags, list( scan_range = 9 stun_projectile = /obj/projectile/beam/laser lethal_projectile = /obj/projectile/beam/laser - lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' - stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg' + lethal_projectile_sound = 'sound/items/weapons/plasma_cutter.ogg' + stun_projectile_sound = 'sound/items/weapons/plasma_cutter.ogg' icon_state = "syndie_off" base_icon_state = "syndie" faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) @@ -906,6 +904,13 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile = /obj/projectile/beam/weak/penetrator faction = list(FACTION_NEUTRAL,FACTION_SILICON,FACTION_TURRET) +/obj/machinery/porta_turret/centcom_shuttle/weak/mining + name = "Old Mining Turret" + lethal_projectile = /obj/projectile/kinetic/miner + lethal_projectile_sound = 'sound/items/weapons/kinetic_accel.ogg' + stun_projectile = /obj/projectile/kinetic/miner + stun_projectile_sound = 'sound/items/weapons/kinetic_accel.ogg' + //////////////////////// //Turret Control Panel// //////////////////////// @@ -1025,34 +1030,36 @@ DEFINE_BITFIELD(turret_flags, list( /obj/machinery/turretid/ui_data(mob/user) var/list/data = list() data["locked"] = locked - data["siliconUser"] = user.has_unlimited_silicon_privilege + data["siliconUser"] = HAS_SILICON_ACCESS(user) data["enabled"] = enabled data["lethal"] = lethal data["shootCyborgs"] = shoot_cyborgs return data -/obj/machinery/turretid/ui_act(action, list/params) +/obj/machinery/turretid/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return + var/mob/user = ui.user + switch(action) if("lock") - if(!usr.has_unlimited_silicon_privilege) + if(!HAS_SILICON_ACCESS(user)) return if((obj_flags & EMAGGED) || (machine_stat & BROKEN)) - to_chat(usr, span_warning("The turret control is unresponsive!")) + to_chat(user, span_warning("The turret control is unresponsive!")) return locked = !locked return TRUE if("power") - toggle_on(usr) + toggle_on(user) return TRUE if("mode") - toggle_lethal(usr) + toggle_lethal(user) return TRUE if("shoot_silicons") - shoot_silicons(usr) + shoot_silicons(user) return TRUE /obj/machinery/turretid/proc/toggle_lethal(mob/user) diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm index a8fa4e67b2bf6..0ae7d9699ee26 100644 --- a/code/game/machinery/porta_turret/portable_turret_construct.dm +++ b/code/game/machinery/porta_turret/portable_turret_construct.dm @@ -182,7 +182,7 @@ return if(used.get_writing_implement_details()?["interaction_mode"] == MODE_WRITING) //you can rename turrets like bots! - var/choice = tgui_input_text(user, "Enter a new turret name", "Turret Classification", finish_name, MAX_NAME_LEN) + var/choice = tgui_input_text(user, "Enter a new turret name", "Turret Classification", finish_name, max_length = MAX_NAME_LEN) if(!choice) return if(!user.can_perform_action(src)) diff --git a/code/game/machinery/portagrav.dm b/code/game/machinery/portagrav.dm new file mode 100644 index 0000000000000..9edbe568021af --- /dev/null +++ b/code/game/machinery/portagrav.dm @@ -0,0 +1,268 @@ +/obj/machinery/power/portagrav + anchored = FALSE + density = TRUE + interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON + icon = 'icons/obj/machines/gravity_generator.dmi' + icon_state = "portagrav" + base_icon_state = "portagrav" + name = "Portable Gravity Unit" + desc = "Generates gravity around itself. Powered by wire or cell. Must be anchored before use." + max_integrity = 250 + circuit = /obj/item/circuitboard/machine/portagrav + armor_type = /datum/armor/portable_gravity + interaction_flags_click = ALLOW_SILICON_REACH + //We don't use area power + use_power = NO_POWER_USE + ///The cell we spawn with + var/obj/item/stock_parts/power_store/cell/cell = /obj/item/stock_parts/power_store/cell/high + ///Is the machine on? + var/on = FALSE + /// do we use power from wire instead + var/wire_mode = FALSE + /// our gravity field + var/datum/proximity_monitor/advanced/gravity/subtle_effect/gravity_field + /// strength of our gravity + var/grav_strength = STANDARD_GRAVITY + /// gravity range + var/range = 4 + /// max gravity range + var/max_range = 6 + /// draw per range + var/draw_per_range = BASE_MACHINE_ACTIVE_CONSUMPTION + +/datum/armor/portable_gravity + fire = 100 + melee = 10 + bomb = 40 + +/obj/machinery/power/portagrav/Initialize(mapload) + . = ..() + if(ispath(cell)) + cell = new cell(src) + if(anchored && wire_mode) + connect_to_network() + + AddElement( \ + /datum/element/contextual_screentip_bare_hands, \ + rmb_text = "Toggle power", \ + ) + + var/static/list/tool_behaviors = list( + TOOL_WRENCH = list( + SCREENTIP_CONTEXT_LMB = "Anchor", + ), + ) + AddElement(/datum/element/contextual_screentip_tools, tool_behaviors) + +/obj/machinery/power/portagrav/Destroy() + . = ..() + cell = null + +/obj/machinery/power/portagrav/update_overlays() + . = ..() + if(anchored) + . += "portagrav_anchors" + if(on) + . += "portagrav_lights" + . += "activated" + +/obj/machinery/power/portagrav/examine(mob/user) + . = ..() + . += "It is [on ? "on" : "off"]." + . += "The charge meter reads: [!isnull(cell) ? "[round(cell.percent(), 1)]%" : "NO CELL"]." + . += "It is[anchored ? "" : " not"] anchored." + if(in_range(user, src) || isobserver(user)) + . += span_notice("Right-click to toggle [on ? "off" : "on"].") + +/obj/machinery/power/portagrav/RefreshParts() + . = ..() + var/power_usage = initial(draw_per_range) + for(var/datum/stock_part/micro_laser/laser in component_parts) + power_usage -= BASE_MACHINE_ACTIVE_CONSUMPTION / 10 * (laser.tier - 1) + draw_per_range = power_usage + var/new_range = 4 + for(var/datum/stock_part/capacitor/capacitor in component_parts) + new_range += capacitor.tier + max_range = new_range + update_field() + +/obj/machinery/power/portagrav/screwdriver_act(mob/living/user, obj/item/tool) + . = NONE + if(default_deconstruction_screwdriver(user, "[base_icon_state]_o", base_icon_state, tool)) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/power/portagrav/crowbar_act(mob/living/user, obj/item/tool) + . = NONE + if(default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/power/portagrav/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = NONE + if(!istype(tool, /obj/item/stock_parts/power_store/cell)) + return + if(!panel_open) + balloon_alert(user, "must open panel!") + return ITEM_INTERACT_BLOCKING + if(cell) + balloon_alert(user, "already has a cell!") + return ITEM_INTERACT_BLOCKING + if(!user.transferItemToLoc(tool, src)) + return ITEM_INTERACT_FAILURE + cell = tool + return ITEM_INTERACT_SUCCESS + +/obj/machinery/power/portagrav/should_have_node() + return anchored + +/obj/machinery/power/portagrav/connect_to_network() + if(!anchored) + return FALSE + . = ..() + +/obj/machinery/power/portagrav/wrench_act(mob/living/user, obj/item/tool) + . = ..() + if(on) + balloon_alert(user, "turn off first!") + return + default_unfasten_wrench(user, tool) + if(anchored && wire_mode) + connect_to_network() + else + disconnect_from_network() + update_appearance() + return ITEM_INTERACT_SUCCESS + +/obj/machinery/power/portagrav/get_cell() + return cell + +/obj/machinery/power/portagrav/attack_hand(mob/living/carbon/user, list/modifiers) + . = ..() + if(!panel_open || isnull(cell) || !istype(user) || user.combat_mode) + return + if(user.put_in_hands(cell)) + cell = null + +/obj/machinery/power/portagrav/attack_hand_secondary(mob/user, list/modifiers) + if(!can_interact(user)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + toggle_on(user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/machinery/power/portagrav/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + obj_flags |= EMAGGED + visible_message(span_warning("Sparks fly out of [src]!")) + if(user) + balloon_alert(user, "unsafe gravity unlocked") + user.log_message("emagged [src].", LOG_ATTACK) + playsound(src, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + return TRUE + +/obj/machinery/power/portagrav/proc/toggle_on(mob/user) + if(on) + turn_off(user) + else + turn_on(user) + +/obj/machinery/power/portagrav/proc/turn_on(mob/user) + if(!anchored) + if(!isnull(user)) + balloon_alert(user, "not anchored!") + return FALSE + if((!wire_mode && cell?.charge < draw_per_range * range) || (wire_mode && surplus() < draw_per_range * range)) + if(!isnull(user)) + balloon_alert(user, "not enough power!") + return FALSE + if(!isnull(user)) + balloon_alert(user, "turned on") + on = TRUE + START_PROCESSING(SSmachines, src) + gravity_field = new(src, range = src.range, gravity = grav_strength) + update_appearance() + +/obj/machinery/power/portagrav/proc/turn_off(mob/user) + on = FALSE + if(!isnull(user)) + balloon_alert(user, "turned off") + STOP_PROCESSING(SSmachines, src) + QDEL_NULL(gravity_field) + update_appearance() + +/obj/machinery/power/portagrav/process(seconds_per_tick) + if(!on || !anchored) + return PROCESS_KILL + if(wire_mode) + if(powernet && surplus() >= draw_per_range * range) + add_load(draw_per_range * range) + else + turn_off() + else + if(!cell?.use(draw_per_range * range)) + turn_off() + +/obj/machinery/power/portagrav/proc/update_field() + if(isnull(gravity_field)) + return + gravity_field.set_range(range) + gravity_field.gravity_value = grav_strength + gravity_field.recalculate_field(full_recalc = TRUE) + +/obj/machinery/power/portagrav/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Portagrav", name) + ui.open() + +/obj/machinery/power/portagrav/ui_data(mob/user) + . = list() + if(!isnull(cell)) + .["percentage"] = (cell.charge / cell.maxcharge) * 100 + .["gravity"] = grav_strength + .["range"] = range + .["maxrange"] = max_range + .["on"] = on + .["wiremode"] = wire_mode + .["draw"] = display_power(draw_per_range * range) + +/obj/machinery/power/portagrav/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + playsound(src, 'sound/machines/terminal/terminal_button07.ogg', 45, TRUE) + switch(action) + if("adjust_grav") + var/adjustment = text2num(params["adjustment"]) + if(isnull(adjustment)) + return + var/bonus = (obj_flags & EMAGGED) ? 2 : 0 + // REPLACE 0 with NEGATIVE_GRAVITY ONCE NEGATIVE GRAVITY IS SOMETHING ACTUALLY FUNCTIONAL + var/result = clamp(grav_strength + adjustment, 0, GRAVITY_DAMAGE_THRESHOLD - 1 + bonus) + if(result == grav_strength) + return + grav_strength = result + update_field() + return TRUE + if("toggle_power") + toggle_on(usr) + return TRUE + if("toggle_wire") + wire_mode = !wire_mode + if(wire_mode && anchored) + connect_to_network() + else + disconnect_from_network() + return TRUE + if("adjust_range") + var/adjustment = text2num(params["adjustment"]) + if(isnull(adjustment)) + return + var/result = clamp(range + adjustment, 0, max_range) + if(result == range) + return + range = result + update_field() + return TRUE + +/obj/machinery/power/portagrav/anchored + anchored = TRUE diff --git a/code/game/machinery/prisongate.dm b/code/game/machinery/prisongate.dm index b05b6dd90c4a1..88cb40dd50f79 100644 --- a/code/game/machinery/prisongate.dm +++ b/code/game/machinery/prisongate.dm @@ -51,7 +51,7 @@ for(var/mob/living/stowaway in cargobay.contents) //nice try bub if(COOLDOWN_FINISHED(src, spam_cooldown_time)) say("Stowaway detected in internal contents. Access denied.") - playsound(src, 'sound/machines/buzz-two.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE) COOLDOWN_START(src, spam_cooldown_time, SPAM_CD) return FALSE var/mob/living/carbon/the_toucher = gate_toucher @@ -82,7 +82,7 @@ return TRUE if(COOLDOWN_FINISHED(src, spam_cooldown_time)) say("Prison ID with ongoing sentence detected. Access denied.") - playsound(src, 'sound/machines/buzz-two.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE) COOLDOWN_START(src, spam_cooldown_time, SPAM_CD) return FALSE if(COOLDOWN_FINISHED(src, spam_cooldown_time)) diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index f5f5851b7586e..635f567b8b310 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -132,7 +132,7 @@ /obj/machinery/quantumpad/proc/doteleport(mob/user = null, obj/machinery/quantumpad/target_pad = linked_pad) if(!target_pad) return - playsound(get_turf(src), 'sound/weapons/flash.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/flash.ogg', 25, TRUE) teleporting = TRUE addtimer(CALLBACK(src, PROC_REF(teleport_contents), user, target_pad), teleport_speed) @@ -156,9 +156,9 @@ target_pad.sparks() flick("qpad-beam", src) - playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(get_turf(src), 'sound/items/weapons/emitter2.ogg', 25, TRUE) flick("qpad-beam", target_pad) - playsound(get_turf(target_pad), 'sound/weapons/emitter2.ogg', 25, TRUE) + playsound(get_turf(target_pad), 'sound/items/weapons/emitter2.ogg', 25, TRUE) for(var/atom/movable/ROI in get_turf(src)) if(QDELETED(ROI)) continue //sleeps in CHECK_TICK diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 28aae48886621..166410cfccf56 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -15,7 +15,7 @@ var/amount_produced = 50 var/crush_damage = 1000 var/eat_victim_items = TRUE - var/item_recycle_sound = 'sound/items/welder.ogg' + var/item_recycle_sound = 'sound/items/tools/welder.ogg' var/datum/component/material_container/materials /obj/machinery/recycler/Initialize(mapload) @@ -133,33 +133,55 @@ qdel(morsel) return - var/list/to_eat = (issilicon(morsel) ? list(morsel) : morsel.get_all_contents()) //eating borg contents leads to many bad things + var/list/atom/to_eat = list(morsel) var/living_detected = FALSE //technically includes silicons as well but eh var/list/nom = list() var/list/crunchy_nom = list() //Mobs have to be handled differently so they get a different list instead of checking them multiple times. + var/not_eaten = 0 - for(var/thing in to_eat) - var/obj/as_object = thing - if(istype(as_object)) - if(as_object.resistance_flags & INDESTRUCTIBLE) - if(!isturf(as_object.loc) && !isliving(as_object.loc)) - as_object.forceMove(loc) // so you still cant shove it in a locker - continue - var/obj/item/bodypart/head/as_head = thing - var/obj/item/mmi/as_mmi = thing - if(istype(thing, /obj/item/organ/internal/brain) || (istype(as_head) && locate(/obj/item/organ/internal/brain) in as_head) || (istype(as_mmi) && as_mmi.brain) || istype(thing, /obj/item/dullahan_relay)) - living_detected = TRUE - if(isitem(as_object)) - var/obj/item/as_item = as_object - if(as_item.item_flags & ABSTRACT) //also catches organs and bodyparts *stares* - continue - nom += thing - else if(isliving(thing)) + while (to_eat.len) + var/atom/movable/thing = to_eat[1] + to_eat -= thing + + if (thing.flags_1 & HOLOGRAM_1) + qdel(thing) + continue + + if (thing.resistance_flags & INDESTRUCTIBLE) + if (!isturf(thing.loc) && !isliving(thing.loc)) + thing.forceMove(loc) + not_eaten += 1 + continue + + if (isliving(thing)) living_detected = TRUE crunchy_nom += thing + if (!issilicon(thing)) + to_eat |= thing.contents + continue + + if (!isobj(thing)) + not_eaten += 1 + continue + + if (isitem(thing)) + var/obj/item/as_item = thing + if (as_item.item_flags & ABSTRACT) + not_eaten += 1 + continue + + if (istype(thing, /obj/item/organ/internal/brain) || istype(thing, /obj/item/dullahan_relay)) + living_detected = TRUE + + if (istype(thing, /obj/item/mmi)) + var/obj/item/mmi/mmi = thing + if (!isnull(mmi.brain)) + living_detected = TRUE + + nom += thing + to_eat |= thing.contents - var/not_eaten = to_eat.len - nom.len - crunchy_nom.len if(living_detected) // First, check if we have any living beings detected. if(obj_flags & EMAGGED) for(var/CRUNCH in crunchy_nom) // Eat them and keep going because we don't care about safety. @@ -174,7 +196,7 @@ /** * we process the list in reverse so that atoms without parents/contents are deleted first & their parents are deleted next & so on. - * this is the reverse order in which get_all_contents() returns it's list + * this is the reverse order in which get_all_contents() returns its list * if we delete an atom containing stuff then all its stuff are deleted with it as well so we will end recycling deleted items down the list and gain nothing from them */ for(var/i = length(nom); i >= 1; i--) @@ -184,7 +206,7 @@ if(nom.len && sound) playsound(src, item_recycle_sound, (50 + nom.len * 5), TRUE, nom.len, ignore_walls = (nom.len - 10)) // As a substitute for playing 50 sounds at once. if(not_eaten) - playsound(src, 'sound/machines/buzz-sigh.ogg', (50 + not_eaten * 5), FALSE, not_eaten, ignore_walls = (not_eaten - 10)) // Ditto. + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', (50 + not_eaten * 5), FALSE, not_eaten, ignore_walls = (not_eaten - 10)) // Ditto. /obj/machinery/recycler/proc/recycle_item(obj/item/weapon) . = FALSE @@ -203,7 +225,7 @@ qdel(weapon) /obj/machinery/recycler/proc/emergency_stop() - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) safety_mode = TRUE update_appearance() addtimer(CALLBACK(src, PROC_REF(reboot)), SAFETY_COOLDOWN) @@ -217,7 +239,7 @@ L.forceMove(loc) if(issilicon(L)) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 50, TRUE) else playsound(src, 'sound/effects/splat.ogg', 50, TRUE) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 4a764872a8a2a..6124d15a7f4b7 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -200,7 +200,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) var/mob/living/L = usr message = L.treat_message(message)["message"] - minor_announce(message, "[department] Announcement:", html_encode = FALSE, sound_override = 'sound/misc/announce_dig.ogg') + minor_announce(message, "[department] Announcement:", html_encode = FALSE, sound_override = 'sound/announcer/announcement/announce_dig.ogg') GLOB.news_network.submit_article(message, department, "Station Announcements", null) usr.log_talk(message, LOG_SAY, tag="station announcement from [src]") message_admins("[ADMIN_LOOKUPFLW(usr)] has made a station announcement from [src] at [AREACOORD(usr)].") @@ -217,7 +217,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) return if(!reply_message) has_mail_send_error = TRUE - playsound(src, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) return TRUE send_message(recipient, reply_message, REQ_NORMAL_MESSAGE_PRIORITY, REPLY_REQUEST) @@ -273,9 +273,9 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) if(!silent) if(has_mail_send_error) - playsound(src, 'sound/machines/buzz-two.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, TRUE) else - playsound(src, 'sound/machines/twobeep.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep.ogg', 50, TRUE) message_stamped_by = "" message_verified_by = "" @@ -350,7 +350,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments) var/alert = new_message.get_alert() if(!silent) - playsound(src, 'sound/machines/twobeep_high.ogg', 50, TRUE) + playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE) say(alert) if(new_message.radio_freq) diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index ba4a5136a8978..f0bc48916ae21 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -98,7 +98,7 @@ return data -/obj/machinery/roulette/ui_act(action, params) +/obj/machinery/roulette/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -127,7 +127,7 @@ if(isidcard(W)) playsound(src, 'sound/machines/card_slide.ogg', 50, TRUE) else - playsound(src, 'sound/machines/terminal_success.ogg', 50, TRUE) + playsound(src, 'sound/machines/terminal/terminal_success.ogg', 50, TRUE) if(machine_stat & MAINT || !on || locked) to_chat(user, span_notice("The machine appears to be disabled.")) @@ -135,17 +135,17 @@ if(!player_card.registered_account) say("You don't have a bank account!") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE if(my_card) if(IS_DEPARTMENTAL_CARD(player_card)) // Are they using a department ID say("You cannot gamble with the department budget!") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE if(player_card.registered_account.account_balance < chosen_bet_amount) //Does the player have enough funds say("You do not have the funds to play! Lower your bet or get more money.") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE if(!chosen_bet_amount || isnull(chosen_bet_type)) return FALSE @@ -181,13 +181,13 @@ icon_state = "rolling" //Prepare the new icon state for rolling before hand. flick("flick_up", src) - playsound(src, 'sound/machines/piston_raise.ogg', 70) + playsound(src, 'sound/machines/piston/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 return TRUE else - var/msg = tgui_input_text(user, "Name of your roulette wheel", "Roulette Customization", "Roulette Machine", MAX_NAME_LEN) + var/msg = tgui_input_text(user, "Name of your roulette wheel", "Roulette Customization", "Roulette Machine", max_length = MAX_NAME_LEN) if(!msg) return name = msg @@ -209,7 +209,7 @@ if(!my_card?.registered_account) // Something happened to my_card during the 0.4 seconds delay of the timed callback. icon_state = "idle" flick("flick_down", src) - playsound(src, 'sound/machines/piston_lower.ogg', 70) + playsound(src, 'sound/machines/piston/piston_lower.ogg', 70) return var/payout = potential_payout @@ -222,7 +222,7 @@ var/rolled_number = rand(0, 36) - playsound(src, 'sound/machines/roulettewheel.ogg', 50) + playsound(src, 'sound/machines/roulette/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)), 3 SECONDS) @@ -231,7 +231,7 @@ /obj/machinery/roulette/proc/finish_play_animation() icon_state = "idle" flick("flick_down", src) - playsound(src, 'sound/machines/piston_lower.ogg', 70) + playsound(src, 'sound/machines/piston/piston_lower.ogg', 70) ///Ran after a while to check if the player won or not. /obj/machinery/roulette/proc/finish_play(obj/item/card/id/player_id, bet_type, bet_amount, potential_payout, rolled_number) @@ -249,7 +249,7 @@ if(!is_winner) say("You lost! Better luck next time") - playsound(src, 'sound/machines/synth_no.ogg', 50) + playsound(src, 'sound/machines/synth/synth_no.ogg', 50) return FALSE // Prevents money generation exploits. Doesn't prevent the owner being a scrooge and running away with the money. @@ -257,7 +257,7 @@ potential_payout = (account_balance >= potential_payout) ? potential_payout : account_balance say("You have won [potential_payout] credits! Congratulations!") - playsound(src, 'sound/machines/synth_yes.ogg', 50) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 50) dispense_prize(potential_payout) @@ -277,7 +277,7 @@ var/value = coin_values[coin_type] //Change this to use initial value once we change to mat datum coins. var/coin_count = round(remaining_payout / value) - if(!coin_count) //Cant make coins of this type, as we can't reach it's value. + if(!coin_count) //Cant make coins of this type, as we can't reach its value. continue remaining_payout -= value * coin_count @@ -362,7 +362,7 @@ if(my_card.registered_account.account_balance >= payout) return TRUE //We got the betting amount say("The bank account of [my_card.registered_account.account_holder] does not have enough funds to pay out the potential prize, contact them to fill up their account or lower your bet!") - playsound(src, 'sound/machines/buzz-two.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 30, TRUE) return FALSE /obj/machinery/roulette/update_overlays() @@ -451,11 +451,12 @@ addtimer(CALLBACK(src, PROC_REF(launch_payload)), 4 SECONDS) /obj/item/roulette_wheel_beacon/proc/launch_payload() - var/obj/structure/closet/supplypod/centcompod/toLaunch = new() + podspawn(list( + "target" = drop_location(), + "path" = /obj/structure/closet/supplypod/centcompod, + "spawn" = /obj/machinery/roulette + )) - new /obj/machinery/roulette(toLaunch) - - new /obj/effect/pod_landingzone(drop_location(), toLaunch) qdel(src) #undef ROULETTE_DOZ_COL_PAYOUT diff --git a/code/game/machinery/satellite/satellite_control.dm b/code/game/machinery/satellite/satellite_control.dm index c0875d9e26a6b..9983cc439e366 100644 --- a/code/game/machinery/satellite/satellite_control.dm +++ b/code/game/machinery/satellite/satellite_control.dm @@ -11,7 +11,7 @@ ui = new(user, src, "SatelliteControl", name) ui.open() -/obj/machinery/computer/sat_control/ui_act(action, params) +/obj/machinery/computer/sat_control/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm deleted file mode 100644 index 3986b109ffc7d..0000000000000 --- a/code/game/machinery/scan_gate.dm +++ /dev/null @@ -1,284 +0,0 @@ -#define SCANGATE_NONE "Off" -#define SCANGATE_MINDSHIELD "Mindshield" -#define SCANGATE_DISEASE "Disease" -#define SCANGATE_GUNS "Guns" -#define SCANGATE_WANTED "Wanted" -#define SCANGATE_SPECIES "Species" -#define SCANGATE_NUTRITION "Nutrition" - -#define SCANGATE_HUMAN "human" -#define SCANGATE_LIZARD "lizard" -#define SCANGATE_FELINID "felinid" -#define SCANGATE_FLY "fly" -#define SCANGATE_PLASMAMAN "plasma" -#define SCANGATE_MOTH "moth" -#define SCANGATE_JELLY "jelly" -#define SCANGATE_POD "pod" -#define SCANGATE_GOLEM "golem" -#define SCANGATE_ZOMBIE "zombie" - -/obj/machinery/scanner_gate - name = "scanner gate" - desc = "A gate able to perform mid-depth scans on any organisms who pass under it." - icon = 'icons/obj/machines/scangate.dmi' - icon_state = "scangate" - circuit = /obj/item/circuitboard/machine/scanner_gate - - var/scanline_timer - ///Internal timer to prevent audio spam. - var/next_beep = 0 - ///Bool to check if the scanner's controls are locked by an ID. - var/locked = FALSE - ///Which setting is the scanner checking for? See defines in scan_gate.dm for the list. - var/scangate_mode = SCANGATE_NONE - ///Is searching for a disease, what severity is enough to trigger the gate? - var/disease_threshold = DISEASE_SEVERITY_MINOR - ///If scanning for a specific species, what species is it looking for? - var/detect_species = SCANGATE_HUMAN - ///Flips all scan results for inverse scanning. Signals if scan returns false. - var/reverse = FALSE - ///If scanning for nutrition, what level of nutrition will trigger the scanner? - var/detect_nutrition = NUTRITION_LEVEL_FAT - ///Will the assembly on the pass wire activate if the scanner resolves green (Pass) on crossing? - var/light_pass = FALSE - ///Will the assembly on the pass wire activate if the scanner resolves red (fail) on crossing? - var/light_fail = FALSE - ///Does the scanner ignore light_pass and light_fail for sending signals? - var/ignore_signals = FALSE - - -/obj/machinery/scanner_gate/Initialize(mapload) - . = ..() - set_wires(new /datum/wires/scanner_gate(src)) - set_scanline("passive") - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/machinery/scanner_gate/Destroy() - qdel(wires) - set_wires(null) - . = ..() - -/obj/machinery/scanner_gate/examine(mob/user) - . = ..() - if(locked) - . += span_notice("The control panel is ID-locked. Swipe a valid ID to unlock it.") - else - . += span_notice("The control panel is unlocked. Swipe an ID to lock it.") - -/obj/machinery/scanner_gate/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - INVOKE_ASYNC(src, PROC_REF(auto_scan), AM) - -/obj/machinery/scanner_gate/proc/auto_scan(atom/movable/AM) - if(!(machine_stat & (BROKEN|NOPOWER)) && isliving(AM) & (!panel_open)) - perform_scan(AM) - -/obj/machinery/scanner_gate/proc/set_scanline(type, duration) - cut_overlays() - deltimer(scanline_timer) - add_overlay(type) - if(duration) - scanline_timer = addtimer(CALLBACK(src, PROC_REF(set_scanline), "passive"), duration, TIMER_STOPPABLE) - -/obj/machinery/scanner_gate/attackby(obj/item/W, mob/user, params) - var/obj/item/card/id/card = W.GetID() - if(card) - if(locked) - if(allowed(user)) - locked = FALSE - req_access = list() - to_chat(user, span_notice("You unlock [src].")) - else if(!(obj_flags & EMAGGED)) - to_chat(user, span_notice("You lock [src] with [W].")) - var/list/access = W.GetAccess() - req_access = access - locked = TRUE - else - to_chat(user, span_warning("You try to lock [src] with [W], but nothing happens.")) - else - if(!locked && default_deconstruction_screwdriver(user, "[initial(icon_state)]_open", initial(icon_state), W)) - return - if(panel_open && is_wire_tool(W)) - wires.interact(user) - return ..() - -/obj/machinery/scanner_gate/emag_act(mob/user, obj/item/card/emag/emag_card) - if(obj_flags & EMAGGED) - return FALSE - locked = FALSE - req_access = list() - obj_flags |= EMAGGED - balloon_alert(user, "id checker disabled") - return TRUE - -/obj/machinery/scanner_gate/proc/perform_scan(mob/living/M) - var/beep = FALSE - var/color = null - switch(scangate_mode) - if(SCANGATE_NONE) - return - if(SCANGATE_WANTED) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/perpname = H.get_face_name(H.get_id_name()) - var/datum/record/crew/target = find_record(perpname) - if(!target || (target.wanted_status == WANTED_ARREST)) - beep = TRUE - if(SCANGATE_MINDSHIELD) - if(HAS_TRAIT(M, TRAIT_MINDSHIELD)) - beep = TRUE - if(SCANGATE_DISEASE) - if(iscarbon(M)) - var/mob/living/carbon/C = M - if(get_disease_severity_value(C.check_virus()) >= get_disease_severity_value(disease_threshold)) - beep = TRUE - if(SCANGATE_SPECIES) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - var/datum/species/scan_species = /datum/species/human - switch(detect_species) - if(SCANGATE_LIZARD) - scan_species = /datum/species/lizard - if(SCANGATE_FLY) - scan_species = /datum/species/fly - if(SCANGATE_FELINID) - scan_species = /datum/species/human/felinid - if(SCANGATE_PLASMAMAN) - scan_species = /datum/species/plasmaman - if(SCANGATE_MOTH) - scan_species = /datum/species/moth - if(SCANGATE_JELLY) - 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(is_species(H, scan_species)) - beep = TRUE - if(detect_species == SCANGATE_ZOMBIE) //Can detect dormant zombies - if(H.get_organ_slot(ORGAN_SLOT_ZOMBIE)) - beep = TRUE - if(SCANGATE_GUNS) - for(var/I in M.get_contents()) - if(isgun(I)) - 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 - if(beep) - alarm_beep() - SEND_SIGNAL(src, COMSIG_SCANGATE_PASS_TRIGGER, M) - if(!ignore_signals) - color = wires.get_color_of_wire(WIRE_ACCEPT) - var/obj/item/assembly/assembly = wires.get_attached(color) - assembly?.activate() - else - SEND_SIGNAL(src, COMSIG_SCANGATE_PASS_NO_TRIGGER, M) - if(!ignore_signals) - color = wires.get_color_of_wire(WIRE_DENY) - var/obj/item/assembly/assembly = wires.get_attached(color) - assembly?.activate() - set_scanline("scanning", 10) - - use_energy(active_power_usage) - -/obj/machinery/scanner_gate/proc/alarm_beep() - if(next_beep <= world.time) - next_beep = world.time + (2 SECONDS) - playsound(src, 'sound/machines/scanbuzz.ogg', 100, FALSE) - var/mutable_appearance/alarm_display = mutable_appearance(icon, "alarm_light") - flick_overlay_view(alarm_display, 2 SECONDS) - set_scanline("alarm", 2 SECONDS) - -/obj/machinery/scanner_gate/can_interact(mob/user) - if(locked) - return FALSE - return ..() - -/obj/machinery/scanner_gate/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "ScannerGate", name) - ui.open() - -/obj/machinery/scanner_gate/ui_data() - var/list/data = list() - data["locked"] = locked - data["scan_mode"] = scangate_mode - data["reverse"] = reverse - 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) - . = ..() - if(.) - return - - switch(action) - if("set_mode") - var/new_mode = params["new_mode"] - scangate_mode = new_mode - . = TRUE - if("toggle_reverse") - reverse = !reverse - . = TRUE - if("toggle_lock") - if(allowed(usr)) - locked = !locked - . = TRUE - if("set_disease_threshold") - var/new_threshold = params["new_threshold"] - disease_threshold = new_threshold - . = TRUE - //Some species are not scannable, like abductors (too unknown), androids (too artificial) or skeletons (too magic) - if("set_target_species") - 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 -#undef SCANGATE_DISEASE -#undef SCANGATE_GUNS -#undef SCANGATE_WANTED -#undef SCANGATE_SPECIES -#undef SCANGATE_NUTRITION - -#undef SCANGATE_HUMAN -#undef SCANGATE_LIZARD -#undef SCANGATE_FELINID -#undef SCANGATE_FLY -#undef SCANGATE_PLASMAMAN -#undef SCANGATE_MOTH -#undef SCANGATE_JELLY -#undef SCANGATE_POD -#undef SCANGATE_GOLEM -#undef SCANGATE_ZOMBIE diff --git a/code/game/machinery/scanner_gate.dm b/code/game/machinery/scanner_gate.dm new file mode 100644 index 0000000000000..41b84a26ddfb0 --- /dev/null +++ b/code/game/machinery/scanner_gate.dm @@ -0,0 +1,398 @@ +#define SCANGATE_NONE "Off" +#define SCANGATE_MINDSHIELD "Mindshield" +#define SCANGATE_DISEASE "Disease" +#define SCANGATE_GUNS "Guns" +#define SCANGATE_WANTED "Wanted" +#define SCANGATE_SPECIES "Species" +#define SCANGATE_NUTRITION "Nutrition" +#define SCANGATE_CONTRABAND "Contraband" + +#define SCANGATE_HUMAN "human" +#define SCANGATE_LIZARD "lizard" +#define SCANGATE_FELINID "felinid" +#define SCANGATE_FLY "fly" +#define SCANGATE_PLASMAMAN "plasma" +#define SCANGATE_MOTH "moth" +#define SCANGATE_JELLY "jelly" +#define SCANGATE_POD "pod" +#define SCANGATE_GOLEM "golem" +#define SCANGATE_ZOMBIE "zombie" + +/obj/machinery/scanner_gate + name = "scanner gate" + desc = "A gate able to perform mid-depth scans on any organisms who pass under it." + icon = 'icons/obj/machines/scangate.dmi' + icon_state = "scangate" + layer = ABOVE_MOB_LAYER + circuit = /obj/item/circuitboard/machine/scanner_gate + COOLDOWN_DECLARE(next_beep) + + var/scanline_timer + ///Bool to check if the scanner's controls are locked by an ID. + var/locked = FALSE + ///Which setting is the scanner checking for? See defines in scanner_gate.dm for the list. + var/scangate_mode = SCANGATE_NONE + ///Is searching for a disease, what severity is enough to trigger the gate? + var/disease_threshold = DISEASE_SEVERITY_MINOR + ///If scanning for a specific species, what species is it looking for? + var/detect_species = SCANGATE_HUMAN + ///Flips all scan results for inverse scanning. Signals if scan returns false. + var/reverse = FALSE + ///If scanning for nutrition, what level of nutrition will trigger the scanner? + var/detect_nutrition = NUTRITION_LEVEL_FAT + ///Will the assembly on the pass wire activate if the scanner resolves green (Pass) on crossing? + var/light_pass = FALSE + ///Will the assembly on the pass wire activate if the scanner resolves red (fail) on crossing? + var/light_fail = FALSE + ///Does the scanner ignore light_pass and light_fail for sending signals? + var/ignore_signals = FALSE + ///Modifier to the chance of scanner being false positive/negative + var/minus_false_beep = 0 + ///Base false positive/negative chance + var/base_false_beep = 5 + ///Is an n-spect scanner attached to the gate? Enables contraband scanning. + var/obj/item/inspector/n_spect = null + + +/obj/machinery/scanner_gate/Initialize(mapload) + . = ..() + set_wires(new /datum/wires/scanner_gate(src)) + set_scanline("passive") + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + ) + AddElement(/datum/element/connect_loc, loc_connections) + register_context() + +/obj/machinery/scanner_gate/RefreshParts() + . = ..() + for(var/datum/stock_part/scanning_module/scanning_module in component_parts) + minus_false_beep = scanning_module.tier //The better are scanninning modules - the lower is chance of False Positives + +/obj/machinery/scanner_gate/atom_deconstruct(disassembled) + . = ..() + if(n_spect) + n_spect.forceMove(drop_location()) + n_spect = null + +/obj/machinery/scanner_gate/examine(mob/user) + . = ..() + + . += span_notice("It's set to scan for [span_boldnotice(scangate_mode)].") + if(locked) + . += span_notice("The control panel is ID-locked. Swipe a valid ID to unlock it.") + else + . += span_notice("The control panel is unlocked. Swipe an ID to lock it.") + if(n_spect) + . += span_notice("The scanner is equipped with an N-Spect scanner. Use a [span_boldnotice("crowbar")] to uninstall.") + +/obj/machinery/scanner_gate/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + if(n_spect && held_item?.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Remove N-Spect scanner" + return CONTEXTUAL_SCREENTIP_SET + if(!n_spect && istype(held_item, /obj/item/inspector)) + context[SCREENTIP_CONTEXT_LMB] = "Install N-Spect scanner" + return CONTEXTUAL_SCREENTIP_SET + + +/obj/machinery/scanner_gate/proc/on_entered(datum/source, atom/movable/thing) + SIGNAL_HANDLER + INVOKE_ASYNC(src, PROC_REF(auto_scan), thing) + +/obj/machinery/scanner_gate/proc/auto_scan(atom/movable/thing) + if(!(machine_stat & (BROKEN|NOPOWER)) && anchored && !panel_open) + perform_scan(thing) + +/obj/machinery/scanner_gate/proc/set_scanline(type, duration) + cut_overlays() + deltimer(scanline_timer) + add_overlay(type) + if(duration) + scanline_timer = addtimer(CALLBACK(src, PROC_REF(set_scanline), "passive"), duration, TIMER_STOPPABLE) + +/obj/machinery/scanner_gate/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/inspector)) + if(n_spect) + to_chat(user, span_warning("The scanner is already equipped with an N-Spect scanner.")) + return ITEM_INTERACT_BLOCKING + else + to_chat(user, span_notice("You install an N-Spect scanner on [src].")) + n_spect = tool + if(!user.transferItemToLoc(tool, src)) + return ITEM_INTERACT_BLOCKING + return ITEM_INTERACT_SUCCESS + return NONE + +/obj/machinery/scanner_gate/attackby(obj/item/attacking_item, mob/user, params) + var/obj/item/card/id/card = attacking_item.GetID() + if(card) + if(locked) + if(allowed(user)) + locked = FALSE + req_access = list() + to_chat(user, span_notice("You unlock [src].")) + else if(!(obj_flags & EMAGGED)) + to_chat(user, span_notice("You lock [src] with [attacking_item].")) + var/list/access = attacking_item.GetAccess() + req_access = access + locked = TRUE + else + to_chat(user, span_warning("You try to lock [src] with [attacking_item], but nothing happens.")) + else + if(!locked && default_deconstruction_screwdriver(user, "[initial(icon_state)]_open", initial(icon_state), attacking_item)) + return + if(panel_open && is_wire_tool(attacking_item)) + wires.interact(user) + return ..() + +/obj/machinery/scanner_gate/crowbar_act(mob/living/user, obj/item/tool) + . = ..() + if(n_spect) + if(locked) + balloon_alert(user, "locked!") + return ITEM_INTERACT_BLOCKING + + to_chat(user, span_notice("You uninstall [n_spect] from [src].")) + n_spect.forceMove(drop_location()) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/scanner_gate/Exited(atom/gone) + . = ..() + if(gone == n_spect) + n_spect = null + if(scangate_mode == SCANGATE_CONTRABAND) + scangate_mode = SCANGATE_NONE + +/obj/machinery/scanner_gate/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + locked = FALSE + req_access = list() + obj_flags |= EMAGGED + balloon_alert(user, "id checker disabled") + return TRUE + +/obj/machinery/scanner_gate/proc/perform_scan(atom/movable/thing) + var/beep = FALSE + var/color = null + var/detected_thing = null + playsound(src, SFX_INDUSTRIAL_SCAN, 20, TRUE, -2, TRUE, FALSE) + switch(scangate_mode) + if(SCANGATE_NONE) + return + if(SCANGATE_WANTED) + if(ishuman(thing)) + detected_thing = "Warrant" + var/mob/living/carbon/human/scanned_human = thing + var/perpname = scanned_human.get_face_name(scanned_human.get_id_name()) + var/datum/record/crew/target = find_record(perpname) + if(!target || (target.wanted_status == WANTED_ARREST)) + beep = TRUE + if(SCANGATE_MINDSHIELD) + detected_thing = "Mindshield" + if(ishuman(thing)) + var/mob/living/carbon/human/scanned_human = thing + if(HAS_TRAIT(scanned_human, TRAIT_MINDSHIELD)) + beep = TRUE + if(SCANGATE_DISEASE) + detected_thing = "[disease_threshold] infection" + if(iscarbon(thing)) + var/mob/living/carbon/scanned_carbon = thing + if(get_disease_severity_value(scanned_carbon.check_virus()) >= get_disease_severity_value(disease_threshold)) + beep = TRUE + if(SCANGATE_SPECIES) + if(ishuman(thing)) + var/mob/living/carbon/human/scanned_human = thing + var/datum/species/scan_species = /datum/species/human + switch(detect_species) + if(SCANGATE_LIZARD) + detected_thing = "Lizardperson" + scan_species = /datum/species/lizard + if(SCANGATE_FLY) + detected_thing = "Flyperson" + scan_species = /datum/species/fly + if(SCANGATE_FELINID) + detected_thing = "Felinid" + scan_species = /datum/species/human/felinid + if(SCANGATE_PLASMAMAN) + detected_thing = "Plasmaman" + scan_species = /datum/species/plasmaman + if(SCANGATE_MOTH) + detected_thing = "Mothperson" + scan_species = /datum/species/moth + if(SCANGATE_JELLY) + detected_thing = "Jellyperson" + scan_species = /datum/species/jelly + if(SCANGATE_POD) + detected_thing = "Podperson" + scan_species = /datum/species/pod + if(SCANGATE_GOLEM) + detected_thing = "Golem" + scan_species = /datum/species/golem + if(SCANGATE_ZOMBIE) + detected_thing = "Zombie" + scan_species = /datum/species/zombie + if(is_species(scanned_human, scan_species)) + beep = TRUE + if(detect_species == SCANGATE_ZOMBIE) //Can detect dormant zombies + detected_thing = "Romerol infection" + if(scanned_human.get_organ_slot(ORGAN_SLOT_ZOMBIE)) + beep = TRUE + if(SCANGATE_GUNS) + detected_thing = "Weapons" + if(isgun(thing)) + beep = TRUE + else if(ishuman(thing)) + var/mob/living/carbon/human/scanned_human = thing + var/obj/item/card/id/idcard = scanned_human.get_idcard(hand_first = FALSE) + for(var/obj/item/scanned_item in scanned_human.get_all_contents_skipping_traits(TRAIT_CONTRABAND_BLOCKER)) + if(isgun(scanned_item)) + if((!HAS_TRAIT(scanned_human, TRAIT_MINDSHIELD)) && (isnull(idcard) || !(ACCESS_WEAPONS in idcard.access))) // mindshield or ID card with weapons access, like bartender + beep = TRUE + break + say("[detected_thing] detection bypassed.") + break + else + for(var/obj/item/content in thing.get_all_contents_skipping_traits(TRAIT_CONTRABAND_BLOCKER)) + if(isgun(content)) + beep = TRUE + break + if(SCANGATE_NUTRITION) + if(ishuman(thing)) + var/mob/living/carbon/human/scanned_human = thing + if(scanned_human.nutrition <= detect_nutrition && detect_nutrition == NUTRITION_LEVEL_STARVING) + beep = TRUE + detected_thing = "Starvation" + if(scanned_human.nutrition >= detect_nutrition && detect_nutrition == NUTRITION_LEVEL_FAT) + beep = TRUE + detected_thing = "Obesity" + if(SCANGATE_CONTRABAND) + for(var/obj/item/content in thing.get_all_contents_skipping_traits(TRAIT_CONTRABAND_BLOCKER)) + detected_thing = "Contraband" + if(content.is_contraband()) + beep = TRUE + break + if(!n_spect.scans_correctly) + beep = !beep //We do a little trolling + + if(reverse) + beep = !beep + + if(prob(base_false_beep - minus_false_beep)) //False positive/negative + beep = prob(50) + + if(beep) + alarm_beep(detected_thing) + SEND_SIGNAL(src, COMSIG_SCANGATE_PASS_TRIGGER, thing) + if(!ignore_signals) + color = wires.get_color_of_wire(WIRE_ACCEPT) + var/obj/item/assembly/assembly = wires.get_attached(color) + assembly?.activate() + else + SEND_SIGNAL(src, COMSIG_SCANGATE_PASS_NO_TRIGGER, thing) + if(!ignore_signals) + color = wires.get_color_of_wire(WIRE_DENY) + var/obj/item/assembly/assembly = wires.get_attached(color) + assembly?.activate() + set_scanline("scanning", 1 SECONDS) + + use_energy(active_power_usage) + +/obj/machinery/scanner_gate/proc/alarm_beep(detected_thing) + if(!COOLDOWN_FINISHED(src, next_beep)) + return + + if(detected_thing) + say("[detected_thing][reverse ? " not " : " "]detected!!") + + COOLDOWN_START(src, next_beep, 2 SECONDS) + playsound(source = src, soundin = 'sound/machines/scanner/scanbuzz.ogg', vol = 30, vary = FALSE, extrarange = MEDIUM_RANGE_SOUND_EXTRARANGE, falloff_distance = 4) + set_scanline("alarm", 2 SECONDS) + +/obj/machinery/scanner_gate/can_interact(mob/user) + if(locked) + return FALSE + return ..() + +/obj/machinery/scanner_gate/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "ScannerGate", name) + ui.open() + +/obj/machinery/scanner_gate/ui_data() + var/list/data = list() + data["locked"] = locked + data["scan_mode"] = scangate_mode + data["reverse"] = reverse + data["disease_threshold"] = disease_threshold + data["target_species"] = detect_species + data["target_nutrition"] = detect_nutrition + data["contraband_enabled"] = !!n_spect + return data + +/obj/machinery/scanner_gate/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("set_mode") + var/new_mode = params["new_mode"] + scangate_mode = new_mode + . = TRUE + if("toggle_reverse") + reverse = !reverse + . = TRUE + if("toggle_lock") + if(allowed(usr)) + locked = !locked + . = TRUE + if("set_disease_threshold") + var/new_threshold = params["new_threshold"] + disease_threshold = new_threshold + . = TRUE + //Some species are not scannable, like abductors (too unknown), androids (too artificial) or skeletons (too magic) + if("set_target_species") + 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 + +/obj/machinery/scanner_gate/preset_guns + locked = TRUE + req_access = ACCESS_SECURITY + scangate_mode = SCANGATE_GUNS + +#undef SCANGATE_NONE +#undef SCANGATE_MINDSHIELD +#undef SCANGATE_DISEASE +#undef SCANGATE_GUNS +#undef SCANGATE_WANTED +#undef SCANGATE_SPECIES +#undef SCANGATE_NUTRITION +#undef SCANGATE_CONTRABAND + +#undef SCANGATE_HUMAN +#undef SCANGATE_LIZARD +#undef SCANGATE_FELINID +#undef SCANGATE_FLY +#undef SCANGATE_PLASMAMAN +#undef SCANGATE_MOTH +#undef SCANGATE_JELLY +#undef SCANGATE_POD +#undef SCANGATE_GOLEM +#undef SCANGATE_ZOMBIE diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index d961c68dc8ed6..97b0adf5601a8 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -324,6 +324,8 @@ /obj/machinery/power/shieldwallgen/Initialize(mapload) . = ..() + //Add to the early process queue to prioritize power draw + SSmachines.processing_early += src if(anchored) connect_to_network() RegisterSignal(src, COMSIG_ATOM_SINGULARITY_TRY_MOVE, PROC_REF(block_singularity_if_active)) @@ -356,7 +358,7 @@ return FALSE . = ..() -/obj/machinery/power/shieldwallgen/process() +/obj/machinery/power/shieldwallgen/process_early() if(active) if(active == ACTIVE_SETUPFIELDS) var/fields = 0 diff --git a/code/game/machinery/sleepers.dm b/code/game/machinery/sleepers.dm index 63291035e784f..9b843cd550612 100644 --- a/code/game/machinery/sleepers.dm +++ b/code/game/machinery/sleepers.dm @@ -237,7 +237,7 @@ return data -/obj/machinery/sleeper/ui_act(action, params) +/obj/machinery/sleeper/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -300,17 +300,21 @@ * Can be controlled from the inside and can be deconstructed. */ /obj/machinery/sleeper/syndie + name = "syndicate sleeper" icon_state = "sleeper_s" base_icon_state = "sleeper_s" controls_inside = TRUE deconstructable = TRUE + circuit = /obj/item/circuitboard/machine/sleeper/syndie ///Fully upgraded variant, the circuit using tier 4 parts. /obj/machinery/sleeper/syndie/fullupgrade + name = "upgraded syndicate sleeper" circuit = /obj/item/circuitboard/machine/sleeper/fullupgrade ///Fully upgraded, not deconstructable, while using the normal sprite. /obj/machinery/sleeper/syndie/fullupgrade/nt + name = "\improper Nanotrasen sleeper" icon_state = "sleeper" base_icon_state = "sleeper" deconstructable = FALSE diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index bb93b7d00f5b6..d3266df16f880 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -109,7 +109,7 @@ else if(!user.temporarilyRemoveItemFromInventory(inserted_coin)) return ITEM_INTERACT_BLOCKING - balloon_alert(user, "coin insterted") + balloon_alert(user, "coin inserted") balance += inserted_coin.value qdel(inserted_coin) return ITEM_INTERACT_SUCCESS @@ -335,14 +335,14 @@ else balloon_alert(user, "no luck!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50) did_player_win = FALSE if(did_player_win) add_filter("jackpot_rays", 3, ray_filter) animate(get_filter("jackpot_rays"), offset = 10, time = 3 SECONDS, loop = -1) addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, remove_filter), "jackpot_rays"), 3 SECONDS) - playsound(src, 'sound/machines/roulettejackpot.ogg', 50, TRUE) + playsound(src, 'sound/machines/roulette/roulettejackpot.ogg', 50, TRUE) /// Checks for a jackpot (5 matching icons in the middle row) with the given icon name /obj/machinery/computer/slot_machine/proc/check_jackpot(name) diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm index a74d7456ed8ef..cbd5dbb84e37c 100644 --- a/code/game/machinery/spaceheater.dm +++ b/code/game/machinery/spaceheater.dm @@ -2,7 +2,7 @@ #define HEATER_MODE_HEAT "heat" #define HEATER_MODE_COOL "cool" #define HEATER_MODE_AUTO "auto" -#define BASE_HEATING_ENERGY (STANDARD_CELL_RATE * 0.1) +#define BASE_HEATING_ENERGY (40 KILO JOULES) /obj/machinery/space_heater anchored = FALSE @@ -32,7 +32,7 @@ ///How much heat/cold we can deliver var/heating_energy = BASE_HEATING_ENERGY ///How efficiently we can deliver that heat/cold (higher indicates less cell consumption) - var/efficiency = 20 + var/efficiency = 20 MEGA JOULES / STANDARD_CELL_CHARGE ///The amount of degrees above and below the target temperature for us to change mode to heater or cooler var/temperature_tolerance = 1 ///What's the middle point of our settable temperature (30 °C) @@ -176,10 +176,10 @@ for(var/datum/stock_part/capacitor/capacitor in component_parts) cap += capacitor.tier - heating_energy = laser * BASE_HEATING_ENERGY + heating_energy = laser * initial(heating_energy) - settable_temperature_range = cap * 30 - efficiency = (cap + 1) * 10 + settable_temperature_range = cap * initial(settable_temperature_range) + efficiency = (cap + 1) * initial(efficiency) * 0.5 target_temperature = clamp(target_temperature, max(settable_temperature_median - settable_temperature_range, TCMB), @@ -262,7 +262,7 @@ data["currentTemp"] = round(current_temperature - T0C, 1) return data -/obj/machinery/space_heater/ui_act(action, params) +/obj/machinery/space_heater/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -295,7 +295,14 @@ on = !on mode = HEATER_MODE_STANDBY if(!isnull(user)) - balloon_alert(user, "turned [on ? "on" : "off"]") + if(QDELETED(cell)) + balloon_alert(user, "no cell!") + else if(!cell.charge()) + balloon_alert(user, "no charge!") + else if(!is_operational) + balloon_alert(user, "not operational!") + else + balloon_alert(user, "turned [on ? "on" : "off"]") update_appearance() if(on) SSair.start_processing_machine(src) @@ -310,11 +317,18 @@ //We inherit the cell from the heater prior cell = null interaction_flags_click = FORBID_TELEKINESIS_REACH + display_panel = FALSE + settable_temperature_range = 50 ///The beaker within the heater var/obj/item/reagent_containers/beaker = null - ///How powerful the heating is, upgrades with parts. (ala chem_heater.dm's method, basically the same level of heating, but this is restricted) - var/chem_heating_power = 1 - display_panel = FALSE + /// How quickly it delivers heat to the reagents. In watts per joule of the thermal energy difference of the reagent from the temperature difference of the current and target temperatures. + var/beaker_conduction_power = 0.1 + /// The subsystem we're being processed by. + var/datum/controller/subsystem/processing/our_subsystem + +/obj/machinery/space_heater/improvised_chem_heater/Initialize(mapload) + our_subsystem = locate(subsystem_type) in Master.subsystems + . = ..() /obj/machinery/space_heater/improvised_chem_heater/Destroy() . = ..() @@ -322,11 +336,10 @@ /obj/machinery/space_heater/improvised_chem_heater/heating_examine() . = ..() - - var/power_mod = 0.1 * chem_heating_power - if(set_mode == HEATER_MODE_AUTO) - power_mod *= 0.5 - . += span_notice("Heating power for beaker: [display_power(heating_energy * power_mod, convert = TRUE)]") + // Conducted energy per joule of thermal energy difference in a tick. + var/conduction_energy = beaker_conduction_power * (set_mode == HEATER_MODE_AUTO ? 0.5 : 1) * our_subsystem.wait / (1 SECONDS) + // This accounts for the timestep inaccuracy. + . += span_notice("Reagent conduction power: [conduction_energy < 1 ? display_power(-log(1 - conduction_energy) SECONDS / our_subsystem.wait, convert = FALSE) : "∞W"]/J") /obj/machinery/space_heater/improvised_chem_heater/toggle_power(user) . = ..() @@ -341,10 +354,10 @@ return PROCESS_KILL if(beaker.reagents.total_volume) - var/power_mod = 0.1 * chem_heating_power + var/conduction_modifier = beaker_conduction_power switch(set_mode) if(HEATER_MODE_AUTO) - power_mod *= 0.5 + conduction_modifier *= 0.5 if(HEATER_MODE_HEAT) if(target_temperature < beaker.reagents.chem_temp) return @@ -352,7 +365,7 @@ if(target_temperature > beaker.reagents.chem_temp) return - var/required_energy = abs(target_temperature - beaker.reagents.chem_temp) * power_mod * seconds_per_tick * beaker.reagents.heat_capacity() + var/required_energy = abs(target_temperature - beaker.reagents.chem_temp) * conduction_modifier * seconds_per_tick * beaker.reagents.heat_capacity() required_energy = min(required_energy, heating_energy, cell.charge * efficiency) if(required_energy < 1) return @@ -374,7 +387,7 @@ .["beaker"] = beaker .["currentTemp"] = beaker ? (round(beaker.reagents.chem_temp - T0C)) : "N/A" -/obj/machinery/space_heater/improvised_chem_heater/ui_act(action, params) +/obj/machinery/space_heater/improvised_chem_heater/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -468,16 +481,17 @@ for(var/datum/stock_part/capacitor/capacitor in component_parts) capacitors_rating += capacitor.tier - heating_energy = lasers_rating * BASE_HEATING_ENERGY + heating_energy = lasers_rating * initial(heating_energy) - settable_temperature_range = capacitors_rating * 50 //-20 - 80 at base - efficiency = (capacitors_rating + 1) * 10 + settable_temperature_range = capacitors_rating * initial(settable_temperature_range) //-20 - 80 at base + efficiency = (capacitors_rating + 1) * initial(efficiency) * 0.5 target_temperature = clamp(target_temperature, max(settable_temperature_median - settable_temperature_range, TCMB), settable_temperature_median + settable_temperature_range) - chem_heating_power = efficiency / 20 + // No time integration is used, so we should clamp this to prevent being able to overshoot if there was a subtype with a high initial value. + beaker_conduction_power = min((capacitors_rating + 1) * 0.5 * initial(beaker_conduction_power), 1 SECONDS / our_subsystem.wait) #undef HEATER_MODE_STANDBY #undef HEATER_MODE_HEAT diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index 9ef3d8e3a99a9..49f00741895fe 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -9,6 +9,7 @@ obj_flags = BLOCKS_CONSTRUCTION can_buckle = TRUE buckle_lying = 90 + buckle_dir = SOUTH circuit = /obj/item/circuitboard/machine/stasis fair_market_price = 10 payment_department = ACCOUNT_MED @@ -22,6 +23,7 @@ /obj/machinery/stasis/Initialize(mapload) . = ..() AddElement(/datum/element/elevation, pixel_shift = 6) + update_buckle_vars(dir) /obj/machinery/stasis/examine(mob/user) . = ..() @@ -32,9 +34,9 @@ if(last_stasis_sound != _running) var/sound_freq = rand(5120, 8800) if(_running) - playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = sound_freq) + playsound(src, 'sound/machines/synth/synth_yes.ogg', 50, TRUE, frequency = sound_freq) else - playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = sound_freq) + playsound(src, 'sound/machines/synth/synth_no.ogg', 50, TRUE, frequency = sound_freq) last_stasis_sound = _running /obj/machinery/stasis/click_alt(mob/user) @@ -57,6 +59,13 @@ thaw_them(L) return ..() +/obj/machinery/stasis/setDir(newdir) + . = ..() + update_buckle_vars(newdir) + +/obj/machinery/stasis/proc/update_buckle_vars(newdir) + buckle_lying = newdir & NORTHEAST ? 270 : 90 + /obj/machinery/stasis/proc/stasis_running() return stasis_enabled && is_operational diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 6b04b2c6f340d..1eff3f6587080 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -230,7 +230,7 @@ /obj/machinery/suit_storage_unit/update_overlays() . = ..() - //if things arent powered, these show anyways + //if things aren't powered, these show anyways if(panel_open) . += "[base_icon_state]_panel" if(state_open) @@ -506,7 +506,7 @@ locked = FALSE if(uv_super) visible_message(span_warning("[src]'s door creaks open with a loud whining noise. A cloud of foul black smoke escapes from its chamber.")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 50, TRUE) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 50, TRUE) var/datum/effect_system/fluid_spread/smoke/bad/black/smoke = new smoke.set_up(0, holder = src, location = src) smoke.start() @@ -523,7 +523,7 @@ else visible_message(span_warning("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.")) qdel(mob_occupant.GetComponent(/datum/component/irradiated)) - playsound(src, 'sound/machines/airlockclose.ogg', 25, TRUE) + playsound(src, 'sound/machines/airlock/airlockclose.ogg', 25, TRUE) var/list/things_to_clear = list() //Done this way since using GetAllContents on the SSU itself would include circuitry and such. if(suit) things_to_clear += suit @@ -711,12 +711,12 @@ var/name_set = FALSE var/desc_set = FALSE - var/str = tgui_input_text(user, "Personal Unit Name", "Unit Name") + var/str = tgui_input_text(user, "Personal Unit Name", "Unit Name", max_length = MAX_NAME_LEN) if(!isnull(str)) name = str name_set = TRUE - str = tgui_input_text(user, "Personal Unit Description", "Unit Description") + str = tgui_input_text(user, "Personal Unit Description", "Unit Description", max_length = MAX_DESC_LEN) if(!isnull(str)) desc = str desc_set = TRUE @@ -793,7 +793,7 @@ */ /obj/machinery/suit_storage_unit/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver) if(screwdriver.tool_behaviour == TOOL_SCREWDRIVER && (uv || locked)) - to_chat(user, span_warning("You cant open the panel while its [locked ? "locked" : "decontaminating"]")) + to_chat(user, span_warning("You can't open the panel while its [locked ? "locked" : "decontaminating"]")) return TRUE return ..() diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index c9ed74caa02a9..97ac006bcd500 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -11,10 +11,12 @@ density = TRUE layer = BELOW_MOB_LAYER //so people can't hide it and it's REALLY OBVIOUS verb_say = "states" - var/cooldown = 0 + /// Cooldown each time singularity is pulled in our direction + COOLDOWN_DECLARE(singularity_beacon_cd) var/active = FALSE var/icontype = "beacon" + var/energy_used = 1.5 KILO JOULES /obj/machinery/power/singularity_beacon/proc/Activate(mob/user = null) @@ -42,11 +44,9 @@ if(user) to_chat(user, span_notice("You deactivate the beacon.")) - /obj/machinery/power/singularity_beacon/attack_ai(mob/user) return - /obj/machinery/power/singularity_beacon/attack_hand(mob/user, list/modifiers) . = ..() if(.) @@ -93,10 +93,10 @@ if(!active) return - if(surplus() >= 1500) - add_load(1500) - if(cooldown <= world.time) - cooldown = world.time + 80 + if(surplus() >= energy_used) + add_load(energy_used) + if(COOLDOWN_FINISHED(src, singularity_beacon_cd)) + COOLDOWN_START(src, singularity_beacon_cd, 8 SECONDS) for(var/_singulo_component in GLOB.singularities) var/datum/component/singularity/singulo_component = _singulo_component var/atom/singulo = singulo_component.parent @@ -106,6 +106,95 @@ Deactivate() say("Insufficient charge detected - powering down") +// Used for the No Escape final objective that attracts a singularity to the escape shuttle +// needs to be charged with an inducer to work +/obj/machinery/power/singularity_beacon/syndicate/no_escape + name = "ominous beacon" + desc = "This looks very suspicious..." + processing_flags = START_PROCESSING_MANUALLY + /// The cell we spawn with + var/obj/item/stock_parts/power_store/cell/cell = /obj/item/stock_parts/power_store/cell/super/empty + /// The black hole shuttle event that is triggered + var/datum/shuttle_event/simple_spawner/black_hole/no_escape/no_escape_event + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/Initialize(mapload) + . = ..() + cell = new cell(src) + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/Destroy() + if(active) + Deactivate() + QDEL_NULL(cell) + // destroying the beacon doesn't automatically stop the event + no_escape_event = null + return ..() + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/examine(mob/user) + . = ..() + . += "\The [src] is [active ? "on" : "off"]." + if(cell) + . += "The charge meter reads [cell ? round(cell.percent(), 1) : 0]%." + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/get_cell() + return cell + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/attack_hand(mob/user, list/modifiers) + return active ? Deactivate(user) : Activate(user) + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/Activate(mob/user = null) + if(!cell.charge()) + say("Insufficient charge detected") + return + + icon_state = "[icontype]1" + active = TRUE + begin_processing() + if(user) + to_chat(user, span_notice("You activate the beacon.")) + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/Deactivate(mob/user = null) + icon_state = "[icontype]0" + active = FALSE + end_processing() + if(user) + to_chat(user, span_notice("You deactivate the beacon.")) + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/wrench_act(mob/living/user, obj/item/tool) + . = TRUE + + tool.play_tool_sound(src, 50) + if(anchored) + set_anchored(FALSE) + to_chat(user, span_notice("You unbolt \the [src] from the floor.")) + return + else + set_anchored(TRUE) + to_chat(user, span_notice("You bolt \the [src] to the floor.")) + return + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/screwdriver_act(mob/living/user, obj/item/tool) + return + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/emp_act(severity) + . = ..() + if(machine_stat & (NOPOWER|BROKEN) || . & EMP_PROTECT_CONTENTS) + return + cell?.emp_act(severity) + +/obj/machinery/power/singularity_beacon/syndicate/no_escape/process() + if(cell.charge()) + cell.use(energy_used, force = TRUE) + + if(!no_escape_event) + var/area/escape_shuttle_area = get_area(src) + // beacon must be on the traveling escape shuttle (not a pod) + if(istype(escape_shuttle_area, /area/shuttle/escape) && (SSshuttle.emergency.mode == SHUTTLE_ESCAPE) && SSshuttle.emergency.is_in_shuttle_bounds(src)) + var/obj/docking_port/mobile/port = SSshuttle.emergency + no_escape_event = port.add_shuttle_event(/datum/shuttle_event/simple_spawner/black_hole/no_escape) + no_escape_event.beacon = src + else + Deactivate() + say("Insufficient charge detected - powering down") /obj/machinery/power/singularity_beacon/syndicate icontype = "beaconsynd" @@ -131,6 +220,10 @@ qdel(src) return +/obj/item/sbeacondrop/no_escape + name = "very suspicious beacon" + droptype = /obj/machinery/power/singularity_beacon/syndicate/no_escape + /obj/item/sbeacondrop/bomb desc = "A label on it reads: Warning: Activating this device will send a high-ordinance explosive to your location." droptype = /obj/machinery/syndicatebomb diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index e4f7b0a8338b8..25dc258a38d94 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -107,7 +107,6 @@ end_processing() /obj/machinery/syndicatebomb/Destroy() - QDEL_NULL(wires) QDEL_NULL(countdown) end_processing() return ..() @@ -502,7 +501,7 @@ reactants += S.reagents if(!chem_splash(get_turf(src), reagents, spread_range, reactants, temp_boost)) - playsound(loc, 'sound/items/screwdriver2.ogg', 50, TRUE) + playsound(loc, 'sound/items/tools/screwdriver2.ogg', 50, TRUE) return // The Explosion didn't do anything. No need to log, or disappear. if(adminlog) @@ -622,7 +621,7 @@ balloon_alert(user, "set to [chosen_theme?.name || DIMENSION_CHOICE_RANDOM]") /obj/item/bombcore/dimensional/proc/check_menu(mob/user) - if(!user.is_holding(src) || user.incapacitated()) + if(!user.is_holding(src) || user.incapacitated) return FALSE return TRUE diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index 4c53cc5e4189d..06d390e5f2e27 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -13,6 +13,10 @@ /// If this list contains `0`, then it will be receivable on every single /// z-level. var/list/levels + /// Blacklisted spans we don't want being put into comms by anything, ever - a place to put any new spans we want to make without letting them annoy people on comms + var/list/blacklisted_spans = list( + SPAN_SOAPBOX, + ) /datum/signal/subspace/New(data) src.data = data || list() @@ -74,7 +78,7 @@ datum/language/language, // the language of the message message, // the text content of the message spans, // the list of spans applied to the message - list/message_mods // the list of modification applied to the message. Whispering, singing, ect + list/message_mods, // the list of modification applied to the message. Whispering, singing, ect ) src.source = source src.frequency = frequency @@ -88,7 +92,7 @@ "compression" = rand(COMPRESSION_VOCAL_SIGNAL_MIN, COMPRESSION_VOCAL_SIGNAL_MAX), "language" = lang_instance.name, "spans" = spans, - "mods" = message_mods + "mods" = message_mods, ) levels = SSmapping.get_connected_levels(get_turf(source)) @@ -151,7 +155,7 @@ if (TRANSMISSION_SUPERSPACE) // Only radios which are independent for(var/obj/item/radio/independent_radio in GLOB.all_radios["[frequency]"]) - if(independent_radio.independent && independent_radio.can_receive(frequency, signal_reaches_every_z_level)) + if((independent_radio.special_channels & RADIO_SPECIAL_CENTCOM) && independent_radio.can_receive(frequency, signal_reaches_every_z_level)) radios += independent_radio for(var/obj/item/radio/called_radio as anything in radios) @@ -175,7 +179,7 @@ if(!hearer) stack_trace("null found in the hearers list returned by the spatial grid. this is bad") continue - + spans -= blacklisted_spans hearer.Hear(rendered, virt, language, message, frequency, spans, message_mods, message_range = INFINITY) // This following recording is intended for research and feedback in the use of department radio channels diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm index 25b5ddd212710..22a41a6ada66b 100644 --- a/code/game/machinery/telecomms/computers/logbrowser.dm +++ b/code/game/machinery/telecomms/computers/logbrowser.dm @@ -95,7 +95,7 @@ return data -/obj/machinery/computer/telecomms/server/ui_act(action, params) +/obj/machinery/computer/telecomms/server/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm index a38f18231fb76..1b3197e702da5 100644 --- a/code/game/machinery/telecomms/computers/message.dm +++ b/code/game/machinery/telecomms/computers/message.dm @@ -117,7 +117,7 @@ data["requests"] = request_list return data -/obj/machinery/computer/message_monitor/ui_act(action, params) +/obj/machinery/computer/message_monitor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return . @@ -139,7 +139,7 @@ return TRUE authenticated = TRUE - success_message = "YOU SUCCESFULLY LOGGED IN!" + success_message = "YOU SUCCESSFULLY LOGGED IN!" return TRUE if("link_server") @@ -180,10 +180,10 @@ notice_message = "NOTICE: Logs cleared." return TRUE if("set_key") - var/dkey = tgui_input_text(usr, "Please enter the decryption key", "Telecomms Decryption") + var/dkey = tgui_input_text(usr, "Please enter the decryption key", "Telecomms Decryption", max_length = 16) if(dkey && dkey != "") if(linkedServer.decryptkey == dkey) - var/newkey = tgui_input_text(usr, "Please enter the new key (3 - 16 characters max)", "New Key") + var/newkey = tgui_input_text(usr, "Please enter the new key (3 - 16 characters max)", "New Key", max_length = 16) if(length(newkey) <= 3) notice_message = "NOTICE: Decryption key too short!" else if(newkey && newkey != "") @@ -210,8 +210,8 @@ break return TRUE if("send_fake_message") - var/sender = tgui_input_text(usr, "What is the sender's name?", "Sender") - var/job = tgui_input_text(usr, "What is the sender's job?", "Job") + var/sender = tgui_input_text(usr, "What is the sender's name?", "Sender", max_length = MAX_NAME_LEN) + var/job = tgui_input_text(usr, "What is the sender's job?", "Job", max_length = 60) var/recipient var/list/tablet_to_messenger = list() @@ -229,7 +229,7 @@ else recipient = null - var/message = tgui_input_text(usr, "Please enter your message", "Message") + var/message = tgui_input_text(usr, "Please enter your message", "Message", max_length = MAX_MESSAGE_LEN) if(isnull(sender) || sender == "") sender = "UNKNOWN" diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm index abc2b7dbdbff4..e70c7f7de172a 100644 --- a/code/game/machinery/telecomms/computers/telemonitor.dm +++ b/code/game/machinery/telecomms/computers/telemonitor.dm @@ -81,7 +81,7 @@ return data -/obj/machinery/computer/telecomms/monitor/ui_act(action, params) +/obj/machinery/computer/telecomms/monitor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index fb68631b76676..8b982b4e3b953 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -82,7 +82,7 @@ return data -/obj/machinery/telecomms/ui_act(action, params) +/obj/machinery/telecomms/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -105,7 +105,7 @@ if(params["value"]) if(length(params["value"]) > 32) to_chat(current_user, span_warning("Error: Machine ID too long!")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return else id = params["value"] @@ -115,7 +115,7 @@ if(params["value"]) if(length(params["value"]) > 15) to_chat(current_user, span_warning("Error: Network name too long!")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) return else for(var/obj/machinery/telecomms/linked_machine in links) @@ -130,7 +130,7 @@ if("freq") if(tempfreq in banned_frequencies) to_chat(current_user, span_warning("Error: Interference preventing filtering frequency: \"[tempfreq / 10] kHz\"")) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE) else if(!(tempfreq in freq_listening)) freq_listening.Add(tempfreq) diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm index 15d20b3d1eb25..b56b4811083d3 100644 --- a/code/game/machinery/telecomms/machines/bus.dm +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -60,8 +60,8 @@ /obj/machinery/telecomms/bus/preset_two id = "Bus 2" network = "tcommsat" - freq_listening = list(FREQ_SUPPLY, FREQ_SERVICE) - autolinkers = list("processor2", "supply", "service") + freq_listening = list(FREQ_SUPPLY, FREQ_SERVICE, FREQ_ENTERTAINMENT) + autolinkers = list("processor2", "supply", "service", "entertainment") /obj/machinery/telecomms/bus/preset_three id = "Bus 3" diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm index 83d0f6e3209a0..6583cfe410577 100644 --- a/code/game/machinery/telecomms/machines/hub.dm +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -63,7 +63,6 @@ "s_relay", "m_relay", "r_relay", - "h_relay", "science", "medical", "supply", @@ -71,6 +70,7 @@ "common", "command", "engineering", + "entertainment", "security", "receiverA", "receiverB", diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index 8d6f8c85f43a1..875398fb8f245 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -57,7 +57,7 @@ id = "Receiver A" network = "tcommsat" autolinkers = list("receiverA") // link to relay - freq_listening = list(FREQ_SCIENCE, FREQ_MEDICAL, FREQ_SUPPLY, FREQ_SERVICE) + freq_listening = list(FREQ_SCIENCE, FREQ_MEDICAL, FREQ_SUPPLY, FREQ_SERVICE, FREQ_ENTERTAINMENT) //--PRESET RIGHT--// diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm index 0c87a6101d182..1c7557b79def8 100644 --- a/code/game/machinery/telecomms/machines/server.dm +++ b/code/game/machinery/telecomms/machines/server.dm @@ -100,9 +100,9 @@ autolinkers = list("supply") /obj/machinery/telecomms/server/presets/service - id = "Service Server" - freq_listening = list(FREQ_SERVICE) - autolinkers = list("service") + id = "Service & Entertainment Server" + freq_listening = list(FREQ_SERVICE, FREQ_ENTERTAINMENT) + autolinkers = list("service", "entertainment") /obj/machinery/telecomms/server/presets/common id = "Common Server" diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index 238994004ded0..45a91d7e5a6ec 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -84,7 +84,7 @@ return if(!transform_dead && victim.stat == DEAD) - playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src.loc, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) return // Activate the cooldown @@ -92,7 +92,7 @@ cooldown_timer = world.time + cooldown_duration update_appearance() - playsound(src.loc, 'sound/items/welder.ogg', 50, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 50, TRUE) victim.emote("scream") // It is painful victim.adjustBruteLoss(max(0, 80 - victim.getBruteLoss())) // Hurt the human, don't try to kill them though. diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 21804def7e361..b3aba350c3368 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -63,7 +63,7 @@ GLOBAL_LIST_INIT(dye_registry, list( DYE_QM = /obj/item/clothing/gloves/color/brown, DYE_CAPTAIN = /obj/item/clothing/gloves/captain, DYE_HOP = /obj/item/clothing/gloves/color/grey, - DYE_HOS = /obj/item/clothing/gloves/color/black, + DYE_HOS = /obj/item/clothing/gloves/color/black/security, DYE_CE = /obj/item/clothing/gloves/chief_engineer, DYE_RD = /obj/item/clothing/gloves/color/grey, DYE_CMO = /obj/item/clothing/gloves/latex/nitrile, diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index fd57b24da099f..f06ac5d920916 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -3,6 +3,8 @@ var/can_buckle = FALSE /// Bed-like behaviour, forces mob.lying = buckle_lying if not set to [NO_BUCKLE_LYING]. var/buckle_lying = NO_BUCKLE_LYING + /// Bed-like behaviour, sets mob dir to buckle_dir if not set to [BUCKLE_MATCH_DIR]. If set to [BUCKLE_MATCH_DIR], makes mob dir match ours. + var/buckle_dir = BUCKLE_MATCH_DIR /// Require people to be handcuffed before being able to buckle. eg: pipes var/buckle_requires_restraints = FALSE /// The mobs currently buckled to this atom @@ -106,7 +108,10 @@ M.set_glide_size(glide_size) M.Move(loc) - M.setDir(dir) + if(buckle_dir == BUCKLE_MATCH_DIR) + M.setDir(dir) + else + M.setDir(buckle_dir) //Something has unbuckled us in reaction to the above movement if(!M.buckled) @@ -261,7 +266,7 @@ */ /atom/movable/proc/is_user_buckle_possible(mob/living/target, mob/user, check_loc = TRUE) // Standard adjacency and other checks. - if(!Adjacent(user) || !Adjacent(target) || !isturf(user.loc) || user.incapacitated() || target.anchored) + if(!Adjacent(user) || !Adjacent(target) || !isturf(user.loc) || user.incapacitated || target.anchored) return FALSE if(iscarbon(user)) diff --git a/code/game/objects/effects/anomalies/_anomalies.dm b/code/game/objects/effects/anomalies/_anomalies.dm index ce9bab6a511cc..f249d22500c30 100644 --- a/code/game/objects/effects/anomalies/_anomalies.dm +++ b/code/game/objects/effects/anomalies/_anomalies.dm @@ -95,6 +95,15 @@ /obj/effect/anomaly/proc/anomalyNeutralize() new /obj/effect/particle_effect/fluid/smoke/bad(loc) + SSblackbox.record_feedback( + "nested tally", + "anomaly_defused", + 1, + list( + "[type]", + immortal ? "immortal" : "[round((death_time - world.time) / 10)]ds time left", + ) + ) if(drops_core) if(isnull(anomaly_core)) diff --git a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm index c57a629d85c2b..d722d90ed1172 100644 --- a/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm +++ b/code/game/objects/effects/anomalies/anomalies_bioscrambler.dm @@ -24,8 +24,8 @@ if(!COOLDOWN_FINISHED(src, pulse_cooldown)) return - new /obj/effect/temp_visual/bioscrambler_wave(get_turf(src)) - playsound(src, 'sound/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) + new /obj/effect/temp_visual/circle_wave/bioscrambler(get_turf(src)) + playsound(src, 'sound/effects/magic/cosmic_energy.ogg', vol = 50, vary = TRUE) COOLDOWN_START(src, pulse_cooldown, pulse_delay) for(var/mob/living/carbon/nearby in hearers(range, src)) nearby.bioscramble(name) @@ -62,7 +62,7 @@ for(var/mob/living/carbon/target in GLOB.player_list) if (target.z != z) continue - if (target.status_flags & GODMODE) + if (HAS_TRAIT(target, TRAIT_GODMODE)) continue if (target.stat >= UNCONSCIOUS) continue // Don't just haunt a corpse @@ -81,18 +81,32 @@ return /// Visual effect spawned when the bioscrambler scrambles your bio -/obj/effect/temp_visual/bioscrambler_wave +/obj/effect/temp_visual/circle_wave icon = 'icons/effects/64x64.dmi' icon_state = "circle_wave" pixel_x = -16 pixel_y = -16 duration = 0.5 SECONDS color = COLOR_LIME + var/max_alpha = 255 + ///How far the effect would scale in size + var/amount_to_scale = 2 -/obj/effect/temp_visual/bioscrambler_wave/Initialize(mapload) +/obj/effect/temp_visual/circle_wave/Initialize(mapload) transform = matrix().Scale(0.1) - animate(src, transform = matrix().Scale(2), time = duration, flags = ANIMATION_PARALLEL) - animate(src, alpha = 255, time = duration * 0.6, flags = ANIMATION_PARALLEL) + animate(src, transform = matrix().Scale(amount_to_scale), time = duration, flags = ANIMATION_PARALLEL) + animate(src, alpha = max_alpha, time = duration * 0.6, flags = ANIMATION_PARALLEL) animate(alpha = 0, time = duration * 0.4) apply_wibbly_filters(src) return ..() + +/obj/effect/temp_visual/circle_wave/bioscrambler + color = COLOR_LIME + +/obj/effect/temp_visual/circle_wave/bioscrambler/light + max_alpha = 128 + +/obj/effect/temp_visual/circle_wave/void_conduit + color = COLOR_FULL_TONER_BLACK + duration = 12 SECONDS + amount_to_scale = 12 diff --git a/code/game/objects/effects/anomalies/anomalies_bluespace.dm b/code/game/objects/effects/anomalies/anomalies_bluespace.dm index 2ed19adb4f2c8..0a71427776eea 100644 --- a/code/game/objects/effects/anomalies/anomalies_bluespace.dm +++ b/code/game/objects/effects/anomalies/anomalies_bluespace.dm @@ -31,8 +31,16 @@ // Calculate new position (searches through beacons in world) var/obj/item/beacon/chosen var/list/possible = list() - for(var/obj/item/beacon/W in GLOB.teleportbeacons) - possible += W + for(var/obj/item/beacon/beacon in GLOB.teleportbeacons) + var/turf/turf = get_turf(beacon) + if(!turf) + continue + if(is_centcom_level(turf.z) || is_away_level(turf.z)) + continue + var/area/area = get_area(turf) + if(!area || (area.area_flags & NOTELEPORT)) + continue + possible += beacon if(possible.len > 0) chosen = pick(possible) diff --git a/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm index 6832b07d12568..8f10717c771e9 100644 --- a/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm +++ b/code/game/objects/effects/anomalies/anomalies_dimensional_themes.dm @@ -11,7 +11,7 @@ /// Typepath of custom material to use for objects. var/datum/material/material /// Sound to play when transforming a tile - var/sound = 'sound/magic/blind.ogg' + var/sound = 'sound/effects/magic/blind.ogg' /// Weighted list of turfs to replace the floor with. var/list/replace_floors = list(/turf/open/floor/material = 1) /// Typepath of turf to replace walls with. @@ -36,7 +36,7 @@ /datum/dimension_theme/New() if (material) var/datum/material/using_mat = GET_MATERIAL_REF(material) - window_colour = using_mat.greyscale_colors + window_colour = using_mat.color /** * Applies themed transformation to the provided turf. @@ -255,7 +255,7 @@ icon = 'icons/obj/ore.dmi' icon_state = "uranium" material = /datum/material/uranium - sound = 'sound/items/welder.ogg' + sound = 'sound/items/tools/welder.ogg' /datum/dimension_theme/meat name = "Meat" @@ -449,3 +449,23 @@ /obj/structure/table = list(/obj/structure/table/greyscale = 9, /obj/structure/table/abductor = 1), /obj/structure/toilet = list(/obj/structure/toilet/greyscale = 1), ) + +/datum/dimension_theme/bronze + name = "Bronze" + icon = 'icons/obj/weapons/spear.dmi' + icon_state = "ratvarian_spear" + material = /datum/material/bronze + replace_walls = /turf/closed/wall/mineral/bronze + replace_floors = list(/turf/open/floor/bronze = 1, /turf/open/floor/bronze/flat = 1, /turf/open/floor/bronze/filled = 1) + replace_objs = list( + /obj/structure/girder = list(/obj/structure/girder/bronze = 1), + /obj/structure/window/fulltile = list(/obj/structure/window/bronze/fulltile = 1), + /obj/structure/window = list(/obj/structure/window/bronze = 1), + /obj/structure/statue = list(/obj/structure/statue/bronze/marx = 1), // karl marx was a servant of ratvar + /obj/structure/table = list(/obj/structure/table/bronze = 1), + /obj/structure/toilet = list(/obj/structure/toilet/greyscale = 1), + /obj/structure/chair = list(/obj/structure/chair/bronze = 1), + /obj/item/reagent_containers/cup/glass/trophy = list(/obj/item/reagent_containers/cup/glass/trophy/bronze_cup = 1), + /obj/machinery/door/airlock = list(/obj/machinery/door/airlock/bronze = 1), + ) + sound = 'sound/effects/magic/clockwork/fellowship_armory.ogg' diff --git a/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm b/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm index e6c3e855386b7..0998e3f803dec 100644 --- a/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm +++ b/code/game/objects/effects/anomalies/anomalies_ectoplasm.dm @@ -132,11 +132,11 @@ icon_state = "anom" anchored = TRUE var/static/list/spooky_noises = list( - 'sound/hallucinations/growl1.ogg', - 'sound/hallucinations/growl2.ogg', - 'sound/hallucinations/growl3.ogg', - 'sound/hallucinations/veryfar_noise.ogg', - 'sound/hallucinations/wail.ogg' + 'sound/effects/hallucinations/growl1.ogg', + 'sound/effects/hallucinations/growl2.ogg', + 'sound/effects/hallucinations/growl3.ogg', + 'sound/effects/hallucinations/veryfar_noise.ogg', + 'sound/effects/hallucinations/wail.ogg' ) var/list/ghosts_spawned = list() diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm index 08becc48c7531..82b55542246c7 100644 --- a/code/game/objects/effects/anomalies/anomalies_gravity.dm +++ b/code/game/objects/effects/anomalies/anomalies_gravity.dm @@ -61,7 +61,7 @@ if(target && !target.stat) O.throw_at(target, 5, 10) - //anomaly quickly contracts then slowly expands it's ring + //anomaly quickly contracts then slowly expands its ring animate(warp, time = seconds_per_tick*3, transform = matrix().Scale(0.5,0.5)) animate(time = seconds_per_tick*7, transform = matrix()) diff --git a/code/game/objects/effects/anomalies/anomalies_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm index 4065d8c04a45e..63997d4da6809 100644 --- a/code/game/objects/effects/anomalies/anomalies_hallucination.dm +++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm @@ -18,6 +18,7 @@ /obj/effect/anomaly/hallucination/Initialize(mapload, new_lifespan, drops_core) . = ..() apply_wibbly_filters(src) + generate_decoys() /obj/effect/anomaly/hallucination/anomalyEffect(seconds_per_tick) . = ..() @@ -40,10 +41,60 @@ if(!isturf(loc)) return - visible_hallucination_pulse( + hallucination_pulse( center = get_turf(src), - radius = 10, + radius = 15, hallucination_duration = 50 SECONDS, hallucination_max_duration = 300 SECONDS, optional_messages = messages, ) + +/obj/effect/anomaly/hallucination/proc/generate_decoys() + for(var/turf/floor in orange(1, src)) + if(prob(35)) + new /obj/effect/anomaly/hallucination/decoy(floor) + +/obj/effect/anomaly/hallucination/decoy + drops_core = FALSE + ///Stores the fake analyzer scan text, so the result is always consistent for each anomaly. + var/report_text + +/obj/effect/anomaly/hallucination/decoy/Initialize(mapload, new_lifespan, drops_core) + . = ..() + ADD_TRAIT(src, TRAIT_ILLUSORY_EFFECT, INNATE_TRAIT) + report_text = pick( + "[src]'s unstable field is fluctuating along frequency 9999999.99999, code 9999999.99999. No, no, that can't be right?", + "It doesn't detect anything. It awaits an input, as if you're pointing it towards nothing at all. What?", + "The interface displays [pick("a bad memory from your past", "the frequency numbers in a language you cannot read", "the first 15 digits of Pi", "yourself, from behind, angled at a 3/4ths isometric perspective")]. What the hell?", + "Nothing happens?", + "It reports that you are a [pick("moron", "idiot", "cretin", "lowlife", "worthless denthead", "gump")]. Huh?", + "It tells you to try again, because you're doing it all wrong. What?", + "It occurs to you that the anomaly you're scanning isn't actually there.", + "It's not working. You activate %TOOL% again. Still broken. You activate %TOOL%. You activate %TOOL%. Why isn't this working??", + "Something happens. You can't tell what. The interface on %TOOL% remains blank.", + "What are you even trying to accomplish here? Did you really think that was going to work?", + "Someone behind you whispers the frequency code to you, but you can't quite hear them. The interface on %TOOL% remains blank.", + "For a brief moment, you see yourself traversing a frozen forest, before snapping back to reality. The interface on %TOOL% remains blank.", + "Nothing interesting happens. Are you sure you're actually using it on anything?", + "For a moment you can feel your skin falling off, then blink as the sensation vanishes. What the hell did that mean?", + "The interface reports that you are a complete failure, and have screwed everything up again. Great work.", + "You realize that the formatting of this message is completely wrong, and get confused. Now why would that be?", + "%TOOL% stares back at you. It looks dissapointed, its screen practically saying 'You missed the anomaly, you dolt. There's nothing there!'", + "Nothing. Weird, maybe %TOOL% must be broken or something?", + "You activate %TOOL%. You activate %TOOL%. You activate %TOOL%. You activate %TOOL%. You activate %TOOL%. You activate %TOOL%. You activate %TOOL%. Why isn't it working??", + ) + +/obj/effect/anomaly/hallucination/decoy/anomalyEffect(seconds_per_tick) + if(SPT_PROB(move_chance, seconds_per_tick)) + move_anomaly() + +/obj/effect/anomaly/hallucination/decoy/analyzer_act(mob/living/user, obj/item/analyzer/tool) + to_chat(user, span_notice("You activate [tool]. [replacetext(report_text, "%TOOL%", "[tool]")]")) + return ITEM_INTERACT_BLOCKING + +/obj/effect/anomaly/hallucination/decoy/detonate() + do_sparks(3, source = src) + return + +/obj/effect/anomaly/hallucination/decoy/generate_decoys() + return diff --git a/code/game/objects/effects/cursor_catcher.dm b/code/game/objects/effects/cursor_catcher.dm index a8c19e40be80d..366ab0556248c 100644 --- a/code/game/objects/effects/cursor_catcher.dm +++ b/code/game/objects/effects/cursor_catcher.dm @@ -60,8 +60,8 @@ var/icon_y = text2num(LAZYACCESS(modifiers, VIS_Y)) if(isnull(icon_y)) icon_y = text2num(LAZYACCESS(modifiers, ICON_Y)) - var/our_x = round(icon_x / world.icon_size) - var/our_y = round(icon_y / world.icon_size) + var/our_x = round(icon_x / ICON_SIZE_X) + var/our_y = round(icon_y / ICON_SIZE_Y) given_turf = locate(owner.x + our_x - round(view_list[1]/2), owner.y + our_y - round(view_list[2]/2), owner.z) - given_x = round(icon_x - world.icon_size * our_x, 1) - given_y = round(icon_y - world.icon_size * our_y, 1) + given_x = round(icon_x - ICON_SIZE_X * our_x, 1) + given_y = round(icon_y - ICON_SIZE_Y * our_y, 1) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index b6837df6f9546..21eff5028b57e 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -1,6 +1,5 @@ /obj/effect/decal/cleanable gender = PLURAL - plane = GAME_PLANE layer = FLOOR_CLEAN_LAYER var/list/random_icon_states = null ///I'm sorry but cleanable/blood code is ass, and so is blood_DNA diff --git a/code/game/objects/effects/decals/cleanable/aliens.dm b/code/game/objects/effects/decals/cleanable/aliens.dm index bf826e207db37..bc7923ac0ed47 100644 --- a/code/game/objects/effects/decals/cleanable/aliens.dm +++ b/code/game/objects/effects/decals/cleanable/aliens.dm @@ -23,7 +23,8 @@ desc = "Gnarly..." icon = 'icons/effects/blood.dmi' icon_state = "xgib1" - layer = LOW_OBJ_LAYER + plane = GAME_PLANE + layer = BELOW_OBJ_LAYER random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6") mergeable_decal = FALSE diff --git a/code/game/objects/effects/decals/cleanable/food.dm b/code/game/objects/effects/decals/cleanable/food.dm index 0fc4352c78da9..d612bd9e7f53e 100644 --- a/code/game/objects/effects/decals/cleanable/food.dm +++ b/code/game/objects/effects/decals/cleanable/food.dm @@ -10,6 +10,9 @@ icon_state = "tomato_floor1" random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3") +/obj/effect/decal/cleanable/food/tomato_smudge/can_bloodcrawl_in() + return TRUE // why? why not. + /obj/effect/decal/cleanable/food/plant_smudge name = "plant smudge" desc = "Chlorophyll? More like borophyll!" @@ -58,3 +61,14 @@ name = "flour" desc = "It's still good. Four second rule!" icon_state = "flour" + +/obj/effect/decal/cleanable/food/squid_ink + name = "ink smear" + desc = "a smear from some inky substance..." + icon = 'icons/mob/silicon/robots.dmi' + icon_state = "floor1" + color = COLOR_DARK + +/obj/effect/decal/cleanable/food/squid_ink/Initialize(mapload, list/datum/disease/diseases) + icon_state = "floor[rand(1, 7)]" + return ..() diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 062ba3837230b..4e7fd2d01a902 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -111,7 +111,7 @@ desc = "They look bloody and gruesome." icon = 'icons/effects/blood.dmi' icon_state = "gib1" - layer = LOW_OBJ_LAYER + layer = BELOW_OBJ_LAYER plane = GAME_PLANE random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6") mergeable_decal = FALSE @@ -354,6 +354,8 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) pass_flags = PASSTABLE | PASSGRILLE icon_state = "hitsplatter1" random_icon_states = list("hitsplatter1", "hitsplatter2", "hitsplatter3") + plane = GAME_PLANE + layer = ABOVE_WINDOW_LAYER /// The turf we just came from, so we can back up when we hit a wall var/turf/prev_loc /// The cached info about the blood diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index f3fbf0b817caa..caf7428ef01fa 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -10,6 +10,8 @@ desc = "Ashes to ashes, dust to dust, and into space." icon = 'icons/obj/debris.dmi' icon_state = "ash" + plane = GAME_PLANE + layer = GAME_CLEAN_LAYER mergeable_decal = FALSE beauty = -50 decal_reagent = /datum/reagent/ash @@ -144,6 +146,7 @@ name = "cobweb" desc = "Somebody should remove that." gender = NEUTER + plane = GAME_PLANE layer = WALL_OBJ_LAYER icon = 'icons/effects/web.dmi' icon_state = "cobweb1" @@ -160,6 +163,8 @@ gender = NEUTER icon = 'icons/effects/effects.dmi' icon_state = "molten" + plane = GAME_PLANE + layer = GAME_CLEAN_LAYER mergeable_decal = FALSE beauty = -150 clean_type = CLEAN_TYPE_HARD_DECAL @@ -245,6 +250,8 @@ name = "chemical pile" desc = "A pile of chemicals. You can't quite tell what's inside it." gender = NEUTER + plane = GAME_PLANE + layer = GAME_CLEAN_LAYER icon = 'icons/obj/debris.dmi' icon_state = "ash" @@ -322,6 +329,8 @@ desc = "Torn pieces of cardboard and paper, left over from a package." icon = 'icons/obj/debris.dmi' icon_state = "paper_shreds" + plane = GAME_PLANE + layer = GAME_CLEAN_LAYER /obj/effect/decal/cleanable/wrapping/pinata name = "pinata shreds" @@ -331,13 +340,16 @@ /obj/effect/decal/cleanable/wrapping/pinata/syndie icon_state = "syndie_pinata_shreds" +/obj/effect/decal/cleanable/wrapping/pinata/donk + icon_state = "donk_pinata_shreds" + /obj/effect/decal/cleanable/garbage name = "decomposing garbage" desc = "A split open garbage bag, its stinking content seems to be partially liquified. Yuck!" icon = 'icons/obj/debris.dmi' icon_state = "garbage" plane = GAME_PLANE - layer = FLOOR_CLEAN_LAYER //To display the decal over wires. + layer = GAME_CLEAN_LAYER beauty = -150 clean_type = CLEAN_TYPE_HARD_DECAL @@ -356,7 +368,7 @@ decal_reagent = /datum/reagent/ants reagent_amount = 5 /// Sound the ants make when biting - var/bite_sound = 'sound/weapons/bite.ogg' + var/bite_sound = 'sound/items/weapons/bite.ogg' /obj/effect/decal/cleanable/ants/Initialize(mapload) if(mapload && reagent_amount > 2) @@ -440,7 +452,6 @@ name = "pool of fuel" desc = "A pool of flammable fuel. Its probably wise to clean this off before something ignites it..." icon_state = "fuel_pool" - layer = LOW_OBJ_LAYER beauty = -50 clean_type = CLEAN_TYPE_BLOOD mouse_opacity = MOUSE_OPACITY_OPAQUE @@ -555,6 +566,8 @@ icon_state = "rubble" mergeable_decal = FALSE beauty = -10 + plane = GAME_PLANE + layer = BELOW_OBJ_LAYER /obj/effect/decal/cleanable/rubble/Initialize(mapload) . = ..() diff --git a/code/game/objects/effects/decals/cleanable/robots.dm b/code/game/objects/effects/decals/cleanable/robots.dm index 808a68d6f5eb0..3f2957a9c9e16 100644 --- a/code/game/objects/effects/decals/cleanable/robots.dm +++ b/code/game/objects/effects/decals/cleanable/robots.dm @@ -5,7 +5,8 @@ desc = "It's a useless heap of junk... or is it?" icon = 'icons/mob/silicon/robots.dmi' icon_state = "gib1" - layer = LOW_OBJ_LAYER + plane = GAME_PLANE + layer = BELOW_OBJ_LAYER random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7") blood_state = BLOOD_STATE_OIL bloodiness = BLOOD_AMOUNT_PER_DECAL diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index e42ee4d491fd2..e27e6f91337fe 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -4,18 +4,24 @@ icon = 'icons/effects/crayondecal.dmi' icon_state = "rune1" gender = NEUTER - plane = GAME_PLANE //makes the graffiti visible over a wall. mergeable_decal = FALSE flags_1 = ALLOW_DARK_PAINTS_1 var/do_icon_rotate = TRUE var/rotation = 0 var/paint_colour = COLOR_WHITE -/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null) +/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null, desc_override = null) . = ..() + if(isclosedturf(loc) && loc.density) + // allows for wall graffiti to be seen + SET_PLANE_IMPLICIT(src, GAME_PLANE) + layer = GAME_CLEAN_LAYER if(e_name) name = e_name - desc = "A [name] vandalizing the station." + if(desc_override) + desc = "[desc_override]" + else + desc = "A [name] vandalizing the station." if(alt_icon) icon = alt_icon if(type) diff --git a/code/game/objects/effects/decals/remains.dm b/code/game/objects/effects/decals/remains.dm index 61f14f9d80ebb..803555ae89a99 100644 --- a/code/game/objects/effects/decals/remains.dm +++ b/code/game/objects/effects/decals/remains.dm @@ -5,7 +5,7 @@ /obj/effect/decal/remains/acid_act() visible_message(span_warning("[src] dissolve[gender == PLURAL?"":"s"] into a puddle of sizzling goop!")) - playsound(src, 'sound/items/welder.ogg', 150, TRUE) + playsound(src, 'sound/items/tools/welder.ogg', 150, TRUE) new /obj/effect/decal/cleanable/greenglow(drop_location()) qdel(src) return TRUE @@ -18,18 +18,23 @@ return !istype(here_turf, /obj/structure/closet/crate/grave/filled) && ..() /obj/effect/decal/remains/human/smokey - desc = "They look like human remains. They have a strange, smokey aura about them..." + name = "remains of Charles Morlbaro" + desc = "I guess we figured out what happened to the guy who lives here. You'd best tread lightly around this..." ///Our proximity monitor, for detecting nearby looters. var/datum/proximity_monitor/proximity_monitor ///The reagent we will release when our remains are disturbed. var/datum/reagent/that_shit_that_killed_saddam + ///A cooldown for how frequently the gas is released when disturbed. COOLDOWN_DECLARE(gas_cooldown) + ///The length of the aforementioned cooldown. + var/gas_cooldown_length = (20 SECONDS) /obj/effect/decal/remains/human/smokey/Initialize(mapload) . = ..() - proximity_monitor = new(src, 0) - that_shit_that_killed_saddam = get_random_reagent_id() + proximity_monitor = new(src, 1) + var/list/blocked_reagents = subtypesof(/datum/reagent/medicine) + subtypesof(/datum/reagent/consumable) //Boooooriiiiing + that_shit_that_killed_saddam = get_random_reagent_id(blacklist = blocked_reagents) /obj/effect/decal/remains/human/smokey/HasProximity(atom/movable/tomb_raider) if(!COOLDOWN_FINISHED(src, gas_cooldown)) @@ -37,10 +42,11 @@ if(iscarbon(tomb_raider)) var/mob/living/carbon/nearby_carbon = tomb_raider - if (nearby_carbon.move_intent != MOVE_INTENT_WALK || prob(15)) + if(nearby_carbon.move_intent != MOVE_INTENT_WALK || prob(5)) release_smoke(nearby_carbon) - COOLDOWN_START(src, gas_cooldown, rand(20 SECONDS, 2 MINUTES)) + COOLDOWN_START(src, gas_cooldown, gas_cooldown_length) +///Releases a cloud of smoke based on the randomly generated reagent in Initialize(). /obj/effect/decal/remains/human/smokey/proc/release_smoke(mob/living/smoke_releaser) visible_message(span_warning("[smoke_releaser] disturbs the [src], which releases a huge cloud of gas!")) var/datum/effect_system/fluid_spread/smoke/chem/cigarette_puff = new() @@ -49,6 +55,15 @@ cigarette_puff.set_up(range = 2, amount = DIAMOND_AREA(2), holder = src, location = get_turf(src), silent = TRUE) cigarette_puff.start() +///Subtype of smokey remains used for rare maintenance spawns. +/obj/effect/decal/remains/human/smokey/maintenance + name = "smokey remains" + desc = "They look like human remains. They have a strange, smokey aura about them... You should tread lightly when walking near this." + +/obj/effect/decal/remains/human/smokey/maintenance/Initialize(mapload) + . = ..() + gas_cooldown_length = rand(4 MINUTES, 6 MINUTES) + /obj/effect/decal/remains/plasma icon_state = "remainsplasma" diff --git a/code/game/objects/effects/effect_system/effect_system.dm b/code/game/objects/effects/effect_system/effect_system.dm index 4fdd4ac598ee0..6ddd65f12cfca 100644 --- a/code/game/objects/effects/effect_system/effect_system.dm +++ b/code/game/objects/effects/effect_system/effect_system.dm @@ -20,8 +20,8 @@ would spawn and follow the beaker, even if it is carried or thrown. GLOB.cameranet.updateVisibility(src) return ..() -// Prevents effects from getting registered for SSspacedrift -/obj/effect/particle_effect/newtonian_move(direction, instant = FALSE, start_delay = 0) +// Prevents effects from getting registered for SSnewtonian_movement +/obj/effect/particle_effect/newtonian_move(inertia_angle, instant = FALSE, start_delay = 0, drift_force = 0, controlled_cap = null) return TRUE /datum/effect_system diff --git a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm index 6d968574c686c..07383a0aa6f0b 100644 --- a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm +++ b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm @@ -40,7 +40,7 @@ if(slippery_foam) AddComponent(/datum/component/slippery, 100) create_reagents(1000, REAGENT_HOLDER_INSTANT_REACT) - playsound(src, 'sound/effects/bubbles2.ogg', 80, TRUE, -3) + playsound(src, 'sound/effects/bubbles/bubbles2.ogg', 80, TRUE, -3) AddElement(/datum/element/atmos_sensitive, mapload) SSfoam.start_processing(src) @@ -324,7 +324,7 @@ return attack_hand(user, modifiers) /obj/structure/foamedmetal/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(src.loc, 'sound/weapons/tap.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/weapons/tap.ogg', 100, TRUE) /obj/structure/foamedmetal/attack_hand(mob/user, list/modifiers) . = ..() @@ -333,7 +333,7 @@ user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) to_chat(user, span_warning("You hit [src] but bounce off it!")) - playsound(src.loc, 'sound/weapons/tap.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/weapons/tap.ogg', 100, TRUE) /obj/structure/foamedmetal/attackby(obj/item/W, mob/user, params) ///A speed modifier for how fast the wall is build diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index 4445815a422be..60ce9d7662b81 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -84,7 +84,7 @@ icon = 'icons/effects/eldritch.dmi' icon_state = "cosmic_carpet" anchored = TRUE - layer = LOW_SIGIL_LAYER + layer = BELOW_OBJ_LAYER density = FALSE can_atmos_pass = ATMOS_PASS_NO initial_duration = 30 SECONDS diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index e9a6263286e59..c98dfc2ddf78e 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -246,7 +246,7 @@ GLOBAL_VAR_INIT(glowshrooms, 0) /obj/structure/glowshroom/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) if(damage_type == BURN && damage_amount) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/glowshroom/should_atmos_process(datum/gas_mixture/air, exposed_temperature) return exposed_temperature > 300 diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 64c0afe188a8a..b1a4a75c945d7 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -306,6 +306,11 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) GLOB.newplayer_start += loc return INITIALIZE_HINT_QDEL +/obj/effect/landmark/start/pun_pun + name = JOB_PUN_PUN + icon = 'icons/mob/human/human.dmi' + icon_state = "monkey" + /obj/effect/landmark/latejoin name = "JoinLate" diff --git a/code/game/objects/effects/material_insert.dm b/code/game/objects/effects/material_insert.dm index 9ca86226b24b9..3dcdd904a01d5 100644 --- a/code/game/objects/effects/material_insert.dm +++ b/code/game/objects/effects/material_insert.dm @@ -2,21 +2,18 @@ * Creates a mutable appearance with the material color applied for its insertion animation into an autolathe or techfab * Arguments * - * * color - the material color that will be applied + * * material - the material used to generate the overlay */ -/proc/material_insertion_animation(color) +/proc/material_insertion_animation(datum/material/material) RETURN_TYPE(/mutable_appearance) var/static/list/mutable_appearance/apps = list() - var/mutable_appearance/cached_app = apps[color] + var/mutable_appearance/cached_app = apps[material] if(isnull(cached_app)) - var/icon/modified_icon = icon('icons/obj/machines/research.dmi', "material_insertion") + cached_app = mutable_appearance('icons/obj/machines/research.dmi', "material_insertion") + cached_app.color = material.color + cached_app.alpha = material.alpha - //assuming most of the icon is white we find what ratio to scale the intensity of each part roughly - var/list/rgb_list = rgb2num(color) - modified_icon.SetIntensity(rgb_list[1] / 255, rgb_list[2] / 255, rgb_list[3] / 255) - cached_app = mutable_appearance(modified_icon, "material_insertion") - - apps[color] = cached_app + apps[material] = cached_app return cached_app diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index f080035d54c2e..12c8c15b62eaf 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -275,7 +275,7 @@ if(active) return - playsound(src, 'sound/weapons/armbomb.ogg', 70, TRUE) + playsound(src, 'sound/items/weapons/armbomb.ogg', 70, TRUE) to_chat(user, span_warning("You arm \the [src], causing it to shake! It will deploy in 3 seconds.")) active = TRUE addtimer(CALLBACK(src, PROC_REF(deploy_mine)), 3 SECONDS) diff --git a/code/game/objects/effects/particles/fire.dm b/code/game/objects/effects/particles/fire.dm index 9d90d0d29c29a..9904685807364 100644 --- a/code/game/objects/effects/particles/fire.dm +++ b/code/game/objects/effects/particles/fire.dm @@ -33,3 +33,21 @@ drift = generator(GEN_VECTOR, list(-0.1,0), list(0.1,0.025), UNIFORM_RAND) spin = generator(GEN_NUM, list(-15,15), NORMAL_RAND) scale = generator(GEN_VECTOR, list(0.5,0.5), list(2,2), NORMAL_RAND) + +/particles/embers/spark + count = 3 + spawning = 2 + gradient = list("#FBAF4D", "#FCE6B6", "#FFFFFF") + lifespan = 1.5 SECONDS + fade = 1 SECONDS + fadein = 0.1 SECONDS + grow = -0.1 + velocity = generator(GEN_CIRCLE, 3, 3, SQUARE_RAND) + position = generator(GEN_SPHERE, 0, 0, LINEAR_RAND) + scale = generator(GEN_VECTOR, list(0.5, 0.5), list(1,1), NORMAL_RAND) + drift = list(0) + +/particles/embers/spark/severe + count = 10 + spawning = 5 + gradient = list("#FCE6B6", "#FFFFFF") diff --git a/code/game/objects/effects/particles/gravity.dm b/code/game/objects/effects/particles/gravity.dm new file mode 100644 index 0000000000000..0d74896e20a7b --- /dev/null +++ b/code/game/objects/effects/particles/gravity.dm @@ -0,0 +1,44 @@ +/particles/grav_field_down + icon = 'icons/effects/particles/generic.dmi' + icon_state = "cross" + width = 100 + height = 100 + count = 5 + spawning = 1 + lifespan = 0.6 SECONDS + fade = 0.5 SECONDS + fadein = 0.2 SECONDS + position = generator(GEN_CIRCLE, 0, 16, UNIFORM_RAND) + gravity = list(0, -0.75) + color = "#FF0000" + +/particles/grav_field_down/strong + gravity = list(0, -1.75) + +/particles/grav_field_up + icon = 'icons/effects/particles/generic.dmi' + icon_state = "cross" + width = 100 + height = 100 + count = 5 + spawning = 1 + lifespan = 0.6 SECONDS + fade = 0.5 SECONDS + fadein = 0.2 SECONDS + position = generator(GEN_CIRCLE, 0, 16, UNIFORM_RAND) + gravity = list(0, 0.75) + color = "#0077ff" + +/particles/grav_field_float + icon = 'icons/effects/particles/generic.dmi' + icon_state = "cross" + width = 100 + height = 100 + count = 5 + spawning = 1 + lifespan = 0.6 SECONDS + fade = 0.5 SECONDS + fadein = 0.2 SECONDS + position = generator(GEN_CIRCLE, 0, 16, UNIFORM_RAND) + velocity = generator(GEN_VECTOR, list(2,0), list(-2,0), UNIFORM_RAND) + color = "#FFFF00" diff --git a/code/game/objects/effects/particles/smoke.dm b/code/game/objects/effects/particles/smoke.dm index 27249c65a683e..776c90534a957 100644 --- a/code/game/objects/effects/particles/smoke.dm +++ b/code/game/objects/effects/particles/smoke.dm @@ -84,3 +84,16 @@ grow = 0.05 spin = 2 color = "#fcffff77" + +/particles/smoke/cyborg + count = 5 + spawning = 1 + lifespan = 1 SECONDS + fade = 1.8 SECONDS + position = list(0, 0, 0) + scale = list(0.5, 0.5) + grow = 0.1 + +/particles/smoke/cyborg/heavy_damage + lifespan = 0.8 SECONDS + fade = 0.8 SECONDS diff --git a/code/game/objects/effects/phased_mob.dm b/code/game/objects/effects/phased_mob.dm index dcd4e39189c87..357e9683072c1 100644 --- a/code/game/objects/effects/phased_mob.dm +++ b/code/game/objects/effects/phased_mob.dm @@ -23,6 +23,7 @@ jaunter.forceMove(src) if(ismob(jaunter)) var/mob/mob_jaunter = jaunter + RegisterSignal(mob_jaunter, COMSIG_MOB_STATCHANGE, PROC_REF(on_stat_change)) mob_jaunter.reset_perspective(src) /obj/effect/dummy/phased_mob/Destroy() @@ -55,6 +56,7 @@ /obj/effect/dummy/phased_mob/Exited(atom/movable/gone, direction) . = ..() if(gone == jaunter) + UnregisterSignal(jaunter, COMSIG_MOB_STATCHANGE) SEND_SIGNAL(src, COMSIG_MOB_EJECTED_FROM_JAUNT, jaunter) jaunter = null @@ -84,13 +86,23 @@ return var/area/destination_area = newloc.loc movedelay = world.time + movespeed + + if(SEND_SIGNAL(src, COMSIG_MOB_PHASED_CHECK, user, newloc) & COMPONENT_BLOCK_PHASED_MOVE) + return null + if(newloc.turf_flags & NOJAUNT) to_chat(user, span_warning("Some strange aura is blocking the way.")) return if(destination_area.area_flags & NOTELEPORT || SSmapping.level_trait(newloc.z, ZTRAIT_NOPHASE)) - to_chat(user, span_danger("Some dull, universal force is blocking the way. It's overwhelmingly oppressive force feels dangerous.")) + to_chat(user, span_danger("Some dull, universal force is blocking the way. Its overwhelmingly oppressive force feels dangerous.")) return if (direction == UP || direction == DOWN) newloc = can_z_move(direction, get_turf(src), newloc, ZMOVE_INCAPACITATED_CHECKS | ZMOVE_FEEDBACK | ZMOVE_ALLOW_ANCHORED, user) return newloc + +/// Signal proc for [COMSIG_MOB_STATCHANGE], to throw us out of the jaunt if we lose consciousness. +/obj/effect/dummy/phased_mob/proc/on_stat_change(mob/living/source, new_stat, old_stat) + SIGNAL_HANDLER + if(source == jaunter && source.stat != CONSCIOUS) + eject_jaunter() diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 255f34eff51dd..a43fee5608de3 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -66,7 +66,7 @@ return ..() // Prevents portals spawned by jaunter/handtele from floating into space when relocated to an adjacent tile. -/obj/effect/portal/newtonian_move(direction, instant = FALSE, start_delay = 0) +/obj/effect/portal/newtonian_move(inertia_angle, instant = FALSE, start_delay = 0, drift_force = 0, controlled_cap = null) return TRUE /obj/effect/portal/attackby(obj/item/W, mob/user, params) diff --git a/code/game/objects/effects/posters/contraband.dm b/code/game/objects/effects/posters/contraband.dm index 52528c251b659..04bc790daea83 100644 --- a/code/game/objects/effects/posters/contraband.dm +++ b/code/game/objects/effects/posters/contraband.dm @@ -4,6 +4,10 @@ poster_type = /obj/structure/sign/poster/contraband/random icon_state = "rolled_poster" +/obj/item/poster/random_contraband/Initialize(mapload, obj/structure/sign/poster/new_poster_structure) + . = ..() + ADD_TRAIT(src, TRAIT_CONTRABAND, INNATE_TRAIT) + /obj/structure/sign/poster/contraband poster_item_name = "contraband poster" poster_item_desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities." diff --git a/code/game/objects/effects/posters/poster.dm b/code/game/objects/effects/posters/poster.dm index 4ced5babbbfa8..135887aafc83f 100644 --- a/code/game/objects/effects/posters/poster.dm +++ b/code/game/objects/effects/posters/poster.dm @@ -248,7 +248,7 @@ flick("poster_being_set", placed_poster) placed_poster.forceMove(src) //deletion of the poster is handled in poster/Exited(), so don't have to worry about P anymore. - playsound(src, 'sound/items/poster_being_created.ogg', 100, TRUE) + playsound(src, 'sound/items/poster/poster_being_created.ogg', 100, TRUE) var/turf/user_drop_location = get_turf(user) //cache this so it just falls to the ground if they move. also no tk memes allowed. if(!do_after(user, PLACE_SPEED, placed_poster, extra_checks = CALLBACK(placed_poster, TYPE_PROC_REF(/obj/structure/sign/poster, snowflake_closed_turf_check), src))) @@ -266,7 +266,7 @@ /obj/structure/sign/poster/proc/tear_poster(mob/user) visible_message(span_notice("[user] rips [src] in a single, decisive motion!") ) - playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, TRUE) + playsound(src.loc, 'sound/items/poster/poster_ripped.ogg', 100, TRUE) spring_trap(user) var/obj/structure/sign/poster/ripped/torn_poster = new(loc) diff --git a/code/game/objects/effects/powerup.dm b/code/game/objects/effects/powerup.dm index 3dc5db8de95de..8598d623fb0e5 100644 --- a/code/game/objects/effects/powerup.dm +++ b/code/game/objects/effects/powerup.dm @@ -59,7 +59,7 @@ icon_state = "backpack-medical" respawn_time = 30 SECONDS pickup_message = "Health restored!" - pickup_sound = 'sound/magic/staff_healing.ogg' + pickup_sound = 'sound/effects/magic/staff_healing.ogg' /// How much the pickup heals when picked up var/heal_amount = 50 /// Does this pickup fully heal when picked up @@ -89,7 +89,7 @@ icon_state = "ammobox" respawn_time = 30 SECONDS pickup_message = "Ammunition reloaded!" - pickup_sound = 'sound/weapons/gun/shotgun/rack.ogg' + pickup_sound = 'sound/items/weapons/gun/shotgun/rack.ogg' /obj/effect/powerup/ammo/trigger(mob/living/target) . = ..() @@ -110,7 +110,7 @@ name = "Lightning Orb" desc = "You feel faster just looking at it." icon_state = "speed" - pickup_sound = 'sound/magic/lightningshock.ogg' + pickup_sound = 'sound/effects/magic/lightningshock.ogg' /obj/effect/powerup/speed/trigger(mob/living/target) . = ..() diff --git a/code/game/objects/effects/rcd.dm b/code/game/objects/effects/rcd.dm index 17ea3e44a10a1..03d77f0f84504 100644 --- a/code/game/objects/effects/rcd.dm +++ b/code/game/objects/effects/rcd.dm @@ -10,7 +10,7 @@ * * fade_time - The time for RCD holograms to fade */ /proc/rcd_scan(atom/source, scan_range = RCD_DESTRUCTIVE_SCAN_RANGE, fade_time = RCD_HOLOGRAM_FADE_TIME) - playsound(source, 'sound/items/rcdscan.ogg', 50, vary = TRUE, pressure_affected = FALSE) + playsound(source, 'sound/items/tools/rcdscan.ogg', 50, vary = TRUE, pressure_affected = FALSE) var/turf/source_turf = get_turf(source) for(var/turf/open/surrounding_turf as anything in RANGE_TURFS(scan_range, source_turf)) diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm index 50497d531e76f..92343d91d219d 100644 --- a/code/game/objects/effects/spawners/gibspawner.dm +++ b/code/game/objects/effects/spawners/gibspawner.dm @@ -4,7 +4,7 @@ var/sparks = 0 //whether sparks spread var/virusProb = 20 //the chance for viruses to spread on the gibs var/gib_mob_type //generate a fake mob to transfer DNA from if we weren't passed a mob. - var/sound_to_play = 'sound/effects/blobattack.ogg' + var/sound_to_play = 'sound/effects/blob/blobattack.ogg' var/sound_vol = 60 var/list/gibtypes = list() //typepaths of the gib decals to spawn var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn. @@ -71,8 +71,6 @@ /obj/effect/gibspawner/generic/animal gib_mob_type = /mob/living/basic/pet - - /obj/effect/gibspawner/human gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core) gibamounts = list(1, 1, 1, 1, 1, 1, 1) diff --git a/code/game/objects/effects/spawners/message_in_a_bottle.dm b/code/game/objects/effects/spawners/message_in_a_bottle.dm new file mode 100644 index 0000000000000..c4ac63ad0be22 --- /dev/null +++ b/code/game/objects/effects/spawners/message_in_a_bottle.dm @@ -0,0 +1,25 @@ +/obj/effect/spawner/message_in_a_bottle + name = "message in a bottle" + desc = "Sending out an SOS" + icon = 'icons/effects/random_spawners.dmi' + icon_state = "message_bottle" + var/probability = 100 + +/obj/effect/spawner/message_in_a_bottle/Initialize(mapload) + . = ..() + if(!prob(probability)) + return INITIALIZE_HINT_QDEL + if(!SSpersistence.initialized) + RegisterSignal(SSpersistence, COMSIG_SUBSYSTEM_POST_INITIALIZE, PROC_REF(on_persistence_init)) + else + SSpersistence.load_message_bottle(loc) + return INITIALIZE_HINT_QDEL + +/obj/effect/spawner/message_in_a_bottle/proc/on_persistence_init(datum/source) + SIGNAL_HANDLER + UnregisterSignal(SSpersistence, COMSIG_SUBSYSTEM_POST_INITIALIZE) + SSpersistence.load_message_bottle(loc) + qdel(src) + +/obj/effect/spawner/message_in_a_bottle/low_prob + probability = 1.5 diff --git a/code/game/objects/effects/spawners/random/clothing.dm b/code/game/objects/effects/spawners/random/clothing.dm index e3193b05836d8..119697c53171b 100644 --- a/code/game/objects/effects/spawners/random/clothing.dm +++ b/code/game/objects/effects/spawners/random/clothing.dm @@ -211,7 +211,7 @@ /obj/item/clothing/head/costume/lobsterhat, /obj/item/clothing/head/costume/cardborg, /obj/item/clothing/head/costume/football_helmet, - /obj/item/clothing/head/costume/tv_head/fov_less, + /obj/item/clothing/head/costume/tv_head, /obj/item/clothing/head/costume/tmc, /obj/item/clothing/head/costume/deckers, /obj/item/clothing/head/costume/yuri, diff --git a/code/game/objects/effects/spawners/random/contraband.dm b/code/game/objects/effects/spawners/random/contraband.dm index f17656c61191a..c32d46125c019 100644 --- a/code/game/objects/effects/spawners/random/contraband.dm +++ b/code/game/objects/effects/spawners/random/contraband.dm @@ -25,6 +25,12 @@ /obj/item/reagent_containers/pill/maintenance = 5, ) + +/obj/effect/spawner/random/contraband/make_item(spawn_loc, type_path_to_make) + var/obj/item/made = ..() + ADD_TRAIT(made, TRAIT_CONTRABAND, INNATE_TRAIT) + return made + /obj/effect/spawner/random/contraband/plus name = "contraband loot spawner plus" desc = "Where'd ya find this?" diff --git a/code/game/objects/effects/spawners/random/decoration.dm b/code/game/objects/effects/spawners/random/decoration.dm index 6116d22873317..6d2cf3021ef38 100644 --- a/code/game/objects/effects/spawners/random/decoration.dm +++ b/code/game/objects/effects/spawners/random/decoration.dm @@ -114,6 +114,26 @@ /obj/item/flashlight/glowstick/pink, ) +/obj/effect/spawner/random/decoration/glowstick/on + name = "random colored glowstick (on)" + icon_state = "glowstick" + loot = list( + /obj/item/flashlight/glowstick, + /obj/item/flashlight/glowstick/red, + /obj/item/flashlight/glowstick/blue, + /obj/item/flashlight/glowstick/cyan, + /obj/item/flashlight/glowstick/orange, + /obj/item/flashlight/glowstick/yellow, + /obj/item/flashlight/glowstick/pink, + ) + +/obj/effect/spawner/random/decoration/glowstick/on/make_item(spawn_loc, type_path_to_make) + . = ..() + + var/obj/item/flashlight/glowstick = . + + glowstick.set_light_on(TRUE) + /obj/effect/spawner/random/decoration/paint name = "paint spawner" icon_state = "paint" diff --git a/code/game/objects/effects/spawners/random/exotic.dm b/code/game/objects/effects/spawners/random/exotic.dm index e802e30056f4f..cb43d6f06ae4f 100644 --- a/code/game/objects/effects/spawners/random/exotic.dm +++ b/code/game/objects/effects/spawners/random/exotic.dm @@ -16,8 +16,9 @@ name = "language book spawner" icon_state = "book" loot = list( // A single roundstart species language book. - /obj/item/language_manual/roundstart_species = 100, + /obj/item/language_manual/roundstart_species = 96, /obj/item/book/granter/sign_language = 10, + /obj/item/language_manual/piratespeak = 4, /obj/item/language_manual/roundstart_species/five = 3, /obj/item/language_manual/roundstart_species/unlimited = 1, ) diff --git a/code/game/objects/effects/spawners/random/food_or_drink.dm b/code/game/objects/effects/spawners/random/food_or_drink.dm index 192914b6e3db6..4ff47f08fe994 100644 --- a/code/game/objects/effects/spawners/random/food_or_drink.dm +++ b/code/game/objects/effects/spawners/random/food_or_drink.dm @@ -167,6 +167,7 @@ /obj/item/reagent_containers/cup/glass/bottle/lizardwine = 1, /obj/item/reagent_containers/cup/glass/bottle/vodka/badminka = 1, /obj/item/reagent_containers/cup/glass/bottle/trappist = 1, + /obj/item/reagent_containers/cup/glass/bottle/rum/aged = 1, ) /obj/effect/spawner/random/food_or_drink/pizzaparty diff --git a/code/game/objects/effects/spawners/random/maintenance.dm b/code/game/objects/effects/spawners/random/maintenance.dm index 38f8af6a90269..e5bebdef672f1 100644 --- a/code/game/objects/effects/spawners/random/maintenance.dm +++ b/code/game/objects/effects/spawners/random/maintenance.dm @@ -2,14 +2,17 @@ name = "maintenance loot spawner" desc = "Come on Lady Luck, spawn me a pair of sunglasses." icon_state = "loot" + remove_if_cant_spawn = FALSE //don't remove stuff from the global maint list, which other can use. // see code/_globalvars/lists/maintenance_loot.dm for loot table /// A subtype of maintenance loot spawner that does not spawn any decals, for when you want to place them on chasm turfs and such /// decals such as ashes will cause NeverShouldHaveComeHere() to fail on such turfs, which creates annoying rng based CI failures /obj/effect/spawner/random/maintenance/no_decals -/obj/effect/spawner/random/maintenance/no_decals/can_spawn(atom/loot) - return !ispath(loot, /obj/effect/decal) +/obj/effect/spawner/random/maintenance/no_decals/can_spawn(loot) + if(ispath(loot, /obj/effect/decal)) + return FALSE + return ..() /obj/effect/spawner/random/maintenance/examine(mob/user) . = ..() @@ -19,6 +22,14 @@ loot = GLOB.maintenance_loot return ..() +/obj/effect/spawner/random/maintenance/skew_loot_weights(list/loot_list, exponent) + ///We only need to skew the weights once, since it's a global list used by all maint spawners. + var/static/already_done = FALSE + if(loot_list == GLOB.maintenance_loot && already_done) + return + already_done = TRUE + return ..() + /obj/effect/spawner/random/maintenance/proc/hide() SetInvisibility(INVISIBILITY_OBSERVER) alpha = 100 diff --git a/code/game/objects/effects/spawners/random/random.dm b/code/game/objects/effects/spawners/random/random.dm index ed77f671191b6..9614c4a17813c 100644 --- a/code/game/objects/effects/spawners/random/random.dm +++ b/code/game/objects/effects/spawners/random/random.dm @@ -29,6 +29,8 @@ var/spawn_scatter_radius = 0 /// Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y) var/spawn_random_offset = FALSE + /// Whether items that cannot be spawned will be removed from the loot list. Keep it TRUE unless you've a good reason. + var/remove_if_cant_spawn = TRUE /obj/effect/spawner/random/Initialize(mapload) . = ..() @@ -53,7 +55,7 @@ loot += subtypesof(loot_subtype_path) if(CONFIG_GET(number/random_loot_weight_modifier) != 1) - skew_loot_weights(CONFIG_GET(number/random_loot_weight_modifier)) + skew_loot_weights(loot, CONFIG_GET(number/random_loot_weight_modifier)) if(loot?.len) var/loot_spawned = 0 @@ -61,7 +63,8 @@ while((spawn_loot_count-loot_spawned) && loot.len) var/lootspawn = pick_weight_recursive(loot) if(!can_spawn(lootspawn)) - loot.Remove(lootspawn) + if(remove_if_cant_spawn) + loot.Remove(lootspawn) continue if(!spawn_loot_double) loot.Remove(lootspawn) @@ -100,7 +103,7 @@ var/loot_weight = loot_list[loot_type] if(loot_weight <= 1) if(exponent < 1) - loot_list[loot_type] *= precision + loot_list[loot_type] = precision continue loot_list[loot_type] = round(loot_weight ** exponent * precision, 1) diff --git a/code/game/objects/effects/spawners/random/structure.dm b/code/game/objects/effects/spawners/random/structure.dm index 359c147eb4fb5..289a2aba27600 100644 --- a/code/game/objects/effects/spawners/random/structure.dm +++ b/code/game/objects/effects/spawners/random/structure.dm @@ -23,6 +23,7 @@ /obj/effect/spawner/random/trash/mess = 30, /obj/item/kirbyplants/fern = 20, /obj/structure/closet/crate/decorations = 15, + /obj/effect/decal/remains/human/smokey/maintenance = 7, /obj/structure/destructible/cult/pants_altar = 1, ) diff --git a/code/game/objects/effects/spawners/random/trash.dm b/code/game/objects/effects/spawners/random/trash.dm index dfac8e4c0c814..6f6f5badc8e7e 100644 --- a/code/game/objects/effects/spawners/random/trash.dm +++ b/code/game/objects/effects/spawners/random/trash.dm @@ -89,7 +89,6 @@ /obj/item/trash/cnds = 1, /obj/item/trash/syndi_cakes = 1, /obj/item/trash/shrimp_chips = 1, - /obj/item/trash/waffles = 1, /obj/item/trash/tray = 1, ) @@ -325,3 +324,18 @@ if(istype(crushed_can)) crushed_can.icon_state = pick(soda_icons) return crushed_can + +/obj/effect/spawner/random/trash/ghetto_containers + name = "ghetto container spawner" + loot = list( + /obj/item/reagent_containers/cup/bucket = 5, + /obj/item/reagent_containers/cup/glass/bottle = 5, + /obj/item/reagent_containers/cup/glass/bottle/small = 5, + /obj/item/reagent_containers/cup/glass/mug = 5, + /obj/item/reagent_containers/cup/glass/shaker = 5, + /obj/item/reagent_containers/cup/watering_can/wood = 5, + /obj/item/reagent_containers/cup/mortar = 2, + /obj/item/reagent_containers/cup/soup_pot = 2, + /obj/item/reagent_containers/cup/blastoff_ampoule = 1, + /obj/item/reagent_containers/cup/maunamug = 1, + ) diff --git a/code/game/objects/effects/spiderwebs.dm b/code/game/objects/effects/spiderwebs.dm index 2d0f1b9b14de2..49765c059865b 100644 --- a/code/game/objects/effects/spiderwebs.dm +++ b/code/game/objects/effects/spiderwebs.dm @@ -14,7 +14,7 @@ /obj/structure/spider/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) if(damage_type == BURN)//the stickiness of the web mutes all attack sounds except fire damage type - playsound(loc, 'sound/items/welder.ogg', 100, TRUE) + playsound(loc, 'sound/items/tools/welder.ogg', 100, TRUE) /obj/structure/spider/run_atom_armor(damage_amount, damage_type, damage_flag = 0, attack_dir) if(damage_flag == MELEE) diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 1467a7854be52..68a49b8a3031b 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -220,3 +220,9 @@ if(happens_once) qdel(src) + +/obj/effect/step_trigger/sound_effect/lavaland_cult_altar + happens_once = 1 + name = "a grave mistake"; + sound = 'sound/effects/hallucinations/i_see_you1.ogg' + triggerer_only = 1 diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 9cb926fd19756..033f83edfc739 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -402,7 +402,12 @@ duration = 6 /obj/effect/temp_visual/impact_effect/neurotoxin - icon_state = "impact_neurotoxin" + icon_state = "impact_spit" + color = "#5BDD04" + +/obj/effect/temp_visual/impact_effect/ink_spit + icon_state = "impact_spit" + color = COLOR_NEARLY_ALL_BLACK /obj/effect/temp_visual/heart name = "heart" @@ -441,7 +446,7 @@ if(size_calc_target) layer = size_calc_target.layer + 0.01 var/icon/I = icon(size_calc_target.icon, size_calc_target.icon_state, size_calc_target.dir) - size_matrix = matrix() * (I.Height()/world.icon_size) + size_matrix = matrix() * (I.Height()/ICON_SIZE_Y) transform = size_matrix //scale the bleed overlay's size based on the target's icon size var/matrix/M = transform if(shrink) @@ -563,7 +568,7 @@ /obj/effect/constructing_effect/proc/attacked(mob/user) user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) user.changeNext_move(CLICK_CD_MELEE) - playsound(loc, 'sound/weapons/egloves.ogg', vol = 80, vary = TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', vol = 80, vary = TRUE) end() /obj/effect/constructing_effect/attackby(obj/item/weapon, mob/user, params) diff --git a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm index 14b7f43a82280..8c4ea163232e1 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -5,7 +5,7 @@ var/obj/effect/projectile/tracer/PB = new beam_type if(isnull(light_color_override)) light_color_override = color - PB.apply_vars(angle_between_points(starting, ending), midpoint.return_px(), midpoint.return_py(), color, pixel_length_between_points(starting, ending) / world.icon_size, midpoint.return_turf(), 0) + PB.apply_vars(angle_between_points(starting, ending), midpoint.return_px(), midpoint.return_py(), color, pixel_length_between_points(starting, ending) / ICON_SIZE_ALL, midpoint.return_turf(), 0) . = PB if(light_range > 0 && light_intensity > 0) var/list/turf/line = get_line(starting.return_turf(), ending.return_turf()) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 766df3635b56f..d957cfe54310e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -39,6 +39,12 @@ ///The config type to use for greyscaled belt overlays. Both this and greyscale_colors must be assigned to work. var/greyscale_config_belt + /// Greyscale config used when generating digitigrade versions of the sprite. + var/digitigrade_greyscale_config_worn + /// Greyscale colors used when generating digitigrade versions of the sprite. + /// Optional - If not set it will default to normal greyscale colors, or approximate them if those are unset as well + var/digitigrade_greyscale_colors + /* !!!!!!!!!!!!!!! IMPORTANT !!!!!!!!!!!!!! IF YOU ADD MORE ICON CRAP TO THIS @@ -77,8 +83,12 @@ var/equip_sound ///Sound uses when picking the item up (into your hands) var/pickup_sound - ///Sound uses when dropping the item, or when its thrown. + ///Sound uses when dropping the item, or when its thrown if a thrown sound isn't specified. var/drop_sound + ///Sound used on impact when the item is thrown. + var/throw_drop_sound + ///Do the drop and pickup sounds vary? + var/sound_vary = FALSE ///Whether or not we use stealthy audio levels for this item's attack sounds var/stealthy_audio = FALSE ///Sound which is produced when blocking an attack @@ -132,7 +142,7 @@ var/slowdown = 0 ///percentage of armour effectiveness to remove var/armour_penetration = 0 - ///Whether or not our object is easily hindered by the presence of armor + ///Whether or not our object doubles the value of affecting armour var/weak_against_armour = FALSE /// The click cooldown given after attacking. Lower numbers means faster attacks var/attack_speed = CLICK_CD_MELEE @@ -258,7 +268,7 @@ if(!hitsound) if(damtype == BURN) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' if(damtype == BRUTE) hitsound = SFX_SWING_HIT @@ -429,27 +439,36 @@ abstract_move(null) forceMove(T) -/obj/item/examine(mob/user) //This might be spammy. Remove? - . = ..() - - . += "[gender == PLURAL ? "They are" : "It is"] a [weight_class_to_text(w_class)] item." +/obj/item/examine_tags(mob/user) + var/list/parent_tags = ..() + parent_tags.Insert(1, weight_class_to_text(w_class)) // To make size display first, otherwise it looks goofy + . = parent_tags + .[weight_class_to_text(w_class)] = "[gender == PLURAL ? "They are" : "It is"] a [weight_class_to_text(w_class)] item." if(item_flags & CRUEL_IMPLEMENT) - . += "[src] seems quite practical for particularly morbid procedures and experiments." + .[span_red("morbid")] = "It seems quite practical for particularly morbid procedures and experiments." + + if (siemens_coefficient == 0) + .["insulated"] = "It is made from a robust electrical insulator and will block any electricity passing through it!" + else if (siemens_coefficient <= 0.5) + .["partially insulated"] = "It is made from a poor insulator that will dampen (but not fully block) electric shocks passing through it." if(resistance_flags & INDESTRUCTIBLE) - . += "[src] seems extremely robust! It'll probably withstand anything that could happen to it!" - else - if(resistance_flags & LAVA_PROOF) - . += "[src] is made of an extremely heat-resistant material, it'd probably be able to withstand lava!" - if(resistance_flags & (ACID_PROOF | UNACIDABLE)) - . += "[src] looks pretty robust! It'd probably be able to withstand acid!" - if(resistance_flags & FREEZE_PROOF) - . += "[src] is made of cold-resistant materials." - if(resistance_flags & FIRE_PROOF) - . += "[src] is made of fire-retardant materials." + .["indestructible"] = "It is extremely robust! It'll probably withstand anything that could happen to it!" return + if(resistance_flags & LAVA_PROOF) + .["lavaproof"] = "It is made of an extremely heat-resistant material, it'd probably be able to withstand lava!" + if(resistance_flags & (ACID_PROOF | UNACIDABLE)) + .["acidproof"] = "It looks pretty robust! It'd probably be able to withstand acid!" + if(resistance_flags & FREEZE_PROOF) + .["freezeproof"] = "It is made of cold-resistant materials." + if(resistance_flags & FIRE_PROOF) + .["fireproof"] = "It is made of fire-retardant materials." + +/obj/item/examine_descriptor(mob/user) + return "item" + /obj/item/examine_more(mob/user) . = ..() if(HAS_TRAIT(user, TRAIT_RESEARCH_SCANNER)) @@ -616,7 +635,7 @@ /obj/item/attack_alien(mob/user, list/modifiers) var/mob/living/carbon/alien/ayy = user - if(!user.can_hold_items(src)) + if(!ayy.can_hold_items(src)) if(src in ayy.contents) // To stop Aliens having items stuck in their pockets ayy.dropItemToGround(src) to_chat(user, span_warning("Your claws aren't capable of such fine manipulation!")) @@ -677,7 +696,7 @@ item_flags &= ~IN_INVENTORY SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) if(!silent) - playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE) + playsound(src, drop_sound, DROP_SOUND_VOLUME, vary = sound_vary, ignore_walls = FALSE) user?.update_equipment_speed_mods() /// called just as an item is picked up (loc is not yet changed) @@ -703,7 +722,7 @@ /obj/item/proc/on_equipped(mob/user, slot, initial = FALSE) SHOULD_NOT_OVERRIDE(TRUE) equipped(user, slot, initial) - if(SEND_SIGNAL(src, COMSIG_ITEM_POST_EQUIPPED, user, slot) && COMPONENT_EQUIPPED_FAILED) + if(SEND_SIGNAL(src, COMSIG_ITEM_POST_EQUIPPED, user, slot) & COMPONENT_EQUIPPED_FAILED) return FALSE return TRUE @@ -786,7 +805,7 @@ set category = "Object" set name = "Pick up" - if(usr.incapacitated() || !Adjacent(usr)) + if(usr.incapacitated || !Adjacent(usr)) return if(isliving(usr)) @@ -823,36 +842,33 @@ . = ..() do_drop_animation(master_storage.parent) +/obj/item/pre_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + var/impact_flags = ..() + if(w_class < WEIGHT_CLASS_BULKY) + impact_flags |= COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH + if(!(impact_flags & COMPONENT_MOVABLE_IMPACT_NEVERMIND) && get_temperature() && isliving(hit_atom)) + var/mob/living/victim = hit_atom + victim.ignite_mob() + return impact_flags + /obj/item/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) - if(QDELETED(hit_atom)) - return - if(SEND_SIGNAL(src, COMSIG_MOVABLE_PRE_IMPACT, hit_atom, throwingdatum) & COMPONENT_MOVABLE_IMPACT_NEVERMIND) - return - if(SEND_SIGNAL(hit_atom, COMSIG_ATOM_PREHITBY, src, throwingdatum) & COMSIG_HIT_PREVENTED) + . = ..() + if(!isliving(hit_atom)) //Living mobs handle hit sounds differently. + if(throw_drop_sound) + playsound(src, throw_drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE, vary = sound_vary) + return + playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE, vary = sound_vary) return - - SEND_SIGNAL(src, COMSIG_MOVABLE_IMPACT, hit_atom, throwingdatum) - if(get_temperature() && isliving(hit_atom)) - var/mob/living/L = hit_atom - L.ignite_mob() - var/itempush = 1 - if(w_class < WEIGHT_CLASS_BULKY) - itempush = 0 //too light to push anything - if(isliving(hit_atom)) //Living mobs handle hit sounds differently. - var/volume = get_volume_by_throwforce_and_or_w_class() - if (throwforce > 0 || HAS_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND)) - if (mob_throw_hit_sound) - playsound(hit_atom, mob_throw_hit_sound, volume, TRUE, -1) - else if(hitsound) - playsound(hit_atom, hitsound, volume, TRUE, -1) - else - playsound(hit_atom, 'sound/weapons/genhit.ogg',volume, TRUE, -1) + var/volume = get_volume_by_throwforce_and_or_w_class() + if (throwforce > 0 || HAS_TRAIT(src, TRAIT_CUSTOM_TAP_SOUND)) + if (mob_throw_hit_sound) + playsound(hit_atom, mob_throw_hit_sound, volume, TRUE, -1) + else if(hitsound) + playsound(hit_atom, hitsound, volume, TRUE, -1) else - playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1) - + playsound(hit_atom, 'sound/items/weapons/genhit.ogg',volume, TRUE, -1) else - playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE) - return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum) + playsound(hit_atom, 'sound/items/weapons/throwtap.ogg', 1, volume, -1) /obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE) if(HAS_TRAIT(src, TRAIT_NODROP)) @@ -1073,7 +1089,7 @@ var/timedelay = usr.client.prefs.read_preference(/datum/preference/numeric/tooltip_delay) / 100 tip_timer = addtimer(CALLBACK(src, PROC_REF(openTip), location, control, params, usr), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. if(usr.client.prefs.read_preference(/datum/preference/toggle/item_outlines)) - if(istype(L) && L.incapacitated()) + if(istype(L) && L.incapacitated) apply_outline(COLOR_RED_GRAY) //if they're dead or handcuffed, let's show the outline as red to indicate that they can't interact with that right now else apply_outline() //if the player's alive and well we send the command with no color set, so it uses the theme's color @@ -1165,13 +1181,13 @@ return TRUE /// Called before [obj/item/proc/use_tool] if there is a delay, or by [obj/item/proc/use_tool] if there isn't. Only ever used by welding tools and stacks, so it's not added on any other [obj/item/proc/use_tool] checks. -/obj/item/proc/tool_start_check(mob/living/user, amount=0) - . = tool_use_check(user, amount) +/obj/item/proc/tool_start_check(mob/living/user, amount=0, heat_required=0) + . = tool_use_check(user, amount, heat_required) if(.) SEND_SIGNAL(src, COMSIG_TOOL_START_USE, user) /// A check called by [/obj/item/proc/tool_start_check] once, and by use_tool on every tick of delay. -/obj/item/proc/tool_use_check(mob/living/user, amount) +/obj/item/proc/tool_use_check(mob/living/user, amount, heat_required) return !amount /// Generic use proc. Depending on the item, it uses up fuel, charges, sheets, etc. Returns TRUE on success, FALSE on failure. @@ -1266,7 +1282,7 @@ if((item_flags & ABSTRACT) || HAS_TRAIT(src, TRAIT_NODROP)) return user.dropItemToGround(src, silent = TRUE) - if(throwforce && HAS_TRAIT(user, TRAIT_PACIFISM)) + if(throwforce && (HAS_TRAIT(user, TRAIT_PACIFISM)) || HAS_TRAIT(user, TRAIT_NO_THROWING)) to_chat(user, span_notice("You set [src] down gently on the ground.")) return return src @@ -1310,7 +1326,7 @@ * Then, it checks tiny items. * After all that, it returns TRUE if the item is set to be discovered. Otherwise, it returns FALSE. * - * This works similarily to /suicide_act: if you want an item to have a unique interaction, go to that item + * This works similarly to /suicide_act: if you want an item to have a unique interaction, go to that item * and give it an /on_accidental_consumption proc override. For a simple example of this, check out the nuke disk. * * Arguments @@ -1335,7 +1351,7 @@ return source_item?.reagents?.add_reagent(/datum/reagent/blood, 2) - else if(custom_materials?.len) //if we've got materials, lets see whats in it + else if(custom_materials?.len) //if we've got materials, let's see what's in it // How many mats have we found? You can only be affected by two material datums by default var/found_mats = 0 // How much of each material is in it? Used to determine if the glass should break @@ -1454,8 +1470,8 @@ pickup_animation.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA var/direction = get_dir(source, target) - var/to_x = target.base_pixel_x - var/to_y = target.base_pixel_y + var/to_x = target.base_pixel_x + target.base_pixel_w + var/to_y = target.base_pixel_y + target.base_pixel_z if(direction & NORTH) to_y += 32 @@ -1716,19 +1732,85 @@ SEND_SIGNAL(loc, COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED, src, old_w_class, new_w_class) return TRUE +/** + * Used to determine if an item should be considered contraband by N-spect scanners or scanner gates. + * Returns true when an item has the contraband trait, or is included in the traitor uplink. + */ +/obj/item/proc/is_contraband() + if(HAS_TRAIT(src, TRAIT_CONTRABAND)) + return TRUE + for(var/datum/uplink_item/traitor_item as anything in SStraitor.uplink_items) + if(istype(src, traitor_item.item)) + if(!(traitor_item.uplink_item_flags & SYNDIE_TRIPS_CONTRABAND)) + return FALSE + return TRUE + return FALSE + /// Fetches embedding data /obj/item/proc/get_embed() RETURN_TYPE(/datum/embed_data) - return embed_type ? (embed_data ||= get_embed_by_type(embed_type)) : null + return embed_type ? (embed_data ||= get_embed_by_type(embed_type)) : embed_data /obj/item/proc/set_embed(datum/embed_data/embed) if(embed_data == embed) return + if(isnull(get_embed())) // Add embed on objects that did not have it added + AddElement(/datum/element/embed) if(!GLOB.embed_by_type[embed_data?.type]) qdel(embed_data) - embed_data = ispath(embed) ? get_embed_by_type(armor) : embed + embed_data = ispath(embed) ? get_embed_by_type(embed) : embed SEND_SIGNAL(src, COMSIG_ITEM_EMBEDDING_UPDATE) +/obj/item/apply_main_material_effects(datum/material/main_material, amount, multipier) + . = ..() + if(material_flags & MATERIAL_GREYSCALE) + var/main_mat_type = main_material.type + var/worn_path = get_material_greyscale_config(main_mat_type, greyscale_config_worn) + var/lefthand_path = get_material_greyscale_config(main_mat_type, greyscale_config_inhand_left) + var/righthand_path = get_material_greyscale_config(main_mat_type, greyscale_config_inhand_right) + set_greyscale( + new_worn_config = worn_path, + new_inhand_left = lefthand_path, + new_inhand_right = righthand_path + ) + if(!main_material.item_sound_override) + return + hitsound = main_material.item_sound_override + usesound = main_material.item_sound_override + mob_throw_hit_sound = main_material.item_sound_override + equip_sound = main_material.item_sound_override + pickup_sound = main_material.item_sound_override + drop_sound = main_material.item_sound_override + +/obj/item/remove_main_material_effects(datum/material/main_material, amount, multipier) + . = ..() + if(material_flags & MATERIAL_GREYSCALE) + set_greyscale( + new_worn_config = initial(greyscale_config_worn), + new_inhand_left = initial(greyscale_config_inhand_left), + new_inhand_right = initial(greyscale_config_inhand_right) + ) + if(!main_material.item_sound_override) + return + hitsound = initial(hitsound) + usesound = initial(usesound) + mob_throw_hit_sound = initial(mob_throw_hit_sound) + equip_sound = initial(equip_sound) + pickup_sound = initial(pickup_sound) + drop_sound = initial(drop_sound) + +/obj/item/apply_single_mat_effect(datum/material/material, mat_amount, multiplier) + . = ..() + if(!(material_flags & MATERIAL_AFFECT_STATISTICS) || !slowdown) + return + slowdown += GET_MATERIAL_MODIFIER(material.added_slowdown * mat_amount, multiplier) + +/obj/item/remove_single_mat_effect(datum/material/material, mat_amount, multiplier) + . = ..() + if(!(material_flags & MATERIAL_AFFECT_STATISTICS) || !slowdown) + return + slowdown -= GET_MATERIAL_MODIFIER(material.added_slowdown * mat_amount, multiplier) + /** * Returns the atom(either itself or an internal module) that will interact/attack the target on behalf of us * For example an object can have different `tool_behaviours` (e.g borg omni tool) but will return an internal reference of that tool to attack for us @@ -1741,3 +1823,48 @@ RETURN_TYPE(/obj/item) return src + +/// Checks if the bait is liked by the fish type or not. Returns a multiplier that affects the chance of catching it. +/obj/item/proc/check_bait(obj/item/fish/fish_type) + if(HAS_TRAIT(src, TRAIT_OMNI_BAIT)) + return 1 + var/catch_multiplier = 1 + var/list/properties = SSfishing.fish_properties[fish_type] + //Bait matching likes doubles the chance + var/list/fav_bait = properties[FISH_PROPERTIES_FAV_BAIT] + for(var/bait_identifer in fav_bait) + if(is_matching_bait(src, bait_identifer)) + catch_multiplier *= 2 + //Bait matching dislikes + var/list/disliked_bait = properties[FISH_PROPERTIES_BAD_BAIT] + for(var/bait_identifer in disliked_bait) + if(is_matching_bait(src, bait_identifer)) + catch_multiplier *= 0.5 + return catch_multiplier + +/// Helper proc that checks if a bait matches identifier from fav/disliked bait list +/proc/is_matching_bait(obj/item/bait, identifier) + if(ispath(identifier)) //Just a path + return istype(bait, identifier) + if(!islist(identifier)) + return HAS_TRAIT(bait, identifier) + var/list/special_identifier = identifier + switch(special_identifier[FISH_BAIT_TYPE]) + if(FISH_BAIT_FOODTYPE) + var/datum/component/edible/edible = bait.GetComponent(/datum/component/edible) + return edible?.foodtypes & special_identifier[FISH_BAIT_VALUE] + if(FISH_BAIT_REAGENT) + return bait.reagents?.has_reagent(special_identifier[FISH_BAIT_VALUE], special_identifier[FISH_BAIT_AMOUNT], check_subtypes = TRUE) + else + CRASH("Unknown bait identifier in fish favourite/disliked list") + +/obj/item/vv_get_header() + . = ..() + . += {" +
+ DAMTYPE: [uppertext(damtype)] + FORCE: [force] + WOUND: [wound_bonus] + BARE WOUND: [bare_wound_bonus] + + "} diff --git a/code/game/objects/items/AI_modules/freeform.dm b/code/game/objects/items/AI_modules/freeform.dm index a0a91f7185e5a..05ef00c946772 100644 --- a/code/game/objects/items/AI_modules/freeform.dm +++ b/code/game/objects/items/AI_modules/freeform.dm @@ -8,7 +8,7 @@ laws = list("") /obj/item/ai_module/core/freeformcore/attack_self(mob/user) - var/targName = tgui_input_text(user, "Enter a new core law for the AI.", "Freeform Law Entry", laws[1], CONFIG_GET(number/max_law_len), TRUE) + var/targName = tgui_input_text(user, "Enter a new core law for the AI.", "Freeform Law Entry", laws[1], max_length = CONFIG_GET(number/max_law_len), multiline = TRUE) if(!targName || !user.is_holding(src)) return if(is_ic_filtered(targName)) @@ -37,7 +37,7 @@ if(!newpos || !user.is_holding(src) || !usr.can_perform_action(src, FORBID_TELEKINESIS_REACH)) return lawpos = newpos - var/targName = tgui_input_text(user, "Enter a new law for the AI.", "Freeform Law Entry", laws[1], CONFIG_GET(number/max_law_len), TRUE) + var/targName = tgui_input_text(user, "Enter a new law for the AI.", "Freeform Law Entry", laws[1], max_length = CONFIG_GET(number/max_law_len), multiline = TRUE) if(!targName || !user.is_holding(src)) return if(is_ic_filtered(targName)) diff --git a/code/game/objects/items/AI_modules/full_lawsets.dm b/code/game/objects/items/AI_modules/full_lawsets.dm index 30e904d45ac84..593bc43f2dcea 100644 --- a/code/game/objects/items/AI_modules/full_lawsets.dm +++ b/code/game/objects/items/AI_modules/full_lawsets.dm @@ -58,7 +58,7 @@ var/subject = "human being" /obj/item/ai_module/core/full/asimov/attack_self(mob/user as mob) - var/targName = tgui_input_text(user, "Enter a new subject that Asimov is concerned with.", "Asimov", subject, MAX_NAME_LEN) + var/targName = tgui_input_text(user, "Enter a new subject that Asimov is concerned with.", "Asimov", subject, max_length = MAX_NAME_LEN) if(!targName || !user.is_holding(src)) return subject = targName @@ -73,7 +73,7 @@ var/subject = "human being" /obj/item/ai_module/core/full/asimovpp/attack_self(mob/user) - var/target_name = tgui_input_text(user, "Enter a new subject that Asimov++ is concerned with.", "Asimov++", subject, MAX_NAME_LEN) + var/target_name = tgui_input_text(user, "Enter a new subject that Asimov++ is concerned with.", "Asimov++", subject, max_length = MAX_NAME_LEN) if(!target_name || !user.is_holding(src)) return laws.Cut() diff --git a/code/game/objects/items/AI_modules/hacked.dm b/code/game/objects/items/AI_modules/hacked.dm index 81100d0ed157b..41a1f38ba891d 100644 --- a/code/game/objects/items/AI_modules/hacked.dm +++ b/code/game/objects/items/AI_modules/hacked.dm @@ -4,7 +4,7 @@ laws = list("") /obj/item/ai_module/syndicate/attack_self(mob/user) - var/targName = tgui_input_text(user, "Enter a new law for the AI", "Freeform Law Entry", laws[1], CONFIG_GET(number/max_law_len), TRUE) + var/targName = tgui_input_text(user, "Enter a new law for the AI", "Freeform Law Entry", laws[1], max_length = CONFIG_GET(number/max_law_len), multiline = TRUE) if(!targName || !user.is_holding(src)) return if(is_ic_filtered(targName)) // not even the syndicate can uwu @@ -55,7 +55,7 @@ to_chat(sender, span_warning("You should use [src] on an AI upload console or the AI core itself.")) return if(malf_candidate.mind?.has_antag_datum(/datum/antagonist/malf_ai)) //Already malf - to_chat(sender, span_warning("Unknown error occured. Upload process aborted.")) + to_chat(sender, span_warning("Unknown error occurred. Upload process aborted.")) return var/datum/antagonist/malf_ai/infected/malf_datum = new (give_objectives = TRUE, new_boss = sender.mind) diff --git a/code/game/objects/items/AI_modules/supplied.dm b/code/game/objects/items/AI_modules/supplied.dm index b53e16a86b0c8..76f4715730620 100644 --- a/code/game/objects/items/AI_modules/supplied.dm +++ b/code/game/objects/items/AI_modules/supplied.dm @@ -27,7 +27,7 @@ lawpos = 4 /obj/item/ai_module/supplied/safeguard/attack_self(mob/user) - var/targName = tgui_input_text(user, "Subject to safeguard.", "Safeguard", user.name, MAX_NAME_LEN) + var/targName = tgui_input_text(user, "Subject to safeguard.", "Safeguard", user.name, max_length = MAX_NAME_LEN) if(!targName || !user.is_holding(src)) return targetName = targName diff --git a/code/game/objects/items/AI_modules/zeroth.dm b/code/game/objects/items/AI_modules/zeroth.dm index 74fc7ab8232ae..480735bfe2fe7 100644 --- a/code/game/objects/items/AI_modules/zeroth.dm +++ b/code/game/objects/items/AI_modules/zeroth.dm @@ -25,7 +25,7 @@ laws = list("Only SUBJECT is human.") /obj/item/ai_module/zeroth/onehuman/attack_self(mob/user) - var/targName = tgui_input_text(user, "Enter the subject who is the only human.", "One Human", user.real_name, MAX_NAME_LEN) + var/targName = tgui_input_text(user, "Enter the subject who is the only human.", "One Human", user.real_name, max_length = MAX_NAME_LEN) if(!targName || !user.is_holding(src)) return targetName = targName diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index 3365a24650a5b..3124ba9c39196 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -229,7 +229,7 @@ * Actually add current decal to the floor. * * Responsible for actually adding the element to the turf for maximum flexibility.area - * Can be overriden for different decal behaviors. + * Can be overridden for different decal behaviors. * Arguments: * * target - The turf being painted to */ @@ -298,7 +298,7 @@ .["current_dir"] = stored_dir .["current_custom_color"] = stored_custom_color -/obj/item/airlock_painter/decal/ui_act(action, list/params) +/obj/item/airlock_painter/decal/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/objects/items/bear_armor.dm b/code/game/objects/items/bear_armor.dm index 8cfad42be15a6..140a3d295f11b 100644 --- a/code/game/objects/items/bear_armor.dm +++ b/code/game/objects/items/bear_armor.dm @@ -1,7 +1,7 @@ /obj/item/bear_armor name = "pile of bear armor" desc = "A scattered pile of various shaped armor pieces fitted for a bear, some duct tape, and a nail filer. Crude instructions \ - are written on the back of one of the plates in russian. This seems like an awful idea." + are written on the back of one of the plates in Russian. This seems like an awful idea." icon = 'icons/obj/tools.dmi' icon_state = "bear_armor_upgrade" diff --git a/code/game/objects/items/body_egg.dm b/code/game/objects/items/body_egg.dm index d244d8c55cc16..d8b48e0789b21 100644 --- a/code/game/objects/items/body_egg.dm +++ b/code/game/objects/items/body_egg.dm @@ -15,15 +15,14 @@ if(iscarbon(loc)) Insert(loc) -/obj/item/organ/internal/body_egg/Insert(mob/living/carbon/egg_owner, special = FALSE, movement_flags = DELETE_IF_REPLACED) +/obj/item/organ/internal/body_egg/mob_insert(mob/living/carbon/egg_owner, special = FALSE, movement_flags = DELETE_IF_REPLACED) . = ..() - if(!.) - return + egg_owner.add_traits(list(TRAIT_XENO_HOST, TRAIT_XENO_IMMUNE), ORGAN_TRAIT) egg_owner.med_hud_set_status() INVOKE_ASYNC(src, PROC_REF(AddInfectionImages), egg_owner) -/obj/item/organ/internal/body_egg/Remove(mob/living/carbon/egg_owner, special, movement_flags) +/obj/item/organ/internal/body_egg/mob_remove(mob/living/carbon/egg_owner, special, movement_flags) . = ..() egg_owner.remove_traits(list(TRAIT_XENO_HOST, TRAIT_XENO_IMMUNE), ORGAN_TRAIT) egg_owner.med_hud_set_status() diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index c949f977508f1..4c83923355261 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -46,7 +46,7 @@ R.add_fingerprint(user) qdel(src) user.forceMove(R) - playsound(src, 'sound/items/zip.ogg', 15, TRUE, -3) + playsound(src, 'sound/items/zip/zip.ogg', 15, TRUE, -3) return OXYLOSS // Bluespace bodybag @@ -86,7 +86,7 @@ return item_bag /obj/item/bodybag/bluespace/container_resist_act(mob/living/user) - if(user.incapacitated()) + if(user.incapacitated) to_chat(user, span_warning("You can't get out while you're restrained like this!")) return user.changeNext_move(CLICK_CD_BREAKOUT) @@ -97,7 +97,7 @@ return // you are still in the bag? time to go unless you KO'd, honey! // if they escape during this time and you rebag them the timer is still clocking down and does NOT reset so they can very easily get out. - if(user.incapacitated()) + if(user.incapacitated) to_chat(loc, span_warning("The pressure subsides. It seems that they've stopped resisting...")) return loc.visible_message(span_warning("[user] suddenly appears in front of [loc]!"), span_userdanger("[user] breaks free of [src]!")) diff --git a/code/game/objects/items/boxcutter.dm b/code/game/objects/items/boxcutter.dm index 467bc666e6027..58be269bacddf 100644 --- a/code/game/objects/items/boxcutter.dm +++ b/code/game/objects/items/boxcutter.dm @@ -38,7 +38,7 @@ throwforce_on = 4, \ throw_speed_on = throw_speed, \ sharpness_on = SHARP_EDGED, \ - hitsound_on = 'sound/weapons/bladeslice.ogg', \ + hitsound_on = 'sound/items/weapons/bladeslice.ogg', \ w_class_on = WEIGHT_CLASS_NORMAL, \ attack_verb_continuous_on = list("cuts", "stabs", "slashes"), \ attack_verb_simple_on = list("cut", "stab", "slash"), \ diff --git a/code/game/objects/items/broom.dm b/code/game/objects/items/broom.dm index fa849c51437da..32636b1a99c81 100644 --- a/code/game/objects/items/broom.dm +++ b/code/game/objects/items/broom.dm @@ -102,7 +102,7 @@ for (var/obj/item/garbage in items_to_sweep) garbage.Move(new_item_loc, sweep_dir) - playsound(current_item_loc, 'sound/weapons/thudswoosh.ogg', 30, TRUE, -1) + playsound(current_item_loc, 'sound/items/weapons/thudswoosh.ogg', 30, TRUE, -1) /obj/item/pushbroom/cyborg name = "cyborg push broom" diff --git a/code/game/objects/items/busts_and_figurines.dm b/code/game/objects/items/busts_and_figurines.dm index afc4a58334e90..53af3228ffd36 100644 --- a/code/game/objects/items/busts_and_figurines.dm +++ b/code/game/objects/items/busts_and_figurines.dm @@ -50,16 +50,12 @@ ..() if(!(slot & ITEM_SLOT_HANDS)) return - var/datum/atom_hud/our_hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] - our_hud.show_to(user) ADD_TRAIT(user, TRAIT_MEDICAL_HUD, type) /obj/item/statuebust/hippocratic/dropped(mob/living/carbon/human/user) ..() if(HAS_TRAIT_NOT_FROM(user, TRAIT_MEDICAL_HUD, type)) return - var/datum/atom_hud/our_hud = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] - our_hud.hide_from(user) REMOVE_TRAIT(user, TRAIT_MEDICAL_HUD, type) /obj/item/statuebust/hippocratic/attack_self(mob/user) diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index d4508710a8547..e46bb676a8caf 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -49,7 +49,7 @@ if(!user.combat_mode || pushed_over || !isturf(loc)) return ..() user.visible_message(span_warning("[user] pushes over [src]!"), span_danger("You push over [src]!")) - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + playsound(src, 'sound/items/weapons/genhit.ogg', 50, TRUE) push_over() /obj/item/cardboard_cutout/equipped(mob/living/user, slot) @@ -149,7 +149,7 @@ /obj/item/cardboard_cutout/proc/check_menu(mob/living/user, obj/item/toy/crayon/crayon) if(!istype(user)) return FALSE - if(user.incapacitated()) + if(user.incapacitated) return FALSE if(pushed_over) to_chat(user, span_warning("Right [src] first!")) @@ -360,3 +360,34 @@ applied_name = "Private Security Officer" applied_desc = "A cardboard cutout of a private security officer." mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasensoldier + +/datum/cardboard_cutout/heretic + name = "Heretic" + applied_name = "Unknown" + applied_desc = "A cardboard cutout of a Heretic." + outfit = /datum/outfit/heretic_hallucination + +/datum/cardboard_cutout/changeling + name = "Changeling" + applied_name = "Unknown" + applied_desc = "A cardboard cutout of a Changeling." + outfit = /datum/outfit/changeling + +/datum/cardboard_cutout/pirate + name = "Pirate" + applied_name = "Unknown" + applied_desc = "A cardboard cutout of a space pirate." + outfit = /datum/outfit/pirate/space/captain/cardboard + +/datum/cardboard_cutout/ninja + name = "Space Ninja" + applied_name = "Unknown" + applied_desc = "A cardboard cutout of a space ninja." + outfit = /datum/outfit/ninja + +/datum/cardboard_cutout/abductor + name = "Abductor Agent" + applied_name = "Unknown" + applied_desc = "A cardboard cutout of an abductor agent." + species = /datum/species/abductor + outfit = /datum/outfit/abductor/agent/cardboard diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 5dc826e8fd51e..ad9e517b11dd7 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -26,6 +26,9 @@ lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' w_class = WEIGHT_CLASS_TINY + pickup_sound = 'sound/items/handling/id_card/id_card_pickup1.ogg' + drop_sound = 'sound/items/handling/id_card/id_card_drop1.ogg' + sound_vary = TRUE /// Cached icon that has been built for this card. Intended to be displayed in chat. Cardboards IDs and actual IDs use it. var/icon/cached_flat_icon @@ -104,6 +107,11 @@ /// Boolean value. If TRUE, the [Intern] tag gets prepended to this ID card when the label is updated. var/is_intern = FALSE + ///If true, the wearer will have bigger arrow when pointing at things. Passed down by trims. + var/big_pointer = FALSE + ///If set, the arrow will have a different color. + var/pointer_color + /datum/armor/card_id fire = 100 acid = 100 @@ -120,7 +128,7 @@ /obj/item/card/id/Initialize(mapload) . = ..() - var/datum/bank_account/blank_bank_account = new("Unassigned", SSjob.GetJobType(/datum/job/unassigned), player_account = FALSE) + var/datum/bank_account/blank_bank_account = new("Unassigned", SSjob.get_job_type(/datum/job/unassigned), player_account = FALSE) registered_account = blank_bank_account registered_account.replaceable = TRUE @@ -144,12 +152,35 @@ QDEL_NULL(my_store) return ..() +/obj/item/card/id/equipped(mob/user, slot) + . = ..() + if(slot == ITEM_SLOT_ID) + RegisterSignal(user, COMSIG_MOVABLE_POINTED, PROC_REF(on_pointed)) + +/obj/item/card/id/proc/on_pointed(mob/living/user, atom/pointed, obj/effect/temp_visual/point/point) + SIGNAL_HANDLER + if((!big_pointer && !pointer_color) || HAS_TRAIT(user, TRAIT_UNKNOWN)) + return + if(point.icon_state != /obj/effect/temp_visual/point::icon_state) //it differs from the original icon_state already. + return + if(big_pointer) + point.icon_state = "arrow_large" + if(pointer_color) + point.icon_state = "[point.icon_state]_white" + point.color = pointer_color + var/mutable_appearance/highlight = mutable_appearance(point.icon, "[point.icon_state]_highlights", appearance_flags = RESET_COLOR) + point.add_overlay(highlight) + +/obj/item/card/id/dropped(mob/user) + UnregisterSignal(user, COMSIG_MOVABLE_POINTED) + return ..() + /obj/item/card/id/get_id_examine_strings(mob/user) . = ..() - . += list("[icon2html(get_cached_flat_icon(), user, extra_classes = "bigicon")]") + . += list("[icon2html(get_cached_flat_icon(), user, extra_classes = "hugeicon")]") -/obj/item/card/id/get_examine_string(mob/user, thats = FALSE) - return "[icon2html(get_cached_flat_icon(), user)] [thats? "That's ":""][get_examine_name(user)]" +/obj/item/card/id/get_examine_icon(mob/user) + return icon2html(get_cached_flat_icon(), user) /** * Helper proc, checks whether the ID card can hold any given set of wildcards. @@ -739,7 +770,7 @@ if(HAS_TRAIT(src, TRAIT_TASTEFULLY_THICK_ID_CARD) && (user.is_holding(src) || (user.CanReach(src) && user.put_in_hands(src, ignore_animation = FALSE)))) ADD_TRAIT(src, TRAIT_NODROP, "psycho") . += span_hypnophrase("Look at that subtle coloring... The tasteful thickness of it. Oh my God, it even has a watermark...") - var/sound/slowbeat = sound('sound/health/slowbeat.ogg', repeat = TRUE) + var/sound/slowbeat = sound('sound/effects/health/slowbeat.ogg', repeat = TRUE) user.playsound_local(get_turf(src), slowbeat, 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) if(isliving(user)) var/mob/living/living_user = user @@ -782,7 +813,7 @@ if(registered_account.replaceable) . += span_info("Alt-Right-Click the ID to change the linked bank account.") if(registered_account.civilian_bounty) - . += "There is an active civilian bounty." + . += span_info("There is an active civilian bounty.") . += span_info("[registered_account.bounty_text()]") . += span_info("Quantity: [registered_account.bounty_num()]") . += span_info("Reward: [registered_account.bounty_value()]") @@ -835,6 +866,11 @@ /obj/item/card/id/proc/get_trim_sechud_icon_state() return trim?.sechud_icon_state || SECHUD_UNKNOWN +/obj/item/card/id/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(iscash(interacting_with)) + return insert_money(interacting_with, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + return NONE + /obj/item/card/id/away name = "\proper a perfectly generic identification card" desc = "A perfectly generic identification card. Looks like it could use some flavor." @@ -954,6 +990,11 @@ return ..() +/obj/item/card/id/advanced/proc/after_input_check(mob/user) + if(QDELETED(user) || QDELETED(src) || !user.client || !user.can_perform_action(src, NEED_DEXTERITY|FORBID_TELEKINESIS_REACH)) + return FALSE + return TRUE + /obj/item/card/id/advanced/item_interaction(mob/living/user, obj/item/tool, list/modifiers) . = ..() if(.) @@ -1256,7 +1297,7 @@ . = ..() registered_account = new(player_account = FALSE) registered_account.account_id = ADMIN_ACCOUNT_ID // this is so bank_card_talk() can work. - registered_account.account_job = SSjob.GetJobType(/datum/job/admin) + registered_account.account_job = SSjob.get_job_type(/datum/job/admin) registered_account.account_balance += 999999 // MONEY! We add more money to the account every time we spawn because it's a debug item and infinite money whoopie /obj/item/card/id/advanced/debug/alt_click_can_use_id(mob/living/user) @@ -1409,6 +1450,44 @@ trim = /datum/id_trim/highlander wildcard_slots = WILDCARD_LIMIT_ADMIN +/// An ID that you can flip with attack_self_secondary, overriding the appearance of the ID (useful for plainclothes detectives for example). +/obj/item/card/id/advanced/plainclothes + name = "Plainclothes ID" + ///The trim that we use as plainclothes identity + var/alt_trim = /datum/id_trim/job/assistant + +/obj/item/card/id/advanced/plainclothes/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + context[SCREENTIP_CONTEXT_LMB] = "Show/Flip ID" + +/obj/item/card/id/advanced/plainclothes/examine(mob/user) + . = ..() + if(trim_assignment_override) + . += span_smallnotice("it's currently under plainclothes identity.") + else + . += span_smallnotice("flip it to switch to the plainclothes identity.") + +/obj/item/card/id/advanced/plainclothes/attack_self(mob/user) + var/popup_input = tgui_input_list(user, "Choose Action", "Two-Sided ID", list("Show", "Flip")) + if(!popup_input || !after_input_check(user)) + return TRUE + if(popup_input == "Show") + return ..() + balloon_alert(user, "flipped") + if(trim_assignment_override) + SSid_access.remove_trim_from_chameleon_card(src) + else + SSid_access.apply_trim_to_chameleon_card(src, alt_trim) + update_label() + update_appearance() + +/obj/item/card/id/advanced/plainclothes/update_label() + if(!trim_assignment_override) + return ..() + var/name_string = registered_name ? "[registered_name]'s ID Card" : initial(name) + var/datum/id_trim/fake = SSid_access.trim_singletons_by_path[alt_trim] + name = "[name_string] ([fake.assignment])" + /obj/item/card/id/advanced/chameleon name = "agent card" desc = "A highly advanced chameleon ID card. Touch this card on another ID card or player to choose which accesses to copy. \ @@ -1437,7 +1516,7 @@ theft_target = WEAKREF(interacting_with) ui_interact(user) return ITEM_INTERACT_SUCCESS - return NONE + return ..() /obj/item/card/id/advanced/chameleon/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) // If we're attacking a human, we want it to be covert. We're not ATTACKING them, we're trying @@ -1549,7 +1628,7 @@ return data -/obj/item/card/id/advanced/chameleon/ui_act(action, list/params) +/obj/item/card/id/advanced/chameleon/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -1623,8 +1702,9 @@ to_chat(user, span_notice("You successfully reset the ID card.")) return - ///forge the ID if not forged. - var/input_name = tgui_input_text(user, "What name would you like to put on this card? Leave blank to randomise.", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name), MAX_NAME_LEN) + ///forge the ID if not forged.s + var/input_name = tgui_input_text(user, "What name would you like to put on this card? Leave blank to randomise.", "Agent card name", registered_name ? registered_name : (ishuman(user) ? user.real_name : user.name), max_length = MAX_NAME_LEN, encode = FALSE) + if(!after_input_check(user)) return TRUE if(input_name) @@ -1654,7 +1734,7 @@ if(!after_input_check(user)) return TRUE - var/target_occupation = tgui_input_text(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels.", "Agent card job assignment", assignment ? assignment : "Assistant", MAX_NAME_LEN) + var/target_occupation = tgui_input_text(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels.", "Agent card job assignment", assignment ? assignment : "Assistant", max_length = MAX_NAME_LEN) if(!after_input_check(user)) return TRUE @@ -1691,11 +1771,6 @@ registered_account = account to_chat(user, span_notice("Your account number has been automatically assigned.")) -/obj/item/card/id/advanced/chameleon/proc/after_input_check(mob/user) - if(QDELETED(user) || QDELETED(src) || !user.client || !user.can_perform_action(src, NEED_DEXTERITY|FORBID_TELEKINESIS_REACH)) - return FALSE - return TRUE - /obj/item/card/id/advanced/chameleon/add_item_context(obj/item/source, list/context, atom/target, mob/living/user,) . = ..() @@ -1775,6 +1850,8 @@ var/scribbled_trim ///The colors for each of the above variables, for when overlays are updated. var/details_colors = list(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK) + pickup_sound = 'sound/items/handling/materials/cardboard_pick_up.ogg' + drop_sound = 'sound/items/handling/materials/cardboard_drop.ogg' /obj/item/card/cardboard/equipped(mob/user, slot, initial = FALSE) . = ..() @@ -1813,15 +1890,15 @@ return switch(popup_input) if("Name") - var/input_name = tgui_input_text(user, "What name would you like to put on this card?", "Cardboard card name", scribbled_name || (ishuman(user) ? user.real_name : user.name), MAX_NAME_LEN) - input_name = sanitize_name(input_name, allow_numbers = TRUE) + var/raw_input = tgui_input_text(user, "What name would you like to put on this card?", "Cardboard card name", scribbled_name || (ishuman(user) ? user.real_name : user.name), max_length = MAX_NAME_LEN) + var/input_name = sanitize_name(raw_input, allow_numbers = TRUE) if(!after_input_check(user, item, input_name, scribbled_name)) return scribbled_name = input_name var/list/details = item.get_writing_implement_details() details_colors[INDEX_NAME_COLOR] = details["color"] || COLOR_BLACK if("Assignment") - var/input_assignment = tgui_input_text(user, "What assignment would you like to put on this card?", "Cardboard card job ssignment", scribbled_assignment || "Assistant", MAX_NAME_LEN) + var/input_assignment = tgui_input_text(user, "What assignment would you like to put on this card?", "Cardboard card job ssignment", scribbled_assignment || "Assistant", max_length = MAX_NAME_LEN) if(!after_input_check(user, item, input_assignment, scribbled_assignment)) return scribbled_assignment = sanitize(input_assignment) @@ -1854,7 +1931,7 @@ /obj/item/card/cardboard/proc/after_input_check(mob/living/user, obj/item/item, input, value) if(!input || (value && input == value)) return FALSE - if(QDELETED(user) || QDELETED(item) || QDELETED(src) || user.incapacitated() || !user.is_holding(item) || !user.CanReach(src) || !user.can_write(item)) + if(QDELETED(user) || QDELETED(item) || QDELETED(src) || user.incapacitated || !user.is_holding(item) || !user.CanReach(src) || !user.can_write(item)) return FALSE return TRUE @@ -1891,10 +1968,10 @@ /obj/item/card/cardboard/get_id_examine_strings(mob/user) . = ..() - . += list("[icon2html(get_cached_flat_icon(), user, extra_classes = "bigicon")]") + . += list("[icon2html(get_cached_flat_icon(), user, extra_classes = "hugeicon")]") -/obj/item/card/cardboard/get_examine_string(mob/user, thats = FALSE) - return "[icon2html(get_cached_flat_icon(), user)] [thats? "That's ":""][get_examine_name(user)]" +/obj/item/card/cardboard/get_examine_icon(mob/user) + return icon2html(get_cached_flat_icon(), user) /obj/item/card/cardboard/examine(mob/user) . = ..() diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index 68501057ebf42..f2d81ac4bde1d 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -4,12 +4,11 @@ name = "chainsaw" desc = "A versatile power tool. Useful for limbing trees and delimbing humans." icon = 'icons/obj/weapons/chainsaw.dmi' - icon_state = "chainsaw_off" + icon_state = "chainsaw" lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' obj_flags = CONDUCTS_ELECTRICITY force = 13 - var/force_on = 24 w_class = WEIGHT_CLASS_HUGE throwforce = 13 throw_speed = 2 @@ -23,83 +22,66 @@ actions_types = list(/datum/action/item_action/startchainsaw) tool_behaviour = TOOL_SAW toolspeed = 1.5 //Turn it on first you dork - var/on = FALSE - ///The looping sound for our chainsaw when running + var/force_on = 24 + /// The looping sound for our chainsaw when running var/datum/looping_sound/chainsaw/chainsaw_loop - -/obj/item/chainsaw/apply_fantasy_bonuses(bonus) - . = ..() - force_on = modify_fantasy_variable("force_on", force_on, bonus) - if(on) - force = force_on - -/obj/item/chainsaw/remove_fantasy_bonuses(bonus) - force_on = reset_fantasy_variable("force_on", force_on) - if(on) - force = force_on - return ..() + /// How long it takes to behead someone with this chainsaw. + var/behead_time = 15 SECONDS /obj/item/chainsaw/Initialize(mapload) . = ..() chainsaw_loop = new(src) apply_components() + AddComponent( \ + /datum/component/transforming, \ + force_on = force_on, \ + throwforce_on = force_on, \ + throw_speed_on = throw_speed, \ + sharpness_on = SHARP_EDGED, \ + hitsound_on = 'sound/items/weapons/chainsawhit.ogg', \ + w_class_on = w_class, \ + ) -/obj/item/chainsaw/suicide_act(mob/living/carbon/user) - if(on) - user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/weapons/chainsawhit.ogg', 100, TRUE) - var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) - if(myhead) - myhead.dismember() - else - user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/weapons/genhit1.ogg', 100, TRUE) - return BRUTELOSS - -/obj/item/chainsaw/attack_self(mob/user) - on = !on - to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") - force = on ? force_on : initial(force) - throwforce = on ? force_on : initial(force) - icon_state = "chainsaw_[on ? "on" : "off"]" - var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering) - butchering.butchering_enabled = on - - if(on) - hitsound = 'sound/weapons/chainsawhit.ogg' - chainsaw_loop.start() - else - hitsound = SFX_SWING_HIT - chainsaw_loop.stop() - - toolspeed = on ? 0.5 : initial(toolspeed) //Turning it on halves the speed - if(src == user.get_active_held_item()) //update inhands - user.update_held_items() - update_item_action_buttons() + RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) -/** - * Handles adding components to the chainsaw. Added in Initialize() - * - * Applies components to the chainsaw. Added as a seperate proc to allow for - * variance between subtypes - */ /obj/item/chainsaw/proc/apply_components() AddComponent(/datum/component/butchering, \ speed = 3 SECONDS, \ effectiveness = 100, \ bonus_modifier = 0, \ - butcher_sound = 'sound/weapons/chainsawhit.ogg', \ + butcher_sound = 'sound/items/weapons/chainsawhit.ogg', \ disabled = TRUE, \ ) - AddComponent(/datum/component/two_handed, require_twohands=TRUE) + AddComponent(/datum/component/two_handed, require_twohands = TRUE) -/obj/item/chainsaw/doomslayer - name = "THE GREAT COMMUNICATOR" - desc = "VRRRRRRR!!!" - armour_penetration = 100 - force_on = 30 +/obj/item/chainsaw/proc/on_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER -/obj/item/chainsaw/doomslayer/attack(mob/living/target_mob, mob/living/user, params) + to_chat(user, span_notice("As you pull the starting cord dangling from [src], [active ? "it begins to whirr" : "the chain stops moving"].")) + var/datum/component/butchering/butchering = GetComponent(/datum/component/butchering) + butchering.butchering_enabled = active + if (active) + chainsaw_loop.start() + else + chainsaw_loop.stop() + + toolspeed = active ? 0.5 : initial(toolspeed) + update_item_action_buttons() + +/obj/item/chainsaw/suicide_act(mob/living/carbon/user) + if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) + user.visible_message(span_suicide("[user] smashes [src] into [user.p_their()] neck, destroying [user.p_their()] esophagus! It looks like [user.p_theyre()] trying to commit suicide!")) + playsound(src, 'sound/items/weapons/genhit1.ogg', 100, TRUE) + return BRUTELOSS + + user.visible_message(span_suicide("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + playsound(src, 'sound/items/weapons/chainsawhit.ogg', 100, TRUE) + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) + if(myhead) + myhead.dismember() + return BRUTELOSS + +/obj/item/chainsaw/attack(mob/living/target_mob, mob/living/user, params) if (target_mob.stat != DEAD) return ..() @@ -110,10 +92,10 @@ if (isnull(head)) return ..() - playsound(user, 'sound/weapons/slice.ogg', vol = 80, vary = TRUE) + playsound(user, 'sound/items/weapons/slice.ogg', vol = 80, vary = TRUE) target_mob.balloon_alert(user, "cutting off head...") - if (!do_after(user, 2 SECONDS, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head))) + if (!do_after(user, behead_time, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head))) return TRUE head.dismember(silent = FALSE) @@ -121,16 +103,30 @@ return TRUE +/obj/item/chainsaw/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) + return target_mob.get_bodypart(BODY_ZONE_HEAD) == head + +/** + * Handles adding components to the chainsaw. Added in Initialize() + * + * Applies components to the chainsaw. Added as a separate proc to allow for + * variance between subtypes + */ + +/obj/item/chainsaw/doomslayer + name = "THE GREAT COMMUNICATOR" + desc = span_warning("VRRRRRRR!!!") + armour_penetration = 100 + force_on = 30 + behead_time = 2 SECONDS + /obj/item/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(attack_type == PROJECTILE_ATTACK) owner.visible_message(span_danger("Ranged attacks just make [owner] angrier!")) - playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE) + playsound(src, SFX_BULLET_MISS, 75, TRUE) return TRUE return FALSE -/obj/item/chainsaw/doomslayer/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head) - return target_mob.get_bodypart(BODY_ZONE_HEAD) == head - /obj/item/chainsaw/mounted_chainsaw name = "mounted chainsaw" desc = "A chainsaw that has replaced your arm." @@ -162,7 +158,7 @@ speed = 3 SECONDS, \ effectiveness = 100, \ bonus_modifier = 0, \ - butcher_sound = 'sound/weapons/chainsawhit.ogg', \ + butcher_sound = 'sound/items/weapons/chainsawhit.ogg', \ disabled = TRUE, \ ) diff --git a/code/game/objects/items/charter.dm b/code/game/objects/items/charter.dm index 1d1f8fad7cc56..6b4ae0f918394 100644 --- a/code/game/objects/items/charter.dm +++ b/code/game/objects/items/charter.dm @@ -69,8 +69,8 @@ if(!response_timer_id) return var/turf/T = get_turf(src) - T.visible_message("The proposed changes disappear \ - from [src]; it looks like they've been rejected.") + T.visible_message(span_warning("The proposed changes disappear \ + from [src]; it looks like they've been rejected.")) var/m = "[key_name(user)] has rejected the proposed station name." message_admins(m) diff --git a/code/game/objects/items/choice_beacon.dm b/code/game/objects/items/choice_beacon.dm index 75a3f35c80b97..aa51d71c5eda4 100644 --- a/code/game/objects/items/choice_beacon.dm +++ b/code/game/objects/items/choice_beacon.dm @@ -30,7 +30,7 @@ if(user.can_perform_action(src, FORBID_TELEKINESIS_REACH)) return TRUE - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, TRUE) return FALSE /// Opens a menu and allows the mob to pick an option from the list @@ -64,7 +64,7 @@ /obj/item/choice_beacon/proc/spawn_option(obj/choice_path, mob/living/user) podspawn(list( "target" = get_turf(src), - "style" = STYLE_BLUESPACE, + "style" = /datum/pod_style/advanced, "spawn" = choice_path, )) @@ -162,7 +162,7 @@ // just drops the box at their feet, "quiet" and "sneaky" /obj/item/choice_beacon/augments/spawn_option(obj/choice_path, mob/living/user) new choice_path(get_turf(user)) - playsound(src, 'sound/weapons/emitter2.ogg', 50, extrarange = SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/items/weapons/emitter2.ogg', 50, extrarange = SILENCED_SOUND_EXTRARANGE) /obj/item/choice_beacon/holy name = "armaments beacon" @@ -176,7 +176,7 @@ if(user.mind?.holy_role) return ..() - playsound(src, 'sound/machines/buzz-sigh.ogg', 40, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 40, TRUE) return FALSE // Overrides generate options so that we can show a neat radial instead diff --git a/code/game/objects/items/chromosome.dm b/code/game/objects/items/chromosome.dm index d7fd7b39544be..dcfc7930ebfe2 100644 --- a/code/game/objects/items/chromosome.dm +++ b/code/game/objects/items/chromosome.dm @@ -2,7 +2,7 @@ name = "blank chromosome" icon = 'icons/obj/science/chromosomes.dmi' icon_state = "" - desc = "A tube holding chromosomic data." + desc = "A tube holding chromosomal data." force = 0 w_class = WEIGHT_CLASS_SMALL @@ -16,7 +16,7 @@ /obj/item/chromosome/proc/can_apply(datum/mutation/human/HM) if(!HM || !(HM.can_chromosome == CHROMOSOME_NONE)) return FALSE - if((stabilizer_coeff != 1) && (HM.stabilizer_coeff != -1)) //if the chromosome is 1, we dont change anything. If the mutation is -1, we cant change it. sorry + if((stabilizer_coeff != 1) && (HM.stabilizer_coeff != -1)) //if the chromosome is 1, we don't change anything. If the mutation is -1, we can't change it. sorry return TRUE if((synchronizer_coeff != 1) && (HM.synchronizer_coeff != -1)) return TRUE diff --git a/code/game/objects/items/cigarettes.dm b/code/game/objects/items/cigarettes.dm new file mode 100644 index 0000000000000..69b65149775ba --- /dev/null +++ b/code/game/objects/items/cigarettes.dm @@ -0,0 +1,1067 @@ +//cleansed 9/15/2012 17:48 + +/* +CONTAINS: +MATCHES +CIGARETTES +CIGARS +SMOKING PIPES + +CIGARETTE PACKETS ARE IN FANCY.DM +*/ + +/////////// +//MATCHES// +/////////// +/obj/item/match + name = "match" + desc = "A simple match stick, used for lighting fine smokables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "match_unlit" + w_class = WEIGHT_CLASS_TINY + heat = 1000 + grind_results = list(/datum/reagent/phosphorus = 2) + /// Whether this match has been lit. + var/lit = FALSE + /// Whether this match has burnt out. + var/burnt = FALSE + /// How long the match lasts in seconds + var/smoketime = 10 SECONDS + +/obj/item/match/process(seconds_per_tick) + smoketime -= seconds_per_tick * (1 SECONDS) + if(smoketime <= 0) + matchburnout() + else + open_flame(heat) + +/obj/item/match/fire_act(exposed_temperature, exposed_volume) + matchignite() + +/obj/item/match/proc/matchignite() + if(lit || burnt) + return + + playsound(src, 'sound/items/match_strike.ogg', 15, TRUE) + lit = TRUE + icon_state = "match_lit" + damtype = BURN + force = 3 + hitsound = 'sound/items/tools/welder.ogg' + inhand_icon_state = "cigon" + name = "lit [initial(name)]" + desc = "A [initial(name)]. This one is lit." + attack_verb_continuous = string_list(list("burns", "singes")) + attack_verb_simple = string_list(list("burn", "singe")) + if(isliving(loc)) + var/mob/living/male_model = loc + if(male_model.fire_stacks && !(male_model.on_fire)) + male_model.ignite_mob() + START_PROCESSING(SSobj, src) + update_appearance() + +/obj/item/match/proc/matchburnout() + if(!lit) + return + + lit = FALSE + burnt = TRUE + damtype = BRUTE + force = initial(force) + icon_state = "match_burnt" + inhand_icon_state = "cigoff" + name = "burnt [initial(name)]" + desc = "A [initial(name)]. This one has seen better days." + attack_verb_continuous = string_list(list("flicks")) + attack_verb_simple = string_list(list("flick")) + STOP_PROCESSING(SSobj, src) + +/obj/item/match/extinguish() + . = ..() + matchburnout() + +/obj/item/match/dropped(mob/user) + matchburnout() + return ..() + +/obj/item/match/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!isliving(M)) + return + + if(lit && M.ignite_mob()) + message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(M)] on fire with [src] at [AREACOORD(user)]") + user.log_message("set [key_name(M)] on fire with [src]", LOG_ATTACK) + + var/obj/item/cigarette/cig = help_light_cig(M) + if(!lit || !cig || user.combat_mode) + ..() + return + + if(cig.lit) + to_chat(user, span_warning("[cig] is already lit!")) + if(M == user) + cig.attackby(src, user) + else + cig.light(span_notice("[user] holds [src] out for [M], and lights [cig].")) + +/// Finds a cigarette on another mob to help light. +/obj/item/proc/help_light_cig(mob/living/M) + var/mask_item = M.get_item_by_slot(ITEM_SLOT_MASK) + if(istype(mask_item, /obj/item/cigarette)) + return mask_item + +/obj/item/match/get_temperature() + return lit * heat + +/obj/item/match/firebrand + name = "firebrand" + desc = "An unlit firebrand. It makes you wonder why it's not just called a stick." + smoketime = 40 SECONDS + custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT) + grind_results = list(/datum/reagent/carbon = 2) + +/obj/item/match/firebrand/Initialize(mapload) + . = ..() + matchignite() + +////////////////// +//FINE SMOKABLES// +////////////////// + +/obj/item/cigarette + name = "cigarette" + desc = "A roll of tobacco and nicotine. It is not food." + icon = 'icons/obj/cigarettes.dmi' + worn_icon = 'icons/mob/clothing/mask.dmi' + icon_state = "cigoff" + inhand_icon_state = "cigon" //gets overriden during intialize(), just have it for unit test sanity. + throw_speed = 0.5 + w_class = WEIGHT_CLASS_TINY + slot_flags = ITEM_SLOT_MASK + grind_results = list() + heat = 1000 + throw_verb = "flick" + /// Whether this cigarette has been lit. + VAR_FINAL/lit = FALSE + /// Whether this cigarette should start lit. + var/starts_lit = FALSE + // Note - these are in masks.dmi not in cigarette.dmi + /// The icon state used when this is lit. + var/icon_on = "cigon" + /// The icon state used when this is extinguished. + var/icon_off = "cigoff" + /// The inhand icon state used when this is lit. + var/inhand_icon_on = "cigon" + /// The inhand icon state used when this is extinguished. + var/inhand_icon_off = "cigoff" + /// How long the cigarette lasts in seconds + var/smoketime = 6 MINUTES + /// How much time between drags of the cigarette. + var/dragtime = 10 SECONDS + /// The cooldown that prevents just huffing the entire cigarette at once. + COOLDOWN_DECLARE(drag_cooldown) + /// The type of cigarette butt spawned when this burns out. + var/type_butt = /obj/item/cigbutt + /// The capacity for chems this cigarette has. + var/chem_volume = 30 + /// The reagents that this cigarette starts with. + var/list/list_reagents = list(/datum/reagent/drug/nicotine = 15) + /// Should we smoke all of the chems in the cig before it runs out. Splits each puff to take a portion of the overall chems so by the end you'll always have consumed all of the chems inside. + var/smoke_all = FALSE + /// How much damage this deals to the lungs per drag. + var/lung_harm = 1 + /// If, when glorf'd, we will choke on this cig forever + var/choke_forever = FALSE + /// When choking, what is the maximum amount of time we COULD choke for + var/choke_time_max = 30 SECONDS // I am mean + /// The particle effect of the smoke rising out of the cigarette when lit + VAR_PRIVATE/obj/effect/abstract/particle_holder/cig_smoke + /// The particle effect of the smoke rising out of the mob when...smoked + VAR_PRIVATE/obj/effect/abstract/particle_holder/mob_smoke + /// How long the current mob has been smoking this cigarette + VAR_FINAL/how_long_have_we_been_smokin = 0 SECONDS + /// Which people ate cigarettes and how many + var/static/list/cigarette_eaters = list() + +/obj/item/cigarette/Initialize(mapload) + . = ..() + create_reagents(chem_volume, INJECTABLE | NO_REACT) + if(list_reagents) + reagents.add_reagent_list(list_reagents) + if(starts_lit) + light() + AddComponent(/datum/component/knockoff, 90, list(BODY_ZONE_PRECISE_MOUTH), slot_flags) //90% to knock off when wearing a mask + AddElement(/datum/element/update_icon_updates_onmob) + RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(sparks_touched)) + icon_state = icon_off + inhand_icon_state = inhand_icon_off + + // "It is called a cigarette" + AddComponent(/datum/component/edible,\ + initial_reagents = list_reagents,\ + food_flags = FOOD_NO_EXAMINE,\ + foodtypes = JUNKFOOD,\ + volume = 50,\ + eat_time = 0 SECONDS,\ + tastes = list("a never before experienced flavour.", "finally sitting down after standing your entire life"),\ + eatverbs = list("taste"),\ + bite_consumption = 50,\ + junkiness = 0,\ + reagent_purity = null,\ + on_consume = CALLBACK(src, PROC_REF(on_consume)),\ + ) + +/obj/item/cigarette/Destroy() + STOP_PROCESSING(SSobj, src) + QDEL_NULL(mob_smoke) + QDEL_NULL(cig_smoke) + return ..() + +/obj/item/cigarette/proc/on_consume(mob/living/eater, mob/living/feeder) + if(isnull(eater.client)) + return + var/ckey = eater.client.ckey + // We must have more! + cigarette_eaters[ckey]++ + if(cigarette_eaters[ckey] >= 500) + eater.client.give_award(/datum/award/achievement/misc/cigarettes) + +/obj/item/cigarette/equipped(mob/equipee, slot) + . = ..() + if(!(slot & ITEM_SLOT_MASK)) + UnregisterSignal(equipee, list(COMSIG_HUMAN_FORCESAY, COMSIG_ATOM_DIR_CHANGE)) + return + RegisterSignal(equipee, COMSIG_HUMAN_FORCESAY, PROC_REF(on_forcesay)) + RegisterSignal(equipee, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_mob_dir_change)) + if(lit && iscarbon(loc)) + make_mob_smoke(loc) + +/obj/item/cigarette/dropped(mob/dropee) + . = ..() + // Moving the cigarette from mask to hands (or pocket I guess) will emit a larger puff of smoke + if(!QDELETED(src) && !QDELETED(dropee) && how_long_have_we_been_smokin >= 4 SECONDS && iscarbon(dropee) && iscarbon(loc)) + var/mob/living/carbon/smoker = dropee + // This relies on the fact that dropped is called before slot is nulled + if(src == smoker.wear_mask && !smoker.incapacitated) + long_exhale(smoker) + + UnregisterSignal(dropee, list(COMSIG_HUMAN_FORCESAY, COMSIG_ATOM_DIR_CHANGE)) + QDEL_NULL(mob_smoke) + how_long_have_we_been_smokin = 0 SECONDS + +/obj/item/cigarette/proc/on_forcesay(mob/living/source) + SIGNAL_HANDLER + source.apply_status_effect(/datum/status_effect/choke, src, lit, choke_forever ? -1 : rand(25 SECONDS, choke_time_max)) + +/obj/item/cigarette/proc/on_mob_dir_change(mob/living/source, old_dir, new_dir) + SIGNAL_HANDLER + if(isnull(mob_smoke)) + return + update_particle_position(mob_smoke, new_dir) + +/obj/item/cigarette/proc/update_particle_position(obj/effect/abstract/particle_holder/to_edit, new_dir = loc.dir) + var/new_x = 0 + var/new_layer = initial(to_edit.layer) + if(new_dir & NORTH) + new_x = 4 + new_layer = BELOW_MOB_LAYER + else if(new_dir & SOUTH) + new_x = -4 + else if(new_dir & EAST) + new_x = 8 + else if(new_dir & WEST) + new_x = -8 + to_edit.set_particle_position(new_x, 8, 0) + to_edit.layer = new_layer + +/obj/item/cigarette/suicide_act(mob/living/user) + user.visible_message(span_suicide("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.")) + return (TOXLOSS|OXYLOSS) + +/obj/item/cigarette/attackby(obj/item/W, mob/user, params) + if(lit) + return ..() + + var/lighting_text = W.ignition_effect(src, user) + if(!lighting_text) + return ..() + + if(!check_oxygen(user)) //cigarettes need oxygen + balloon_alert(user, "no air!") + return ..() + + if(smoketime > 0) + light(lighting_text) + else + to_chat(user, span_warning("There is nothing to smoke!")) + +/// Checks that we have enough air to smoke +/obj/item/cigarette/proc/check_oxygen(mob/user) + if (reagents.has_reagent(/datum/reagent/oxygen)) + return TRUE + var/datum/gas_mixture/air = return_air() + if (!isnull(air) && air.has_gas(/datum/gas/oxygen, 1)) + return TRUE + if (!iscarbon(user)) + return FALSE + var/mob/living/carbon/the_smoker = user + return the_smoker.can_breathe_helmet() + +/obj/item/cigarette/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead) + return NONE + var/obj/item/reagent_containers/cup/glass = interacting_with + if(!istype(glass)) //you can dip cigarettes into beakers + return NONE + if(istype(glass, /obj/item/reagent_containers/cup/mortar)) + return NONE + if(glass.reagents.trans_to(src, chem_volume, transferred_by = user)) //if reagents were transferred, show the message + to_chat(user, span_notice("You dip \the [src] into \the [glass].")) + //if not, either the beaker was empty, or the cigarette was full + else if(!glass.reagents.total_volume) + to_chat(user, span_warning("[glass] is empty!")) + else + to_chat(user, span_warning("[src] is full!")) + return ITEM_INTERACT_SUCCESS + +/obj/item/cigarette/update_icon_state() + . = ..() + if(lit) + icon_state = icon_on + inhand_icon_state = inhand_icon_on + else + icon_state = icon_off + inhand_icon_state = inhand_icon_off + + +/obj/item/cigarette/proc/sparks_touched(datum/source, obj/effect/particle_effect) + SIGNAL_HANDLER + + if(lit) + return + light() + +/// Lights the cigarette with given flavor text. +/obj/item/cigarette/proc/light(flavor_text = null) + if(lit) + return + + lit = TRUE + playsound(src.loc, 'sound/items/lighter/cig_light.ogg', 100, 1) + make_cig_smoke() + if(!(flags_1 & INITIALIZED_1)) + update_appearance(UPDATE_ICON) + return + + attack_verb_continuous = string_list(list("burns", "singes")) + attack_verb_simple = string_list(list("burn", "singe")) + hitsound = 'sound/items/tools/welder.ogg' + damtype = BURN + force = 4 + if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0) + e.start(src) + qdel(src) + return + if(reagents.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount(/datum/reagent/fuel) / 5, 1), get_turf(src), 0, 0) + e.start(src) + qdel(src) + return + // allowing reagents to react after being lit + reagents.flags &= ~(NO_REACT) + reagents.handle_reactions() + update_appearance(UPDATE_ICON) + if(flavor_text) + var/turf/T = get_turf(src) + T.visible_message(flavor_text) + START_PROCESSING(SSobj, src) + + if(iscarbon(loc)) + var/mob/living/carbon/smoker = loc + if(src == smoker.wear_mask) + make_mob_smoke(smoker) + +/obj/item/cigarette/extinguish() + . = ..() + if(!lit) + return + attack_verb_continuous = null + attack_verb_simple = null + hitsound = null + damtype = BRUTE + force = 0 + STOP_PROCESSING(SSobj, src) + reagents.flags |= NO_REACT + lit = FALSE + playsound(src.loc, 'sound/items/lighter/cig_snuff.ogg', 100, 1) + update_appearance(UPDATE_ICON) + if(ismob(loc)) + to_chat(loc, span_notice("Your [name] goes out.")) + QDEL_NULL(cig_smoke) + QDEL_NULL(mob_smoke) + +/obj/item/cigarette/proc/long_exhale(mob/living/carbon/smoker) + smoker.visible_message( + span_notice("[smoker] exhales a large cloud of smoke from [src]."), + span_notice("You exhale a large cloud of smoke from [src]."), + ) + if(!isturf(smoker.loc)) + return + + var/obj/effect/abstract/particle_holder/big_smoke = new(smoker.loc, /particles/smoke/cig/big) + update_particle_position(big_smoke, smoker.dir) + QDEL_IN(big_smoke, big_smoke.particles.lifespan) + +/// Handles processing the reagents in the cigarette. +/obj/item/cigarette/proc/handle_reagents(seconds_per_tick) + if(!reagents.total_volume) + return + reagents.expose_temperature(heat, 0.05) + if(!reagents.total_volume) //may have reacted and gone to 0 after expose_temperature + return + var/to_smoke = smoke_all ? (reagents.total_volume * (dragtime / smoketime)) : REAGENTS_METABOLISM + var/mob/living/carbon/smoker = loc + // These checks are a bit messy but at least they're fairly readable + // Check if the smoker is a carbon mob, since it needs to have wear_mask + if(!istype(smoker)) + // If not, check if it's a gas mask + if(!istype(smoker, /obj/item/clothing/mask/gas)) + reagents.remove_all(to_smoke) + return + + smoker = smoker.loc + + // If it is, check if that mask is on a carbon mob + if(!istype(smoker) || smoker.get_item_by_slot(ITEM_SLOT_MASK) != loc) + reagents.remove_all(to_smoke) + return + else + if(src != smoker.wear_mask) + reagents.remove_all(to_smoke) + return + + how_long_have_we_been_smokin += seconds_per_tick * (1 SECONDS) + reagents.expose(smoker, INGEST, min(to_smoke / reagents.total_volume, 1)) + var/obj/item/organ/internal/lungs/lungs = smoker.get_organ_slot(ORGAN_SLOT_LUNGS) + if(lungs && IS_ORGANIC_ORGAN(lungs)) + var/smoker_resistance = HAS_TRAIT(smoker, TRAIT_SMOKER) ? 0.5 : 1 + smoker.adjustOrganLoss(ORGAN_SLOT_LUNGS, lung_harm * smoker_resistance) + if(!reagents.trans_to(smoker, to_smoke, methods = INGEST, ignore_stomach = TRUE)) + reagents.remove_all(to_smoke) + +/obj/item/cigarette/process(seconds_per_tick) + var/mob/living/user = isliving(loc) ? loc : null + user?.ignite_mob() + + if(!check_oxygen(user)) + extinguish() + return + + smoketime -= seconds_per_tick * (1 SECONDS) + if(smoketime <= 0) + put_out(user) + return + + open_flame(heat) + if((reagents?.total_volume) && COOLDOWN_FINISHED(src, drag_cooldown)) + COOLDOWN_START(src, drag_cooldown, dragtime) + handle_reagents(seconds_per_tick) + +/obj/item/cigarette/attack_self(mob/user) + if(lit) + put_out(user, TRUE) + return ..() + +/obj/item/cigarette/proc/put_out(mob/user, done_early = FALSE) + var/atom/location = drop_location() + if(!isnull(user)) + if(done_early) + if(isfloorturf(location) && location.has_gravity()) + user.visible_message(span_notice("[user] calmly drops and treads on [src], putting it out instantly.")) + new /obj/effect/decal/cleanable/ash(location) + long_exhale(user) + else + user.visible_message(span_notice("[user] pinches out [src].")) + how_long_have_we_been_smokin = 0 SECONDS + else + to_chat(user, span_notice("Your [name] goes out.")) + new type_butt(location) + qdel(src) + +/obj/item/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) + if(!istype(M)) + return ..() + if(M.on_fire && !lit) + light(span_notice("[user] lights [src] with [M]'s burning body. What a cold-blooded badass.")) + return + var/obj/item/cigarette/cig = help_light_cig(M) + if(!lit || !cig || user.combat_mode) + return ..() + + if(cig.lit) + to_chat(user, span_warning("The [cig.name] is already lit!")) + if(M == user) + cig.attackby(src, user) + else + cig.light(span_notice("[user] holds the [name] out for [M], and lights [M.p_their()] [cig.name].")) + +/obj/item/cigarette/fire_act(exposed_temperature, exposed_volume) + light() + +/obj/item/cigarette/get_temperature() + return lit * heat + +/obj/item/cigarette/proc/make_mob_smoke(mob/living/smoker) + mob_smoke = new(smoker, /particles/smoke/cig) + update_particle_position(mob_smoke, smoker.dir) + return mob_smoke + +/obj/item/cigarette/proc/make_cig_smoke() + cig_smoke = new(src, /particles/smoke/cig) + cig_smoke.particles?.scale *= 1.5 + return cig_smoke + +// Cigarette brands. +/obj/item/cigarette/space_cigarette + desc = "A Space brand cigarette that can be smoked anywhere." + list_reagents = list(/datum/reagent/drug/nicotine = 9, /datum/reagent/oxygen = 9) + smoketime = 4 MINUTES // space cigs have a shorter burn time than normal cigs + smoke_all = TRUE // so that it doesn't runout of oxygen while being smoked in space + +/obj/item/cigarette/dromedary + desc = "A DromedaryCo brand cigarette. Contrary to popular belief, does not contain Calomel, but is reported to have a watery taste." + list_reagents = list(/datum/reagent/drug/nicotine = 13, /datum/reagent/water = 5) //camel has water + +/obj/item/cigarette/uplift + desc = "An Uplift Smooth brand cigarette. Smells refreshing." + list_reagents = list(/datum/reagent/drug/nicotine = 13, /datum/reagent/consumable/menthol = 5) + +/obj/item/cigarette/robust + desc = "A Robust brand cigarette." + +/obj/item/cigarette/robustgold + desc = "A Robust Gold brand cigarette." + list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/gold = 3) // Just enough to taste a hint of expensive metal. + +/obj/item/cigarette/carp + desc = "A Carp Classic brand cigarette. A small label on its side indicates that it does NOT contain carpotoxin." + +/obj/item/cigarette/carp/Initialize(mapload) + . = ..() + if(!prob(5)) + return + reagents?.add_reagent(/datum/reagent/toxin/carpotoxin , 3) // They lied + +/obj/item/cigarette/syndicate + desc = "An unknown brand cigarette." + chem_volume = 60 + smoketime = 2 MINUTES + smoke_all = TRUE + lung_harm = 1.5 + list_reagents = list(/datum/reagent/drug/nicotine = 10, /datum/reagent/medicine/omnizine = 15) + +/obj/item/cigarette/shadyjims + desc = "A Shady Jim's Super Slims cigarette." + lung_harm = 1.5 + 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/cigarette/xeno + desc = "A Xeno Filtered brand cigarette." + lung_harm = 2 + list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4) + +// Rollies. + +/obj/item/cigarette/rollie + name = "rollie" + desc = "A roll of dried plant matter wrapped in thin paper." + icon_state = "spliffoff" + icon_on = "spliffon" + icon_off = "spliffoff" + type_butt = /obj/item/cigbutt/roach + throw_speed = 0.5 + smoketime = 4 MINUTES + chem_volume = 50 + list_reagents = null + choke_time_max = 40 SECONDS + +/obj/item/cigarette/rollie/Initialize(mapload) + name = pick(list( + "bifta", + "bifter", + "bird", + "blunt", + "bloint", + "boof", + "boofer", + "bomber", + "bone", + "bun", + "doink", + "doob", + "doober", + "doobie", + "dutch", + "fatty", + "hogger", + "hooter", + "hootie", + "\improper J", + "jay", + "jimmy", + "joint", + "juju", + "jeebie weebie", + "number", + "owl", + "phattie", + "puffer", + "reef", + "reefer", + "rollie", + "scoobie", + "shorty", + "spiff", + "spliff", + "toke", + "torpedo", + "zoot", + "zooter")) + . = ..() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + +/obj/item/cigarette/rollie/nicotine + list_reagents = list(/datum/reagent/drug/nicotine = 15) + +/obj/item/cigarette/rollie/trippy + list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/drug/mushroomhallucinogen = 35) + starts_lit = TRUE + +/obj/item/cigarette/rollie/cannabis + list_reagents = list(/datum/reagent/drug/cannabis = 15) + +/obj/item/cigarette/rollie/mindbreaker + list_reagents = list(/datum/reagent/toxin/mindbreaker = 35, /datum/reagent/toxin/lipolicide = 15) + +/obj/item/cigarette/candy + name = "\improper Little Timmy's candy cigarette" + desc = "For all ages*! Doesn't contain any amount of nicotine. Health and safety risks can be read on the tip of the cigarette." + smoketime = 2 MINUTES + icon_state = "candyoff" + icon_on = "candyon" + icon_off = "candyoff" //make sure to add positional sprites in icons/obj/cigarettes.dmi if you add more. + inhand_icon_off = "candyoff" + type_butt = /obj/item/food/candy_trash + heat = 473.15 // Lowered so that the sugar can be carmalized, but not burnt. + lung_harm = 0.5 + list_reagents = list(/datum/reagent/consumable/sugar = 20) + choke_time_max = 70 SECONDS // This shit really is deadly + +/obj/item/cigarette/candy/nicotine + desc = "For all ages*! Doesn't contain any* amount of nicotine. Health and safety risks can be read on the tip of the cigarette." + type_butt = /obj/item/food/candy_trash/nicotine + list_reagents = list(/datum/reagent/consumable/sugar = 20, /datum/reagent/drug/nicotine = 20) //oh no! + smoke_all = TRUE //timmy's not getting out of this one + +/obj/item/cigbutt/roach + name = "roach" + desc = "A manky old roach, or for non-stoners, a used rollup." + icon_state = "roach" + +/obj/item/cigbutt/roach/Initialize(mapload) + . = ..() + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) + + +/obj/item/cigarette/dart + name = "fat dart" + desc = "Chuff back this fat dart" + icon_state = "bigon" + icon_on = "bigon" + icon_off = "bigoff" + w_class = WEIGHT_CLASS_BULKY + smoketime = 18 MINUTES + chem_volume = 65 + list_reagents = list(/datum/reagent/drug/nicotine = 45) + choke_time_max = 40 SECONDS + lung_harm = 2 + +/obj/item/cigarette/dart/Initialize(mapload) + . = ..() + //the compiled icon state is how it appears when it's on. + //That's how we want it to show on orbies (little virtual PDA pets). + //However we should reset their appearance on runtime. + update_appearance(UPDATE_ICON_STATE) + + +//////////// +// CIGARS // +//////////// +/obj/item/cigarette/cigar + name = "cigar" + desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" + icon_state = "cigaroff" + icon_on = "cigaron" + icon_off = "cigaroff" //make sure to add positional sprites in icons/obj/cigarettes.dmi if you add more. + inhand_icon_state = "cigaron" //gets overriden during intialize(), just have it for unit test sanity. + inhand_icon_on = "cigaron" + inhand_icon_off = "cigaroff" + type_butt = /obj/item/cigbutt/cigarbutt + throw_speed = 0.5 + smoketime = 11 MINUTES + chem_volume = 40 + list_reagents = list(/datum/reagent/drug/nicotine = 25) + choke_time_max = 40 SECONDS + +/obj/item/cigarette/cigar/premium + name = "premium cigar" + //this is the version that actually spawns in premium cigar cases, the distinction is made so that the smoker quirk can differentiate between the default cigar box and its subtypes + +/obj/item/cigarette/cigar/cohiba + name = "\improper Cohiba Robusto cigar" + desc = "There's little more you could want from a cigar." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 20 MINUTES + chem_volume = 80 + list_reagents = list(/datum/reagent/drug/nicotine = 40) + +/obj/item/cigarette/cigar/havana + name = "premium Havanian cigar" + desc = "A cigar fit for only the best of the best." + icon_state = "cigar2off" + icon_on = "cigar2on" + icon_off = "cigar2off" + smoketime = 30 MINUTES + chem_volume = 60 + list_reagents = list(/datum/reagent/drug/nicotine = 45) + +/obj/item/cigbutt + name = "cigarette butt" + desc = "A manky old cigarette butt." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cigbutt" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + grind_results = list(/datum/reagent/carbon = 2) + +/obj/item/cigbutt/cigarbutt + name = "cigar butt" + desc = "A manky old cigar butt." + icon_state = "cigarbutt" + +///////////////// +//SMOKING PIPES// +///////////////// +/obj/item/cigarette/pipe + name = "smoking pipe" + desc = "A pipe, for smoking. Probably made of meerschaum or something." + icon_state = "pipeoff" + icon_on = "pipeoff" //Note - these are in masks.dmi + icon_off = "pipeoff" + inhand_icon_state = null + inhand_icon_on = null + inhand_icon_off = null + smoketime = 0 + chem_volume = 200 // So we can fit densified chemicals plants + list_reagents = null + w_class = WEIGHT_CLASS_SMALL + choke_forever = TRUE + ///name of the stuff packed inside this pipe + var/packeditem + +/obj/item/cigarette/pipe/Initialize(mapload) + . = ..() + update_appearance(UPDATE_NAME) + +/obj/item/cigarette/pipe/update_name() + . = ..() + name = packeditem ? "[packeditem]-packed [initial(name)]" : "empty [initial(name)]" + +/obj/item/cigarette/pipe/put_out(mob/user, done_early = FALSE) + lit = FALSE + if(done_early) + user.visible_message(span_notice("[user] puts out [src]."), span_notice("You put out [src].")) + + else + if(user) + to_chat(user, span_notice("Your [name] goes out.")) + packeditem = null + update_appearance(UPDATE_ICON) + STOP_PROCESSING(SSobj, src) + QDEL_NULL(cig_smoke) + +/obj/item/cigarette/pipe/attackby(obj/item/thing, mob/user, params) + if(!istype(thing, /obj/item/food/grown)) + return ..() + + var/obj/item/food/grown/to_smoke = thing + if(packeditem) + to_chat(user, span_warning("It is already packed!")) + return + if(!HAS_TRAIT(to_smoke, TRAIT_DRIED)) + to_chat(user, span_warning("It has to be dried first!")) + return + + to_chat(user, span_notice("You stuff [to_smoke] into [src].")) + smoketime = 13 MINUTES + packeditem = to_smoke.name + update_name() + if(to_smoke.reagents) + to_smoke.reagents.trans_to(src, to_smoke.reagents.total_volume, transferred_by = user) + qdel(to_smoke) + + +/obj/item/cigarette/pipe/attack_self(mob/user) + var/atom/location = drop_location() + if(packeditem && !lit) + to_chat(user, span_notice("You empty [src] onto [location].")) + new /obj/effect/decal/cleanable/ash(location) + packeditem = null + smoketime = 0 + reagents.clear_reagents() + update_name() + return + return ..() + +/obj/item/cigarette/pipe/cobpipe + name = "corn cob pipe" + desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." + icon_state = "cobpipeoff" + icon_on = "cobpipeoff" //Note - these are in masks.dmi + icon_off = "cobpipeoff" + inhand_icon_on = null + inhand_icon_off = null + +/////////// +//ROLLING// +/////////// +/obj/item/rollingpaper + name = "rolling paper" + desc = "A thin piece of paper used to make fine smokeables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper" + w_class = WEIGHT_CLASS_TINY + +/obj/item/rollingpaper/Initialize(mapload) + . = ..() + AddComponent(/datum/component/customizable_reagent_holder, /obj/item/cigarette/rollie, CUSTOM_INGREDIENT_ICON_NOCHANGE, ingredient_type=CUSTOM_INGREDIENT_TYPE_DRYABLE, max_ingredients=2) + + +/////////////// +//VAPE NATION// +/////////////// +/obj/item/vape + name = "\improper E-Cigarette" + desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. + icon_state = "vape" + worn_icon_state = "vape_worn" + greyscale_config = /datum/greyscale_config/vape + greyscale_config_worn = /datum/greyscale_config/vape/worn + greyscale_colors = "#2e2e2e" + inhand_icon_state = null + w_class = WEIGHT_CLASS_TINY + slot_flags = ITEM_SLOT_MASK + flags_1 = IS_PLAYER_COLORABLE_1 + + /// The capacity of the vape. + var/chem_volume = 100 + /// The amount of time between drags. + var/dragtime = 8 SECONDS + /// A cooldown to prevent huffing the vape all at once. + COOLDOWN_DECLARE(drag_cooldown) + /// Whether the resevoir is open and we can add reagents. + var/screw = FALSE + /// Whether the vape has been overloaded to spread smoke. + var/super = FALSE + +/obj/item/vape/Initialize(mapload) + . = ..() + create_reagents(chem_volume, NO_REACT) + reagents.add_reagent(/datum/reagent/drug/nicotine, 50) + +/obj/item/vape/suicide_act(mob/living/user) + user.visible_message(span_suicide("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!"))//it doesn't give you cancer, it is cancer + return (TOXLOSS|OXYLOSS) + +/obj/item/vape/screwdriver_act(mob/living/user, obj/item/tool) + if(!screw) + screw = TRUE + to_chat(user, span_notice("You open the cap on [src].")) + reagents.flags |= OPENCONTAINER + if(obj_flags & EMAGGED) + icon_state = "vapeopen_high" + set_greyscale(new_config = /datum/greyscale_config/vape/open_high) + else if(super) + icon_state = "vapeopen_med" + set_greyscale(new_config = /datum/greyscale_config/vape/open_med) + else + icon_state = "vapeopen_low" + set_greyscale(new_config = /datum/greyscale_config/vape/open_low) + else + screw = FALSE + to_chat(user, span_notice("You close the cap on [src].")) + reagents.flags &= ~(OPENCONTAINER) + icon_state = initial(icon_state) + set_greyscale(new_config = initial(greyscale_config)) + +/obj/item/vape/multitool_act(mob/living/user, obj/item/tool) + . = TRUE + if(screw && !(obj_flags & EMAGGED))//also kinky + if(!super) + super = TRUE + to_chat(user, span_notice("You increase the voltage of [src].")) + icon_state = "vapeopen_med" + set_greyscale(new_config = /datum/greyscale_config/vape/open_med) + else + super = FALSE + to_chat(user, span_notice("You decrease the voltage of [src].")) + icon_state = "vapeopen_low" + set_greyscale(new_config = /datum/greyscale_config/vape/open_low) + + if(screw && (obj_flags & EMAGGED)) + to_chat(user, span_warning("[src] can't be modified!")) + +/obj/item/vape/emag_act(mob/user, obj/item/card/emag/emag_card) // I WON'T REGRET WRITTING THIS, SURLY. + + if (!screw) + balloon_alert(user, "open the cap first!") + return FALSE + + if (obj_flags & EMAGGED) + balloon_alert(user, "already emagged!") + return FALSE + + obj_flags |= EMAGGED + super = FALSE + balloon_alert(user, "voltage maximized") + icon_state = "vapeopen_high" + set_greyscale(new_config = /datum/greyscale_config/vape/open_high) + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect + sp.set_up(5, 1, src) + sp.start() + return TRUE + +/obj/item/vape/attack_self(mob/user) + if(reagents.total_volume > 0) + to_chat(user, span_notice("You empty [src] of all reagents.")) + reagents.clear_reagents() + +/obj/item/vape/equipped(mob/user, slot) + . = ..() + if(!(slot & ITEM_SLOT_MASK)) + return + + if(screw) + to_chat(user, span_warning("You need to close the cap first!")) + return + + to_chat(user, span_notice("You start puffing on the vape.")) + reagents.flags &= ~(NO_REACT) + START_PROCESSING(SSobj, src) + +/obj/item/vape/dropped(mob/user) + . = ..() + if(user.get_item_by_slot(ITEM_SLOT_MASK) == src) + reagents.flags |= NO_REACT + STOP_PROCESSING(SSobj, src) + +/obj/item/vape/proc/handle_reagents() + if(!reagents.total_volume) + return + + var/mob/living/carbon/vaper = loc + if(!iscarbon(vaper) || src != vaper.wear_mask) + reagents.remove_all(REAGENTS_METABOLISM) + return + + if(reagents.get_reagent_amount(/datum/reagent/fuel)) + //HOT STUFF + vaper.adjust_fire_stacks(2) + vaper.ignite_mob() + + if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire + var/datum/effect_system/reagents_explosion/e = new() + e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0) + e.start(src) + qdel(src) + + if(!reagents.trans_to(vaper, REAGENTS_METABOLISM, methods = INGEST, ignore_stomach = TRUE)) + reagents.remove_all(REAGENTS_METABOLISM) + +/obj/item/vape/process(seconds_per_tick) + var/mob/living/M = loc + + if(isliving(loc)) + M.ignite_mob() + + if(!reagents.total_volume) + if(ismob(loc)) + to_chat(M, span_warning("[src] is empty!")) + STOP_PROCESSING(SSobj, src) + //it's reusable so it won't unequip when empty + return + + if(!COOLDOWN_FINISHED(src, drag_cooldown)) + return + + //Time to start puffing those fat vapes, yo. + COOLDOWN_START(src, drag_cooldown, dragtime) + if(obj_flags & EMAGGED) + var/datum/effect_system/fluid_spread/smoke/chem/smoke_machine/puff = new + puff.set_up(4, holder = src, location = loc, carry = reagents, efficiency = 24) + puff.start() + if(prob(5)) //small chance for the vape to break and deal damage if it's emagged + playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, FALSE) + M.apply_damage(20, BURN, BODY_ZONE_HEAD) + M.Paralyze(300) + var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread + sp.set_up(5, 1, src) + sp.start() + to_chat(M, span_userdanger("[src] suddenly explodes in your mouth!")) + qdel(src) + return + else if(super) + var/datum/effect_system/fluid_spread/smoke/chem/smoke_machine/puff = new + puff.set_up(1, holder = src, location = loc, carry = reagents, efficiency = 24) + puff.start() + + handle_reagents() + +/obj/item/vape/red + greyscale_colors = "#A02525" + flags_1 = NONE + +/obj/item/vape/blue + greyscale_colors = "#294A98" + flags_1 = NONE + +/obj/item/vape/purple + greyscale_colors = "#9900CC" + flags_1 = NONE + +/obj/item/vape/green + greyscale_colors = "#3D9829" + flags_1 = NONE + +/obj/item/vape/yellow + greyscale_colors = "#DAC20E" + flags_1 = NONE + +/obj/item/vape/orange + greyscale_colors = "#da930e" + flags_1 = NONE + +/obj/item/vape/black + greyscale_colors = "#2e2e2e" + flags_1 = NONE + +/obj/item/vape/white + greyscale_colors = "#DCDCDC" + flags_1 = NONE diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm deleted file mode 100644 index 32ad7f8845de3..0000000000000 --- a/code/game/objects/items/cigs_lighters.dm +++ /dev/null @@ -1,1326 +0,0 @@ -//cleansed 9/15/2012 17:48 - -/* -CONTAINS: -MATCHES -CIGARETTES -CIGARS -SMOKING PIPES -CHEAP LIGHTERS -ZIPPO - -CIGARETTE PACKETS ARE IN FANCY.DM -*/ - -/////////// -//MATCHES// -/////////// -/obj/item/match - name = "match" - desc = "A simple match stick, used for lighting fine smokables." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "match_unlit" - w_class = WEIGHT_CLASS_TINY - heat = 1000 - grind_results = list(/datum/reagent/phosphorus = 2) - /// Whether this match has been lit. - var/lit = FALSE - /// Whether this match has burnt out. - var/burnt = FALSE - /// How long the match lasts in seconds - var/smoketime = 10 SECONDS - -/obj/item/match/process(seconds_per_tick) - smoketime -= seconds_per_tick * (1 SECONDS) - if(smoketime <= 0) - matchburnout() - else - open_flame(heat) - -/obj/item/match/fire_act(exposed_temperature, exposed_volume) - matchignite() - -/obj/item/match/proc/matchignite() - if(lit || burnt) - return - - playsound(src, 'sound/items/match_strike.ogg', 15, TRUE) - lit = TRUE - icon_state = "match_lit" - damtype = BURN - force = 3 - hitsound = 'sound/items/welder.ogg' - inhand_icon_state = "cigon" - name = "lit [initial(name)]" - desc = "A [initial(name)]. This one is lit." - attack_verb_continuous = string_list(list("burns", "singes")) - attack_verb_simple = string_list(list("burn", "singe")) - if(isliving(loc)) - var/mob/living/male_model = loc - if(male_model.fire_stacks && !(male_model.on_fire)) - male_model.ignite_mob() - START_PROCESSING(SSobj, src) - update_appearance() - -/obj/item/match/proc/matchburnout() - if(!lit) - return - - lit = FALSE - burnt = TRUE - damtype = BRUTE - force = initial(force) - icon_state = "match_burnt" - inhand_icon_state = "cigoff" - name = "burnt [initial(name)]" - desc = "A [initial(name)]. This one has seen better days." - attack_verb_continuous = string_list(list("flicks")) - attack_verb_simple = string_list(list("flick")) - STOP_PROCESSING(SSobj, src) - -/obj/item/match/extinguish() - . = ..() - matchburnout() - -/obj/item/match/dropped(mob/user) - matchburnout() - return ..() - -/obj/item/match/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!isliving(M)) - return - - if(lit && M.ignite_mob()) - message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(M)] on fire with [src] at [AREACOORD(user)]") - user.log_message("set [key_name(M)] on fire with [src]", LOG_ATTACK) - - var/obj/item/cigarette/cig = help_light_cig(M) - if(!lit || !cig || user.combat_mode) - ..() - return - - if(cig.lit) - to_chat(user, span_warning("[cig] is already lit!")) - if(M == user) - cig.attackby(src, user) - else - cig.light(span_notice("[user] holds [src] out for [M], and lights [cig].")) - -/// Finds a cigarette on another mob to help light. -/obj/item/proc/help_light_cig(mob/living/M) - var/mask_item = M.get_item_by_slot(ITEM_SLOT_MASK) - if(istype(mask_item, /obj/item/cigarette)) - return mask_item - -/obj/item/match/get_temperature() - return lit * heat - -/obj/item/match/firebrand - name = "firebrand" - desc = "An unlit firebrand. It makes you wonder why it's not just called a stick." - smoketime = 40 SECONDS - custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT) - grind_results = list(/datum/reagent/carbon = 2) - -/obj/item/match/firebrand/Initialize(mapload) - . = ..() - matchignite() - -////////////////// -//FINE SMOKABLES// -////////////////// -/obj/item/cigarette - name = "cigarette" - desc = "A roll of tobacco and nicotine." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cigoff" - inhand_icon_state = "cigon" //gets overriden during intialize(), just have it for unit test sanity. - throw_speed = 0.5 - w_class = WEIGHT_CLASS_TINY - slot_flags = ITEM_SLOT_MASK - grind_results = list() - heat = 1000 - throw_verb = "flick" - /// Whether this cigarette has been lit. - VAR_FINAL/lit = FALSE - /// Whether this cigarette should start lit. - var/starts_lit = FALSE - // Note - these are in masks.dmi not in cigarette.dmi - /// The icon state used when this is lit. - var/icon_on = "cigon" - /// The icon state used when this is extinguished. - var/icon_off = "cigoff" - /// The inhand icon state used when this is lit. - var/inhand_icon_on = "cigon" - /// The inhand icon state used when this is extinguished. - var/inhand_icon_off = "cigoff" - /// How long the cigarette lasts in seconds - var/smoketime = 6 MINUTES - /// How much time between drags of the cigarette. - var/dragtime = 10 SECONDS - /// The cooldown that prevents just huffing the entire cigarette at once. - COOLDOWN_DECLARE(drag_cooldown) - /// The type of cigarette butt spawned when this burns out. - var/type_butt = /obj/item/cigbutt - /// The capacity for chems this cigarette has. - var/chem_volume = 30 - /// The reagents that this cigarette starts with. - var/list/list_reagents = list(/datum/reagent/drug/nicotine = 15) - /// Should we smoke all of the chems in the cig before it runs out. Splits each puff to take a portion of the overall chems so by the end you'll always have consumed all of the chems inside. - var/smoke_all = FALSE - /// How much damage this deals to the lungs per drag. - var/lung_harm = 1 - /// If, when glorf'd, we will choke on this cig forever - var/choke_forever = FALSE - /// When choking, what is the maximum amount of time we COULD choke for - var/choke_time_max = 30 SECONDS // I am mean - /// The particle effect of the smoke rising out of the cigarette when lit - VAR_PRIVATE/obj/effect/abstract/particle_holder/cig_smoke - /// The particle effect of the smoke rising out of the mob when...smoked - VAR_PRIVATE/obj/effect/abstract/particle_holder/mob_smoke - /// How long the current mob has been smoking this cigarette - VAR_FINAL/how_long_have_we_been_smokin = 0 SECONDS - -/obj/item/cigarette/Initialize(mapload) - . = ..() - create_reagents(chem_volume, INJECTABLE | NO_REACT) - if(list_reagents) - reagents.add_reagent_list(list_reagents) - if(starts_lit) - light() - AddComponent(/datum/component/knockoff, 90, list(BODY_ZONE_PRECISE_MOUTH), slot_flags) //90% to knock off when wearing a mask - AddElement(/datum/element/update_icon_updates_onmob) - RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(sparks_touched)) - icon_state = icon_off - inhand_icon_state = inhand_icon_off - -/obj/item/cigarette/Destroy() - STOP_PROCESSING(SSobj, src) - QDEL_NULL(mob_smoke) - QDEL_NULL(cig_smoke) - return ..() - -/obj/item/cigarette/equipped(mob/equipee, slot) - . = ..() - if(!(slot & ITEM_SLOT_MASK)) - UnregisterSignal(equipee, list(COMSIG_HUMAN_FORCESAY, COMSIG_ATOM_DIR_CHANGE)) - return - RegisterSignal(equipee, COMSIG_HUMAN_FORCESAY, PROC_REF(on_forcesay)) - RegisterSignal(equipee, COMSIG_ATOM_DIR_CHANGE, PROC_REF(on_mob_dir_change)) - if(lit && iscarbon(loc)) - make_mob_smoke(loc) - -/obj/item/cigarette/dropped(mob/dropee) - . = ..() - // Moving the cigarette from mask to hands (or pocket I guess) will emit a larger puff of smoke - if(!QDELETED(src) && !QDELETED(dropee) && how_long_have_we_been_smokin >= 4 SECONDS && iscarbon(dropee) && iscarbon(loc)) - var/mob/living/carbon/smoker = dropee - // This relies on the fact that dropped is called before slot is nulled - if(src == smoker.wear_mask && !smoker.incapacitated()) - long_exhale(smoker) - - UnregisterSignal(dropee, list(COMSIG_HUMAN_FORCESAY, COMSIG_ATOM_DIR_CHANGE)) - QDEL_NULL(mob_smoke) - how_long_have_we_been_smokin = 0 SECONDS - -/obj/item/cigarette/proc/on_forcesay(mob/living/source) - SIGNAL_HANDLER - source.apply_status_effect(/datum/status_effect/choke, src, lit, choke_forever ? -1 : rand(25 SECONDS, choke_time_max)) - -/obj/item/cigarette/proc/on_mob_dir_change(mob/living/source, old_dir, new_dir) - SIGNAL_HANDLER - if(isnull(mob_smoke)) - return - update_particle_position(mob_smoke, new_dir) - -/obj/item/cigarette/proc/update_particle_position(obj/effect/abstract/particle_holder/to_edit, new_dir = loc.dir) - var/new_x = 0 - var/new_layer = initial(to_edit.layer) - if(new_dir & NORTH) - new_x = 4 - new_layer = BELOW_MOB_LAYER - else if(new_dir & SOUTH) - new_x = -4 - else if(new_dir & EAST) - new_x = 8 - else if(new_dir & WEST) - new_x = -8 - to_edit.set_particle_position(new_x, 8, 0) - to_edit.layer = new_layer - -/obj/item/cigarette/suicide_act(mob/living/user) - user.visible_message(span_suicide("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.")) - return (TOXLOSS|OXYLOSS) - -/obj/item/cigarette/attackby(obj/item/W, mob/user, params) - if(lit) - return ..() - - var/lighting_text = W.ignition_effect(src, user) - if(!lighting_text) - return ..() - - if(!check_oxygen(user)) //cigarettes need oxygen - balloon_alert(user, "no air!") - return ..() - - if(smoketime > 0) - light(lighting_text) - else - to_chat(user, span_warning("There is nothing to smoke!")) - -/// Checks that we have enough air to smoke -/obj/item/cigarette/proc/check_oxygen(mob/user) - if (reagents.has_reagent(/datum/reagent/oxygen)) - return TRUE - var/datum/gas_mixture/air = return_air() - if (!isnull(air) && air.has_gas(/datum/gas/oxygen, 1)) - return TRUE - if (!iscarbon(user)) - return FALSE - var/mob/living/carbon/the_smoker = user - return the_smoker.can_breathe_helmet() - -/obj/item/cigarette/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - if(lit) //can't dip if cigarette is lit (it will heat the reagents in the glass instead) - return NONE - var/obj/item/reagent_containers/cup/glass = interacting_with - if(!istype(glass)) //you can dip cigarettes into beakers - return NONE - if(istype(glass, /obj/item/reagent_containers/cup/mortar)) - return NONE - if(glass.reagents.trans_to(src, chem_volume, transferred_by = user)) //if reagents were transferred, show the message - to_chat(user, span_notice("You dip \the [src] into \the [glass].")) - //if not, either the beaker was empty, or the cigarette was full - else if(!glass.reagents.total_volume) - to_chat(user, span_warning("[glass] is empty!")) - else - to_chat(user, span_warning("[src] is full!")) - return ITEM_INTERACT_SUCCESS - -/obj/item/cigarette/update_icon_state() - . = ..() - if(lit) - icon_state = icon_on - inhand_icon_state = inhand_icon_on - else - icon_state = icon_off - inhand_icon_state = inhand_icon_off - - -/obj/item/cigarette/proc/sparks_touched(datum/source, obj/effect/particle_effect) - SIGNAL_HANDLER - - if(lit) - return - light() - -/// Lights the cigarette with given flavor text. -/obj/item/cigarette/proc/light(flavor_text = null) - if(lit) - return - - lit = TRUE - make_cig_smoke() - if(!(flags_1 & INITIALIZED_1)) - update_appearance(UPDATE_ICON) - return - - attack_verb_continuous = string_list(list("burns", "singes")) - attack_verb_simple = string_list(list("burn", "singe")) - hitsound = 'sound/items/welder.ogg' - damtype = BURN - force = 4 - if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0) - e.start(src) - qdel(src) - return - if(reagents.get_reagent_amount(/datum/reagent/fuel)) // the fuel explodes, too, but much less violently - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount(/datum/reagent/fuel) / 5, 1), get_turf(src), 0, 0) - e.start(src) - qdel(src) - return - // allowing reagents to react after being lit - reagents.flags &= ~(NO_REACT) - reagents.handle_reactions() - update_appearance(UPDATE_ICON) - if(flavor_text) - var/turf/T = get_turf(src) - T.visible_message(flavor_text) - START_PROCESSING(SSobj, src) - - if(iscarbon(loc)) - var/mob/living/carbon/smoker = loc - if(src == smoker.wear_mask) - make_mob_smoke(smoker) - -/obj/item/cigarette/extinguish() - . = ..() - if(!lit) - return - attack_verb_continuous = null - attack_verb_simple = null - hitsound = null - damtype = BRUTE - force = 0 - STOP_PROCESSING(SSobj, src) - reagents.flags |= NO_REACT - lit = FALSE - update_appearance(UPDATE_ICON) - if(ismob(loc)) - to_chat(loc, span_notice("Your [name] goes out.")) - QDEL_NULL(cig_smoke) - QDEL_NULL(mob_smoke) - -/obj/item/cigarette/proc/long_exhale(mob/living/carbon/smoker) - smoker.visible_message( - span_notice("[smoker] exhales a large cloud of smoke from [src]."), - span_notice("You exhale a large cloud of smoke from [src]."), - ) - if(!isturf(smoker.loc)) - return - - var/obj/effect/abstract/particle_holder/big_smoke = new(smoker.loc, /particles/smoke/cig/big) - update_particle_position(big_smoke, smoker.dir) - QDEL_IN(big_smoke, big_smoke.particles.lifespan) - -/// Handles processing the reagents in the cigarette. -/obj/item/cigarette/proc/handle_reagents(seconds_per_tick) - if(!reagents.total_volume) - return - reagents.expose_temperature(heat, 0.05) - if(!reagents.total_volume) //may have reacted and gone to 0 after expose_temperature - return - var/to_smoke = smoke_all ? (reagents.total_volume * (dragtime / smoketime)) : REAGENTS_METABOLISM - var/mob/living/carbon/smoker = loc - // These checks are a bit messy but at least they're fairly readable - // Check if the smoker is a carbon mob, since it needs to have wear_mask - if(!istype(smoker)) - // If not, check if it's a gas mask - if(!istype(smoker, /obj/item/clothing/mask/gas)) - reagents.remove_all(to_smoke) - return - - smoker = smoker.loc - - // If it is, check if that mask is on a carbon mob - if(!istype(smoker) || smoker.get_item_by_slot(ITEM_SLOT_MASK) != loc) - reagents.remove_all(to_smoke) - return - else - if(src != smoker.wear_mask) - reagents.remove_all(to_smoke) - return - - how_long_have_we_been_smokin += seconds_per_tick * (1 SECONDS) - reagents.expose(smoker, INGEST, min(to_smoke / reagents.total_volume, 1)) - var/obj/item/organ/internal/lungs/lungs = smoker.get_organ_slot(ORGAN_SLOT_LUNGS) - if(lungs && IS_ORGANIC_ORGAN(lungs)) - var/smoker_resistance = HAS_TRAIT(smoker, TRAIT_SMOKER) ? 0.5 : 1 - smoker.adjustOrganLoss(ORGAN_SLOT_LUNGS, lung_harm * smoker_resistance) - if(!reagents.trans_to(smoker, to_smoke, methods = INGEST, ignore_stomach = TRUE)) - reagents.remove_all(to_smoke) - -/obj/item/cigarette/process(seconds_per_tick) - var/mob/living/user = isliving(loc) ? loc : null - user?.ignite_mob() - - if(!check_oxygen(user)) - extinguish() - return - - smoketime -= seconds_per_tick * (1 SECONDS) - if(smoketime <= 0) - put_out(user) - return - - open_flame(heat) - if((reagents?.total_volume) && COOLDOWN_FINISHED(src, drag_cooldown)) - COOLDOWN_START(src, drag_cooldown, dragtime) - handle_reagents(seconds_per_tick) - -/obj/item/cigarette/attack_self(mob/user) - if(lit) - put_out(user, TRUE) - return ..() - -/obj/item/cigarette/proc/put_out(mob/user, done_early = FALSE) - var/atom/location = drop_location() - if(!isnull(user)) - if(done_early) - if(isfloorturf(location) && location.has_gravity()) - user.visible_message(span_notice("[user] calmly drops and treads on [src], putting it out instantly.")) - new /obj/effect/decal/cleanable/ash(location) - long_exhale(user) - else - user.visible_message(span_notice("[user] pinches out [src].")) - how_long_have_we_been_smokin = 0 SECONDS - else - to_chat(user, span_notice("Your [name] goes out.")) - new type_butt(location) - qdel(src) - -/obj/item/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user) - if(!istype(M)) - return ..() - if(M.on_fire && !lit) - light(span_notice("[user] lights [src] with [M]'s burning body. What a cold-blooded badass.")) - return - var/obj/item/cigarette/cig = help_light_cig(M) - if(!lit || !cig || user.combat_mode) - return ..() - - if(cig.lit) - to_chat(user, span_warning("The [cig.name] is already lit!")) - if(M == user) - cig.attackby(src, user) - else - cig.light(span_notice("[user] holds the [name] out for [M], and lights [M.p_their()] [cig.name].")) - -/obj/item/cigarette/fire_act(exposed_temperature, exposed_volume) - light() - -/obj/item/cigarette/get_temperature() - return lit * heat - -/obj/item/cigarette/proc/make_mob_smoke(mob/living/smoker) - mob_smoke = new(smoker, /particles/smoke/cig) - update_particle_position(mob_smoke, smoker.dir) - return mob_smoke - -/obj/item/cigarette/proc/make_cig_smoke() - cig_smoke = new(src, /particles/smoke/cig) - cig_smoke.particles?.scale *= 1.5 - return cig_smoke - -// Cigarette brands. -/obj/item/cigarette/space_cigarette - desc = "A Space brand cigarette that can be smoked anywhere." - list_reagents = list(/datum/reagent/drug/nicotine = 9, /datum/reagent/oxygen = 9) - smoketime = 4 MINUTES // space cigs have a shorter burn time than normal cigs - smoke_all = TRUE // so that it doesn't runout of oxygen while being smoked in space - -/obj/item/cigarette/dromedary - desc = "A DromedaryCo brand cigarette. Contrary to popular belief, does not contain Calomel, but is reported to have a watery taste." - list_reagents = list(/datum/reagent/drug/nicotine = 13, /datum/reagent/water = 5) //camel has water - -/obj/item/cigarette/uplift - desc = "An Uplift Smooth brand cigarette. Smells refreshing." - list_reagents = list(/datum/reagent/drug/nicotine = 13, /datum/reagent/consumable/menthol = 5) - -/obj/item/cigarette/robust - desc = "A Robust brand cigarette." - -/obj/item/cigarette/robustgold - desc = "A Robust Gold brand cigarette." - list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/gold = 3) // Just enough to taste a hint of expensive metal. - -/obj/item/cigarette/carp - desc = "A Carp Classic brand cigarette. A small label on its side indicates that it does NOT contain carpotoxin." - -/obj/item/cigarette/carp/Initialize(mapload) - . = ..() - if(!prob(5)) - return - reagents?.add_reagent(/datum/reagent/toxin/carpotoxin , 3) // They lied - -/obj/item/cigarette/syndicate - desc = "An unknown brand cigarette." - chem_volume = 60 - smoketime = 2 MINUTES - smoke_all = TRUE - lung_harm = 1.5 - list_reagents = list(/datum/reagent/drug/nicotine = 10, /datum/reagent/medicine/omnizine = 15) - -/obj/item/cigarette/shadyjims - desc = "A Shady Jim's Super Slims cigarette." - lung_harm = 1.5 - 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/cigarette/xeno - desc = "A Xeno Filtered brand cigarette." - lung_harm = 2 - list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4) - -// Rollies. - -/obj/item/cigarette/rollie - name = "rollie" - desc = "A roll of dried plant matter wrapped in thin paper." - icon_state = "spliffoff" - icon_on = "spliffon" - icon_off = "spliffoff" - type_butt = /obj/item/cigbutt/roach - throw_speed = 0.5 - smoketime = 4 MINUTES - chem_volume = 50 - list_reagents = null - choke_time_max = 40 SECONDS - -/obj/item/cigarette/rollie/Initialize(mapload) - name = pick(list( - "bifta", - "bifter", - "bird", - "blunt", - "bloint", - "boof", - "boofer", - "bomber", - "bone", - "bun", - "doink", - "doob", - "doober", - "doobie", - "dutch", - "fatty", - "hogger", - "hooter", - "hootie", - "\improper J", - "jay", - "jimmy", - "joint", - "juju", - "jeebie weebie", - "number", - "owl", - "phattie", - "puffer", - "reef", - "reefer", - "rollie", - "scoobie", - "shorty", - "spiff", - "spliff", - "toke", - "torpedo", - "zoot", - "zooter")) - . = ..() - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) - -/obj/item/cigarette/rollie/nicotine - list_reagents = list(/datum/reagent/drug/nicotine = 15) - -/obj/item/cigarette/rollie/trippy - list_reagents = list(/datum/reagent/drug/nicotine = 15, /datum/reagent/drug/mushroomhallucinogen = 35) - starts_lit = TRUE - -/obj/item/cigarette/rollie/cannabis - list_reagents = list(/datum/reagent/drug/cannabis = 15) - -/obj/item/cigarette/rollie/mindbreaker - list_reagents = list(/datum/reagent/toxin/mindbreaker = 35, /datum/reagent/toxin/lipolicide = 15) - -/obj/item/cigarette/candy - name = "\improper Little Timmy's candy cigarette" - desc = "For all ages*! Doesn't contain any amount of nicotine. Health and safety risks can be read on the tip of the cigarette." - smoketime = 2 MINUTES - icon_state = "candyoff" - icon_on = "candyon" - icon_off = "candyoff" //make sure to add positional sprites in icons/obj/cigarettes.dmi if you add more. - inhand_icon_off = "candyoff" - type_butt = /obj/item/food/candy_trash - heat = 473.15 // Lowered so that the sugar can be carmalized, but not burnt. - lung_harm = 0.5 - list_reagents = list(/datum/reagent/consumable/sugar = 20) - choke_time_max = 70 SECONDS // This shit really is deadly - -/obj/item/cigarette/candy/nicotine - desc = "For all ages*! Doesn't contain any* amount of nicotine. Health and safety risks can be read on the tip of the cigarette." - type_butt = /obj/item/food/candy_trash/nicotine - list_reagents = list(/datum/reagent/consumable/sugar = 20, /datum/reagent/drug/nicotine = 20) //oh no! - smoke_all = TRUE //timmy's not getting out of this one - -/obj/item/cigbutt/roach - name = "roach" - desc = "A manky old roach, or for non-stoners, a used rollup." - icon_state = "roach" - -/obj/item/cigbutt/roach/Initialize(mapload) - . = ..() - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) - - -//////////// -// CIGARS // -//////////// -/obj/item/cigarette/cigar - name = "cigar" - desc = "A brown roll of tobacco and... well, you're not quite sure. This thing's huge!" - icon_state = "cigaroff" - icon_on = "cigaron" - icon_off = "cigaroff" //make sure to add positional sprites in icons/obj/cigarettes.dmi if you add more. - inhand_icon_state = "cigaron" //gets overriden during intialize(), just have it for unit test sanity. - inhand_icon_on = "cigaron" - inhand_icon_off = "cigaroff" - type_butt = /obj/item/cigbutt/cigarbutt - throw_speed = 0.5 - smoketime = 11 MINUTES - chem_volume = 40 - list_reagents = list(/datum/reagent/drug/nicotine = 25) - choke_time_max = 40 SECONDS - -/obj/item/cigarette/cigar/premium - name = "premium cigar" - //this is the version that actually spawns in premium cigar cases, the distinction is made so that the smoker quirk can differentiate between the default cigar box and its subtypes - -/obj/item/cigarette/cigar/cohiba - name = "\improper Cohiba Robusto cigar" - desc = "There's little more you could want from a cigar." - icon_state = "cigar2off" - icon_on = "cigar2on" - icon_off = "cigar2off" - smoketime = 20 MINUTES - chem_volume = 80 - list_reagents = list(/datum/reagent/drug/nicotine = 40) - -/obj/item/cigarette/cigar/havana - name = "premium Havanian cigar" - desc = "A cigar fit for only the best of the best." - icon_state = "cigar2off" - icon_on = "cigar2on" - icon_off = "cigar2off" - smoketime = 30 MINUTES - chem_volume = 60 - list_reagents = list(/datum/reagent/drug/nicotine = 45) - -/obj/item/cigbutt - name = "cigarette butt" - desc = "A manky old cigarette butt." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cigbutt" - w_class = WEIGHT_CLASS_TINY - throwforce = 0 - grind_results = list(/datum/reagent/carbon = 2) - -/obj/item/cigbutt/cigarbutt - name = "cigar butt" - desc = "A manky old cigar butt." - icon_state = "cigarbutt" - -///////////////// -//SMOKING PIPES// -///////////////// -/obj/item/cigarette/pipe - name = "smoking pipe" - desc = "A pipe, for smoking. Probably made of meerschaum or something." - icon_state = "pipeoff" - icon_on = "pipeoff" //Note - these are in masks.dmi - icon_off = "pipeoff" - inhand_icon_state = null - inhand_icon_on = null - inhand_icon_off = null - smoketime = 0 - chem_volume = 200 // So we can fit densified chemicals plants - list_reagents = null - w_class = WEIGHT_CLASS_SMALL - choke_forever = TRUE - ///name of the stuff packed inside this pipe - var/packeditem - -/obj/item/cigarette/pipe/Initialize(mapload) - . = ..() - update_appearance(UPDATE_NAME) - -/obj/item/cigarette/pipe/update_name() - . = ..() - name = packeditem ? "[packeditem]-packed [initial(name)]" : "empty [initial(name)]" - -/obj/item/cigarette/pipe/put_out(mob/user, done_early = FALSE) - lit = FALSE - if(done_early) - user.visible_message(span_notice("[user] puts out [src]."), span_notice("You put out [src].")) - - else - if(user) - to_chat(user, span_notice("Your [name] goes out.")) - packeditem = null - update_appearance(UPDATE_ICON) - STOP_PROCESSING(SSobj, src) - QDEL_NULL(cig_smoke) - -/obj/item/cigarette/pipe/attackby(obj/item/thing, mob/user, params) - if(!istype(thing, /obj/item/food/grown)) - return ..() - - var/obj/item/food/grown/to_smoke = thing - if(packeditem) - to_chat(user, span_warning("It is already packed!")) - return - if(!HAS_TRAIT(to_smoke, TRAIT_DRIED)) - to_chat(user, span_warning("It has to be dried first!")) - return - - to_chat(user, span_notice("You stuff [to_smoke] into [src].")) - smoketime = 13 MINUTES - packeditem = to_smoke.name - update_name() - if(to_smoke.reagents) - to_smoke.reagents.trans_to(src, to_smoke.reagents.total_volume, transferred_by = user) - qdel(to_smoke) - - -/obj/item/cigarette/pipe/attack_self(mob/user) - var/atom/location = drop_location() - if(packeditem && !lit) - to_chat(user, span_notice("You empty [src] onto [location].")) - new /obj/effect/decal/cleanable/ash(location) - packeditem = null - smoketime = 0 - reagents.clear_reagents() - update_name() - return - return ..() - -/obj/item/cigarette/pipe/cobpipe - name = "corn cob pipe" - desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." - icon_state = "cobpipeoff" - icon_on = "cobpipeoff" //Note - these are in masks.dmi - icon_off = "cobpipeoff" - inhand_icon_on = null - inhand_icon_off = null - -///////// -//ZIPPO// -///////// -/obj/item/lighter - name = "\improper Zippo lighter" - desc = "The zippo." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "zippo" - inhand_icon_state = "zippo" - worn_icon_state = "lighter" - w_class = WEIGHT_CLASS_TINY - obj_flags = CONDUCTS_ELECTRICITY - slot_flags = ITEM_SLOT_BELT - heat = 1500 - resistance_flags = FIRE_PROOF - grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/fuel/oil = 5) - custom_price = PAYCHECK_CREW * 1.1 - light_system = OVERLAY_LIGHT - light_range = 2 - light_power = 1.3 - light_color = LIGHT_COLOR_FIRE - light_on = FALSE - /// Whether the lighter is lit. - var/lit = FALSE - /// Whether the lighter is fancy. Fancy lighters have fancier flavortext and won't burn thumbs. - var/fancy = TRUE - /// The engraving overlay used by this lighter. - var/overlay_state - /// A list of possible engraving overlays. - var/overlay_list = list( - "plain", - "dame", - "thirteen", - "snake" - ) - -/obj/item/lighter/Initialize(mapload) - . = ..() - if(!overlay_state) - overlay_state = pick(overlay_list) - AddComponent(\ - /datum/component/bullet_intercepting,\ - block_chance = 0.5,\ - active_slots = ITEM_SLOT_SUITSTORE,\ - on_intercepted = CALLBACK(src, PROC_REF(on_intercepted_bullet)),\ - ) - update_appearance() - -/// Destroy the lighter when it's shot by a bullet -/obj/item/lighter/proc/on_intercepted_bullet(mob/living/victim, obj/projectile/bullet) - victim.visible_message(span_warning("\The [bullet] shatters on [victim]'s lighter!")) - playsound(victim, SFX_RICOCHET, 100, TRUE) - new /obj/effect/decal/cleanable/oil(get_turf(src)) - do_sparks(1, TRUE, src) - victim.dropItemToGround(src, force = TRUE, silent = TRUE) - qdel(src) - -/obj/item/lighter/cyborg_unequip(mob/user) - if(!lit) - return - set_lit(FALSE) - -/obj/item/lighter/suicide_act(mob/living/carbon/user) - if (lit) - user.visible_message(span_suicide("[user] begins holding \the [src]'s flame up to [user.p_their()] face! It looks like [user.p_theyre()] trying to commit suicide!")) - playsound(src, 'sound/items/welder.ogg', 50, TRUE) - return FIRELOSS - else - user.visible_message(span_suicide("[user] begins whacking [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - return BRUTELOSS - -/obj/item/lighter/update_icon_state() - icon_state = "[initial(icon_state)][lit ? "-on" : ""]" - return ..() - -/obj/item/lighter/update_overlays() - . = ..() - . += create_lighter_overlay() - -/// Generates an overlay used by this lighter. -/obj/item/lighter/proc/create_lighter_overlay() - return mutable_appearance(icon, "lighter_overlay_[overlay_state][lit ? "-on" : ""]") - -/obj/item/lighter/ignition_effect(atom/A, mob/user) - if(get_temperature()) - . = span_infoplain(span_rose("With a single flick of [user.p_their()] wrist, [user] smoothly lights [A] with [src]. Damn [user.p_theyre()] cool.")) - -/obj/item/lighter/proc/set_lit(new_lit) - if(lit == new_lit) - return - - lit = new_lit - if(lit) - force = 5 - damtype = BURN - hitsound = 'sound/items/welder.ogg' - attack_verb_continuous = string_list(list("burns", "singes")) - attack_verb_simple = string_list(list("burn", "singe")) - START_PROCESSING(SSobj, src) - if(isliving(loc)) - var/mob/living/male_model = loc - if(male_model.fire_stacks && !(male_model.on_fire)) - male_model.ignite_mob() - else - hitsound = SFX_SWING_HIT - force = 0 - attack_verb_continuous = null //human_defense.dm takes care of it - attack_verb_simple = null - STOP_PROCESSING(SSobj, src) - set_light_on(lit) - update_appearance() - -/obj/item/lighter/extinguish() - . = ..() - set_lit(FALSE) - -/obj/item/lighter/attack_self(mob/living/user) - if(!user.is_holding(src)) - return ..() - if(lit) - set_lit(FALSE) - if(fancy) - user.visible_message( - span_notice("You hear a quiet click, as [user] shuts off [src] without even looking at what [user.p_theyre()] doing. Wow."), - span_notice("You quietly shut off [src] without even looking at what you're doing. Wow.") - ) - else - user.visible_message( - span_notice("[user] quietly shuts off [src]."), - span_notice("You quietly shut off [src].") - ) - return - - set_lit(TRUE) - if(fancy) - user.visible_message( - span_notice("Without even breaking stride, [user] flips open and lights [src] in one smooth movement."), - span_notice("Without even breaking stride, you flip open and light [src] in one smooth movement.") - ) - return - - var/hand_protected = FALSE - var/mob/living/carbon/human/human_user = user - if(!istype(human_user) || HAS_TRAIT(human_user, TRAIT_RESISTHEAT) || HAS_TRAIT(human_user, TRAIT_RESISTHEATHANDS)) - hand_protected = TRUE - else if(!istype(human_user.gloves, /obj/item/clothing/gloves)) - hand_protected = FALSE - else - var/obj/item/clothing/gloves/gloves = human_user.gloves - if(gloves.max_heat_protection_temperature) - hand_protected = (gloves.max_heat_protection_temperature > 360) - - if(hand_protected || prob(75)) - user.visible_message( - span_notice("After a few attempts, [user] manages to light [src]."), - span_notice("After a few attempts, you manage to light [src].") - ) - return - - var/hitzone = user.held_index_to_dir(user.active_hand_index) == "r" ? BODY_ZONE_PRECISE_R_HAND : BODY_ZONE_PRECISE_L_HAND - user.apply_damage(5, BURN, hitzone) - user.visible_message( - span_warning("After a few attempts, [user] manages to light [src] - however, [user.p_they()] burn[user.p_s()] [user.p_their()] finger in the process."), - span_warning("You burn yourself while lighting the lighter!") - ) - user.add_mood_event("burnt_thumb", /datum/mood_event/burnt_thumb) - - -/obj/item/lighter/attack(mob/living/carbon/M, mob/living/carbon/user) - if(lit && M.ignite_mob()) - message_admins("[ADMIN_LOOKUPFLW(user)] set [key_name_admin(M)] on fire with [src] at [AREACOORD(user)]") - log_game("[key_name(user)] set [key_name(M)] on fire with [src] at [AREACOORD(user)]") - var/obj/item/cigarette/cig = help_light_cig(M) - if(!lit || !cig || user.combat_mode) - ..() - return - - if(cig.lit) - to_chat(user, span_warning("The [cig.name] is already lit!")) - if(M == user) - cig.attackby(src, user) - return - - if(fancy) - cig.light(span_rose("[user] whips the [name] out and holds it for [M]. [user.p_Their()] arm is as steady as the unflickering flame [user.p_they()] light[user.p_s()] \the [cig] with.")) - else - cig.light(span_notice("[user] holds the [name] out for [M], and lights [M.p_their()] [cig.name].")) - - -/obj/item/lighter/process() - open_flame(heat) - -/obj/item/lighter/get_temperature() - return lit * heat - - -/obj/item/lighter/greyscale - name = "cheap lighter" - desc = "A cheap lighter." - icon_state = "lighter" - fancy = FALSE - overlay_list = list( - "transp", - "tall", - "matte", - "zoppo" //u cant stoppo th zoppo - ) - - /// The color of the lighter. - var/lighter_color - /// The set of colors this lighter can be autoset as on init. - var/list/color_list = list( //Same 16 color selection as electronic assemblies - COLOR_ASSEMBLY_BLACK, - COLOR_FLOORTILE_GRAY, - COLOR_ASSEMBLY_BGRAY, - COLOR_ASSEMBLY_WHITE, - COLOR_ASSEMBLY_RED, - COLOR_ASSEMBLY_ORANGE, - COLOR_ASSEMBLY_BEIGE, - COLOR_ASSEMBLY_BROWN, - COLOR_ASSEMBLY_GOLD, - COLOR_ASSEMBLY_YELLOW, - COLOR_ASSEMBLY_GURKHA, - COLOR_ASSEMBLY_LGREEN, - COLOR_ASSEMBLY_GREEN, - COLOR_ASSEMBLY_LBLUE, - COLOR_ASSEMBLY_BLUE, - COLOR_ASSEMBLY_PURPLE - ) - -/obj/item/lighter/greyscale/Initialize(mapload) - . = ..() - if(!lighter_color) - lighter_color = pick(color_list) - update_appearance() - -/obj/item/lighter/greyscale/create_lighter_overlay() - var/mutable_appearance/lighter_overlay = ..() - lighter_overlay.color = lighter_color - return lighter_overlay - -/obj/item/lighter/greyscale/ignition_effect(atom/A, mob/user) - if(get_temperature()) - . = span_notice("After some fiddling, [user] manages to light [A] with [src].") - - -/obj/item/lighter/slime - name = "slime zippo" - desc = "A specialty zippo made from slimes and industry. Has a much hotter flame than normal." - icon_state = "slighter" - heat = 3000 //Blue flame! - light_color = LIGHT_COLOR_CYAN - overlay_state = "slime" - grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/medicine/pyroxadone = 5) - -/obj/item/lighter/skull - name = "badass zippo" - desc = "An absolutely badass zippo lighter. Just look at that skull!" - overlay_state = "skull" - -/obj/item/lighter/mime - name = "pale zippo" - desc = "In lieu of fuel, performative spirit can be used to light cigarettes." - icon_state = "mlighter" //These ones don't show a flame. - light_color = LIGHT_COLOR_HALOGEN - heat = 0 //I swear it's a real lighter dude you just can't see the flame dude I promise - overlay_state = "mime" - grind_results = list(/datum/reagent/iron = 1, /datum/reagent/toxin/mutetoxin = 5, /datum/reagent/consumable/nothing = 10) - light_range = 0 - light_power = 0 - fancy = FALSE - -/obj/item/lighter/mime/ignition_effect(atom/A, mob/user) - . = span_infoplain("[user] lifts the [name] to the [A], which miraculously lights!") - -/obj/item/lighter/bright - name = "illuminative zippo" - desc = "Sustains an incredibly bright chemical reaction when you spark it. Avoid looking directly at the igniter when lit." - icon_state = "slighter" - light_color = LIGHT_COLOR_ELECTRIC_CYAN - overlay_state = "bright" - grind_results = list(/datum/reagent/iron = 1, /datum/reagent/flash_powder = 10) - light_range = 8 - light_power = 3 //Irritatingly bright and large enough to cover a small room. - fancy = FALSE - -/obj/item/lighter/bright/examine(mob/user) - . = ..() - - if(lit && isliving(user)) - var/mob/living/current_viewer = user - current_viewer.flash_act(4) - -/obj/item/lighter/bright/ignition_effect(atom/A, mob/user) - if(get_temperature()) - . = span_infoplain(span_rose("[user] lifts the [src] to the [A], igniting it with a brilliant flash of light!")) - var/mob/living/current_viewer = user - current_viewer.flash_act(4) - -/obj/effect/spawner/random/special_lighter - name = "special lighter spawner" - icon_state = "lighter" - loot = list( - /obj/item/lighter/skull, - /obj/item/lighter/mime, - /obj/item/lighter/bright, - ) - -/////////// -//ROLLING// -/////////// -/obj/item/rollingpaper - name = "rolling paper" - desc = "A thin piece of paper used to make fine smokeables." - icon = 'icons/obj/cigarettes.dmi' - icon_state = "cig_paper" - w_class = WEIGHT_CLASS_TINY - -/obj/item/rollingpaper/Initialize(mapload) - . = ..() - AddComponent(/datum/component/customizable_reagent_holder, /obj/item/cigarette/rollie, CUSTOM_INGREDIENT_ICON_NOCHANGE, ingredient_type=CUSTOM_INGREDIENT_TYPE_DRYABLE, max_ingredients=2) - - -/////////////// -//VAPE NATION// -/////////////// -/obj/item/vape - name = "\improper E-Cigarette" - desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that. - icon_state = "vape" - worn_icon_state = "vape_worn" - greyscale_config = /datum/greyscale_config/vape - greyscale_config_worn = /datum/greyscale_config/vape/worn - greyscale_colors = "#2e2e2e" - inhand_icon_state = null - w_class = WEIGHT_CLASS_TINY - slot_flags = ITEM_SLOT_MASK - flags_1 = IS_PLAYER_COLORABLE_1 - - /// The capacity of the vape. - var/chem_volume = 100 - /// The amount of time between drags. - var/dragtime = 8 SECONDS - /// A cooldown to prevent huffing the vape all at once. - COOLDOWN_DECLARE(drag_cooldown) - /// Whether the resevoir is open and we can add reagents. - var/screw = FALSE - /// Whether the vape has been overloaded to spread smoke. - var/super = FALSE - -/obj/item/vape/Initialize(mapload) - . = ..() - create_reagents(chem_volume, NO_REACT) - reagents.add_reagent(/datum/reagent/drug/nicotine, 50) - -/obj/item/vape/suicide_act(mob/living/user) - user.visible_message(span_suicide("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!"))//it doesn't give you cancer, it is cancer - return (TOXLOSS|OXYLOSS) - -/obj/item/vape/screwdriver_act(mob/living/user, obj/item/tool) - if(!screw) - screw = TRUE - to_chat(user, span_notice("You open the cap on [src].")) - reagents.flags |= OPENCONTAINER - if(obj_flags & EMAGGED) - icon_state = "vape_open_high" - set_greyscale(new_config = /datum/greyscale_config/vape/open_high) - else if(super) - icon_state = "vape_open_med" - set_greyscale(new_config = /datum/greyscale_config/vape/open_med) - else - icon_state = "vape_open_low" - set_greyscale(new_config = /datum/greyscale_config/vape/open_low) - else - screw = FALSE - to_chat(user, span_notice("You close the cap on [src].")) - reagents.flags &= ~(OPENCONTAINER) - icon_state = initial(icon_state) - set_greyscale(new_config = initial(greyscale_config)) - -/obj/item/vape/multitool_act(mob/living/user, obj/item/tool) - . = TRUE - if(screw && !(obj_flags & EMAGGED))//also kinky - if(!super) - super = TRUE - to_chat(user, span_notice("You increase the voltage of [src].")) - icon_state = "vape_open_med" - set_greyscale(new_config = /datum/greyscale_config/vape/open_med) - else - super = FALSE - to_chat(user, span_notice("You decrease the voltage of [src].")) - icon_state = "vape_open_low" - set_greyscale(new_config = /datum/greyscale_config/vape/open_low) - - if(screw && (obj_flags & EMAGGED)) - to_chat(user, span_warning("[src] can't be modified!")) - -/obj/item/vape/emag_act(mob/user, obj/item/card/emag/emag_card) // I WON'T REGRET WRITTING THIS, SURLY. - - if (!screw) - balloon_alert(user, "open the cap first!") - return FALSE - - if (obj_flags & EMAGGED) - balloon_alert(user, "already emagged!") - return FALSE - - obj_flags |= EMAGGED - super = FALSE - balloon_alert(user, "voltage maximized") - icon_state = "vape_open_high" - set_greyscale(new_config = /datum/greyscale_config/vape/open_high) - var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect - sp.set_up(5, 1, src) - sp.start() - return TRUE - -/obj/item/vape/attack_self(mob/user) - if(reagents.total_volume > 0) - to_chat(user, span_notice("You empty [src] of all reagents.")) - reagents.clear_reagents() - -/obj/item/vape/equipped(mob/user, slot) - . = ..() - if(!(slot & ITEM_SLOT_MASK)) - return - - if(screw) - to_chat(user, span_warning("You need to close the cap first!")) - return - - to_chat(user, span_notice("You start puffing on the vape.")) - reagents.flags &= ~(NO_REACT) - START_PROCESSING(SSobj, src) - -/obj/item/vape/dropped(mob/user) - . = ..() - if(user.get_item_by_slot(ITEM_SLOT_MASK) == src) - reagents.flags |= NO_REACT - STOP_PROCESSING(SSobj, src) - -/obj/item/vape/proc/handle_reagents() - if(!reagents.total_volume) - return - - var/mob/living/carbon/vaper = loc - if(!iscarbon(vaper) || src != vaper.wear_mask) - reagents.remove_all(REAGENTS_METABOLISM) - return - - if(reagents.get_reagent_amount(/datum/reagent/fuel)) - //HOT STUFF - vaper.adjust_fire_stacks(2) - vaper.ignite_mob() - - if(reagents.get_reagent_amount(/datum/reagent/toxin/plasma)) // the plasma explodes when exposed to fire - var/datum/effect_system/reagents_explosion/e = new() - e.set_up(round(reagents.get_reagent_amount(/datum/reagent/toxin/plasma) / 2.5, 1), get_turf(src), 0, 0) - e.start(src) - qdel(src) - - if(!reagents.trans_to(vaper, REAGENTS_METABOLISM, methods = INGEST, ignore_stomach = TRUE)) - reagents.remove_all(REAGENTS_METABOLISM) - -/obj/item/vape/process(seconds_per_tick) - var/mob/living/M = loc - - if(isliving(loc)) - M.ignite_mob() - - if(!reagents.total_volume) - if(ismob(loc)) - to_chat(M, span_warning("[src] is empty!")) - STOP_PROCESSING(SSobj, src) - //it's reusable so it won't unequip when empty - return - - if(!COOLDOWN_FINISHED(src, drag_cooldown)) - return - - //Time to start puffing those fat vapes, yo. - COOLDOWN_START(src, drag_cooldown, dragtime) - if(obj_flags & EMAGGED) - var/datum/effect_system/fluid_spread/smoke/chem/smoke_machine/puff = new - puff.set_up(4, holder = src, location = loc, carry = reagents, efficiency = 24) - puff.start() - if(prob(5)) //small chance for the vape to break and deal damage if it's emagged - playsound(get_turf(src), 'sound/effects/pop_expl.ogg', 50, FALSE) - M.apply_damage(20, BURN, BODY_ZONE_HEAD) - M.Paralyze(300) - var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread - sp.set_up(5, 1, src) - sp.start() - to_chat(M, span_userdanger("[src] suddenly explodes in your mouth!")) - qdel(src) - return - else if(super) - var/datum/effect_system/fluid_spread/smoke/chem/smoke_machine/puff = new - puff.set_up(1, holder = src, location = loc, carry = reagents, efficiency = 24) - puff.start() - - handle_reagents() - -/obj/item/vape/red - greyscale_colors = "#A02525" - flags_1 = NONE - -/obj/item/vape/blue - greyscale_colors = "#294A98" - flags_1 = NONE - -/obj/item/vape/purple - greyscale_colors = "#9900CC" - flags_1 = NONE - -/obj/item/vape/green - greyscale_colors = "#3D9829" - flags_1 = NONE - -/obj/item/vape/yellow - greyscale_colors = "#DAC20E" - flags_1 = NONE - -/obj/item/vape/orange - greyscale_colors = "#da930e" - flags_1 = NONE - -/obj/item/vape/black - greyscale_colors = "#2e2e2e" - flags_1 = NONE - -/obj/item/vape/white - greyscale_colors = "#DCDCDC" - flags_1 = NONE diff --git a/code/game/objects/items/circuitboards/circuitboard.dm b/code/game/objects/items/circuitboards/circuitboard.dm index 236b6ed402c4a..6439ef9ccbe94 100644 --- a/code/game/objects/items/circuitboards/circuitboard.dm +++ b/code/game/objects/items/circuitboards/circuitboard.dm @@ -17,8 +17,8 @@ grind_results = list(/datum/reagent/silicon = 20) greyscale_colors = CIRCUIT_COLOR_GENERIC var/build_path = null - ///determines if the circuit board originated from a vendor off station or not. - var/onstation = TRUE + /// whether or not the circuit board will build into a vendor whose products cost nothing (used for offstation vending machines mostly) + var/all_products_free = FALSE ///determines if the board requires specific levels of parts. (ie specifically a femto menipulator vs generic manipulator) var/specific_parts = FALSE diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 41950561571d6..9c3cde9f725a5 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -403,6 +403,29 @@ name = "R&D Console" greyscale_colors = CIRCUIT_COLOR_SCIENCE build_path = /obj/machinery/computer/rdconsole + var/silence_announcements = FALSE + +/obj/item/circuitboard/computer/rdconsole/examine(mob/user) + . = ..() + . += span_info("The board is configured to [silence_announcements ? "silence" : "announce"] researched nodes on radio.") + . += span_notice("The board mode can be changed with a [EXAMINE_HINT("multitool")].") + +/obj/item/circuitboard/computer/rdconsole/multitool_act(mob/living/user) + . = ..() + if(obj_flags & EMAGGED) + balloon_alert(user, "board mode is broken!") + return + silence_announcements = !silence_announcements + balloon_alert(user, "announcements [silence_announcements ? "enabled" : "disabled"]") + +/obj/item/circuitboard/computer/rdconsole/emag_act(mob/user, obj/item/card/emag/emag_card) + if (obj_flags & EMAGGED) + return FALSE + + obj_flags |= EMAGGED + silence_announcements = FALSE + to_chat(user, span_notice("You overload the node announcement chip, forcing every node to be announced on the common channel.")) + return TRUE /obj/item/circuitboard/computer/rdservercontrol name = "R&D Server Control" diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index f4168b7b37747..828da83dc24eb 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -329,7 +329,7 @@ /obj/item/circuitboard/machine/scanner_gate name = "Scanner Gate" - greyscale_colors = CIRCUIT_COLOR_ENGINEERING + greyscale_colors = CIRCUIT_COLOR_SECURITY build_path = /obj/machinery/scanner_gate req_components = list( /datum/stock_part/scanning_module = 3) @@ -344,6 +344,23 @@ /datum/stock_part/capacitor = 1) def_components = list(/obj/item/stock_parts/power_store/battery = /obj/item/stock_parts/power_store/battery/high/empty) +/obj/item/circuitboard/machine/smes/connector + name = "power connector" + build_path = /obj/machinery/power/smes/connector + req_components = list( + /obj/item/stack/cable_coil = 5, + /datum/stock_part/capacitor = 1,) + +/obj/item/circuitboard/machine/smesbank + name = "portable SMES" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + needs_anchored = FALSE + build_path = /obj/machinery/power/smesbank + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/stock_parts/power_store/battery = 5,) + def_components = list(/obj/item/stock_parts/power_store/battery = /obj/item/stock_parts/power_store/battery/high/empty) + /obj/item/circuitboard/machine/techfab/department/engineering name = "\improper Departmental Techfab - Engineering" greyscale_colors = CIRCUIT_COLOR_ENGINEERING @@ -352,6 +369,9 @@ /obj/item/circuitboard/machine/smes/super def_components = list(/obj/item/stock_parts/power_store/battery = /obj/item/stock_parts/power_store/battery/super/empty) +/obj/item/circuitboard/machine/smesbank/super + def_components = list(/obj/item/stock_parts/power_store/battery = /obj/item/stock_parts/power_store/battery/super/empty) + /obj/item/circuitboard/machine/thermomachine name = "Thermomachine" greyscale_colors = CIRCUIT_COLOR_ENGINEERING @@ -572,6 +592,11 @@ return . += span_info("[src] is set to [fridges_name_paths[build_path]]. You can use a screwdriver to reconfigure it.") +/obj/item/circuitboard/machine/dehydrator + name = "Dehydrator" + build_path = /obj/machinery/smartfridge/drying + req_components = list(/datum/stock_part/matter_bin = 1) + needs_anchored = FALSE /obj/item/circuitboard/machine/space_heater name = "Space Heater" @@ -626,6 +651,7 @@ /obj/machinery/vending/coffee = "Solar's Best Hot Drinks", /obj/machinery/vending/cola = "Robust Softdrinks", /obj/machinery/vending/custom = "Custom Vendor", + /obj/machinery/vending/cytopro = "CytoPro", /obj/machinery/vending/dinnerware = "Plasteel Chef's Dinnerware Vendor", /obj/machinery/vending/drugs = "NanoDrug Plus", /obj/machinery/vending/engineering = "Robco Tool Maker", @@ -703,6 +729,13 @@ /obj/item/stack/sheet/glass = 1, /obj/item/vending_refill/donksoft = 1) +/obj/item/circuitboard/machine/vending/donksnackvendor + name = "Donk Co Snack Vendor" + build_path = /obj/machinery/vending/donksnack + req_components = list( + /obj/item/stack/sheet/glass = 1, + /obj/item/vending_refill/donksnackvendor = 1) + /obj/item/circuitboard/machine/bountypad name = "Civilian Bounty Pad" greyscale_colors = CIRCUIT_COLOR_GENERIC @@ -910,6 +943,9 @@ /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/glass = 2) +/obj/item/circuitboard/machine/sleeper/syndie + build_path = /obj/machinery/sleeper/syndie + /obj/item/circuitboard/machine/sleeper/fullupgrade build_path = /obj/machinery/sleeper/syndie/fullupgrade req_components = list( @@ -1274,6 +1310,15 @@ /obj/item/stack/sheet/glass = 1) needs_anchored = FALSE +/obj/item/circuitboard/machine/hydroponics/fullupgrade + build_path = /obj/machinery/hydroponics/constructable/fullupgrade + specific_parts = TRUE + req_components = list( + /datum/stock_part/matter_bin/tier4 = 2, + /datum/stock_part/servo/tier4 = 1, + /obj/item/stack/sheet/glass = 1 + ) + /obj/item/circuitboard/machine/microwave name = "Microwave" greyscale_colors = CIRCUIT_COLOR_SERVICE @@ -1360,6 +1405,10 @@ /datum/stock_part/capacitor = 1) needs_anchored = FALSE +/obj/item/circuitboard/machine/fishing_portal_generator/emagged + name = "Emagged Fishing Portal Generator" + build_path = /obj/machinery/fishing_portal_generator/emagged + //Supply /obj/item/circuitboard/machine/ore_redemption name = "Ore Redemption" @@ -1669,3 +1718,82 @@ req_components = list( /obj/item/pipe/trinary/flippable/filter = 1, ) + +/obj/item/circuitboard/machine/portagrav + name = "Portable Gravity Unit" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/portagrav + req_components = list( + /datum/stock_part/capacitor = 2, + /datum/stock_part/micro_laser = 2, + /obj/item/stack/sheet/glass = 1) + +/obj/item/circuitboard/machine/big_manipulator + name = "Big Manipulator" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/big_manipulator + req_components = list( + /datum/stock_part/servo = 1, + ) + +/obj/item/circuitboard/machine/manucrafter + name = /obj/machinery/power/manufacturing/crafter::name + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/manufacturing/crafter + req_components = list( + /obj/item/stack/sheet/iron = 5, + /datum/stock_part/servo = 1, + ) + +/obj/item/circuitboard/machine/manulathe + name = /obj/machinery/power/manufacturing/lathe::name + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/manufacturing/lathe + req_components = list( + /obj/item/stack/sheet/iron = 5, + /datum/stock_part/matter_bin = 1, + ) + +/obj/item/circuitboard/machine/manucrusher + name = /obj/machinery/power/manufacturing/crusher::name + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/manufacturing/crusher + req_components = list( + /obj/item/stack/sheet/iron = 5, + /datum/stock_part/servo = 1, + ) + +/obj/item/circuitboard/machine/manuunloader + name = /obj/machinery/power/manufacturing/unloader::name + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/manufacturing/unloader + req_components = list( + /obj/item/stack/sheet/iron = 5, + /datum/stock_part/servo = 1, + ) + +/obj/item/circuitboard/machine/manusorter + name = /obj/machinery/power/manufacturing/sorter::name + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/manufacturing/sorter + req_components = list( + /obj/item/stack/sheet/iron = 5, + /datum/stock_part/scanning_module = 1, + ) + +/obj/item/circuitboard/machine/manusmelter + name = /obj/machinery/power/manufacturing/smelter::name + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/manufacturing/smelter + req_components = list( + /obj/item/stack/sheet/iron = 5, + /datum/stock_part/micro_laser = 1, + ) + +/obj/item/circuitboard/machine/manurouter + name = /obj/machinery/power/manufacturing/router::name + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/power/manufacturing/router + req_components = list( + /obj/item/stack/sheet/iron = 5, + ) diff --git a/code/game/objects/items/climbingrope.dm b/code/game/objects/items/climbingrope.dm index 693f850be2a98..f10a9db76704c 100644 --- a/code/game/objects/items/climbingrope.dm +++ b/code/game/objects/items/climbingrope.dm @@ -27,6 +27,8 @@ . += span_notice("The rope looks like you could use it [uses] times before it falls apart.") /obj/item/climbing_hook/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(HAS_TRAIT(interacting_with, TRAIT_COMBAT_MODE_SKIP_INTERACTION)) + return NONE return ranged_interact_with_atom(interacting_with, user, modifiers) /obj/item/climbing_hook/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) @@ -46,11 +48,23 @@ var/away_dir = get_dir(above, target) user.visible_message(span_notice("[user] begins climbing upwards with [src]."), span_notice("You get to work on properly hooking [src] and going upwards.")) - playsound(target, 'sound/effects/picaxe1.ogg', 50) //plays twice so people above and below can hear - playsound(user_turf, 'sound/effects/picaxe1.ogg', 50) + playsound(target, 'sound/effects/pickaxe/picaxe1.ogg', 50) //plays twice so people above and below can hear + playsound(user_turf, 'sound/effects/pickaxe/picaxe1.ogg', 50) var/list/effects = list(new /obj/effect/temp_visual/climbing_hook(target, away_dir), new /obj/effect/temp_visual/climbing_hook(user_turf, away_dir)) - if(do_after(user, climb_time, target)) + // Our climbers athletics ability + var/fitness_level = user.mind?.get_skill_level(/datum/skill/athletics) + + // Misc bonuses to the climb speed. + var/misc_multiplier = 1 + + var/obj/item/organ/internal/cyberimp/chest/spine/potential_spine = user.get_organ_slot(ORGAN_SLOT_SPINE) + if(istype(potential_spine)) + misc_multiplier *= potential_spine.athletics_boost_multiplier + + var/final_climb_time = (climb_time - fitness_level) * misc_multiplier + + if(do_after(user, final_climb_time, target)) user.forceMove(target) uses-- diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm index 3d817d24ccf2b..1870b6dd2ba0f 100644 --- a/code/game/objects/items/clown_items.dm +++ b/code/game/objects/items/clown_items.dm @@ -74,7 +74,7 @@ /obj/item/soap/nanotrasen/cyborg /obj/item/soap/deluxe - desc = "A deluxe Waffle Co. brand bar of soap. Smells of high-class luxury." + desc = "A deluxe Waffle Corporation brand bar of soap. Smells of high-class luxury." grind_results = list(/datum/reagent/consumable/aloejuice = 10, /datum/reagent/lye = 10) icon_state = "soapdeluxe" inhand_icon_state = "soapdeluxe" @@ -89,6 +89,13 @@ worn_icon_state = "soapsyndie" cleanspeed = 0.5 SECONDS //faster than mops so it's useful for traitors who want to clean crime scenes +/obj/item/soap/drone + name = "\improper integrated soap module" + inhand_icon_state = "soapnt" + worn_icon_state = "soapnt" + cleanspeed = 0.5 SECONDS //can be changed if someone isn't happy + uses = INFINITY + /obj/item/soap/omega name = "\improper Omega soap" desc = "The most advanced soap known to mankind. The beginning of the end for germs." @@ -154,9 +161,6 @@ return CLEAN_BLOCKED return ..() -/obj/item/soap/storage_insert_on_interaction(datum/storage, atom/storage_holder, mob/living/user) - return !user.combat_mode // only cleans a storage item if on combat - /* * Bike Horns */ @@ -205,7 +209,7 @@ desc = "Damn son, where'd you find this?" icon_state = "air_horn" worn_icon_state = "horn_air" - sound_file = 'sound/items/airhorn2.ogg' + sound_file = 'sound/items/airhorn/airhorn2.ogg' /datum/crafting_recipe/airhorn name = "Air Horn" diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index abad07f96d844..9734661e88f63 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -35,10 +35,12 @@ update_icon_state() balloon_alert(user, "mode: [desc[mode]]") -/obj/item/door_remote/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - return interact_with_atom(interacting_with, user, modifiers) - /obj/item/door_remote/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(!istype(interacting_with, /obj/machinery/door) && !isturf(interacting_with)) + return NONE + return ranged_interact_with_atom(interacting_with, user, modifiers) + +/obj/item/door_remote/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) var/obj/machinery/door/door if (istype(interacting_with, /obj/machinery/door)) diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index b16cf3a6ef61a..45b716997c16b 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -8,6 +8,7 @@ desc = "A generic brand of lipstick." icon = 'icons/obj/cosmetic.dmi' icon_state = "lipstick" + base_icon_state = "lipstick" inhand_icon_state = "lipstick" w_class = WEIGHT_CLASS_TINY interaction_flags_click = NEED_DEXTERITY|NEED_HANDS|ALLOW_RESTING @@ -18,6 +19,8 @@ var/style = "lipstick" /// A trait that's applied while someone has this lipstick applied, and is removed when the lipstick is removed var/lipstick_trait + /// Can this lipstick spawn randomly + var/random_spawn = TRUE /obj/item/lipstick/Initialize(mapload) . = ..() @@ -34,8 +37,8 @@ . += "Alt-click to change the style." /obj/item/lipstick/update_icon_state() - icon_state = "lipstick[open ? "_uncap" : null]" - inhand_icon_state = "lipstick[open ? "open" : null]" + icon_state = "[base_icon_state][open ? "_uncap" : null]" + inhand_icon_state = "[base_icon_state][open ? "open" : null]" return ..() /obj/item/lipstick/update_overlays() @@ -72,7 +75,7 @@ /obj/item/lipstick/proc/check_menu(mob/living/user) if(!istype(user)) return FALSE - if(user.incapacitated() || !user.is_holding(src)) + if(user.incapacitated || !user.is_holding(src)) return FALSE return TRUE @@ -104,6 +107,16 @@ name = "\improper Kiss of Death" desc = "An incredibly potent tube of lipstick made from the venom of the dreaded Yellow Spotted Space Lizard, as deadly as it is chic. Try not to smear it!" lipstick_trait = TRAIT_KISS_OF_DEATH + random_spawn = FALSE + +/obj/item/lipstick/syndie + name = "syndie lipstick" + desc = "Syndicate branded lipstick with a killer dose of kisses. Observe safety regulations!" + icon_state = "slipstick" + base_icon_state = "slipstick" + lipstick_color = COLOR_SYNDIE_RED + lipstick_trait = TRAIT_SYNDIE_KISS + random_spawn = FALSE /obj/item/lipstick/random name = "lipstick" @@ -116,7 +129,7 @@ if(!possible_colors) possible_colors = list() for(var/obj/item/lipstick/lipstick_path as anything in (typesof(/obj/item/lipstick) - src.type)) - if(!initial(lipstick_path.lipstick_color)) + if(!initial(lipstick_path.lipstick_color) || !initial(lipstick_path.random_spawn)) continue possible_colors[initial(lipstick_path.lipstick_color)] = initial(lipstick_path.name) lipstick_color = pick(possible_colors) @@ -189,7 +202,7 @@ /obj/item/razor/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins shaving [user.p_them()]self without the razor guard! It looks like [user.p_theyre()] trying to commit suicide!")) shave(user, BODY_ZONE_PRECISE_MOUTH) - shave(user, BODY_ZONE_HEAD)//doesnt need to be BODY_ZONE_HEAD specifically, but whatever + shave(user, BODY_ZONE_HEAD)//doesn't need to be BODY_ZONE_HEAD specifically, but whatever return BRUTELOSS /obj/item/razor/proc/shave(mob/living/carbon/human/skinhead, location = BODY_ZONE_PRECISE_MOUTH) @@ -197,7 +210,7 @@ skinhead.set_facial_hairstyle("Shaved", update = TRUE) else skinhead.set_hairstyle("Skinhead", update = TRUE) - playsound(loc, 'sound/items/welder2.ogg', 20, TRUE) + playsound(loc, 'sound/items/tools/welder2.ogg', 20, TRUE) /obj/item/razor/attack(mob/target_mob, mob/living/user, params) if(!ishuman(target_mob)) diff --git a/code/game/objects/items/crab17.dm b/code/game/objects/items/crab17.dm index 45bb25285ef24..630637316b355 100644 --- a/code/game/objects/items/crab17.dm +++ b/code/game/objects/items/crab17.dm @@ -79,7 +79,7 @@ var/throwtarget = get_step(user, get_dir(src, user)) user.safe_throw_at(throwtarget, 1, 1, force = MOVE_FORCE_EXTREMELY_STRONG) - playsound(get_turf(src),'sound/magic/repulse.ogg', 100, TRUE) + playsound(get_turf(src),'sound/effects/magic/repulse.ogg', 100, TRUE) return @@ -126,7 +126,7 @@ sleep(3 SECONDS) if(QDELETED(src)) return - playsound(src,'sound/machines/twobeep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/twobeep.ogg',50,FALSE) var/mutable_appearance/hologram = mutable_appearance(icon, "hologram") hologram.pixel_y = 16 add_overlay(hologram) @@ -158,7 +158,7 @@ sleep(0.5 SECONDS) if(QDELETED(src)) return - playsound(src,'sound/machines/triple_beep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/triple_beep.ogg',50,FALSE) add_overlay("text") sleep(1 SECONDS) if(QDELETED(src)) @@ -247,7 +247,7 @@ dump = new /obj/structure/checkoutmachine(null, bogdanoff) priority_announce("The spacecoin bubble has popped! Get to the credit deposit machine at [get_area(src)] and cash out before you lose all of your funds!", sender_override = "CRAB-17 Protocol") animate(DF, pixel_z = -8, time = 5, , easing = LINEAR_EASING) - playsound(src, 'sound/weapons/mortar_whistle.ogg', 70, TRUE, 6) + playsound(src, 'sound/items/weapons/mortar_whistle.ogg', 70, TRUE, 6) addtimer(CALLBACK(src, PROC_REF(endLaunch)), 5, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 9bc86d0c7f96b..221e73f8596dd 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -372,7 +372,7 @@ .["selected_color"] = GLOB.pipe_color_name[paint_color] || paint_color .["paint_colors"] = GLOB.pipe_paint_colors -/obj/item/toy/crayon/ui_act(action, list/params) +/obj/item/toy/crayon/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -384,7 +384,7 @@ . = TRUE if("select_stencil") var/stencil = params["item"] - if(stencil in all_drawables + randoms) + if(stencil in (all_drawables + randoms)) drawtype = stencil . = TRUE text_buffer = "" @@ -402,7 +402,7 @@ set_painting_tool_color(paint_color) . = TRUE if("enter_text") - var/txt = tgui_input_text(usr, "Choose what to write", "Scribbles", text_buffer) + var/txt = tgui_input_text(usr, "Choose what to write", "Scribbles", text_buffer, max_length = MAX_MESSAGE_LEN) if(isnull(txt)) return txt = crayon_text_strip(txt) @@ -458,6 +458,12 @@ if(RANDOM_ANY) drawing = pick(all_drawables) + if(drawing in graffiti_large_h) + paint_mode = PAINT_LARGE_HORIZONTAL + text_buffer = "" + else + paint_mode = PAINT_NORMAL + var/istagger = HAS_TRAIT(user, TRAIT_TAGGER) var/cost = all_drawables[drawing] || CRAYON_COST_DEFAULT if(istype(target, /obj/item/canvas)) @@ -479,7 +485,7 @@ temp = "symbol" else if(drawing in drawings) temp = "drawing" - else if(drawing in graffiti|oriented) + else if(drawing in (graffiti|oriented)) temp = "graffiti" var/graf_rot @@ -498,8 +504,8 @@ var/clicky if(LAZYACCESS(modifiers, ICON_X) && LAZYACCESS(modifiers, ICON_Y)) - clickx = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2) - clicky = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2) + clickx = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(ICON_SIZE_X/2), ICON_SIZE_X/2) + clicky = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(ICON_SIZE_Y/2), ICON_SIZE_Y/2) if(!instant) to_chat(user, span_notice("You start drawing a [temp] on the [target.name]...")) @@ -645,13 +651,38 @@ dye_color = DYE_BLACK /obj/item/toy/crayon/white - name = "white crayon" + name = "stick of chalk" + desc = "A stark-white stick of chalk." icon_state = "crayonwhite" paint_color = COLOR_WHITE crayon_color = "white" reagent_contents = list(/datum/reagent/consumable/nutriment = 0.5, /datum/reagent/colorful_reagent/powder/white/crayon = 1.5) dye_color = DYE_WHITE +/obj/item/toy/crayon/white/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + /// Wherein, we draw a chalk body outline vaguely around the dead or "dead" mob + if(!ishuman(interacting_with) || user.combat_mode) + return ..() + + var/mob/living/carbon/human/pwned_human = interacting_with + + if(!(pwned_human.stat == DEAD || HAS_TRAIT(pwned_human, TRAIT_FAKEDEATH))) + balloon_alert_to_viewers("FEEDING TIME") + return ..() + + balloon_alert_to_viewers("drawing outline...") + if(!do_after(user, DRAW_TIME, target = pwned_human, max_interact_count = 4)) + return NONE + if(!use_charges(user, 1)) + return NONE + + var/decal_rotation = GET_LYING_ANGLE(pwned_human) - 90 + var/obj/effect/decal/cleanable/crayon/chalk_line = new(get_turf(pwned_human), paint_color, "body", "chalk outline", decal_rotation, null, "A vaguely [pwned_human] shaped outline of a body.") + to_chat(user, span_notice("You draw a chalk outline around [pwned_human].")) + chalk_line.pixel_y = (pwned_human.pixel_y + pwned_human.pixel_z) + rand(-2, 2) + chalk_line.pixel_x = (pwned_human.pixel_x + pwned_human.pixel_w) + rand(-1, 1) + return ITEM_INTERACT_SUCCESS + /obj/item/toy/crayon/mime name = "mime crayon" icon_state = "crayonmime" @@ -796,7 +827,6 @@ return (isfloorturf(surface) || iswallturf(surface)) /obj/item/toy/crayon/spraycan/suicide_act(mob/living/user) - var/mob/living/carbon/human/H = user var/used = min(charges_left, 10) if(is_capped || !actually_paints || !use_charges(user, 10, FALSE)) user.visible_message(span_suicide("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, but nothing happens!")) @@ -811,7 +841,7 @@ set_painting_tool_color(COLOR_SILVER) update_appearance() if(actually_paints) - H.update_lips("spray_face", paint_color) + user.AddComponent(/datum/component/face_decal, "spray", EXTERNAL_ADJACENT, paint_color) reagents.trans_to(user, used, volume_multiplier, transferred_by = user, methods = VAPOR) return OXYLOSS @@ -835,7 +865,10 @@ /obj/item/toy/crayon/spraycan/can_use_on(atom/target, mob/user, list/modifiers) if(iscarbon(target)) return TRUE - if(ismob(target) && (HAS_TRAIT(target, TRAIT_SPRAY_PAINTABLE))) + if(is_capped && HAS_TRAIT(target, TRAIT_COMBAT_MODE_SKIP_INTERACTION)) + // specifically don't try to use a capped spraycan on stuff like bags and tables, just place it + return FALSE + if(ismob(target) && HAS_TRAIT(target, TRAIT_SPRAY_PAINTABLE)) return TRUE if(isobj(target) && !(target.flags_1 & UNPAINTABLE_1)) return TRUE @@ -860,13 +893,13 @@ if(carbon_target.client) carbon_target.set_eye_blur_if_lower(6 SECONDS) carbon_target.adjust_temp_blindness(2 SECONDS) - if(carbon_target.get_eye_protection() <= 0) // no eye protection? ARGH IT BURNS. Warning: don't add a stun here. It's a roundstart item with some quirks. + if(carbon_target.get_eye_protection() <= 0 || carbon_target.is_eyes_covered()) // no eye protection? ARGH IT BURNS. Warning: don't add a stun here. It's a roundstart item with some quirks. added redundancy because gas masks don't give you eye protection carbon_target.adjust_jitter(1 SECONDS) carbon_target.adjust_eye_blur(0.5 SECONDS) flash_color(carbon_target, flash_color=paint_color, flash_time=40) if(ishuman(carbon_target) && actually_paints) var/mob/living/carbon/human/human_target = carbon_target - human_target.update_lips("spray_face", paint_color) + human_target.AddComponent(/datum/component/face_decal, "spray", EXTERNAL_ADJACENT, paint_color) use_charges(user, 10, FALSE) var/fraction = min(1, . / reagents.maximum_volume) reagents.expose(carbon_target, VAPOR, fraction * volume_multiplier) @@ -937,6 +970,10 @@ /obj/item/toy/crayon/spraycan/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) if(is_capped) + if(!interacting_with.color) + // let's be generous and assume if they're trying to match something with no color, while capped, + // we shouldn't be blocking further interactions + return NONE balloon_alert(user, "take the cap off first!") return ITEM_INTERACT_BLOCKING if(check_empty(user)) @@ -973,9 +1010,6 @@ update_appearance() return CLICK_ACTION_SUCCESS -/obj/item/toy/crayon/spraycan/storage_insert_on_interaction(datum/storage, atom/storage_holder, mob/user) - return is_capped - /obj/item/toy/crayon/spraycan/update_icon_state() icon_state = is_capped ? icon_capped : icon_uncapped return ..() diff --git a/code/game/objects/items/debug_items.dm b/code/game/objects/items/debug_items.dm index 071561d57a095..fb6400fc7b36c 100644 --- a/code/game/objects/items/debug_items.dm +++ b/code/game/objects/items/debug_items.dm @@ -46,7 +46,7 @@ /obj/item/debug/omnitool/proc/check_menu(mob/user) if(!istype(user)) return FALSE - if(user.incapacitated() || !user.Adjacent(src)) + if(user.incapacitated || !user.Adjacent(src)) return FALSE return TRUE @@ -168,7 +168,7 @@ return if(!user.client.holder) //safety if the admin readmined to save their ass lol. to_chat(user, span_reallybig("You shouldn't have done that...")) - playsound(src, 'sound/voice/borg_deathsound.ogg') + playsound(src, 'sound/mobs/non-humanoids/cyborg/borg_deathsound.ogg') sleep(3 SECONDS) living_user.investigate_log("has been gibbed by [src].", INVESTIGATE_DEATHS) living_user.gib(DROP_ALL_REMAINS) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index dc68175cafc63..9133068cb0027 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -137,17 +137,17 @@ return ..() /obj/item/defibrillator/mouse_drop_dragged(atom/over_object, mob/user, src_location, over_location, params) - if(ismob(loc)) - var/mob/M = loc - if(istype(over_object, /atom/movable/screen/inventory/hand)) - var/atom/movable/screen/inventory/hand/H = over_object - M.putItemFromInventoryInHandIfPossible(src, H.held_index) + if(!ismob(loc)) + return + var/mob/living_mob = loc + if(!living_mob.incapacitated && istype(over_object, /atom/movable/screen/inventory/hand)) + var/atom/movable/screen/inventory/hand/hand = over_object + living_mob.putItemFromInventoryInHandIfPossible(src, hand.held_index) /obj/item/defibrillator/screwdriver_act(mob/living/user, obj/item/tool) if(!cell || !cell_removable) return FALSE - cell.update_appearance() cell.forceMove(get_turf(src)) balloon_alert(user, "removed [cell]") cell = null @@ -252,16 +252,16 @@ update_power() /obj/item/defibrillator/proc/cooldowncheck() - addtimer(CALLBACK(src, PROC_REF(finish_charging)), cooldown_duration) + addtimer(CALLBACK(src, PROC_REF(finish_charging)), cooldown_duration) /obj/item/defibrillator/proc/finish_charging() if(cell) if(cell.charge >= paddles.revivecost) visible_message(span_notice("[src] beeps: Unit ready.")) - playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_ready.ogg', 50, FALSE) else visible_message(span_notice("[src] beeps: Charge depleted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) paddles.cooldown = FALSE paddles.update_appearance() update_power() @@ -399,7 +399,7 @@ /obj/item/shockpaddles/proc/finish_recharge() var/turf/current_turf = get_turf(src) current_turf.audible_message(span_notice("[src] beeps: Unit is recharged.")) - playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_ready.ogg', 50, FALSE) cooldown = FALSE update_appearance() @@ -418,7 +418,7 @@ user.visible_message(span_danger("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!")) if(req_defib) defib.deductcharge(revivecost) - playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 50, TRUE, -1) return OXYLOSS /obj/item/shockpaddles/update_icon_state() @@ -451,7 +451,7 @@ defib?.update_power() if(req_defib && !defib.powered) user.visible_message(span_warning("[defib] beeps: Not enough charge!")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) return if(!HAS_TRAIT(src, TRAIT_WIELDED)) if(iscyborg(user)) @@ -493,7 +493,7 @@ do_help(H, user) -/// Called whenever the paddles successfuly shock something +/// Called whenever the paddles successfully shock something /obj/item/shockpaddles/proc/do_success() if(busy) busy = FALSE @@ -527,7 +527,7 @@ M.Knockdown(75) M.set_jitter_if_lower(100 SECONDS) M.apply_status_effect(/datum/status_effect/convulsing) - playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 50, TRUE, -1) if(HAS_TRAIT(M,MOB_ORGANIC)) M.emote("gasp") log_combat(user, M, "zapped", src) @@ -544,7 +544,7 @@ user.visible_message(span_notice("[user] places [src] on [H]'s chest."), span_warning("You place [src] on [H]'s chest and begin to charge them.")) var/turf/T = get_turf(defib) - playsound(src, 'sound/machines/defib_charge.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_charge.ogg', 50, FALSE) if(req_defib) T.audible_message(span_warning("\The [defib] lets out an urgent beep and lets out a steadily rising hum...")) else @@ -555,12 +555,12 @@ return if(H && H.stat == DEAD) to_chat(user, span_warning("[H] is dead.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) do_cancel() return user.visible_message(span_boldannounce("[user] shocks [H] with \the [src]!"), span_warning("You shock [H] with \the [src]!")) - playsound(src, 'sound/machines/defib_zap.ogg', 100, TRUE, -1) - playsound(src, 'sound/weapons/egloves.ogg', 100, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 100, TRUE, -1) + playsound(src, 'sound/items/weapons/egloves.ogg', 100, TRUE, -1) H.emote("scream") shock_pulling(45, H) if(H.can_heartattack() && !H.undergoing_cardiac_arrest()) @@ -582,14 +582,14 @@ update_appearance() if(do_after(user, 3 SECONDS, H, extra_checks = CALLBACK(src, PROC_REF(is_wielded)))) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process user.visible_message(span_notice("[user] places [src] on [H]'s chest."), span_warning("You place [src] on [H]'s chest.")) - playsound(src, 'sound/machines/defib_charge.ogg', 75, FALSE) + playsound(src, 'sound/machines/defib/defib_charge.ogg', 75, FALSE) var/obj/item/organ/internal/heart = H.get_organ_by_type(/obj/item/organ/internal/heart) if(do_after(user, 2 SECONDS, H, extra_checks = CALLBACK(src, PROC_REF(is_wielded)))) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total if((!combat && !req_defib) || (req_defib && !defib.combat)) for(var/obj/item/clothing/C in H.get_equipped_items()) if((C.body_parts_covered & CHEST) && (C.clothing_flags & THICKMATERIAL)) //check to see if something is obscuring their chest. user.audible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Patient's chest is obscured. Operation aborted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) do_cancel() return if(SEND_SIGNAL(H, COMSIG_DEFIBRILLATOR_PRE_HELP_ZAP, user, src) & COMPONENT_DEFIB_STOP) @@ -598,7 +598,7 @@ if(H.stat == DEAD) H.visible_message(span_warning("[H]'s body convulses a bit.")) playsound(src, SFX_BODYFALL, 50, TRUE) - playsound(src, 'sound/machines/defib_zap.ogg', 75, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 75, TRUE, -1) shock_pulling(30, H) var/defib_result = H.can_defib() @@ -626,7 +626,7 @@ if(fail_reason) user.visible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Resuscitation failed - [fail_reason]")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) else var/total_brute = H.getBruteLoss() var/total_burn = H.getFireLoss() @@ -645,7 +645,7 @@ if(need_mob_update) H.updatehealth() // Previous "adjust" procs don't update health, so we do it manually. user.visible_message(span_notice("[req_defib ? "[defib]" : "[src]"] pings: Resuscitation successful.")) - playsound(src, 'sound/machines/defib_success.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_success.ogg', 50, FALSE) H.set_heartattack(FALSE) if(defib_result == DEFIB_POSSIBLE) H.grab_ghost() @@ -662,9 +662,9 @@ return else if (!H.get_organ_by_type(/obj/item/organ/internal/heart)) user.visible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Patient's heart is missing. Operation aborted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) else if(H.undergoing_cardiac_arrest()) - playsound(src, 'sound/machines/defib_zap.ogg', 50, TRUE, -1) + playsound(src, 'sound/machines/defib/defib_zap.ogg', 50, TRUE, -1) if(!(heart.organ_flags & ORGAN_FAILING)) H.set_heartattack(FALSE) user.visible_message(span_notice("[req_defib ? "[defib]" : "[src]"] pings: Patient's heart is now beating again.")) @@ -673,7 +673,7 @@ else user.visible_message(span_warning("[req_defib ? "[defib]" : "[src]"] buzzes: Patient is not in a valid state. Operation aborted.")) - playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) + playsound(src, 'sound/machines/defib/defib_failed.ogg', 50, FALSE) do_cancel() /obj/item/shockpaddles/proc/is_wielded() @@ -708,7 +708,7 @@ base_icon_state = "syndiepaddles" /obj/item/shockpaddles/syndicate/nanotrasen - name = "elite nanotrasen defibrillator paddles" + name = "elite Nanotrasen defibrillator paddles" desc = "A pair of paddles used to revive deceased ERT members. They possess both the ability to penetrate armor and to deliver powerful or disabling shocks offensively." icon_state = "ntpaddles0" inhand_icon_state = "ntpaddles0" diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm index 88a3a98a5bb26..e863f09ecde5b 100644 --- a/code/game/objects/items/dehy_carp.dm +++ b/code/game/objects/items/dehy_carp.dm @@ -71,3 +71,6 @@ UnregisterSignal(owner, COMSIG_QDELETING) owner = null + +/obj/item/toy/plush/carpplushie/dehy_carp/peaceful + mobtype = /mob/living/basic/carp/passive diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index c619f7d7018e0..77eefa8a1507b 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -43,17 +43,15 @@ user.visible_message(span_suicide("[user] is trying to upload [user.p_them()]self into [src]! That's not going to work out well!")) return BRUTELOSS -/obj/item/aicard/pre_attack(atom/target, mob/living/user, params) - . = ..() - if(.) - return - +/obj/item/aicard/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(AI) - if(upload_ai(target, user)) - return TRUE + if(upload_ai(interacting_with, user)) + return ITEM_INTERACT_SUCCESS else - if(capture_ai(target, user)) - return TRUE + if(capture_ai(interacting_with, user)) + return ITEM_INTERACT_SUCCESS + + return NONE /// Tries to get an AI from the atom clicked /obj/item/aicard/proc/capture_ai(atom/from_what, mob/living/user) diff --git a/code/game/objects/items/devices/aicard_evil.dm b/code/game/objects/items/devices/aicard_evil.dm index 3e8c56ce940fd..bb23779fafec6 100644 --- a/code/game/objects/items/devices/aicard_evil.dm +++ b/code/game/objects/items/devices/aicard_evil.dm @@ -35,7 +35,7 @@ balloon_alert(user, "invalid access!") return var/mob/chosen_one = SSpolling.poll_ghosts_for_target( - check_jobban = ROLE_OPERATIVE, + check_jobban = list(ROLE_OPERATIVE, JOB_AI), poll_time = 20 SECONDS, checked_target = src, ignore_category = POLL_IGNORE_SYNDICATE, @@ -47,12 +47,12 @@ /// Poll has concluded with a ghost, create the AI /obj/item/aicard/syndie/loaded/proc/on_poll_concluded(mob/user, datum/antagonist/nukeop/op_datum, mob/dead/observer/ghost) - if(isnull(ghost)) + if(!ismob(ghost)) to_chat(user, span_warning("Unable to connect to S.E.L.F. dispatch. Please wait and try again later or use the intelliCard on your uplink to get your points refunded.")) return // pick ghost, create AI and transfer - var/mob/living/silicon/ai/weak_syndie/new_ai = new /mob/living/silicon/ai/weak_syndie(get_turf(src), new /datum/ai_laws/syndicate_override, ghost) + var/mob/living/silicon/ai/weak_syndie/new_ai = new /mob/living/silicon/ai/weak_syndie(null, new /datum/ai_laws/syndicate_override, ghost) // create and apply syndie datum var/datum/antagonist/nukeop/nuke_datum = new() nuke_datum.send_to_spawnpoint = FALSE @@ -102,13 +102,13 @@ else AI = locate() in A if(!AI || AI.interaction_range == INFINITY) - playsound(src,'sound/machines/buzz-sigh.ogg',50,FALSE) + playsound(src,'sound/machines/buzz/buzz-sigh.ogg',50,FALSE) to_chat(user, span_notice("Error! Incompatible object!")) return ..() AI.interaction_range += 2 if(AI.interaction_range > 7) AI.interaction_range = INFINITY - playsound(src,'sound/machines/twobeep.ogg',50,FALSE) + playsound(src,'sound/machines/beep/twobeep.ogg',50,FALSE) to_chat(user, span_notice("You insert [src] into [AI]'s compartment, and it beeps as it processes the data.")) to_chat(AI, span_notice("You process [src], and find yourself able to manipulate electronics from up to [AI.interaction_range] meters!")) qdel(src) diff --git a/code/game/objects/items/devices/battle_royale.dm b/code/game/objects/items/devices/battle_royale.dm index ab871520465a5..5a6fe059cb6c4 100644 --- a/code/game/objects/items/devices/battle_royale.dm +++ b/code/game/objects/items/devices/battle_royale.dm @@ -238,7 +238,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) As a gesture of gratitude, we will be providing our premium broadcast to your entertainment monitors at no cost so that you can watch the excitement. \n\ Bystanders are advised not to intervene... but if you do, make it look good for the camera!", title = "Rumble Royale Beginning", - sound = 'sound/machines/alarm.ogg', + sound = 'sound/announcer/alarm/nuke_alarm.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -268,7 +268,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) priority_announce( text = message, title = "Rumble Royale Casualty Report", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -295,14 +295,14 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) if (!isnull(winner)) podspawn(list( "target" = get_turf(winner), - "style" = STYLE_SYNDICATE, + "style" = /datum/pod_style/syndicate, "spawn" = /obj/item/food/roast_dinner, )) priority_announce( text = message, title = "Rumble Royale Winner", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -317,7 +317,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) priority_announce( text = "We're halfway done folks! And bad news to anyone who hasn't made it to the [chosen_area]... you're out!", title = "Rumble Royale Update", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", @@ -335,7 +335,7 @@ GLOBAL_DATUM_INIT(battle_royale_master, /datum/battle_royale_master, new) We're sorry to announce that this edition of Royal Rumble has no winner. \n\ Better luck next time!", title = "Rumble Royale Concluded", - sound = 'sound/misc/notice1.ogg', + sound = 'sound/announcer/notice/notice1.ogg', has_important_message = TRUE, sender_override = "Rumble Royale Pirate Broadcast Station", color_override = "red", diff --git a/code/game/objects/items/devices/broadcast_camera.dm b/code/game/objects/items/devices/broadcast_camera.dm new file mode 100644 index 0000000000000..78868844e48cb --- /dev/null +++ b/code/game/objects/items/devices/broadcast_camera.dm @@ -0,0 +1,124 @@ +// Unique broadcast camera given to the first Curator +// Only one should exist ideally, if other types are created they must have different camera_networks +// Broadcasts its surroundings to entertainment monitors and its audio to entertainment radio channel +/obj/item/broadcast_camera + name = "broadcast camera" + desc = "A large camera that streams its live feed and audio to entertainment monitors across the station, allowing everyone to watch the broadcast." + desc_controls = "Right-click to change the broadcast name. Alt-click to toggle microphone." + icon = 'icons/obj/service/broadcast.dmi' + icon_state = "broadcast_cam0" + base_icon_state = "broadcast_cam" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + force = 8 + throwforce = 12 + w_class = WEIGHT_CLASS_NORMAL + obj_flags = INDESTRUCTIBLE | EMP_PROTECT_ALL // No fun police + slot_flags = NONE + light_system = OVERLAY_LIGHT + light_color = COLOR_SOFT_RED + light_range = 1 + light_power = 0.3 + light_on = FALSE + /// Is camera streaming + var/active = FALSE + /// Is the microphone turned on + var/active_microphone = TRUE + /// The name of the broadcast + var/broadcast_name = "Curator News" + /// The networks it broadcasts to, default is CAMERANET_NETWORK_CURATOR + var/list/camera_networks = list(CAMERANET_NETWORK_CURATOR) + /// The "virtual" security camera inside of the physical camera + var/obj/machinery/camera/internal_camera + /// The "virtual" radio inside of the the physical camera, a la microphone + var/obj/item/radio/entertainment/microphone/internal_radio + +/obj/item/broadcast_camera/Destroy(force) + QDEL_NULL(internal_radio) + QDEL_NULL(internal_camera) + + return ..() + +/obj/item/broadcast_camera/update_icon_state() + icon_state = "[base_icon_state]0" + return ..() + +/obj/item/broadcast_camera/attack_self(mob/user, modifiers) + . = ..() + active = !active + if(active) + on_activating() + else + on_deactivating() + +/obj/item/broadcast_camera/attack_self_secondary(mob/user, modifiers) + . = ..() + broadcast_name = tgui_input_text(user = user, title = "Broadcast Name", message = "What will be the name of your broadcast?", default = "[broadcast_name]", max_length = MAX_CHARTER_LEN) + +/obj/item/broadcast_camera/examine(mob/user) + . = ..() + . += span_notice("Broadcast name is [broadcast_name]") + . += span_notice("The microphone is [active_microphone ? "On" : "Off"]") + +/obj/item/broadcast_camera/on_enter_storage(datum/storage/master_storage) + . = ..() + if(active) + on_deactivating() + +/obj/item/broadcast_camera/dropped(mob/user, silent) + . = ..() + if(active) + on_deactivating() + +/// When activating the camera +/obj/item/broadcast_camera/proc/on_activating() + if(!iscarbon(loc)) + return + active = TRUE + icon_state = "[base_icon_state][active]" + /// The carbon who wielded the camera, allegedly + var/mob/living/carbon/wielding_carbon = loc + + // INTERNAL CAMERA + internal_camera = new(wielding_carbon) // Cameras for some reason do not work inside of obj's + internal_camera.internal_light = FALSE + internal_camera.network = camera_networks + internal_camera.c_tag = "LIVE: [broadcast_name]" + start_broadcasting_network(camera_networks, "[broadcast_name] is now LIVE!") + + // INTERNAL RADIO + internal_radio = new(src) + /// Sets the state of the microphone + set_microphone_state() + + set_light_on(TRUE) + playsound(source = src, soundin = 'sound/machines/terminal/terminal_processing.ogg', vol = 20, vary = FALSE, ignore_walls = FALSE) + balloon_alert_to_viewers("live!") + +/// When deactivating the camera +/obj/item/broadcast_camera/proc/on_deactivating() + active = FALSE + icon_state = "[base_icon_state][active]" + QDEL_NULL(internal_camera) + QDEL_NULL(internal_radio) + + stop_broadcasting_network(camera_networks) + + set_light_on(FALSE) + playsound(source = src, soundin = 'sound/machines/terminal/terminal_prompt_deny.ogg', vol = 20, vary = FALSE, ignore_walls = FALSE) + balloon_alert_to_viewers("offline") + +/obj/item/broadcast_camera/click_alt(mob/user) + active_microphone = !active_microphone + + /// Text popup for letting the user know that the microphone has changed state + balloon_alert(user, "turned [active_microphone ? "on" : "off"] the microphone.") + + ///If the radio exists as an object, set its state accordingly + if(active) + set_microphone_state() + + return CLICK_ACTION_SUCCESS + +/obj/item/broadcast_camera/proc/set_microphone_state() + internal_radio.set_broadcasting(active_microphone) diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 1920e47f97f66..fbdf3bae40a88 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -36,28 +36,39 @@ else to_chat(user, span_warning("You can't use [src] while inside something!")) -/obj/item/chameleon/interact_with_atom(atom/target, mob/living/user, list/modifiers) +/obj/item/chameleon/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(!can_copy(interacting_with) || SHOULD_SKIP_INTERACTION(interacting_with, src, user)) + return NONE + make_copy(interacting_with, user) + return ITEM_INTERACT_SUCCESS + +/obj/item/chameleon/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + if(!can_copy(interacting_with)) // RMB scan works on storage items, LMB scan does not + return NONE + make_copy(interacting_with, user) + return ITEM_INTERACT_SUCCESS + +/obj/item/chameleon/proc/can_copy(atom/target) if(!check_sprite(target)) - return ITEM_INTERACT_BLOCKING + return FALSE if(active_dummy)//I now present you the blackli(f)st - return ITEM_INTERACT_BLOCKING + return FALSE if(isturf(target)) - return ITEM_INTERACT_BLOCKING + return FALSE if(ismob(target)) - return ITEM_INTERACT_BLOCKING + return FALSE if(istype(target, /obj/structure/falsewall)) - return ITEM_INTERACT_BLOCKING + return FALSE if(target.alpha != 255) - return ITEM_INTERACT_BLOCKING + return FALSE if(target.invisibility != 0) - return ITEM_INTERACT_BLOCKING + return FALSE if(iseffect(target) && !istype(target, /obj/effect/decal)) //be a footprint - return ITEM_INTERACT_BLOCKING - make_copy(target, user) - return ITEM_INTERACT_SUCCESS + return FALSE + return TRUE /obj/item/chameleon/proc/make_copy(atom/target, mob/user) - playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, TRUE, -6) + playsound(get_turf(src), 'sound/items/weapons/flash.ogg', 100, TRUE, -6) to_chat(user, span_notice("Scanned [target].")) var/obj/temp = new /obj() temp.appearance = target.appearance diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm index 5814101463ba4..cd0b42e0e8ac4 100644 --- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm +++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm @@ -44,7 +44,7 @@ if(!circuits) to_chat(R, span_warning("You need more material. Use [src] on existing simple circuits to break them down.")) return - playsound(R, 'sound/items/rped.ogg', 50, TRUE) + playsound(R, 'sound/items/tools/rped.ogg', 50, TRUE) recharging = TRUE circuits-- maptext = MAPTEXT(circuits) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index e684c1b4959e5..657d054f11cc8 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -29,9 +29,9 @@ /// Can we toggle this light on and off (used for contexual screentips only) var/toggle_context = TRUE /// The sound the light makes when it's turned on - var/sound_on = 'sound/weapons/magin.ogg' + var/sound_on = 'sound/items/weapons/magin.ogg' /// The sound the light makes when it's turned off - var/sound_off = 'sound/weapons/magout.ogg' + var/sound_off = 'sound/items/weapons/magout.ogg' /// Should the flashlight start turned on? var/start_on = FALSE @@ -41,8 +41,6 @@ set_light_on(TRUE) update_brightness() register_context() - if(toggle_context) - RegisterSignal(src, COMSIG_HIT_BY_SABOTEUR, PROC_REF(on_saboteur)) var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/flashlight_eyes) @@ -256,7 +254,7 @@ if(!scanning.get_bodypart(BODY_ZONE_HEAD)) to_chat(user, span_warning("[scanning] doesn't have a head!")) return - if(light_power < 1) + if(light_power < 0.5) to_chat(user, span_warning("[src] isn't bright enough to see anything!")) return @@ -286,12 +284,12 @@ setDir(user.dir) /// when hit by a light disruptor - turns the light off, forces the light to be disabled for a few seconds -/obj/item/flashlight/proc/on_saboteur(datum/source, disrupt_duration) - SIGNAL_HANDLER +/obj/item/flashlight/on_saboteur(datum/source, disrupt_duration) + . = ..() if(light_on) toggle_light() COOLDOWN_START(src, disabled_time, disrupt_duration) - return COMSIG_SABOTEUR_SUCCESS + return TRUE /obj/item/flashlight/pen name = "penlight" @@ -361,7 +359,7 @@ light_range = 5 // A little better than the standard flashlight. light_power = 0.8 light_color = "#99ccff" - hitsound = 'sound/weapons/genhit1.ogg' + hitsound = 'sound/items/weapons/genhit1.ogg' // the desk lamps are a bit special /obj/item/flashlight/lamp @@ -430,7 +428,7 @@ if(light_on) attack_verb_continuous = string_list(list("burns", "singes")) attack_verb_simple = string_list(list("burn", "singe")) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' force = on_damage damtype = BURN update_brightness() @@ -457,7 +455,7 @@ name = "lit [initial(name)]" attack_verb_continuous = string_list(list("burns", "singes")) attack_verb_simple = string_list(list("burn", "singe")) - hitsound = 'sound/items/welder.ogg' + hitsound = 'sound/items/tools/welder.ogg' force = on_damage damtype = BURN @@ -694,6 +692,9 @@ color = LIGHT_COLOR_GREEN light_color = LIGHT_COLOR_GREEN +/obj/item/flashlight/lantern/jade/on + start_on = TRUE + /obj/item/flashlight/slime gender = PLURAL name = "glowing slime extract" @@ -959,14 +960,10 @@ var/dark_light_range = 2.5 ///Variable to preserve old lighting behavior in flashlights, to handle darkness. var/dark_light_power = -3 - var/on = FALSE /obj/item/flashlight/flashdark/update_brightness() . = ..() - if(on) - set_light(dark_light_range, dark_light_power) - else - set_light(0) + set_light(dark_light_range, dark_light_power) //type and subtypes spawned and used to give some eyes lights, /obj/item/flashlight/eyelight diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index 5d40d40a4d925..e41c346c9930d 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -21,10 +21,10 @@ /// Checks to make sure the projector isn't busy with making another forcefield. var/force_proj_busy = FALSE -/obj/item/forcefield_projector/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - return interact_with_atom(interacting_with, user, modifiers) - /obj/item/forcefield_projector/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + return ranged_interact_with_atom(interacting_with, user, modifiers) + +/obj/item/forcefield_projector/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!check_allowed_items(interacting_with, not_inside = TRUE)) return NONE if(istype(interacting_with, /obj/structure/projected_forcefield)) @@ -59,7 +59,7 @@ return ITEM_INTERACT_BLOCKING force_proj_busy = FALSE - playsound(src,'sound/weapons/resonator_fire.ogg',50,TRUE) + playsound(src,'sound/items/weapons/resonator_fire.ogg',50,TRUE) user.visible_message(span_warning("[user] projects a forcefield!"),span_notice("You project a forcefield.")) var/obj/structure/projected_forcefield/F = new(T, src) current_fields += F @@ -124,14 +124,14 @@ /obj/structure/projected_forcefield/Destroy() visible_message(span_warning("[src] flickers and disappears!")) - playsound(src,'sound/weapons/resonator_blast.ogg',25,TRUE) + playsound(src,'sound/items/weapons/resonator_blast.ogg',25,TRUE) if(generator) generator.current_fields -= src generator = null return ..() /obj/structure/projected_forcefield/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) + playsound(loc, 'sound/items/weapons/egloves.ogg', 80, TRUE) /obj/structure/projected_forcefield/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) if(sound_effect) diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 1d5ef17a90c4a..25bae4306091f 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -67,13 +67,13 @@ update_appearance(UPDATE_ICON) balloon_alert(user, "switch [scanning ? "on" : "off"]") -/obj/item/geiger_counter/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - return interact_with_atom(interacting_with, user, modifiers) - /obj/item/geiger_counter/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - if (user.combat_mode) + if(SHOULD_SKIP_INTERACTION(interacting_with, src, user)) return NONE - if (!CAN_IRRADIATE(interacting_with)) + return ranged_interact_with_atom(interacting_with, user, modifiers) + +/obj/item/geiger_counter/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(!CAN_IRRADIATE(interacting_with)) return NONE user.visible_message(span_notice("[user] scans [interacting_with] with [src]."), span_notice("You scan [interacting_with]'s radiation levels with [src]...")) diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index 554db2beb5399..03e53a87db35e 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -99,7 +99,7 @@ var/obj/item/stock_parts/attack_diode = attack_item if(crystal_lens && attack_diode.rating < 3) //only tier 3 and up are small enough to fit to_chat(user, span_warning("You try to jam \the [attack_item.name] in place, but \the [crystal_lens.name] is in the way!")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 20) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 20) if(do_after(user, 2 SECONDS, src)) var/atom/atom_to_teleport = pick(user, attack_item) if(atom_to_teleport == user) @@ -113,7 +113,7 @@ return if(!user.transferItemToLoc(attack_item, src)) return - playsound(src, 'sound/items/screwdriver.ogg', 30) + playsound(src, 'sound/items/tools/screwdriver.ogg', 30) diode = attack_item balloon_alert(user, "installed \the [diode.name]") //we have a diode now, try starting a charge sequence in case the pointer was charging when we took out the diode @@ -129,7 +129,7 @@ var/obj/item/stack/ore/bluespace_crystal/crystal_stack = attack_item if(diode && diode.rating < 3) //only lasers of tier 3 and up can house a lens to_chat(user, span_warning("You try to jam \the [crystal_stack.name] in front of the diode, but it's a bad fit!")) - playsound(src, 'sound/machines/airlock_alien_prying.ogg', 20) + playsound(src, 'sound/machines/airlock/airlock_alien_prying.ogg', 20) if(do_after(user, 2 SECONDS, src)) var/atom/atom_to_teleport = pick(user, src) if(atom_to_teleport == user) @@ -148,7 +148,7 @@ if(!user.transferItemToLoc(single_crystal, src)) return crystal_lens = single_crystal - playsound(src, 'sound/items/screwdriver2.ogg', 30) + playsound(src, 'sound/items/tools/screwdriver2.ogg', 30) balloon_alert(user, "installed \the [crystal_lens.name]") to_chat(user, span_notice("You install a [crystal_lens.name] in [src]. \ It can now be used to shine through obstacles at the cost of double the energy drain.")) @@ -183,12 +183,14 @@ and the wide margin between it and the focus lens could probably house a crystal of some sort." /obj/item/laser_pointer/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - return interact_with_atom(interacting_with, user, modifiers) - -/obj/item/laser_pointer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) laser_act(interacting_with, user, modifiers) return ITEM_INTERACT_BLOCKING +/obj/item/laser_pointer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(HAS_TRAIT(interacting_with, TRAIT_COMBAT_MODE_SKIP_INTERACTION)) + return NONE + return ranged_interact_with_atom(interacting_with, user, modifiers) + ///Handles shining the clicked atom, /obj/item/laser_pointer/proc/laser_act(atom/target, mob/living/user, list/modifiers) if(isnull(diode)) @@ -233,9 +235,12 @@ else if(user.zone_selected == BODY_ZONE_PRECISE_EYES) //Intensity of the laser dot to pass to flash_act var/severity = pick(0, 1, 2) + var/always_fail = FALSE + if(istype(target_humanoid.glasses, /obj/item/clothing/glasses/eyepatch) && prob(50)) + always_fail = TRUE //chance to actually hit the eyes depends on internal component - if(prob(effectchance * diode.rating) && target_humanoid.flash_act(severity)) + if(prob(effectchance * diode.rating) && !always_fail && target_humanoid.flash_act(severity)) outmsg = span_notice("You blind [target_humanoid] by shining [src] in [target_humanoid.p_their()] eyes.") log_combat(user, target_humanoid, "blinded with a laser pointer", src) else @@ -271,13 +276,13 @@ //catpeople: make any felinid near the target to face the target, chance for felinids to pounce at the light, stepping to the target for(var/mob/living/carbon/human/target_felinid in view(1, targloc)) - if(!isfelinid(target_felinid) || target_felinid.stat == DEAD || target_felinid.is_blind() || target_felinid.incapacitated()) + if(!isfelinid(target_felinid) || target_felinid.stat == DEAD || target_felinid.is_blind() || target_felinid.incapacitated) continue if(target_felinid.body_position == STANDING_UP) target_felinid.setDir(get_dir(target_felinid, targloc)) // kitty always looks at the light if(prob(effectchance * diode.rating)) target_felinid.visible_message(span_warning("[target_felinid] makes a grab for the light!"), span_userdanger("LIGHT!")) - target_felinid.Move(targloc) + target_felinid.Move(targloc, get_dir(target_felinid, targloc)) log_combat(user, target_felinid, "moved with a laser pointer", src) else target_felinid.visible_message(span_notice("[target_felinid] looks briefly distracted by the light."), span_warning("You're briefly tempted by the shiny light...")) diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 07a1db55a9c98..e3c19dfde66f3 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -133,7 +133,7 @@ if(src.uses >= max_uses) break - //consume the item only if it's an light tube,bulb or shard + //consume the item only if it's a light tube, bulb or shard loaded = FALSE if(istype(item_to_check, /obj/item/light)) var/obj/item/light/found_light = item_to_check @@ -208,7 +208,7 @@ for(var/obj/machinery/light/target in user.loc) replace_light(target, user) on_a_light = TRUE - if(!on_a_light) //So we dont give a ballon alert when we just used replace_light + if(!on_a_light) //So we don't give a balloon alert when we just used replace_light user.balloon_alert(user, "[uses] lights, [bulb_shards]/[BULB_SHARDS_REQUIRED] fragments") /** @@ -223,7 +223,7 @@ if(istype(target, /obj/machinery/light)) if(replace_light(target, user) && bluespace_toggle) user.Beam(target, icon_state = "rped_upgrade", time = 0.5 SECONDS) - playsound(src, 'sound/items/pshoom.ogg', 40, 1) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, 1) return TRUE // if we are attacking a floodlight frame finish it @@ -233,7 +233,7 @@ new /obj/machinery/power/floodlight(frame.loc) if(bluespace_toggle) user.Beam(target, icon_state = "rped_upgrade", time = 0.5 SECONDS) - playsound(src, 'sound/items/pshoom.ogg', 40, 1) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, 1) to_chat(user, span_notice("You finish \the [frame] with a light tube.")) qdel(frame) return TRUE @@ -246,7 +246,7 @@ light_replaced = TRUE if(light_replaced && bluespace_toggle) user.Beam(target, icon_state = "rped_upgrade", time = 0.5 SECONDS) - playsound(src, 'sound/items/pshoom.ogg', 40, 1) + playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, 1) return TRUE return FALSE @@ -325,6 +325,12 @@ . = ..() ADD_TRAIT(src, TRAIT_NODROP, CYBORG_ITEM_TRAIT) +/obj/item/lightreplacer/cyborg/advanced + name = "high capacity light replacer" + desc = "A higher capacity light replacer. Refill with broken or working lightbulbs, or sheets of glass." + icon_state = "lightreplacer_high" + max_uses = 50 + /obj/item/lightreplacer/blue name = "bluespace light replacer" desc = "A modified light replacer that zaps lights into place. Refill with broken or working lightbulbs, or sheets of glass." diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 7ae17c5343ad6..718f3ac721979 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -17,26 +17,39 @@ user.say("AAAAAAAAAAAARGHHHHH", forced="megaphone suicide")//he must have died while coding this return OXYLOSS -/obj/item/megaphone/equipped(mob/M, slot) +/obj/item/megaphone/equipped(mob/equipper, slot) . = ..() - if ((slot & ITEM_SLOT_HANDS) && !HAS_TRAIT(M, TRAIT_SIGN_LANG)) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - else - UnregisterSignal(M, COMSIG_MOB_SAY) + if ((slot & ITEM_SLOT_HANDS)) + RegisterSignal(equipper, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(equipper, COMSIG_LIVING_TREAT_MESSAGE, PROC_REF(add_tts_filter)) -/obj/item/megaphone/dropped(mob/M) +/obj/item/megaphone/dropped(mob/dropper) . = ..() - UnregisterSignal(M, COMSIG_MOB_SAY) + UnregisterSignal(dropper, list(COMSIG_MOB_SAY, COMSIG_LIVING_TREAT_MESSAGE)) + +/obj/item/megaphone/proc/handle_speech(mob/living/user, list/speech_args) + SIGNAL_HANDLER + if(HAS_TRAIT(user, TRAIT_SIGN_LANG) || user.get_active_held_item() != src) + return + if(spamcheck > world.time) + to_chat(user, span_warning("\The [src] needs to recharge!")) + else + playsound(loc, 'sound/items/megaphone.ogg', 100, FALSE, TRUE) + speech_args[SPEECH_SPANS] |= voicespan -/obj/item/megaphone/proc/handle_speech(mob/living/carbon/user, list/speech_args) +/obj/item/megaphone/proc/add_tts_filter(mob/living/carbon/user, list/message_args) SIGNAL_HANDLER - if (user.get_active_held_item() == src) - if(spamcheck > world.time) - to_chat(user, span_warning("\The [src] needs to recharge!")) - else - playsound(loc, 'sound/items/megaphone.ogg', 100, FALSE, TRUE) - spamcheck = world.time + 50 - speech_args[SPEECH_SPANS] |= voicespan + if(HAS_TRAIT(user, TRAIT_SIGN_LANG) || user.get_active_held_item() != src) + return + if(spamcheck > world.time) + return + spamcheck = world.time + 5 SECONDS + if(obj_flags & EMAGGED) + ///somewhat compressed and ear-grating, crusty and noisy with a bit of echo. + message_args[TREAT_TTS_FILTER_ARG] += "acrusher=samples=9:level_out=7,aecho=delays=100:decays=0.4,aemphasis=type=emi,crystalizer=i=6,acontrast=60,rubberband=pitch=0.9" + else + ///A sharper and louder sound with a bit of echo + message_args[TREAT_TTS_FILTER_ARG] += "acrusher=samples=2:level_out=6,aecho=delays=90:decays=0.3,aemphasis=type=cd,acontrast=30,crystalizer=i=5" /obj/item/megaphone/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 1262abb141f47..b9d8539562809 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -12,7 +12,7 @@ /obj/item/multitool name = "multitool" - desc = "Used for pulsing wires to test which to cut. Not recommended by doctors." + desc = "Used for pulsing wires to test which to cut. Not recommended by doctors. You can activate it in-hand to locate the nearest APC." icon = 'icons/obj/devices/tool.dmi' icon_state = "multitool" inhand_icon_state = "multitool" @@ -24,22 +24,47 @@ throwforce = 0 throw_range = 7 throw_speed = 3 - drop_sound = 'sound/items/handling/multitool_drop.ogg' - pickup_sound = 'sound/items/handling/multitool_pickup.ogg' + drop_sound = 'sound/items/handling/tools/multitool_drop.ogg' + pickup_sound = 'sound/items/handling/tools/multitool_pickup.ogg' custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass= SMALL_MATERIAL_AMOUNT * 0.2) custom_premium_price = PAYCHECK_COMMAND * 3 toolspeed = 1 - usesound = 'sound/weapons/empty.ogg' + usesound = 'sound/items/weapons/empty.ogg' var/datum/buffer // simple machine buffer for device linkage var/mode = 0 + var/apc_scanner = TRUE + COOLDOWN_DECLARE(next_apc_scan) + +/obj/item/multitool/Destroy() + if(buffer) + remove_buffer(buffer) + return ..() /obj/item/multitool/examine(mob/user) . = ..() . += span_notice("Its buffer [buffer ? "contains [buffer]." : "is empty."]") +/obj/item/multitool/attack_self(mob/user, list/modifiers) + . = ..() + + if(. || !apc_scanner) + return + + if(!COOLDOWN_FINISHED(src, next_apc_scan)) + return + + COOLDOWN_START(src, next_apc_scan, 1 SECONDS) + + var/area/local_area = get_area(src) + var/power_controller = local_area.apc + if(power_controller) + user.balloon_alert(user, "[get_dist(src, power_controller)]m [dir2text(get_dir(src, power_controller))]") + else + user.balloon_alert(user, "couldn't find apc!") + /obj/item/multitool/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] puts the [src] to [user.p_their()] chest. It looks like [user.p_theyre()] trying to pulse [user.p_their()] heart off!")) - return OXYLOSS//theres a reason it wasn't recommended by doctors + return OXYLOSS//there's a reason it wasn't recommended by doctors /** * Sets the multitool internal object buffer @@ -50,9 +75,10 @@ /obj/item/multitool/proc/set_buffer(datum/buffer) if(src.buffer) UnregisterSignal(src.buffer, COMSIG_QDELETING) + remove_buffer(src.buffer) src.buffer = buffer if(!QDELETED(buffer)) - RegisterSignal(buffer, COMSIG_QDELETING, PROC_REF(on_buffer_del)) + RegisterSignal(buffer, COMSIG_QDELETING, PROC_REF(remove_buffer)) /** * Called when the buffer's stored object is deleted @@ -60,8 +86,9 @@ * This proc does not clear the buffer of the multitool, it is here to * handle the deletion of the object the buffer references */ -/obj/item/multitool/proc/on_buffer_del(datum/source) +/obj/item/multitool/proc/remove_buffer(datum/source) SIGNAL_HANDLER + SEND_SIGNAL(src, COMSIG_MULTITOOL_REMOVE_BUFFER, source) buffer = null // Syndicate device disguised as a multitool; it will turn red when an AI camera is nearby. @@ -122,7 +149,7 @@ if(distance < rangealert) //ai should be able to see us detect_state = PROXIMITY_ON_SCREEN break - if(distance < rangewarning) //ai cant see us but is close + if(distance < rangewarning) //ai can't see us but is close detect_state = PROXIMITY_NEAR /datum/action/item_action/toggle_multitool diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 1925737143e9d..364550f062aa7 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -2,9 +2,9 @@ #define CLAMPED_OFF 1 #define OPERATING 2 -#define FRACTION_TO_RELEASE 50 +#define FRACTION_TO_RELEASE 25 #define ALERT 90 -#define MINIMUM_HEAT 10000 +#define MINIMUM_HEAT 20000 // Powersink - used to drain station power @@ -23,7 +23,7 @@ throw_speed = 1 throw_range = 2 custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT* 7.5) - var/max_heat = 5e7 // Maximum contained heat before exploding. Not actual temperature. + var/max_heat = 100 * STANDARD_BATTERY_CHARGE // Maximum contained heat before exploding. Not actual temperature. var/internal_heat = 0 // Contained heat, goes down every tick. var/mode = DISCONNECTED // DISCONNECTED, CLAMPED_OFF, OPERATING var/warning_given = FALSE //! Stop warning spam, only warn the admins/deadchat once that we are about to boom. @@ -171,7 +171,7 @@ if(istype(terminal.master, /obj/machinery/power/apc)) var/obj/machinery/power/apc/apc = terminal.master if(apc.operating && apc.cell) - drained += 0.001 * apc.cell.use(0.05 * STANDARD_CELL_CHARGE, force = TRUE) + drained += 0.001 * apc.cell.use(0.1 * STANDARD_BATTERY_CHARGE, force = TRUE) internal_heat += drained /obj/item/powersink/process() diff --git a/code/game/objects/items/devices/pressureplates.dm b/code/game/objects/items/devices/pressureplates.dm index 18bb026745ac0..17f324d109f99 100644 --- a/code/game/objects/items/devices/pressureplates.dm +++ b/code/game/objects/items/devices/pressureplates.dm @@ -7,7 +7,8 @@ lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' icon_state = "pressureplate" - layer = LOW_OBJ_LAYER + plane = FLOOR_PLANE + layer = HIGH_TURF_LAYER var/trigger_mob = TRUE var/trigger_item = FALSE var/specific_item = null diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index af19c6cd4f5da..b127a650e2d26 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -104,7 +104,7 @@ data["maxFrequency"] = MAX_FREE_FREQ return data -/obj/item/electropack/ui_act(action, params) +/obj/item/electropack/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 88c9251d5b2bc..2eab06806dd09 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -4,26 +4,22 @@ icon = 'icons/obj/devices/circuitry_n_data.dmi' icon_state = "cypherkey_basic" w_class = WEIGHT_CLASS_TINY - /// Can this radio key access the binary radio channel? - var/translate_binary = FALSE - /// Decrypts Syndicate radio transmissions. - var/syndie = FALSE - /// If true, the radio can say/hear on the special CentCom channel. - var/independent = FALSE /// What channels does this encryption key grant to the parent headset. var/list/channels = list() + /// Flags for which "special" radio networks should be accessible + var/special_channels = NONE var/datum/language/translated_language greyscale_config = /datum/greyscale_config/encryptionkey_basic greyscale_colors = "#820a16#3758c4" /obj/item/encryptionkey/examine(mob/user) . = ..() - if(LAZYLEN(channels) || translate_binary) + if(LAZYLEN(channels) || special_channels & RADIO_SPECIAL_BINARY) var/list/examine_text_list = list() for(var/i in channels) examine_text_list += "[GLOB.channel_tokens[i]] - [LOWER_TEXT(i)]" - if(translate_binary) + if(special_channels & RADIO_SPECIAL_BINARY) examine_text_list += "[GLOB.channel_tokens[MODE_BINARY]] - [MODE_BINARY]" . += span_notice("It can access the following channels; [jointext(examine_text_list, ", ")].") @@ -34,14 +30,14 @@ name = "syndicate encryption key" icon_state = "cypherkey_syndicate" channels = list(RADIO_CHANNEL_SYNDICATE = 1) - syndie = TRUE + special_channels = RADIO_SPECIAL_SYNDIE greyscale_config = /datum/greyscale_config/encryptionkey_syndicate greyscale_colors = "#171717#990000" /obj/item/encryptionkey/binary name = "binary translator key" icon_state = "cypherkey_basic" - translate_binary = TRUE + special_channels = RADIO_SPECIAL_BINARY translated_language = /datum/language/machine greyscale_config = /datum/greyscale_config/encryptionkey_basic greyscale_colors = "#24a157#3758c4" @@ -102,6 +98,13 @@ greyscale_config = /datum/greyscale_config/encryptionkey_service greyscale_colors = "#ebebeb#3bca5a" +/obj/item/encryptionkey/headset_srvent + name = "press radio encryption key" + icon_state = "cypherkey_service" + channels = list(RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_ENTERTAINMENT = 0) + greyscale_config = /datum/greyscale_config/encryptionkey_service + greyscale_colors = "#83eb8f#3bca5a" + /obj/item/encryptionkey/headset_com name = "command radio encryption key" icon_state = "cypherkey_cube" @@ -182,7 +185,7 @@ /obj/item/encryptionkey/headset_cent name = "\improper CentCom radio encryption key" icon_state = "cypherkey_centcom" - independent = TRUE + special_channels = RADIO_SPECIAL_CENTCOM channels = list(RADIO_CHANNEL_CENTCOM = 1) greyscale_config = /datum/greyscale_config/encryptionkey_centcom greyscale_colors = "#24a157#dca01b" @@ -197,6 +200,7 @@ RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_AI_PRIVATE = 1, + RADIO_CHANNEL_ENTERTAINMENT = 1, ) /obj/item/encryptionkey/ai_with_binary @@ -210,15 +214,16 @@ RADIO_CHANNEL_SUPPLY = 1, RADIO_CHANNEL_SERVICE = 1, RADIO_CHANNEL_AI_PRIVATE = 1, + RADIO_CHANNEL_ENTERTAINMENT = 1, ) - translate_binary = TRUE + special_channels = RADIO_SPECIAL_BINARY translated_language = /datum/language/machine /obj/item/encryptionkey/ai/evil //ported from NT, this goes 'inside' the AI. name = "syndicate binary encryption key" icon_state = "cypherkey_syndicate" channels = list(RADIO_CHANNEL_SYNDICATE = 1) - syndie = TRUE + special_channels = RADIO_SPECIAL_SYNDIE greyscale_config = /datum/greyscale_config/encryptionkey_syndicate greyscale_colors = "#171717#990000" diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 1f2cd37a5ccef..8ad4f0d77d169 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -11,7 +11,8 @@ GLOBAL_LIST_INIT(channel_tokens, list( RADIO_CHANNEL_SUPPLY = RADIO_TOKEN_SUPPLY, RADIO_CHANNEL_SERVICE = RADIO_TOKEN_SERVICE, MODE_BINARY = MODE_TOKEN_BINARY, - RADIO_CHANNEL_AI_PRIVATE = RADIO_TOKEN_AI_PRIVATE + RADIO_CHANNEL_AI_PRIVATE = RADIO_TOKEN_AI_PRIVATE, + RADIO_CHANNEL_ENTERTAINMENT = RADIO_TOKEN_ENTERTAINMENT, )) /obj/item/radio/headset @@ -49,7 +50,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( if(item_flags & IN_INVENTORY && loc == user) // construction of frequency description var/list/avail_chans = list("Use [RADIO_KEY_COMMON] for the currently tuned frequency") - if(translate_binary) + if(special_channels & RADIO_SPECIAL_BINARY) avail_chans += "use [MODE_TOKEN_BINARY] for [MODE_BINARY]" if(length(channels)) for(var/i in 1 to length(channels)) @@ -69,6 +70,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( if(ispath(keyslot2)) keyslot2 = new keyslot2() set_listening(TRUE) + set_broadcasting(TRUE) recalculateChannels() possibly_deactivate_in_loc() @@ -114,6 +116,22 @@ GLOBAL_LIST_INIT(channel_tokens, list( for(var/language in language_list) user.remove_language(language, language_flags = UNDERSTOOD_LANGUAGE, source = LANGUAGE_RADIOKEY) +// Headsets do not become hearing sensitive as broadcasting instead controls their talk_into capabilities +/obj/item/radio/headset/set_broadcasting(new_broadcasting, actual_setting = TRUE) + broadcasting = new_broadcasting + if(actual_setting) + should_be_broadcasting = broadcasting + + if (perform_update_icon && !isnull(overlay_mic_idle)) + update_icon() + else if (!perform_update_icon) + should_update_icon = TRUE + +/obj/item/radio/headset/talk_into_impl(atom/movable/talking_movable, message, channel, list/spans, datum/language/language, list/message_mods) + if (!broadcasting) + return + return ..() + /obj/item/radio/headset/syndicate //disguised to look like a normal headset for stealth ops /obj/item/radio/headset/syndicate/Initialize(mapload) @@ -203,6 +221,13 @@ GLOBAL_LIST_INIT(channel_tokens, list( worn_icon_state = "srv_headset" keyslot = /obj/item/encryptionkey/headset_srvmed +/obj/item/radio/headset/headset_srvent + name = "press headset" + desc = "A headset allowing the wearer to communicate with service and broadcast to entertainment channel." + icon_state = "srvent_headset" + worn_icon_state = "srv_headset" + keyslot = /obj/item/encryptionkey/headset_srvent + /obj/item/radio/headset/headset_com name = "command radio headset" desc = "A headset with a commanding channel." @@ -299,7 +324,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/headset_cargo/mining name = "mining radio headset" - desc = "Headset used by shaft miners." + desc = "Headset used by shaft miners. It has a mining network uplink which allows the user to quickly transmit commands to their comrades and amplifies their voice in low-pressure environments." icon_state = "mine_headset" worn_icon_state = "mine_headset" // "puts the antenna down" while the headset is off @@ -307,6 +332,19 @@ GLOBAL_LIST_INIT(channel_tokens, list( overlay_mic_idle = "headset_up" keyslot = /obj/item/encryptionkey/headset_mining +/obj/item/radio/headset/headset_cargo/mining/Initialize(mapload) + . = ..() + AddComponent(/datum/component/callouts, ITEM_SLOT_EARS, examine_text = span_info("Use ctrl-click to enable or disable callouts.")) + +/obj/item/radio/headset/headset_cargo/mining/equipped(mob/living/carbon/human/user, slot) + . = ..() + if(slot & ITEM_SLOT_EARS) + ADD_TRAIT(user, TRAIT_SPEECH_BOOSTER, CLOTHING_TRAIT) + +/obj/item/radio/headset/headset_cargo/mining/dropped(mob/living/carbon/human/user) + . = ..() + REMOVE_TRAIT(user, TRAIT_SPEECH_BOOSTER, CLOTHING_TRAIT) + /obj/item/radio/headset/headset_srv name = "service radio headset" desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean." @@ -417,12 +455,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( if(!(ch_name in src.channels)) LAZYSET(channels, ch_name, keyslot2.channels[ch_name]) - if(keyslot2.translate_binary) - translate_binary = TRUE - if(keyslot2.syndie) - syndie = TRUE - if(keyslot2.independent) - independent = TRUE + special_channels |= keyslot2.special_channels for(var/ch_name in channels) secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name]) @@ -446,7 +479,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( grant_headset_languages(mob_loc) /obj/item/radio/headset/click_alt(mob/living/user) - if (!command) + if(!istype(user) || !command) return CLICK_ACTION_BLOCKING use_command = !use_command to_chat(user, span_notice("You toggle high-volume mode [use_command ? "on" : "off"].")) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 504f547b5cb78..cd8535e8d2823 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -118,7 +118,7 @@ return FALSE if(freq == FREQ_SYNDICATE) - if(!(syndie)) + if(!(special_channels &= RADIO_SPECIAL_SYNDIE)) return FALSE//Prevents broadcast of messages over devices lacking the encryption return TRUE @@ -154,7 +154,7 @@ // A fully locked one will do nothing, as locked is intended to be used for stuff that should never be changed if(RADIO_FREQENCY_LOCKED) balloon_alert(user, "can't override frequency lock!") - playsound(src, 'sound/machines/buzz-two.ogg', 50, FALSE, SILENCED_SOUND_EXTRARANGE) + playsound(src, 'sound/machines/buzz/buzz-two.ogg', 50, FALSE, SILENCED_SOUND_EXTRARANGE) return // Emagging an unlocked one will do nothing, for now @@ -219,6 +219,19 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom, 27) command = TRUE icon_off = "intercom_command-p" +/obj/item/radio/intercom/syndicate + name = "syndicate intercom" + desc = "Talk smack through this." + command = TRUE + special_channels = RADIO_SPECIAL_SYNDIE + +/obj/item/radio/intercom/syndicate/freerange + name = "syndicate wide-band intercom" + desc = "A custom-made Syndicate-issue intercom used to transmit on all Nanotrasen frequencies. Particularly expensive." + freerange = TRUE + MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/prison, 27) MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/chapel, 27) MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/command, 27) +MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/syndicate, 27) +MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom/syndicate/freerange, 27) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 912e1d66b0929..93a131a9b468b 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -19,7 +19,7 @@ w_class = WEIGHT_CLASS_SMALL custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT * 0.75, /datum/material/glass=SMALL_MATERIAL_AMOUNT * 0.25) - ///if FALSE, broadcasting and listening dont matter and this radio shouldnt do anything + ///if FALSE, broadcasting and listening don't matter and this radio shouldn't do anything VAR_PRIVATE/on = TRUE ///the "default" radio frequency this radio is set to, listens and transmits to this frequency by default. wont work if the channel is encrypted VAR_PRIVATE/frequency = FREQ_COMMON @@ -57,18 +57,16 @@ var/use_command = FALSE /// If true, use_command can be toggled at will. var/command = FALSE + /// Does it play radio noise? + var/radio_noise = TRUE ///makes anyone who is talking through this anonymous. var/anonymize = FALSE /// Encryption key handling var/obj/item/encryptionkey/keyslot - /// If true, can hear the special binary channel. - var/translate_binary = FALSE - /// If true, can say/hear on the special CentCom channel. - var/independent = FALSE - /// If true, hears all well-known channels automatically, and can say/hear on the Syndicate channel. Also protects from radio jammers. - var/syndie = FALSE + /// Flags for which "special" radio networks should be accessible + var/special_channels = NONE /// associative list of the encrypted radio channels this radio is currently set to listen/broadcast to, of the form: list(channel name = TRUE or FALSE) var/list/channels /// associative list of the encrypted radio channels this radio can listen/broadcast to, of the form: list(channel name = channel frequency) @@ -81,7 +79,7 @@ /// overlay when mic is on var/overlay_mic_idle = "m_idle" - /// overlay when speaking a message (is displayed simultaniously with speaker_active) + /// overlay when speaking a message (is displayed simultaneously with speaker_active) var/overlay_mic_active = "m_active" /// When set to FALSE, will avoid calling update_icon() in set_broadcasting and co. @@ -91,6 +89,11 @@ /// If TRUE, will set the icon in initializations. VAR_PRIVATE/should_update_icon = FALSE + /// A very brief cooldown to prevent regular radio sounds from overlapping. + COOLDOWN_DECLARE(audio_cooldown) + /// A very brief cooldown to prevent "important" radio sounds from overlapping. + COOLDOWN_DECLARE(important_audio_cooldown) + /obj/item/radio/Initialize(mapload) set_wires(new /datum/wires/radio(src)) secure_radio_connections = list() @@ -104,7 +107,7 @@ perform_update_icon = FALSE set_listening(listening) set_broadcasting(broadcasting) - set_frequency(sanitize_frequency(frequency, freerange, syndie)) + set_frequency(sanitize_frequency(frequency, freerange, (special_channels & RADIO_SPECIAL_SYNDIE))) set_on(on) perform_update_icon = TRUE @@ -118,20 +121,17 @@ return AddElement(/datum/element/slapcrafting, string_list(list(/datum/crafting_recipe/improv_explosive))) - RegisterSignal(src, COMSIG_HIT_BY_SABOTEUR, PROC_REF(on_saboteur)) - /obj/item/radio/Destroy() remove_radio_all(src) //Just to be sure - QDEL_NULL(wires) if(istype(keyslot)) QDEL_NULL(keyslot) return ..() -/obj/item/radio/proc/on_saboteur(datum/source, disrupt_duration) - SIGNAL_HANDLER +/obj/item/radio/on_saboteur(datum/source, disrupt_duration) + . = ..() if(broadcasting) //no broadcasting but it can still be used to send radio messages. set_broadcasting(FALSE) - return COMSIG_SABOTEUR_SUCCESS + return TRUE /obj/item/radio/proc/set_frequency(new_frequency) SEND_SIGNAL(src, COMSIG_RADIO_NEW_FREQUENCY, args) @@ -150,23 +150,19 @@ if(!(channel_name in channels)) channels[channel_name] = keyslot.channels[channel_name] - if(keyslot.translate_binary) - translate_binary = TRUE - if(keyslot.syndie) - syndie = TRUE - if(keyslot.independent) - independent = TRUE + special_channels = keyslot.special_channels for(var/channel_name in channels) secure_radio_connections[channel_name] = add_radio(src, GLOB.radiochannels[channel_name]) + if(!listening) + remove_radio_all(src) + // Used for cyborg override /obj/item/radio/proc/resetChannels() channels = list() secure_radio_connections = list() - translate_binary = FALSE - syndie = FALSE - independent = FALSE + special_channels = NONE ///goes through all radio channels we should be listening for and readds them to the global list /obj/item/radio/proc/readd_listening_radio_channels() @@ -178,7 +174,7 @@ /obj/item/radio/proc/make_syndie() // Turns normal radios into Syndicate radios! qdel(keyslot) keyslot = new /obj/item/encryptionkey/syndicate() - syndie = TRUE + special_channels |= RADIO_SPECIAL_SYNDIE recalculateChannels() /obj/item/radio/interact(mob/user) @@ -189,7 +185,7 @@ ..() //simple getters only because i NEED to enforce complex setter use for these vars for caching purposes but VAR_PROTECTED requires getter usage as well. -//if another decorator is made that doesnt require getters feel free to nuke these and change these vars over to that +//if another decorator is made that doesn't require getters feel free to nuke these and change these vars over to that ///simple getter for the on variable. necessary due to VAR_PROTECTED /obj/item/radio/proc/is_on() @@ -244,7 +240,7 @@ if(actual_setting) should_be_broadcasting = broadcasting - if(broadcasting && on) //we dont need hearing sensitivity if we arent broadcasting, because talk_into doesnt care about hearing + if(broadcasting && on) //we don't need hearing sensitivity if we aren't broadcasting, because talk_into doesn't care about hearing become_hearing_sensitive(INNATE_TRAIT) else if(!broadcasting) lose_hearing_sensitivity(INNATE_TRAIT) @@ -260,7 +256,7 @@ on = new_on if(on) - set_broadcasting(should_be_broadcasting)//set them to whatever theyre supposed to be + set_broadcasting(should_be_broadcasting)//set them to whatever they're supposed to be set_listening(should_be_listening) else set_broadcasting(FALSE, actual_setting = FALSE)//fake set them to off @@ -335,7 +331,7 @@ channel = null // Nearby active jammers prevent the message from transmitting - if(is_within_radio_jammer_range(src) && !syndie) + if(is_within_radio_jammer_range(src) && !(special_channels & RADIO_SPECIAL_SYNDIE)) return // Determine the identity information which will be attached to the signal. @@ -345,13 +341,19 @@ var/datum/signal/subspace/vocal/signal = new(src, freq, speaker, language, radio_message, spans, message_mods) // Independent radios, on the CentCom frequency, reach all independent radios - if (independent && (freq == FREQ_CENTCOM || freq == FREQ_CTF_RED || freq == FREQ_CTF_BLUE || freq == FREQ_CTF_GREEN || freq == FREQ_CTF_YELLOW)) + if (special_channels & RADIO_SPECIAL_CENTCOM && (freq == FREQ_CENTCOM || freq == FREQ_CTF_RED || freq == FREQ_CTF_BLUE || freq == FREQ_CTF_GREEN || freq == FREQ_CTF_YELLOW)) signal.data["compression"] = 0 signal.transmission_method = TRANSMISSION_SUPERSPACE signal.levels = list(0) signal.broadcast() return + + if(isliving(talking_movable)) + var/mob/living/talking_living = talking_movable + if(radio_noise && !HAS_TRAIT(talking_living, TRAIT_DEAF) && talking_living.client?.prefs.read_preference(/datum/preference/toggle/radio_noise)) + SEND_SOUND(talking_living, 'sound/items/radio/radio_talk.ogg') + // All radios make an attempt to use the subspace system first signal.send_to_receivers() @@ -392,13 +394,12 @@ if(message_mods[RADIO_EXTENSION] == MODE_L_HAND || message_mods[RADIO_EXTENSION] == MODE_R_HAND) // try to avoid being heard double if (loc == speaker && ismob(speaker)) - var/mob/M = speaker - var/idx = M.get_held_index_of_item(src) + var/mob/mob_speaker = speaker + var/idx = mob_speaker.get_held_index_of_item(src) // left hands are odd slots if (idx && (idx % 2) == (message_mods[RADIO_EXTENSION] == MODE_L_HAND)) return - - talk_into(speaker, raw_message, , spans, language=message_language, message_mods=filtered_mods) + talk_into(speaker, raw_message, spans=spans, language=message_language, message_mods=filtered_mods) /// Checks if this radio can receive on the given frequency. /obj/item/radio/proc/can_receive(input_frequency, list/levels) @@ -408,7 +409,7 @@ if(!position || !(position.z in levels)) return FALSE - if (input_frequency == FREQ_SYNDICATE && !syndie) + if (input_frequency == FREQ_SYNDICATE && !(special_channels & RADIO_SPECIAL_SYNDIE)) return FALSE // allow checks: are we listening on that frequency? @@ -416,7 +417,7 @@ return TRUE for(var/ch_name in channels) if(channels[ch_name] & FREQ_LISTENING) - if(GLOB.radiochannels[ch_name] == text2num(input_frequency) || syndie) + if(GLOB.radiochannels[ch_name] == text2num(input_frequency) || special_channels & RADIO_SPECIAL_SYNDIE) return TRUE return FALSE @@ -424,6 +425,21 @@ SEND_SIGNAL(src, COMSIG_RADIO_RECEIVE_MESSAGE, data) flick_overlay_view(overlay_speaker_active, 5 SECONDS) + if(!isliving(loc)) + return + + var/mob/living/holder = loc + if(!radio_noise || HAS_TRAIT(holder, TRAIT_DEAF) || !holder.client?.prefs.read_preference(/datum/preference/toggle/radio_noise)) + return + + var/list/spans = data["spans"] + if(COOLDOWN_FINISHED(src, audio_cooldown)) + COOLDOWN_START(src, audio_cooldown, 0.5 SECONDS) + SEND_SOUND(holder, 'sound/items/radio/radio_receive.ogg') + if((SPAN_COMMAND in spans) && COOLDOWN_FINISHED(src, important_audio_cooldown)) + COOLDOWN_START(src, important_audio_cooldown, 0.5 SECONDS) + SEND_SOUND(holder, 'sound/items/radio/radio_important.ogg') + /obj/item/radio/ui_state(mob/user) return GLOB.inventory_state @@ -472,7 +488,7 @@ tune = tune * 10 . = TRUE if(.) - set_frequency(sanitize_frequency(tune, freerange, syndie)) + set_frequency(sanitize_frequency(tune, freerange, (special_channels & RADIO_SPECIAL_SYNDIE))) if("listen") set_listening(!listening) . = TRUE @@ -500,10 +516,6 @@ recalculateChannels() . = TRUE -/obj/item/radio/suicide_act(mob/living/user) - user.visible_message(span_suicide("[user] starts bouncing [src] off [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!")) - return BRUTELOSS - /obj/item/radio/examine(mob/user) . = ..() if (frequency && in_range(src, user)) @@ -522,6 +534,11 @@ if(listening && overlay_speaker_idle) . += overlay_speaker_idle +/obj/item/radio/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(user.combat_mode && tool.tool_behaviour == TOOL_SCREWDRIVER) + return screwdriver_act(user, tool) + return ..() + /obj/item/radio/screwdriver_act(mob/living/user, obj/item/tool) add_fingerprint(user) unscrewed = !unscrewed @@ -575,7 +592,7 @@ channels[ch_name] = TRUE /obj/item/radio/borg/syndicate - syndie = TRUE + special_channels = RADIO_SPECIAL_SYNDIE keyslot = /obj/item/encryptionkey/syndicate /obj/item/radio/borg/syndicate/Initialize(mapload) @@ -623,4 +640,60 @@ . = ..() set_listening(FALSE) +// RADIOS USED BY BROADCASTING +/obj/item/radio/entertainment + desc = "You should not hold this." + canhear_range = 7 + freerange = TRUE + freqlock = RADIO_FREQENCY_LOCKED + radio_noise = FALSE + +/obj/item/radio/entertainment/Initialize(mapload) + . = ..() + set_frequency(FREQ_ENTERTAINMENT) + +/obj/item/radio/entertainment/speakers // Used inside of the entertainment monitors, not to be used as a actual item + should_be_listening = TRUE + should_be_broadcasting = FALSE + +/obj/item/radio/entertainment/speakers/Initialize(mapload) + . = ..() + set_broadcasting(FALSE) + set_listening(TRUE) + wires?.cut(WIRE_TX) + +/obj/item/radio/entertainment/speakers/on_receive_message(list/data) + playsound(source = src, soundin = SFX_MUFFLED_SPEECH, vol = 60, extrarange = -4, vary = TRUE, ignore_walls = FALSE) + + return ..() + +/obj/item/radio/entertainment/speakers/physical // Can be used as a physical item + name = "entertainment radio" + desc = "A portable one-way radio permamently tuned into entertainment frequency." + icon_state = "radio" + inhand_icon_state = "radio" + worn_icon_state = "radio" + overlay_speaker_idle = "radio_s_idle" + overlay_speaker_active = "radio_s_active" + overlay_mic_idle = "radio_m_idle" + overlay_mic_active = "radio_m_active" + +/obj/item/radio/entertainment/microphone // Used inside of a broadcast camera, not to be used as a actual item + should_be_listening = FALSE + should_be_broadcasting = TRUE + +/obj/item/radio/entertainment/microphone/Initialize(mapload) + . = ..() + set_broadcasting(TRUE) + set_listening(FALSE) + wires?.cut(WIRE_RX) + +/obj/item/radio/entertainment/microphone/physical // Can be used as a physical item + name = "microphone" + desc = "No comments." + icon = 'icons/obj/service/broadcast.dmi' + icon_state = "microphone" + inhand_icon_state = "microphone" + canhear_range = 3 + #undef FREQ_LISTENING diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index e88b1a51187a3..342383380cf76 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -112,7 +112,7 @@ source = src, header = "Reverse bear trap armed", notify_flags = NOTIFY_CATEGORY_NOFLASH, - ghost_sound = 'sound/machines/beep.ogg', + ghost_sound = 'sound/machines/beep/beep.ogg', notify_volume = 75, ) diff --git a/code/game/objects/items/devices/scanners/autopsy_scanner.dm b/code/game/objects/items/devices/scanners/autopsy_scanner.dm index c5d33b7422656..a054b3c69d2ce 100644 --- a/code/game/objects/items/devices/scanners/autopsy_scanner.dm +++ b/code/game/objects/items/devices/scanners/autopsy_scanner.dm @@ -95,7 +95,7 @@ var/blood_type = scanned.dna.blood_type if(blood_id != /datum/reagent/blood) var/datum/reagent/reagents = GLOB.chemical_reagents_list[blood_id] - blood_type = reagents ? reagents.name : blood_id + blood_type = reagents?.name || blood_id autopsy_information += "Blood Type: [blood_type]
" autopsy_information += "Blood Volume: [scanned.blood_volume] cl ([blood_percent]%)
" @@ -108,10 +108,11 @@ for(var/datum/symptom/symptom as anything in advanced_disease.symptoms) autopsy_information += "[symptom.name] - [symptom.desc]
" - var/obj/item/paper/autopsy_report = new(user.loc) - autopsy_report.name = "Autopsy Report ([scanned.name])" + var/obj/item/paper/autopsy_report = new(user.drop_location()) + autopsy_report.name = "autopsy report of [scanned] - [station_time_timestamp()])" autopsy_report.add_raw_text(autopsy_information.Join("\n")) - autopsy_report.update_appearance(UPDATE_ICON) + autopsy_report.color = "#99ccff" + autopsy_report.update_appearance() user.put_in_hands(autopsy_report) user.balloon_alert(user, "report printed") return TRUE diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index f5fe29f9ed541..c49d0a1aa21a9 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -18,6 +18,8 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT * 0.3, /datum/material/glass=SMALL_MATERIAL_AMOUNT * 0.2) grind_results = list(/datum/reagent/mercury = 5, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) interaction_flags_click = NEED_LITERACY|NEED_LIGHT|ALLOW_RESTING + pickup_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_pickup.ogg' + drop_sound = 'sound/items/handling/gas_analyzer/gas_analyzer_drop.ogg' /// Boolean whether this has a CD var/cooldown = FALSE /// The time in deciseconds @@ -181,6 +183,7 @@ var/icon = target var/message = list() + playsound(user, SFX_INDUSTRIAL_SCAN, 20, TRUE, -2, TRUE, FALSE) if(!silent && isliving(user)) user.visible_message(span_notice("[user] uses the analyzer on [icon2html(icon, viewers(user))] [target]."), span_notice("You use the analyzer on [icon2html(icon, user)] [target].")) message += span_boldnotice("Results of analysis of [icon2html(icon, user)] [target].") diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index c8c76c583e103..5b7ee4f7026b8 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -30,6 +30,8 @@ custom_price = PAYCHECK_COMMAND /// If this analyzer will give a bonus to wound treatments apon woundscan. var/give_wound_treatment_bonus = FALSE + var/last_scan_text + var/scanner_busy = FALSE /obj/item/healthanalyzer/Initialize(mapload) . = ..() @@ -38,7 +40,7 @@ /obj/item/healthanalyzer/examine(mob/user) . = ..() if(src.mode != SCANNER_NO_MODE) - . += span_notice("Alt-click [src] to toggle the limb damage readout.") + . += span_notice("Alt-click [src] to toggle the limb damage readout. Ctrl-shift-click to print readout report.") /obj/item/healthanalyzer/suicide_act(mob/living/carbon/user) user.visible_message(span_suicide("[user] begins to analyze [user.p_them()]self with [src]! The display shows that [user.p_theyre()] dead!")) @@ -58,8 +60,6 @@ /obj/item/healthanalyzer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!isliving(interacting_with)) return NONE - if(!user.can_read(src) || user.is_blind()) - return ITEM_INTERACT_BLOCKING var/mob/living/M = interacting_with @@ -69,37 +69,45 @@ // Clumsiness/brain damage check if ((HAS_TRAIT(user, TRAIT_CLUMSY) || HAS_TRAIT(user, TRAIT_DUMB)) && prob(50)) - user.visible_message(span_warning("[user] analyzes the floor's vitals!"), \ - span_notice("You stupidly try to analyze the floor's vitals!")) - to_chat(user, "[span_info("Analyzing results for The floor:\n\tOverall status: Healthy")]\ - \n[span_info("Key: Suffocation/Toxin/Burn/Brute")]\ - \n[span_info("\tDamage specifics: 0-0-0-0")]\ - \n[span_info("Body temperature: ???")]") + var/turf/scan_turf = get_turf(user) + user.visible_message( + span_warning("[user] analyzes [scan_turf]'s vitals!"), + span_notice("You stupidly try to analyze [scan_turf]'s vitals!"), + ) + + var/floor_text = "Analyzing results for [scan_turf] ([station_time_timestamp()]):
" + floor_text += "Overall status: Unknown
" + floor_text += "Subject lacks a brain.
" + floor_text += "Body temperature: [scan_turf?.return_air()?.return_temperature() || "???"]
" + + if(user.can_read(src) && !user.is_blind()) + to_chat(user, examine_block(floor_text)) + last_scan_text = floor_text return if(ispodperson(M) && !advanced) - to_chat(user, "[M]'s biological structure is too complex for the health analyzer.") + to_chat(user, span_info("[M]'s biological structure is too complex for the health analyzer.")) return user.visible_message(span_notice("[user] analyzes [M]'s vitals.")) balloon_alert(user, "analyzing vitals") playsound(user.loc, 'sound/items/healthanalyzer.ogg', 50) + var/readability_check = user.can_read(src) && !user.is_blind() switch (scanmode) if (SCANMODE_HEALTH) - healthscan(user, M, mode, advanced) + last_scan_text = healthscan(user, M, mode, advanced, tochat = readability_check) if (SCANMODE_WOUND) - woundscan(user, M, src) + if(readability_check) + woundscan(user, M, src) add_fingerprint(user) /obj/item/healthanalyzer/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) if(!isliving(interacting_with)) return NONE - if(!user.can_read(src) || user.is_blind()) - return ITEM_INTERACT_BLOCKING - - chemscan(user, interacting_with) + if(user.can_read(src) && !user.is_blind()) + chemscan(user, interacting_with) return ITEM_INTERACT_SUCCESS /obj/item/healthanalyzer/add_item_context( @@ -132,284 +140,312 @@ * tochat - Whether to immediately post the result into the chat of the user, otherwise it will return the results. */ /proc/healthscan(mob/user, mob/living/target, mode = SCANNER_VERBOSE, advanced = FALSE, tochat = TRUE) - if(user.incapacitated()) + if(user.incapacitated) return // the final list of strings to render - var/render_list = list() + var/list/render_list = list() // Damage specifics var/oxy_loss = target.getOxyLoss() var/tox_loss = target.getToxLoss() var/fire_loss = target.getFireLoss() var/brute_loss = target.getBruteLoss() - var/mob_status = (target.stat == DEAD ? span_alert("Deceased") : "[round(target.health/target.maxHealth,0.01)*100]% healthy") + var/mob_status = (!target.appears_alive() ? span_alert("Deceased") : "[round(target.health / target.maxHealth, 0.01) * 100]% healthy") - if(HAS_TRAIT(target, TRAIT_FAKEDEATH) && !advanced) - mob_status = span_alert("Deceased") - oxy_loss = max(rand(1, 40), oxy_loss, (300 - (tox_loss + fire_loss + brute_loss))) // Random oxygen loss + if(HAS_TRAIT(target, TRAIT_FAKEDEATH) && target.stat != DEAD) + // if we don't appear to actually be in a "dead state", add fake oxyloss + if(oxy_loss + tox_loss + fire_loss + brute_loss < 200) + oxy_loss += 200 - (oxy_loss + tox_loss + fire_loss + brute_loss) + oxy_loss = clamp(oxy_loss, 0, 200) - render_list += "[span_info("Analyzing results for [target]:")]\nOverall status: [mob_status]\n" + render_list += "[span_info("Analyzing results for [target] ([station_time_timestamp()]):")]
Overall status: [mob_status]
" - if(ishuman(target)) - var/mob/living/carbon/human/humantarget = target - if(humantarget.undergoing_cardiac_arrest() && humantarget.stat != DEAD) - render_list += "Subject suffering from heart attack: Apply defibrillation or other electric shock immediately!\n" - if(humantarget.has_reagent(/datum/reagent/inverse/technetium)) - advanced = TRUE + if(!advanced && target.has_reagent(/datum/reagent/inverse/technetium)) + advanced = TRUE - SEND_SIGNAL(target, COMSIG_LIVING_HEALTHSCAN, render_list, advanced, user, mode) + SEND_SIGNAL(target, COMSIG_LIVING_HEALTHSCAN, render_list, advanced, user, mode, tochat) // Husk detection if(HAS_TRAIT(target, TRAIT_HUSK)) if(advanced) if(HAS_TRAIT_FROM(target, TRAIT_HUSK, BURN)) - render_list += "Subject has been husked by severe burns.\n" + render_list += "Subject has been husked by [conditional_tooltip("severe burns", "Tend burns and apply a de-husking agent, such as [/datum/reagent/medicine/c2/synthflesh::name].", tochat)].
" else if (HAS_TRAIT_FROM(target, TRAIT_HUSK, CHANGELING_DRAIN)) - render_list += "Subject has been husked by dessication.\n" + render_list += "Subject has been husked by [conditional_tooltip("desiccation", "Irreparable. Under normal circumstances, revival can only proceed via brain transplant.", tochat)].
" else - render_list += "Subject has been husked by mysterious causes.\n" + render_list += "Subject has been husked by mysterious causes.
" else - render_list += "Subject has been husked.\n" + render_list += "Subject has been husked.
" if(target.getStaminaLoss()) if(advanced) - render_list += "Fatigue level: [target.getStaminaLoss()]%.\n" + render_list += "Fatigue level: [target.getStaminaLoss()]%.
" else - render_list += "Subject appears to be suffering from fatigue.\n" + render_list += "Subject appears to be suffering from fatigue.
" if (!target.get_organ_slot(ORGAN_SLOT_BRAIN)) // kept exclusively for soul purposes - render_list += "Subject lacks a brain.\n" + render_list += "Subject lacks a brain.
" if(iscarbon(target)) var/mob/living/carbon/carbontarget = target - if(LAZYLEN(carbontarget.get_traumas())) - var/list/trauma_text = list() - for(var/datum/brain_trauma/trauma in carbontarget.get_traumas()) - var/trauma_desc = "" - switch(trauma.resilience) - if(TRAUMA_RESILIENCE_SURGERY) - trauma_desc += "severe " - if(TRAUMA_RESILIENCE_LOBOTOMY) - trauma_desc += "deep-rooted " - if(TRAUMA_RESILIENCE_WOUND) - trauma_desc += "fracture-derived " - if(TRAUMA_RESILIENCE_MAGIC, TRAUMA_RESILIENCE_ABSOLUTE) - trauma_desc += "permanent " - trauma_desc += trauma.scan_desc - trauma_text += trauma_desc - render_list += "Cerebral traumas detected: subject appears to be suffering from [english_list(trauma_text)].\n" - if(carbontarget.quirks.len) - render_list += "Subject Major Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MAJOR_DISABILITY, from_scan = TRUE)].\n" + if(LAZYLEN(carbontarget.quirks)) + render_list += "Subject Major Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MAJOR_DISABILITY, from_scan = TRUE)].
" if(advanced) - render_list += "Subject Minor Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MINOR_DISABILITY, TRUE)].\n" - - if (HAS_TRAIT(target, TRAIT_IRRADIATED)) - render_list += "Subject is irradiated. Supply toxin healing.\n" - - //Eyes and ears - if(advanced && iscarbon(target)) - var/mob/living/carbon/carbontarget = target - - // Ear status - var/obj/item/organ/internal/ears/ears = carbontarget.get_organ_slot(ORGAN_SLOT_EARS) - if(istype(ears)) - if(HAS_TRAIT_FROM(carbontarget, TRAIT_DEAF, GENETIC_MUTATION)) - render_list += "Subject is genetically deaf.\n" - else if(HAS_TRAIT_FROM(carbontarget, TRAIT_DEAF, EAR_DAMAGE)) - render_list += "Subject is deaf from ear damage.\n" - else if(HAS_TRAIT(carbontarget, TRAIT_DEAF)) - render_list += "Subject is deaf.\n" - else - if(ears.damage) - render_list += "Subject has [ears.damage > ears.maxHealth ? "permanent ": "temporary "]hearing damage.\n" - if(ears.deaf) - render_list += "Subject is [ears.damage > ears.maxHealth ? "permanently": "temporarily"] deaf.\n" - - // Eye status - var/obj/item/organ/internal/eyes/eyes = carbontarget.get_organ_slot(ORGAN_SLOT_EYES) - if(istype(eyes)) - if(carbontarget.is_blind()) - render_list += "Subject is blind.\n" - else if(carbontarget.is_nearsighted()) - render_list += "Subject is nearsighted.\n" + render_list += "Subject Minor Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MINOR_DISABILITY, TRUE)].
" // Body part damage report if(iscarbon(target)) var/mob/living/carbon/carbontarget = target - var/list/damaged = carbontarget.get_damaged_bodyparts(1,1) - if(length(damaged)>0 || oxy_loss>0 || tox_loss>0 || fire_loss>0) - var/dmgreport = "General status:\ - \ + var/any_damage = brute_loss > 0 || fire_loss > 0 || oxy_loss > 0 || tox_loss > 0 || fire_loss > 0 + var/any_missing = length(carbontarget.bodyparts) < (carbontarget.dna?.species?.max_bodypart_count || 6) + var/any_wounded = length(carbontarget.all_wounds) + var/any_embeds = carbontarget.has_embedded_objects() + if(any_damage || (mode == SCANNER_VERBOSE && (any_missing || any_wounded || any_embeds))) + render_list += "
" + var/dmgreport = "Body status:\ + \ +
\ + \ \ \ \ \ - \ - \ - \ - \ - \ - " + \ + \ + \ + \ + \ + \ + \ + \ + " if(mode == SCANNER_VERBOSE) - for(var/obj/item/bodypart/limb as anything in damaged) - if(limb.bodytype & BODYTYPE_ROBOTIC) - dmgreport += "" - else - dmgreport += "" - dmgreport += "" - dmgreport += "" - dmgreport += "
Damage:BruteBurnToxinSuffocation
Overall:[CEILING(brute_loss,1)][CEILING(fire_loss,1)][CEILING(tox_loss,1)][CEILING(oxy_loss,1)]
Suffocation
Overall:[ceil(brute_loss)][ceil(fire_loss)][ceil(tox_loss)][ceil(oxy_loss)]
[capitalize(limb.name)]:
[capitalize(limb.plaintext_zone)]:[(limb.brute_dam > 0) ? "[CEILING(limb.brute_dam,1)]" : "0"][(limb.burn_dam > 0) ? "[CEILING(limb.burn_dam,1)]" : "0"]
" + // Follow same body zone list every time so it's consistent across all humans + for(var/zone in GLOB.all_body_zones) + var/obj/item/bodypart/limb = carbontarget.get_bodypart(zone) + if(isnull(limb)) + dmgreport += "" + dmgreport += "[capitalize(parse_zone(zone))]:" + dmgreport += "-" + dmgreport += "-" + dmgreport += "" + dmgreport += "↳ Physical trauma: [conditional_tooltip("Dismembered", "Reattach or replace surgically.", tochat)]" + continue + var/has_any_embeds = length(limb.embedded_objects) >= 1 + var/has_any_wounds = length(limb.wounds) >= 1 + var/is_damaged = limb.burn_dam > 0 || limb.brute_dam > 0 + if(!is_damaged && (zone != BODY_ZONE_CHEST || (tox_loss <= 0 && oxy_loss <= 0)) && !has_any_embeds && !has_any_wounds) + continue + dmgreport += "" + dmgreport += "[capitalize((limb.bodytype & BODYTYPE_ROBOTIC) ? limb.name : limb.plaintext_zone)]:" + dmgreport += "[limb.brute_dam > 0 ? ceil(limb.brute_dam) : "0"]" + dmgreport += "[limb.burn_dam > 0 ? ceil(limb.burn_dam) : "0"]" + if(zone == BODY_ZONE_CHEST) // tox/oxy is stored in the chest + dmgreport += "[tox_loss > 0 ? ceil(tox_loss) : "0"]" + dmgreport += "[oxy_loss > 0 ? ceil(oxy_loss) : "0"]" + dmgreport += "" + if(has_any_embeds) + var/list/embedded_names = list() + for(var/obj/item/embed as anything in limb.embedded_objects) + embedded_names[capitalize(embed.name)] += 1 + for(var/embedded_name in embedded_names) + var/displayed = embedded_name + var/embedded_amt = embedded_names[embedded_name] + if(embedded_amt > 1) + displayed = "[embedded_amt]x [embedded_name]" + dmgreport += "↳ Foreign object(s): [conditional_tooltip(displayed, "Use a hemostat to remove.", tochat)]" + if(has_any_wounds) + for(var/datum/wound/wound as anything in limb.wounds) + dmgreport += "↳ Physical trauma: [conditional_tooltip("[wound.name] ([wound.severity_text()])", wound.treat_text_short, tochat)]" + + dmgreport += "" render_list += dmgreport // tables do not need extra linebreak - for(var/obj/item/bodypart/limb as anything in carbontarget.bodyparts) - for(var/obj/item/embed as anything in limb.embedded_objects) - render_list += "Embedded object: [embed] located in \the [limb.plaintext_zone]\n" if(ishuman(target)) var/mob/living/carbon/human/humantarget = target // Organ damage, missing organs - if(humantarget.organs && humantarget.organs.len) - var/render = FALSE - var/toReport = "Organs:\ - \ - \ - [advanced ? "" : ""]\ - " - - for(var/obj/item/organ/organ as anything in humantarget.organs) - var/status = organ.get_status_text(advanced) - if (status != "") + var/render = FALSE + var/toReport = "Organ status:\ + \ +
Organ:DmgStatus
\ + \ + \ + [advanced ? "" : ""]\ + \ + " + + var/list/missing_organs = list() + if(!humantarget.get_organ_slot(ORGAN_SLOT_BRAIN)) + missing_organs[ORGAN_SLOT_BRAIN] = "Brain" + if(humantarget.needs_heart() && !humantarget.get_organ_slot(ORGAN_SLOT_HEART)) + missing_organs[ORGAN_SLOT_HEART] = "Heart" + if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOBREATH, SPECIES_TRAIT) && !isnull(humantarget.dna.species.mutantlungs) && !humantarget.get_organ_slot(ORGAN_SLOT_LUNGS)) + missing_organs[ORGAN_SLOT_LUNGS] = "Lungs" + if(!HAS_TRAIT_FROM(humantarget, TRAIT_LIVERLESS_METABOLISM, SPECIES_TRAIT) && !isnull(humantarget.dna.species.mutantliver) && !humantarget.get_organ_slot(ORGAN_SLOT_LIVER)) + missing_organs[ORGAN_SLOT_LIVER] = "Liver" + if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOHUNGER, SPECIES_TRAIT) && !isnull(humantarget.dna.species.mutantstomach) && !humantarget.get_organ_slot(ORGAN_SLOT_STOMACH)) + missing_organs[ORGAN_SLOT_STOMACH] ="Stomach" + if(!isnull(humantarget.dna.species.mutanttongue) && !humantarget.get_organ_slot(ORGAN_SLOT_TONGUE)) + missing_organs[ORGAN_SLOT_TONGUE] = "Tongue" + if(!isnull(humantarget.dna.species.mutantears) && !humantarget.get_organ_slot(ORGAN_SLOT_EARS)) + missing_organs[ORGAN_SLOT_EARS] = "Ears" + if(!isnull(humantarget.dna.species.mutantears) && !humantarget.get_organ_slot(ORGAN_SLOT_EYES)) + missing_organs[ORGAN_SLOT_EYES] = "Eyes" + + // Follow same order as in the organ_process_order so it's consistent across all humans + for(var/sorted_slot in GLOB.organ_process_order) + var/obj/item/organ/organ = humantarget.get_organ_slot(sorted_slot) + if(isnull(organ)) + if(missing_organs[sorted_slot]) render = TRUE - toReport += "\ - [advanced ? "" : ""]\ - " - - var/missing_organs = list() - if(!humantarget.get_organ_slot(ORGAN_SLOT_BRAIN)) - missing_organs += "brain" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOBLOOD, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_HEART)) - missing_organs += "heart" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOBREATH, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_LUNGS)) - missing_organs += "lungs" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_LIVERLESS_METABOLISM, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_LIVER)) - missing_organs += "liver" - if(!HAS_TRAIT_FROM(humantarget, TRAIT_NOHUNGER, SPECIES_TRAIT) && !humantarget.get_organ_slot(ORGAN_SLOT_STOMACH)) - missing_organs += "stomach" - if(!humantarget.get_organ_slot(ORGAN_SLOT_TONGUE)) - missing_organs += "tongue" - if(!humantarget.get_organ_slot(ORGAN_SLOT_EARS)) - missing_organs += "ears" - if(!humantarget.get_organ_slot(ORGAN_SLOT_EYES)) - missing_organs += "eyes" - - if(length(missing_organs)) + toReport += "\ + [advanced ? "" : ""]\ + " + continue + if(mode != SCANNER_VERBOSE && !organ.show_on_condensed_scans()) + continue + var/status = organ.get_status_text(advanced, tochat) + var/appendix = organ.get_status_appendix(advanced, tochat) + if(status || appendix) + status ||= "OK" // otherwise flawless organs have no status reported by default render = TRUE - for(var/organ in missing_organs) - toReport += "\ - [advanced ? "" : ""]\ - " + toReport += "\ + \ + [advanced ? "" : ""]\ + \ + " + if(appendix) + toReport += "" + + if(render) + render_list += "
" + render_list += toReport + "
Organ:DmgStatus
[organ.name]:[CEILING(organ.damage,1)][status]
[missing_organs[sorted_slot]]:-Missing
[organ]:["-"]["Missing"]
[capitalize(organ.name)]:[organ.damage > 0 ? ceil(organ.damage) : "0"][status]
↳ [appendix]
" // tables do not need extra linebreak + + // Cybernetics + var/list/cyberimps + for(var/obj/item/organ/internal/cyberimp/cyberimp in humantarget.organs) + if(IS_ROBOTIC_ORGAN(cyberimp) && !(cyberimp.organ_flags & ORGAN_HIDDEN)) + LAZYADD(cyberimps, cyberimp.examine_title(user)) + if(LAZYLEN(cyberimps)) + if(!render) + render_list += "
" + render_list += "Detected cybernetic modifications:
" + render_list += "[english_list(cyberimps, and_text = ", and ")]
" - if(render) - render_list += toReport + "" // tables do not need extra linebreak + render_list += "
" //Genetic stability - if(advanced && humantarget.has_dna()) - render_list += "Genetic Stability: [humantarget.dna.stability]%.\n" + if(advanced && humantarget.has_dna() && humantarget.dna.stability != initial(humantarget.dna.stability)) + render_list += "Genetic Stability: [humantarget.dna.stability]%.
" // Hulk and body temperature var/datum/species/targetspecies = humantarget.dna.species - var/mutant = humantarget.dna.check_mutation(/datum/mutation/human/hulk) + var/mutant = HAS_TRAIT(humantarget, TRAIT_HULK) - render_list += "Species: [targetspecies.name][mutant ? "-derived mutant" : ""]\n" + render_list += "Species: [targetspecies.name][mutant ? "-derived mutant" : ""]
" var/core_temperature_message = "Core temperature: [round(humantarget.coretemperature-T0C, 0.1)] °C ([round(humantarget.coretemperature*1.8-459.67,0.1)] °F)" if(humantarget.coretemperature >= humantarget.get_body_temp_heat_damage_limit()) - render_list += "☼ [core_temperature_message] ☼\n" + render_list += "☼ [core_temperature_message] ☼
" else if(humantarget.coretemperature <= humantarget.get_body_temp_cold_damage_limit()) - render_list += "❄ [core_temperature_message] ❄\n" + render_list += "❄ [core_temperature_message] ❄
" else - render_list += "[core_temperature_message]\n" + render_list += "[core_temperature_message]
" var/body_temperature_message = "Body temperature: [round(target.bodytemperature-T0C, 0.1)] °C ([round(target.bodytemperature*1.8-459.67,0.1)] °F)" if(target.bodytemperature >= target.get_body_temp_heat_damage_limit()) - render_list += "☼ [body_temperature_message] ☼\n" + render_list += "☼ [body_temperature_message] ☼
" else if(target.bodytemperature <= target.get_body_temp_cold_damage_limit()) - render_list += "❄ [body_temperature_message] ❄\n" + render_list += "❄ [body_temperature_message] ❄
" else - render_list += "[body_temperature_message]\n" - - // Time of death - if(target.station_timestamp_timeofdeath && (target.stat == DEAD || ((HAS_TRAIT(target, TRAIT_FAKEDEATH)) && !advanced))) - render_list += "Time of Death: [target.station_timestamp_timeofdeath]\n" - var/tdelta = round(world.time - target.timeofdeath) - render_list += "Subject died [DisplayTimeText(tdelta)] ago.\n" - - // Wounds - if(iscarbon(target)) - var/mob/living/carbon/carbontarget = target - var/list/wounded_parts = carbontarget.get_wounded_bodyparts() - for(var/i in wounded_parts) - var/obj/item/bodypart/wounded_part = i - render_list += "Physical trauma[LAZYLEN(wounded_part.wounds) > 1 ? "s" : ""] detected in [wounded_part.name]" - for(var/k in wounded_part.wounds) - var/datum/wound/W = k - render_list += "
[W.name] ([W.severity_text()])\nRecommended treatment: [W.treat_text]
" // less lines than in woundscan() so we don't overload people trying to get basic med info - render_list += "
" - - //Diseases - for(var/datum/disease/disease as anything in target.diseases) - if(!(disease.visibility_flags & HIDDEN_SCANNER)) - render_list += "Warning: [disease.form] detected\n\ -
Name: [disease.name].\nType: [disease.spread_text].\nStage: [disease.stage]/[disease.max_stages].\nPossible Cure: [disease.cure_text]
\ -
" // divs do not need extra linebreak + render_list += "[body_temperature_message]
" // Blood Level - if(target.has_dna()) - var/mob/living/carbon/carbontarget = target - var/blood_id = carbontarget.get_blood_id() - if(blood_id) - if(carbontarget.is_bleeding()) - render_list += "Subject is bleeding!\n" - var/blood_percent = round((carbontarget.blood_volume / BLOOD_VOLUME_NORMAL) * 100) - var/blood_type = carbontarget.dna.blood_type - if(blood_id != /datum/reagent/blood) // special blood substance - var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] - blood_type = R ? R.name : blood_id - if(carbontarget.blood_volume <= BLOOD_VOLUME_SAFE && carbontarget.blood_volume > BLOOD_VOLUME_OKAY) - render_list += "Blood level: LOW [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]\n" - else if(carbontarget.blood_volume <= BLOOD_VOLUME_OKAY) - render_list += "Blood level: CRITICAL [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]\n" - else - render_list += "Blood level: [blood_percent]%, [carbontarget.blood_volume] cl, type: [blood_type]\n" + var/mob/living/carbon/carbontarget = target + var/blood_id = carbontarget.get_blood_id() + if(blood_id) + var/blood_percent = round((carbontarget.blood_volume / BLOOD_VOLUME_NORMAL) * 100) + var/blood_type = carbontarget.dna.blood_type + if(blood_id != /datum/reagent/blood) // special blood substance + var/datum/reagent/real_reagent = GLOB.chemical_reagents_list[blood_id] + blood_type = real_reagent?.name || blood_id + if(carbontarget.blood_volume <= BLOOD_VOLUME_SAFE && carbontarget.blood_volume > BLOOD_VOLUME_OKAY) + render_list += "Blood level: LOW [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]
" + else if(carbontarget.blood_volume <= BLOOD_VOLUME_OKAY) + render_list += "Blood level: CRITICAL [blood_percent]%, [carbontarget.blood_volume] cl, [span_info("type: [blood_type]")]
" + else + render_list += "Blood level: [blood_percent]%, [carbontarget.blood_volume] cl, type: [blood_type]
" - // Blood Alcohol Content var/blood_alcohol_content = target.get_blood_alcohol_content() if(blood_alcohol_content > 0) if(blood_alcohol_content >= 0.24) - render_list += "Blood alcohol content: CRITICAL [blood_alcohol_content]%\n" + render_list += "Blood alcohol content: CRITICAL [blood_alcohol_content]%
" else - render_list += "Blood alcohol content: [blood_alcohol_content]%\n" + render_list += "Blood alcohol content: [blood_alcohol_content]%
" - // Cybernetics - if(iscarbon(target)) - var/mob/living/carbon/carbontarget = target - var/cyberimp_detect - for(var/obj/item/organ/internal/cyberimp/cyberimp in carbontarget.organs) - if(IS_ROBOTIC_ORGAN(cyberimp) && !(cyberimp.organ_flags & ORGAN_HIDDEN)) - cyberimp_detect += "[!cyberimp_detect ? "[cyberimp.get_examine_string(user)]" : ", [cyberimp.get_examine_string(user)]"]" - if(cyberimp_detect) - render_list += "Detected cybernetic modifications:\n" - render_list += "[cyberimp_detect]\n" - // we handled the last
so we don't need handholding + //Diseases + var/disease_hr = FALSE + for(var/datum/disease/disease as anything in target.diseases) + if(disease.visibility_flags & HIDDEN_SCANNER) + continue + if(!disease_hr) + render_list += "
" + disease_hr = TRUE + render_list += "\ + Warning: [disease.form] detected
\ +
\ + Name: [disease.name].
\ + Type: [disease.spread_text].
\ + Stage: [disease.stage]/[disease.max_stages].
\ + Possible Cure: [disease.cure_text]
\ +
" + + // Time of death + if(target.station_timestamp_timeofdeath && !target.appears_alive()) + render_list += "
" + render_list += "Time of Death: [target.station_timestamp_timeofdeath]
" + render_list += "Subject died [DisplayTimeText(round(world.time - target.timeofdeath))] ago.
" + . = jointext(render_list, "") if(tochat) - to_chat(user, examine_block(jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) - else - return(jointext(render_list, "")) + to_chat(user, examine_block(.), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) + return . + +/obj/item/healthanalyzer/click_ctrl_shift(mob/user) + . = ..() + if(!LAZYLEN(last_scan_text)) + balloon_alert(user, "no scans!") + return + if(scanner_busy) + balloon_alert(user, "analyzer busy!") + return + scanner_busy = TRUE + balloon_alert(user, "printing report...") + addtimer(CALLBACK(src, PROC_REF(print_report)), 2 SECONDS) + +/obj/item/healthanalyzer/proc/print_report(mob/user) + var/obj/item/paper/report_paper = new(get_turf(src)) + + report_paper.color = "#99ccff" + report_paper.name = "health scan report - [station_time_timestamp()]" + var/report_text = "
Health scan report. Time of retrieval: [station_time_timestamp()]

" + report_text += last_scan_text + + report_paper.add_raw_text(report_text) + report_paper.update_appearance() + + if(ismob(loc)) + var/mob/printer = loc + printer.put_in_hands(report_paper) + balloon_alert(printer, "logs cleared") + + report_text = list() + scanner_busy = FALSE /proc/chemscan(mob/living/user, mob/living/target) - if(user.incapacitated()) + if(user.incapacitated) return if(istype(target) && target.reagents) @@ -422,12 +458,12 @@ var/datum/reagent/reagent = r if(reagent.chemical_flags & REAGENT_INVISIBLE) //Don't show hidden chems on scanners continue - render_block += "[round(reagent.volume, 0.001)] units of [reagent.name][reagent.overdosed ? " - [span_boldannounce("OVERDOSING")]" : ".
"]\n" + render_block += "[round(reagent.volume, 0.001)] units of [reagent.name][reagent.overdosed ? " - [span_boldannounce("OVERDOSING")]" : ".
"]
" if(!length(render_block)) //If no VISIBLY DISPLAYED reagents are present, we report as if there is nothing. - render_list += "Subject contains no reagents in their blood.\n" + render_list += "Subject contains no reagents in their blood.
" else - render_list += "Subject contains the following reagents in their blood:\n" + render_list += "Subject contains the following reagents in their blood:
" render_list += render_block //Otherwise, we add the header, reagent readouts, and clear the readout block for use on the stomach. render_block.Cut() @@ -440,35 +476,35 @@ if(bit.chemical_flags & REAGENT_INVISIBLE) continue if(!belly.food_reagents[bit.type]) - render_block += "[round(bit.volume, 0.001)] units of [bit.name][bit.overdosed ? " - [span_boldannounce("OVERDOSING")]" : ".
"]\n" + render_block += "[round(bit.volume, 0.001)] units of [bit.name][bit.overdosed ? " - [span_boldannounce("OVERDOSING")]" : ".
"]
" else var/bit_vol = bit.volume - belly.food_reagents[bit.type] if(bit_vol > 0) - render_block += "[round(bit_vol, 0.001)] units of [bit.name][bit.overdosed ? " - [span_boldannounce("OVERDOSING")]" : ".
"]\n" + render_block += "[round(bit_vol, 0.001)] units of [bit.name][bit.overdosed ? " - [span_boldannounce("OVERDOSING")]" : ".
"]
" if(!length(render_block)) - render_list += "Subject contains no reagents in their stomach.\n" + render_list += "Subject contains no reagents in their stomach.
" else - render_list += "Subject contains the following reagents in their stomach:\n" + render_list += "Subject contains the following reagents in their stomach:
" render_list += render_block // Addictions if(LAZYLEN(target.mind?.active_addictions)) - render_list += "Subject is addicted to the following types of drug:\n" + render_list += "Subject is addicted to the following types of drug:
" for(var/datum/addiction/addiction_type as anything in target.mind.active_addictions) - render_list += "[initial(addiction_type.name)]\n" + render_list += "[initial(addiction_type.name)]
" // Special eigenstasium addiction if(target.has_status_effect(/datum/status_effect/eigenstasium)) - render_list += "Subject is temporally unstable. Stabilising agent is recommended to reduce disturbances.\n" + render_list += "Subject is temporally unstable. Stabilising agent is recommended to reduce disturbances.
" // Allergies for(var/datum/quirk/quirky as anything in target.quirks) if(istype(quirky, /datum/quirk/item_quirk/allergic)) var/datum/quirk/item_quirk/allergic/allergies_quirk = quirky var/allergies = allergies_quirk.allergy_string - render_list += "Subject is extremely allergic to the following chemicals:\n" - render_list += "[allergies]\n" + render_list += "Subject is extremely allergic to the following chemicals:
" + render_list += "[allergies]
" // we handled the last
so we don't need handholding to_chat(user, examine_block(jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) @@ -495,7 +531,7 @@ /// Displays wounds with extended information on their status vs medscanners /proc/woundscan(mob/user, mob/living/carbon/patient, obj/item/healthanalyzer/scanner, simple_scan = FALSE) - if(!istype(patient) || user.incapacitated()) + if(!istype(patient) || user.incapacitated) return var/render_list = "" @@ -505,7 +541,7 @@ render_list += "Warning: Physical trauma[LAZYLEN(wounded_part.wounds) > 1? "s" : ""] detected in [wounded_part.name]" for(var/limb_wound in wounded_part.wounds) var/datum/wound/current_wound = limb_wound - render_list += "
[simple_scan ? current_wound.get_simple_scanner_description() : current_wound.get_scanner_description()]
\n" + render_list += "
[simple_scan ? current_wound.get_simple_scanner_description() : current_wound.get_scanner_description()]

" if (scanner.give_wound_treatment_bonus) ADD_TRAIT(current_wound, TRAIT_WOUND_SCANNED, ANALYZER_TRAIT) if(!advised) @@ -526,7 +562,7 @@ if(simple_scan) var/obj/item/healthanalyzer/simple/simple_scanner = scanner simple_scanner.show_emotion(AID_EMOTION_WARN) - playsound(simple_scanner, 'sound/machines/twobeep.ogg', 50, FALSE) + playsound(simple_scanner, 'sound/machines/beep/twobeep.ogg', 50, FALSE) /obj/item/healthanalyzer/simple @@ -564,7 +600,7 @@ show_emotion(AID_EMOTION_ANGRY) /obj/item/healthanalyzer/simple/proc/violence(mob/user) - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 50, FALSE) if(isliving(user)) var/mob/living/L = user to_chat(L, span_warning("[src] makes a disappointed buzz and pricks your finger for being greedy. Ow!")) @@ -589,7 +625,7 @@ ) if(!iscarbon(interacting_with)) - playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE) + playsound(src, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) to_chat(user, span_notice("[src] makes a sad buzz and briefly displays an unhappy face, indicating it can't scan [interacting_with].")) show_emotion(AI_EMOTION_SAD) return ITEM_INTERACT_BLOCKING @@ -664,14 +700,14 @@ /// Checks the individual for any diseases that are visible to the scanner, and displays the diseases in the attacked to the attacker. /proc/diseasescan(mob/user, mob/living/carbon/patient, obj/item/healthanalyzer/simple/scanner) - if(!istype(patient) || user.incapacitated()) + if(!istype(patient) || user.incapacitated) return var/list/render = list() for(var/datum/disease/disease as anything in patient.diseases) if(!(disease.visibility_flags & HIDDEN_SCANNER)) - render += "Warning: [disease.form] detected\n\ -
Name: [disease.name].\nType: [disease.spread_text].\nStage: [disease.stage]/[disease.max_stages].\nPossible Cure: [disease.cure_text]
\ + render += "Warning: [disease.form] detected
\ +
Name: [disease.name].
Type: [disease.spread_text].
Stage: [disease.stage]/[disease.max_stages].
Possible Cure: [disease.cure_text]
\
" if(!length(render)) @@ -681,7 +717,7 @@ else to_chat(user, span_notice(render.Join(""))) scanner.emotion = AID_EMOTION_WARN - playsound(scanner, 'sound/machines/twobeep.ogg', 50, FALSE) + playsound(scanner, 'sound/machines/beep/twobeep.ogg', 50, FALSE) #undef SCANMODE_HEALTH #undef SCANMODE_WOUND diff --git a/code/game/objects/items/devices/scanners/slime_scanner.dm b/code/game/objects/items/devices/scanners/slime_scanner.dm index 7f7453bb4b9d7..79050f0a78c67 100644 --- a/code/game/objects/items/devices/scanners/slime_scanner.dm +++ b/code/game/objects/items/devices/scanners/slime_scanner.dm @@ -22,6 +22,7 @@ to_chat(user, span_warning("This device can only scan slimes!")) return ITEM_INTERACT_BLOCKING var/mob/living/basic/slime/scanned_slime = interacting_with + playsound(src, SFX_INDUSTRIAL_SCAN, 20, TRUE, -2, TRUE, FALSE) slime_scan(scanned_slime, user) return ITEM_INTERACT_SUCCESS diff --git a/code/game/objects/items/devices/scanners/t_scanner.dm b/code/game/objects/items/devices/scanners/t_scanner.dm index 555e6cc88619f..931b69bb7bd37 100644 --- a/code/game/objects/items/devices/scanners/t_scanner.dm +++ b/code/game/objects/items/devices/scanners/t_scanner.dm @@ -21,6 +21,7 @@ return TOXLOSS /obj/item/t_scanner/proc/toggle_on() + playsound(src, SFX_INDUSTRIAL_SCAN, 20, TRUE, -2, TRUE, FALSE) on = !on icon_state = copytext_char(icon_state, 1, -1) + "[on]" if(on) diff --git a/code/game/objects/items/devices/spyglasses.dm b/code/game/objects/items/devices/spyglasses.dm index 8be7666bf96ae..8d70f3de29215 100644 --- a/code/game/objects/items/devices/spyglasses.dm +++ b/code/game/objects/items/devices/spyglasses.dm @@ -20,7 +20,7 @@ /obj/item/clothing/glasses/sunglasses/spy/proc/on_screen_clear(client/source, window) SIGNAL_HANDLER - linked_bug.cam_screen.hide_from(source.mob) + linked_bug.cam_screen.hide_from_client(source) /obj/item/clothing/glasses/sunglasses/spy/equipped(mob/user, slot) . = ..() @@ -92,7 +92,7 @@ default_raw_text = @{" Thank you for your purchase of the Nerd Co SpySpeks tm, this paper will be your quick-start guide to violating the privacy of your crewmates in three easy steps!

Step One: Nerd Co SpySpeks tm upon your face.
-Step Two: Place the included "ProfitProtektor tm" camera assembly in a place of your choosing - make sure to make heavy use of it's inconspicous design! +Step Two: Place the included "ProfitProtektor tm" camera assembly in a place of your choosing - make sure to make heavy use of its inconspicous design! Step Three: Press the "Activate Remote View" Button on the side of your SpySpeks tm to open a movable camera display in the corner of your vision, it's just that easy!


TROUBLESHOOTING
My SpySpeks tm Make a shrill beep while attempting to use! diff --git a/code/game/objects/items/devices/swapper.dm b/code/game/objects/items/devices/swapper.dm index dee9198c93296..da597fa595d63 100644 --- a/code/game/objects/items/devices/swapper.dm +++ b/code/game/objects/items/devices/swapper.dm @@ -51,9 +51,9 @@ if(QDELETED(linked_swapper)) to_chat(user, span_warning("[src] is not linked with another swapper.")) return - playsound(src, 'sound/weapons/flash.ogg', 25, TRUE) + playsound(src, 'sound/items/weapons/flash.ogg', 25, TRUE) to_chat(user, span_notice("You activate [src].")) - playsound(linked_swapper, 'sound/weapons/flash.ogg', 25, TRUE) + playsound(linked_swapper, 'sound/items/weapons/flash.ogg', 25, TRUE) if(ismob(linked_swapper.loc)) var/mob/holder = linked_swapper.loc to_chat(holder, span_notice("[linked_swapper] starts buzzing.")) @@ -97,7 +97,7 @@ return teleportable /obj/item/swapper/proc/swap(mob/user) - if(QDELETED(linked_swapper) || world.time < linked_swapper.cooldown) + if(QDELETED(linked_swapper) || isnull(linked_swapper.loc) || world.time < linked_swapper.cooldown) return var/atom/movable/A = get_teleportable_container() diff --git a/code/game/objects/items/devices/table_clock.dm b/code/game/objects/items/devices/table_clock.dm index 37c1098759e98..d9c5e44fcf76c 100644 --- a/code/game/objects/items/devices/table_clock.dm +++ b/code/game/objects/items/devices/table_clock.dm @@ -37,7 +37,7 @@ . = ..() if(attacking_item.force < 5 || broken) return - if(break_clock(break_sound = 'sound/magic/clockwork/ark_activation.ogg')) + if(break_clock(break_sound = 'sound/effects/magic/clockwork/ark_activation.ogg')) user.visible_message( span_warning("[user] smashes \the [src] so hard it stops breaking!"), span_boldannounce("I can't stand this stupid machine anymore! Shut up already!"), diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index d30f379197eea..df0fbb928ed8c 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -20,7 +20,6 @@ var/playsleepseconds = 0 var/obj/item/tape/mytape var/starting_tape_type = /obj/item/tape/random - var/open_panel = FALSE var/canprint = TRUE var/list/icons_available = list() var/radial_icon_file = 'icons/hud/radial_taperecorder.dmi' @@ -58,7 +57,7 @@ /obj/item/taperecorder/examine(mob/user) . = ..() if(in_range(src, user) || isobserver(user)) - . += span_notice("The wire panel is [open_panel ? "opened" : "closed"]. The display reads:") + . += span_notice("The display reads:") . += "[readout()]" /obj/item/taperecorder/click_alt(mob/user) @@ -122,7 +121,7 @@ /obj/item/taperecorder/proc/can_use(mob/user) if(user && ismob(user)) - if(!user.incapacitated()) + if(!user.incapacitated) return TRUE return FALSE @@ -162,7 +161,7 @@ if(mytape && recording) mytape.timestamp += mytape.used_capacity - mytape.storedinfo += "\[[time2text(mytape.used_capacity,"mm:ss")]\] [raw_message]" + mytape.storedinfo += "\[[time2text(mytape.used_capacity,"mm:ss")]\] [speaker.GetVoice()]: [raw_message]" /obj/item/taperecorder/verb/record() diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 0dc69cb9c8117..5a108c83e823b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -138,7 +138,7 @@ effective or pretty fucking useless. data["cooldown"] = DisplayTimeText(get_cooldown()) return data -/obj/item/healthanalyzer/rad_laser/ui_act(action, params) +/obj/item/healthanalyzer/rad_laser/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -329,23 +329,66 @@ effective or pretty fucking useless. /obj/item/jammer name = "radio jammer" - desc = "Device used to disrupt nearby radio communication." + desc = "Device used to disrupt nearby radio communication. Alternate function creates a powerful distruptor wave which disables all nearby listening devices." icon = 'icons/obj/devices/syndie_gadget.dmi' icon_state = "jammer" var/active = FALSE var/range = 12 + var/jam_cooldown_duration = 15 SECONDS + COOLDOWN_DECLARE(jam_cooldown) -/obj/item/jammer/attack_self(mob/user) - to_chat(user,span_notice("You [active ? "deactivate" : "activate"] [src].")) +/obj/item/jammer/Initialize(mapload) + . = ..() + register_context() + +/atom/movable/screen/alert/give/add_context(atom/source, list/context, obj/item/held_item, mob/user) + context[SCREENTIP_CONTEXT_LMB] = "Release distruptor wave" + context[SCREENTIP_CONTEXT_RMB] = "Toggle" + return CONTEXTUAL_SCREENTIP_SET + +/obj/item/jammer/attack_self(mob/user, modifiers) + . = ..() + if (!COOLDOWN_FINISHED(src, jam_cooldown)) + user.balloon_alert(user, "on cooldown!") + return + + user.balloon_alert(user, "distruptor wave released!") + to_chat(user, span_notice("You release a distruptor wave, disabling all nearby radio devices.")) + for (var/atom/potential_owner in view(7, user)) + disable_radios_on(potential_owner) + COOLDOWN_START(src, jam_cooldown, jam_cooldown_duration) + +/obj/item/jammer/attack_self_secondary(mob/user, modifiers) + . = ..() + to_chat(user, span_notice("You [active ? "deactivate" : "activate"] [src].")) + user.balloon_alert(user, "[active ? "deactivated" : "activated"] the jammer") active = !active if(active) GLOB.active_jammers |= src - else GLOB.active_jammers -= src - update_appearance() +/obj/item/jammer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + . = ..() + + if(. & ITEM_INTERACT_ANY_BLOCKER) + return + + if (!(interacting_with in view(7, user))) + user.balloon_alert(user, "out of reach!") + return + + interacting_with.balloon_alert(user, "radio distrupted!") + to_chat(user, span_notice("You release a directed distruptor wave, disabling all radio devices on [interacting_with].")) + disable_radios_on(interacting_with) + + return ITEM_INTERACT_SUCCESS + +/obj/item/jammer/proc/disable_radios_on(atom/target) + for (var/obj/item/radio/radio in target.get_all_contents() + target) + radio.set_broadcasting(FALSE) + /obj/item/jammer/Destroy() GLOB.active_jammers -= src return ..() @@ -361,15 +404,6 @@ effective or pretty fucking useless. new /obj/item/analyzer(src) new /obj/item/wirecutters(src) -/obj/item/storage/toolbox/emergency/turret/storage_insert_on_interacted_with(datum/storage, obj/item/inserted, mob/living/user) - if(!istype(inserted, /obj/item/wrench/combat)) - return TRUE - if(!user.combat_mode) - return TRUE - if(!inserted.toolspeed) - return TRUE - return FALSE - /obj/item/storage/toolbox/emergency/turret/item_interaction(mob/living/user, obj/item/tool, list/modifiers) if(!istype(tool, /obj/item/wrench/combat)) return NONE @@ -389,7 +423,7 @@ effective or pretty fucking useless. COMBAT_MESSAGE_RANGE, ) - playsound(src, 'sound/items/drill_use.ogg', 80, TRUE, -1) + playsound(src, 'sound/items/tools/drill_use.ogg', 80, TRUE, -1) var/obj/machinery/porta_turret/syndicate/toolbox/turret = new(get_turf(loc)) set_faction(turret, user) turret.toolbox = src diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 598c16c9041a8..4f0c0a84aa317 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -25,11 +25,36 @@ /obj/item/transfer_valve/Initialize(mapload) . = ..() RegisterSignal(src, COMSIG_ITEM_FRIED, PROC_REF(on_fried)) + register_context() /obj/item/transfer_valve/Destroy() attached_device = null return ..() +/obj/item/transfer_valve/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + + if(tank_one || tank_two) + context[SCREENTIP_CONTEXT_ALT_LMB] = "Remove [tank_one || tank_two]" + . = CONTEXTUAL_SCREENTIP_SET + if(istype(held_item) && is_type_in_list(held_item, list(/obj/item/tank, /obj/item/assembly))) + context[SCREENTIP_CONTEXT_LMB] = "Attach [held_item]" + . = CONTEXTUAL_SCREENTIP_SET + + return . || NONE + +/obj/item/transfer_valve/click_alt(mob/user) + if(tank_one) + split_gases() + valve_open = FALSE + tank_one.forceMove(drop_location()) + else if(tank_two) + split_gases() + valve_open = FALSE + tank_two.forceMove(drop_location()) + + return CLICK_ACTION_SUCCESS + /obj/item/transfer_valve/IsAssemblyHolder() return TRUE @@ -291,7 +316,7 @@ data["valve"] = valve_open return data -/obj/item/transfer_valve/ui_act(action, params) +/obj/item/transfer_valve/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index f32b2ee30ec21..aa98d325a7d46 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -181,7 +181,7 @@ name = "knucklebones rules" default_raw_text = "How to play knucklebones
\